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