質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

663閲覧

相対パスから取得した場合のファイルの有無の確認

pegy

総合スコア245

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2021/02/04 01:53

編集2021/02/04 01:58

下記のようなコードで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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

うまく動かなかった部分はvbDirectoryを指定していたからです。
これだとファイルは検出されません。

vba

1'If Dir(currentPath & "\" & getFilePath, vbDirectory) = "" Then 2If Dir(currentPath & "\" & getFilePath) = "" Then

追記の方法でも問題ないと思います。

投稿2021/02/04 02:04

radames1000

総合スコア1925

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pegy

2021/02/04 02:17

承知を致しました。 ご教示を頂き、ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問