このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【VBA】Dir関数の使い方(サンプルコードあり)

2024年8月4日

VBAのDir関数は、指定したフォルダ内のファイルやフォルダの名前を取得するために使用されます。

条件に合うファイル名やフォルダ名をすべて取得することができます。

VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

Dir関数の使い方

Dir関数は、次のような構文を持ちます。

Dir([path], [attributes])
  • path: 検索するディレクトリのパスを文字列で指定します。
  • attributes: 検索条件を指定するための定数を指定します。

引数attributesについては後半で説明します。 (あまり使うケースは少ないと思います)

Dir関数のサンプルコードあり

以下に、Dir関数の使用例を示します。

Sub TestDir()
    Dim filePath As String
    
    ' 指定したディレクトリ内のファイル一覧を表示
    filePath = Dir("C:\")
    Do While filePath <> ""
        Debug.Print filePath
        filePath = Dir
    Loop
    
    ' 指定したディレクトリ内の特定のファイルのみを表示
    filePath = Dir("C:*.xlsx")
    Do While filePath <> ""
        Debug.Print filePath
        filePath = Dir
    Loop
End Sub

この例では、指定したディレクトリ内のファイル一覧を取得し、イミディエイトウィンドウに表示する方法を示しています。

また、特定の拡張子(.xlsx)を持つファイルのみを取得する方法も示しています。

Dir関数は、Do Whileループと組み合わせて使用することが一般的です。

ループ内でDir関数を使用してファイル名を取得し、ループが終了するまで繰り返します。

取得されたファイル名が空文字列の場合、ループが終了します。

※Dir関数は引数なしにすると、前回の指定条件の次のファイルを表示します。そして、対象ファイルがなくなると空文字列を返します。

引数attributesについて

引数attributesを指定すると、特定のファイルやフォルダのみ対象とすることができます。

定数内容
vbNormal0標準ファイル
vbReadOnly1読み取り専用ファイル
vbHidden2隠しファイル
vbSystem4システム ファイル。Macintosh では使用できません。
vbVolume8ボリューム ラベル。この値を指定すると、すべての属性は無効になります。Macintosh では使用できません。
vbDirectory16フォルダ
vbAlias64エイリアス ファイル。Macintosh でのみ使用できます。
引数attributes

attributesで指定できる内容はこの表の通りです。

省略すると、標準ファイルの属性になります。

《VBA上級者になりたい人へ》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。
この本を読み切れば間違いなくVBA上級者になれます。

VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

VBA

Posted by やろまい