フォルダ内のファイルを列挙するVBAコード

 


フォルダ内のファイルを列挙するVBAコード

 ExcelのVBAを使うと、特定のタスクを自動化できます。今回は、指定されたフォルダ内のファイル名をExcelのワークシートに列挙するコードを解説します。

1. サブルーチンの定義

まず、サブルーチン(Subroutine)を定義します。サブルーチンは、特定のタスクを実行するための一連のコードです。

Sub 列挙ファイル()
    Dim folderPath As String
    Dim fileName As String
    Dim ws As Worksheet
    Dim i As Long

    ' シート1を選択
    Set ws = ThisWorkbook.Sheets("Sheet1")

    ' フォルダのパスを指定(現在のフォルダを使用)
    folderPath = ThisWorkbook.Path & "\"

    ' フォルダ内のファイルを列挙
    fileName = Dir(folderPath & "*.*")
    i = 1

    Do While fileName <> ""
        ' ファイル名をSheet1に書き込む
        ws.Cells(i, 1).Value = fileName
        i = i + 1
        fileName = Dir
    Loop
End Sub

2. コードの解説

  • folderPath:フォルダのパスを格納する文字列型の変数です。現在のブックのフォルダパスを取得しています。
  • fileName:ファイル名を格納する文字列型の変数です。
  • ws:Excelのワークシートを操作するためのワークシート型の変数です。ここでは「Sheet1」を選択しています。
  • i:行番号を格納する長整数型の変数です。
  1. Set ws = ThisWorkbook.Sheets("Sheet1"):現在のブックの「Sheet1」を操作するために ws 変数に代入しています。
  2. folderPath = ThisWorkbook.Path & "\":現在のブックのフォルダパスにバックスラッシュを追加して、folderPath 変数に格納しています。
  3. fileName = Dir(folderPath & "*.*")Dir 関数を使って最初のファイル名を取得しています。*.* はすべてのファイルを意味します。
  4. Do While fileName <> "":ファイル名が空でない限り、以下の処理を繰り返します。
  5. ws.Cells(i, 1).Value = fileName:ワークシート「Sheet1」のi行1列目にファイル名を書き込んでいます。
  6. i = i + 1:行番号を1つ増やして次の行に移動します。
  7. fileName = Dir:次のファイル名を取得します。

このコードを実行すると、指定されたフォルダ内のファイル名が「Sheet1」に列挙されます。ExcelのVBAを使って、さまざまなタスクを効率的に実行できることを覚えておいてくださいね!