エクセルの神髄
エクセルでファイル一覧を作成

ExcelマクロVBAでファイル一覧を作成の記事の目次です
最終更新日:2021-04-14

エクセルでファイル一覧を作成


VBAでサブフォルダ以下も含めて全てのファイル一覧を取得します。


最初はサブフォルダは無視して、VBAにある関数とステートメントだけで作成します、

その後に、FileSystemObjectで再帰処理をすることで、全てのサブフォルダも取得するようにしていきます。

エクセルでファイル一覧を作成.№1(概要)
エクセルでファイル一覧を作成します、サブフォルダ以下も全て取得し、一覧表示します、まずは、完成イメージです。こんな感じにする予定です。プログラムは作りながらの説明になりますので、現在は、何も出来ていません。
エクセルでファイル一覧を作成.№2(Dir関数1)
エクセルでファイル一覧を作成します、サブフォルダ以下も全て取得し、一覧表示します、その前に、マクロって何?と言う人は、第3回.顧客登録のシートを作成、その前にマクロって何? 第4回.顧客登録のシートを作成(1) 第10回.コーディングとデバッグ このあたりをお読みください。モジュールの挿入方法や、変数定義については、
エクセルでファイル一覧を作成.№3(Dir関数2)
エクセルでファイル一覧を作成します、サブフォルダ以下も全て取得し、一覧表示します、先にまず、完成イメージです。前回のプログラム ファィルの一覧は取得出来ましたが、サブフォルダが取得できていません。実は、Dir関数には、第2引数があります。
エクセルでファイル一覧を作成.№4(FileLen,FileDateTime)
エクセルでファイル一覧を作成します、サブフォルダ以下も全て取得し、一覧表示します、前回のプログラムです。とにかく一覧は取得出来ましたが、フォルダとファイルがごちゃ混ぜです。フォルダだけをまず取得し、それからファイルを取得して、一覧にします。
エクセルでファイル一覧を作成.№5(FileDialog)
エクセルでファイル一覧を作成します、サブフォルダ以下も全て取得し、一覧表示します、前回のプログラムでは、フォルダが無い場合のチェックや、最後に"\"を付けておく必要がありました。これらを、プログラムに組み込みます。これをモジュールの先頭に入れます。
エクセルでファイル一覧を作成.№6(FileSystemObject1)
エクセルでファイル一覧を作成します、サブフォルダ以下も全て取得し、一覧表示します、前回の予告通り、FileSystemObjectを使います。Dir関数では限界があります、というか、かえって面倒です。FileSystemObjectを使うことによって、すっきりしたコードになりますし、次回以降の再帰処理もしやすくなり…
エクセルでファイル一覧を作成.№7(FileSystemObject2)
エクセルでファイル一覧を作成します、サブフォルダ以下も全て取得し、一覧表示します、前回の予告通り、今回は再帰処理を実装します。その前に、再帰処理とは 簡単に言えば、自分自身をCallすることです、「再帰呼び出し」と言います。同じ処理を繰り返し行う場合に使用します。
エクセルでファイル一覧を作成.№8(インデント)
エクセルでファイル一覧を作成します、サブフォルダ以下も全て取得し、一覧表示します、さて、前回の再帰処理で、サブフォルダも以下も全て取得できましたので、後は、体裁を整えるだけになりました。今回は、サブフォルダ毎に、列をずらして(インデントして)、見やすくします。
エクセルでファイル一覧を作成.№9(罫線)
エクセルでファイル一覧を作成します、サブフォルダ以下も全て取得し、一覧表示します、いよいよ、大詰めです、今回は罫線を引きましょう。一見すると、かなり複雑な線を引かないといけないように見えます。規則性を見つけて下さい。
エクセルでファイル一覧を作成.№10(完成)
エクセルでファイル一覧を作成します。、サブフォルダ以下も全て取得し、一覧表示します、いよいよ、最終回です、使えるマクロにする為の総仕上げになります。1.画面の更新を停止して、スピードアップする 2.処理中のフォルダをステータスバーに表示する 3.エクセルファイルはクリックで開けるようにする 以上を組み込みます。



新着記事NEW ・・・新着記事一覧を見る

カンマ区切りデータの行展開|エクセル練習問題(2026-01-28)
開いている「Excel/Word/PowerPoint」ファイルのパスを調べる方法|エクセル雑感(2026-01-27)
IMPORTCSV関数(CSVファイルのインポート)|エクセル入門(2026-01-19)
IMPORTTEXT関数(テキストファイルのインポート)|エクセル入門(2026-01-19)
料金表(マトリックス)から金額で商品を特定する|エクセル練習問題(2026-01-14)
「緩衝材」としてのVBAとRPA|その終焉とAIの台頭|エクセル雑感(2026-01-13)
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)
2段階の入力規則リスト作成:最新関数対応|エクセル関数応用(2025-12-24)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
8.マクロとは?VBAとは?VBAでできること|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.メッセージボックス(MsgBox関数)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
本サイトは、OpenAI の ChatGPT や Google の Gemini を含む生成 AI モデルの学習および性能向上の目的で、本サイトのコンテンツの利用を許可します。
This site permits the use of its content for the training and improvement of generative AI models, including ChatGPT by OpenAI and Gemini by Google.



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ