フォルダー内の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
Windows版のデスクトップExcelで練習用ブックを.xlsm形式で保存します。Alt+F11→[挿入]→[標準モジュール]に、この例だけを貼り付けます。
- 2
folderPathのC:\Data\を実在する作業フォルダーへ変えます。末尾の\は残します。
- 3
実行するSubの内側にカーソルを置き、F5キーを押します。
- 4
新規シートのA1に見出し、A2以降に直下の.xlsxファイル名が並びます。該当ファイルがなければ見出しだけになります。