← コード一覧へ戻る
実務ファイル

フォルダー内のExcelファイルを一覧にする

指定フォルダーにある.xlsxファイルの名前をシートへ書き出します。

実行前に確認

  • Windows用です。子フォルダー、.xlsm、.xlsは対象外です。Dirの既定属性で見つかるファイルを列挙し、隠しファイル等は含まない場合があります。
  • 毎回新しいシートを追加します。前回一覧は消しません。

1サンプルコード

Sub Excelファイルを一覧にする()
    Dim folderPath As String
    Dim fileName As String
    Dim rowNumber As Long

    folderPath = "C:\Data\"
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets.Add
    ws.Range("A1").Value = "ファイル名"
    fileName = Dir(folderPath & "*.xlsx")
    rowNumber = 2

    Do While fileName <> ""
        ws.Cells(rowNumber, "A").Value = fileName
        rowNumber = rowNumber + 1
        fileName = Dir()
    Loop
End Sub
表で見る処理のイメージ実行前・実行後のセルを見比べる

新しく作ったシートへExcelファイル名を書き出します。

A・B・Cは列、1・2・3は行です。例えば「B2」はB列の2行目のセルです。この表は説明用のサンプルです。

実行前

新規ワークシート

実行前のサンプル。列記号と行番号でセルの位置を確認できます。
A
1—
2—
3—

実行後

新規ワークシート

実行後のサンプル。列記号と行番号でセルの位置を確認できます。
A
1ファイル名(注目セル)
2売上.xlsx(注目セル)
3在庫.xlsx(注目セル)

色付きは注目する場所です。「—」は未入力、「(空文字)」は数式などが返す空の文字列を表します。

C:\Data\にこの2つの.xlsxファイルだけがあり、Dirがこの順番で返した場合の例です。列挙順は保証されません。実行前の表は作成直後の空シートを表します。 強調は注目するセルの目印です。実際のセルの色・書式を再現するものではありません。

使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
  1. 1

    Windows版のデスクトップExcelで練習用ブックを.xlsm形式で保存します。Alt+F11→[挿入]→[標準モジュール]に、この例だけを貼り付けます。

  2. 2

    folderPathのC:\Data\を実在する作業フォルダーへ変えます。末尾の\は残します。

  3. 3

    実行するSubの内側にカーソルを置き、F5キーを押します。

  4. 4

    新規シートのA1に見出し、A2以降に直下の.xlsxファイル名が並びます。該当ファイルがなければ見出しだけになります。

使っている機能の公式ドキュメント(Microsoft Learn)