はじめに
Excel VBA マクロの Dir 関数について紹介していきます。
Dir 関数は、指定した引数と一致したファイル名やフォルダ名を返し、一致しない場合は空欄(“ ”)を返します。
この特性を利用して、ファイルやフォルダの存在確認を確認したい時などに使用します。
構文
Dir([PathName] [, Attributes] )
戻り値:文字列型(String)
[PnathName]にファイルまたはフォルダパスを指定し、一致した(存在する)場合は、ファイル名を文字列型(String)で返します。
一致しなかった(存在しない)場合は、空欄(””)を返します。
引数
引数名 | 省略 | 内容 |
PathName | 〇 |
ファイルやフォルダのパスを指定します。 ワイルドカードの使用が可能です。 |
Attributes | 〇 |
取得するファイルが持つ属性を指定します。 省略した場合は標準ファイルの属性になります。 |
属性[, Attributes]
定数名 | 値 | 内容 |
vbNormal | 0 |
標準ファイル Attributesを省略した場合、指定される。 |
vbReadOnly | 1 |
読み取り専用ファイル |
vbHidden | 2 |
隠しファイル |
vbSystem | 4 |
システムファイル |
vbVolume | 8 |
ボリューム ラベル |
vbDirectory | 16 |
フォルダ |
解説
[PathName]について
引数[PathName]に指定したパスと一致したファイル・フォルダを検索し、一致した場合ファイル名・フォルダ名を文字列型(String)で返します。
引数[PathName]に一致しなかった場合は、空欄(””)を返します。
引数「パターン」にはワイルドカード(*、?)が使用できます。
ワイルドカードを使用して複数のファイル名と一致する場合、最初にヒットしたファイル名を返します。
・一致しなかった場合は空欄(“”)を返す。
・ワイルドカードの指定ができる。
[Attributes]について
引数[Attributes]を省略すると[vbNormal(標準ファイル)]が設定されます。
フォルダを検索する場合は、引数[Attributes]に定数[vbDirectory]を指定する必要があります。
+演算子を用いて、[Attributes]を組み合わせることが出来ます。
vbReadOnly + vbHiddenなら「標準ファイル」または「読み取り専用ファイル」または「隠しファイル」が条件になります。
vbReadOnlyは、「読み取り専用ファイル」だけ返したいということはでず、「標準ファイル」が含まれます。
そのため、vbReadOnlyを指定した場合の処理は、[標準ファイル」または「読み取り専用ファイル」となります。
・フォルダを検索する場合は、[vbDirectory]を指定すること。
・[Attributes]の組み合わせは+演算子を用いる。
・vbReadOnlyを指定した場合の処理は、
[標準ファイル」または「読み取り専用ファイル」となる。
使用例

ファイル確認の存在確認と名前の取得
フォルダ確認の存在確認と名前の取得
CドライブのVBAフォルダに保存されているfolder_1フォルダの存在を確認しイミディエイトウィンドウに結果を表示する。
フォルダに保存されているすべてのファイル名の存在確認と名前の取得
CドライブのVBAフォルダに保存されているすべてのファイルの存在を確認しイミディエイトウィンドウに結果を表示する。
フォルダに保存されているすべてのフォルダ名の存在確認と名前の取得
CドライブのVBAフォルダに保存されているすべてのフォルダの存在を確認しイミディエイトウィンドウに結果を表示する。
以上、Dir関数の説明になります。
コメント