Excel VBA:FileSystemObjectで指定したフォルダのサブフォルダも含めてファイル名の一覧を取得してセルに書き出すVBAのサンプルプログラム

FileSystemObjectを使用して指定したフォルダのサブフォルダも含めて保存されている全てのファイルのファイル名を取得してExcelのセルに書き出すVBAのサンプルプログラムを覚書。

Office 2007以降はFileSearchオブジェクトが使用できなくなったため、代わりに”FileSystemObject”を再帰呼び出しする方法を使います。

Excelで使う時のが多いかなと思って以前書いたAccessのVBAの記事のサンプルプログラムをExcel VBAに書きなおしました。

指定したフォルダのサブフォルダも含めて保存されている全てのファイルのファイル名を取得してテーブルに追加するVBAのサンプルプログラム...

サンプルプログラム概要

この記事では3つのサンプルプログラムを紹介します。

  1. 取得したファイル名の一覧をセルにフルパスで書き出すサンプルプログラム
  2. 取得したファイル名の一覧をパスとファイル名に分けて2つのセルに書き出すサンプルプログラム
  3. 取得したファイル名の一覧をパスの区切りである”\”マークを区切り文字として分けてから各セルに書き出すサンプルプログラム

3番めのサンプルプログラムについてですが、例えば”C:\Folder1\SubFolder2\File.txt”というファイルがあった場合、セルには\マークを区切りに”C:”,”Folder1″、”Folder2″、”File.txt”の4つに分解されて各セルに書き出されます。

取得したファイル名の一覧をセルにフルパスで書き出すサンプルプログラム

以下に指定したフォルダのサブフォルダも含めて保存されているファイル名の一覧を取得してフルパスでセルに書き出すサンプルプログラムを記載します。

再帰呼び出しを行うため、別のプログラムから呼び出して使用する方法になっています。

サンプルプログラム本体


実際にサンプルプログラムを動作させる際はこちらを実行します。


上記サンプルでは、例として”C:\Program Files”フォルダを指定しています。

取得したファイル名の一覧をパスとファイル名に分けて2つのセルに書き出すサンプルプログラム

以下にファイル名とパスを別々のセルに書き出すサンプルプログラムを記載します。

同様に実行時は別のプログラムから呼び出して実行します。

サンプルプログラム本体


実際にサンプルプログラムを動作させるプログラム。

取得したファイル名の一覧をパスの区切りである”\”マークを区切り文字として分けてから各セルに書き出すサンプルプログラム

以下にフルパスを”\”マークを区切り文字として分解し、分解された各値を別々のセルに書き出すサンプルプログラムを記載します。

実行時は別のプログラムから呼び出して実行します。

サンプルプログラム本体


実際にサンプルプログラムを動作させるプログラム。

サブフォルダも含めて指定したフォルダのファイル名一覧をセルに書き出しするサンプルプログラムまとめ

別の記事で紹介したAccessのVBAで作ったプログラムをExcelのVBA用にプログラムを書き換えました。

Accessで行う場合はこちらの記事を参照してください。

指定したフォルダのサブフォルダも含めて保存されている全てのファイルのファイル名を取得してテーブルに追加するVBAのサンプルプログラム...

コメント

  1. tetsum より:

    > 1つ目、正しい
    > 2つ目、拡張子が正しくない
    > 3つ目、フォルダ名が正しくない場合あり
    >
    > 記事にするなら、間違いを掲載しないほうがいい
    > 動作チェックをしていますか?
    上記の指摘ありがとうございます。
    実際に使用しているプログラムなので動作確認はしていますが、修正前のコードを掲載してしまったようです。
    正しい方のコードに差し替えました。
    3番めの指摘については、"フォルダ名が正しくない場合がある"という状況が発生していないため確認が取れません。
    どういうフルパスがどう間違っているのか具体例があればよいのですが…