[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『エクセルバージョン変更したら』(りんご)
いつもこちらで勉強させて頂いております。 この度も宜しくお願い致します。
先日、社内のPCをWindowsXPからWindows 7に入れ替えました。 それに伴ってExcel2007で作成したファイルをExcel2013で作成し直しました。 ユーザーフォームを作成し、VBAがあるファイルなんですが、 全く同じ形で作成し、ファイルの拡張子等も修正して動作確認したところ 以下の部分だけエラーが出てしまいます。
Private Sub Button1_Click()
Dim targ As String
targ = ThisWorkbook.Path & "\追加工事\" & コード.Value
If Len(Dir(targ, vbDirectory)) > 0 Then
If (GetAttr(targ) And vbDirectory) = vbDirectory Then
Shell "C:\Windows\Explorer.exe " & targ, vbNormalFocus
Exit Sub
End If
End If
MsgBox "指定のフォルダはありません"
エラーが出てしまうのは If Len(Dir(targ, vbDirectory)) > 0 Then の部分で 「ファイル名または番号が不正です」と出てきます。 以前と全く同じなのに動かないのです。
何か考えられる原因等がありましたらご教授頂ければ幸いです。 宜しくお願い致します。
*追記* Private Sub Button1_Click()
Dim targ As String targ = ThisWorkbook.Path & "\追加工事\" & コード.Value Shell "C:\Windows\Explorer.exe " & targ, vbNormalFocus
End Sub
このコードだけだと指定のフォルダを開いてくれます。 フォルダがない場合に「存在しません」というメッセージを表示させるには どのようにすればよいのでしょうか? 合わせてご教授の程、宜しくお願い致します。 (りんご) 2013/11/24(日) 17:51
2010 と 2013 で上記コードを試してみましたけれど、「ファイル名または番号が不正です」 というエラーは出ませんでした。
エラー発生時の コード.Value は何でしょうか。 If 文の前に MsgBox targ としたら、実際のフォルダパスが表示されるでしょうか。
原因がわからないので代替案ですけれど、下記のようにしてもエラーが出るでしょうか。
Private Sub Button1_Click()
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Dim targ As String
targ = ThisWorkbook.Path & "\追加工事\" & コード.Value
If fso.FolderExists(targ) = True Then
Shell "C:\Windows\Explorer.exe " & targ, vbNormalFocus
Else
MsgBox "指定のフォルダはありません"
End If
End Sub
(Mook) 2013/11/24(日) 17:56
Mook様 ありがとうございます。
>コード.Value は何でしょうか こちらはユーザーフォムに作成しておりますTextBoxです。 オブジェクト名を「コード」としております。 言葉足らずで申し訳ございません。 この「コード」と同じ名前のフォルダを開くようにしております。
>If 文の前に MsgBox targ としたら、実際のフォルダパスが表示されるでしょうか。 こちらは問題なく実際のフォルダパスが表示されました。
Mook様よりご教授頂いたコードで希望通りの動作が出来ました。 ありがとうございます。 2013で作成していく中で、さっきは上手くいったのに、 今度は出来ないといった 現象が頻繁に起こっています。 例えば・・ 誰も使っていないのに終了する時に他のユーザーが使用中ですという エラーが出たりします。
Windowsのバージョンを変更したから?セキュリティソフトとの関係性? 等、毎日悩んでおります。
この度の問題はMook様のおかげで解決しそうです。 また何かありましたらご質問させて頂きます、本当にありがとうございました。
(りんご) 2013/11/24(日) 18:07
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.