【Excel~マクロ・VBA~】Dir関数:ファイルの存在を確認する。

当ページのリンクには広告が含まれています。
目次

はじめに

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]に一致しなかった場合は、空欄(””)を返します。

引数「パターン」にはワイルドカード(*、?)が使用できます。

ワイルドカードを使用して複数のファイル名と一致する場合、最初にヒットしたファイル名を返します。

・引数[PathName]に指定したパスと一致したファイル・フォルダ名を返す。

・一致しなかった場合は空欄(“”)を返す。

・ワイルドカードの指定ができる。

[Attributes]について

引数[Attributes]を省略すると[vbNormal(標準ファイル)]が設定されます。

フォルダを検索する場合は、引数[Attributes]に定数[vbDirectory]を指定する必要があります。

演算子を用いて、[Attributes]を組み合わせることが出来ます。

vbReadOnly + vbHiddenなら「標準ファイル」または「読み取り専用ファイル」または「隠しファイル」が条件になります。

vbReadOnlyは、「読み取り専用ファイル」だけ返したいということはでず、「標準ファイル」が含まれます。

そのため、vbReadOnlyを指定した場合の処理は、[標準ファイル」または「読み取り専用ファイル」となります。

・省略すると[vbNormal(標準ファイル)]が設定される。

・フォルダを検索する場合は、[vbDirectory]を指定すること。

・[Attributes]の組み合わせは+演算子を用いる。

・vbReadOnlyを指定した場合の処理は、

 [標準ファイル」または「読み取り専用ファイル」となる。

使用例

以下の使用例は下図フォルダ内に対して実行する処理になります。

ファイル確認の存在確認と名前の取得

 CドライブのVBAフォルダに保存されているsample_1.xlsxファイルの存在を確認しイミディエイトウィンドウに結果を表示する。

フォルダ確認の存在確認と名前の取得

 CドライブのVBAフォルダに保存されているfolder_1フォルダの存在を確認しイミディエイトウィンドウに結果を表示する。

フォルダに保存されているすべてのファイル名の存在確認と名前の取得

 CドライブのVBAフォルダに保存されているすべてのファイルの存在を確認しイミディエイトウィンドウに結果を表示する。

フォルダに保存されているすべてのフォルダ名の存在確認と名前の取得

 CドライブのVBAフォルダに保存されているすべてのフォルダの存在を確認しイミディエイトウィンドウに結果を表示する。

以上、Dir関数の説明になります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

静岡で飲食店巡りやら釣りやらして自由気ままな生活を満喫している20代男性。
暮らしの中で感じたオススメ情報を発信し皆様の役に立てればとブログ運営をしてます。
ここんところウィスキーにはまってます。
■得意ジャンル:グルメ、Excelなど

コメント

コメントする

目次