教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAでDir関数の使い方

構文

構文は以下の通りです。

Dir[(パス名, 属性)]

解説

Dir関数は、指定したパス内に存在するファイルやフォルダの名前を取得するために使います。パス名は、検索対象のファイルやフォルダのパスを指定します。省略すると、前回のDir関数での結果を基に次のファイルやフォルダを取得します。属性は、ファイル属性を指定します。省略すると、通常のファイルを検索します。

【属性の種類】

定数 内容
vbNormal 通常のファイル
vbDirectory ディレクトリ(フォルダ)

プログラミング例

具体的なプログラミング例を紹介します。

Sub フォルダ内のファイル表示()
    Dim フォルダ As String
    Dim ファイル名 As String
    ' フォルダのパスを指定
    フォルダ = "C:\テストフォルダ\"
    ' 最初のファイル名を取得
    ファイル名 = Dir(フォルダ & "*.*")
    ' ファイルが存在する限りループ
    Do While ファイル名 <> ""
        MsgBox ファイル名 & " が見つかりました。"
        ' 次のファイル名を取得
        ファイル名 = Dir
    Loop
End Sub

上記のプログラムは、Dir関数を使って、そのフォルダ内にある最初のファイル名を取得します。パターンとして"*.*"を指定することで、全てのファイルを検索対象にします。ファイルが見つかる限り、Do Whileループで繰り返し処理し、メッセージボックスにファイル名を表示します。ループ内で再度Dir関数を呼び出して次のファイルを取得します。Dirを引数なしで呼び出すと、前回の検索結果から次のファイルを取得します。

まとめ

Dir関数は、フォルダ内のファイルやフォルダを簡単に取得するための便利な関数です。ループを使ってすべてのファイルを一つずつ処理できるため、ファイルリストを作成したり、特定のファイルを検索するプログラムを作成する際に役立ちます。