下記のようなコードでIf Dir(currentPath & "" & getFilePath, vbDirectory)でカレントディレクトリに判定を含むファイルがなければ、実行したいのですが、必ずElseが実行されてしまいます。相対パスからディレクトリをしてする場合、どのように判定したらよいのでしょうか?
vba
1Sub getData() 2 Dim currentPath As String 3 Dim getFilePath As String 4 5 currentPath = ThisWorkbook.Path() 6 getFilePath = Dir(currentPath & "*判定*") 7 8 If Dir(currentPath & "\" & getFilePath, vbDirectory) = "" Then 9 MsgBox "*判定*の名称を持つファイル名がないです" 10 Else 11 Workbooks.Open Filename:=currentPath & "\" & getFilePath, UpdateLinks:=False 12 End If 13 14 15End Sub 16
追記
もうしわけございません。以下の方法で文字列としてgetFilePathを検査することで分岐させることができました。あまり、ファイルの存在を確認するために、このようなコードに関する記事をお見掛けしことがないため、もし当該方法が不適切である等のご意見もあれば、お願いいたします。
実行可能コード
vba
1Sub getData() 2 Dim currentPath As String 3 Dim getFilePath As String 4 5 currentPath = ThisWorkbook.Path() 6 getFilePath = Dir(currentPath & "*判定*") 7 8 Debug.Print (getFilePath) 9 If getFilePath = "" Then 10 MsgBox "*判定*の名称を持つファイル名がないです" 11 Else 12 Workbooks.Open Filename:=currentPath & "\" & getFilePath, UpdateLinks:=False 13End If 14
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/04 02:17