Dir 関数

指定したパターンまたはファイル属性に一致するファイル、ディレクトリ、フォルダーの名前、またはドライブのボリューム ラベルを表す String を返します。

構文

Dir [ (pathname, [ attributes ] ) ]

Dir 関数の構文には、次の指定項目があります。

パーツ 説明
pathname 省略可能。 ファイル名を指定する文字列式です。ディレクトリまたはフォルダー、およびドライブを含めることができます。 pathname が見つからない場合は、長さ 0 の文字列 ("") が返されます。
attributes 省略可能。 ファイル属性を指定する定数または数式 (合計によって指定) です。 省略した場合は、pathname に一致する、属性のないファイルが返されます。

設定

属性引数の設定は次のとおりです。

定数 説明
vbNormal 0 (既定値) 属性のないファイル。
vbReadOnly 1 属性のないファイルと読み取り専用のファイル。
vbHidden 2 属性のないファイルと隠しファイル。
vbSystem 4 属性のないファイルとシステム ファイル。 Macintosh では使用できません。
vbVolume 8 ボリューム ラベル。他の属性を指定した場合は、vbVolume は無視されます。 Macintosh では使用できません。
vbDirectory 16 属性のないファイルとディレクトリまたはフォルダー。
vbAlias 64 指定されたファイル名はエイリアスです。 Macintosh でのみ使用できます。

注:

これらの定数は、Visual Basic for Applications によって指定され、コードの任意の場所で実際の値の代わりに使用できます。

解説

Microsoft Windows と macOS では、 Dir では、複数のファイルを指定するための複数の文字 (*) と 1 文字 (?) のワイルドカードの使用がサポートされています。

Macintosh ではワイルドカードがサポートされないため、ファイルの種類を使用してファイルのグループを識別します。 MacID 関数を使用して、ファイル名を使わずにファイルの種類を指定します。 たとえば、次のステートメントでは、現在のフォルダー内の最初のテキスト ファイルの名前が返されます。

Dir("SomePath", MacID("TEXT"))

フォルダー内のすべてのファイルに対して反復処理を行うには、空の文字列を指定します。

Dir()

Microsoft Windows では、DirMacID 関数を使用するとエラーが発生します。

attribute の値が 256 を超える場合は MacID の値と見なされます。

Dir 関数の最初の呼び出しの際に pathname を指定しないとエラーが発生します。 ファイル属性も指定する場合は、pathname を指定する必要があります。

Dir は、pathname に一致する最初のファイル名を返します。 pathname に一致する追加のファイル名を取得するには、引数なしで Dir を再度呼び出します。 一致するファイル名がなくなると、Dir は長さ 0 の文字列 ("") を返します。 長さ 0 の文字列が返された後の呼び出しで、pathname を指定しないとエラーが発生します。

現在の pathname に一致するすべてのファイル名を取得せずに、新しい pathname に変更することもできます。 ただし、Dir 関数を再帰的に呼び出すことはできません。 vbDirectory 属性を付けて Dir を呼び出しても、継続してサブディレクトリが返されることはありません。

ヒント

ファイル名は Windows では大文字と小文字を区別しない順序で取得され、macOS では大文字と小文字を区別する順序で取得されるため、必要に応じて、返されたファイル名を配列に格納し、その配列を並べ替えます。

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。