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 では、Dir で MacID 関数を使用するとエラーが発生します。

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 のサポートおよびフィードバックを参照してください。