Excelマクロ ファイル・サブフォルダの一覧作成ツール

Excel マクロ、VBA

スポンサーリンク

はじめに

下図のように、A社・B社など会社ごとのフォルダがあり、その中のサブフォルダ構成は共通というフォルダ構造を作ることは、よくあると思う。

そうしたとき、たとえば各社の「004_仕訳データ」フォルダだけに集中してアクセスしたいということも、あると思う。

そこで今回は、こういった場合に各サブフォルダやその中のファイルに、なるべく簡単にアクセスできるツールができないかと考え、作ってみた。(というか、私が仕事で使うことになりそうなので。)

そのExceツールは、こちらの場所に保存してある。

ツールの使用方法

まず今回のツールを、各サブフォルダの起点となるルートフォルダに保存する。

この、ツールの保存場所を読み込んで、それを起点としてファイル・サブフォルダの一覧を作成するものだ。

別に、ツールの保存場所に限らず任意フォルダを指定させることは普通にできるけど、その指定の手間とかも省きたいと思って、ツールの保存場所に限定することにした。

次に当ツールを開いてマクロを有効にする。

ボタンは3つだけ付けているが、各ボタンについて。

「ファイル一覧」ボタン

まず「ファイル一覧」ボタンを押すと、当ツールを保存したフォルダを起点として、サブフォルダまで含め全てのファイルの情報を一覧に出力する。

列名説明
B列フォルダパスサブフォルダのフルパス。リンクも設定してあるので、そのセルをクリックすれば該当フォルダを開くことができる。
C列フォルダ名サブフォルダの、パスではなくフォルダ名単体を抜き出したもの。冒頭で述べたような、「004_仕訳データ」フォルダだけに集中してアクセスしたいという場合に便利かと思う。
D列ファイル名リンクも設定してあるので、そのセルをクリックすれば該当ファイルを開くことができる。
E列更新日時ファイルの更新日時
F列サイズファイルサイズ

「サブフォルダ一覧」ボタン

サブフォルダ一覧」ボタンは、「ファイル情報は要らないからサブフォルダの一覧だけ集約して一覧に出力する」という場合に使用する。

列の構成が、ファイル一覧の時とは少しだけ変わり、フォルダ内のファイル数といった情報を追加している。

列名説明
B列フォルダパスサブフォルダのフルパス。リンクも設定してあるので、そのセルをクリックすれば該当フォルダを開くことができる。
C列フォルダ名サブフォルダの、パスではなくフォルダ名単体を抜き出したもの。冒頭で述べたような、「004_仕訳データ」フォルダだけに集中してアクセスしたいという場合に便利かと思う。
E列更新日時フォルダの更新日時
F列サイズフォルダサイズ
G列ファイル数フォルダ内のファイル数

「クリア」ボタン

「クリア」ボタンは文字通り、一覧のデータをクリアするだけ。

ソースコード

一応、今回のマクロのソースコードも書いておきます。

こういうサブフォルダの一覧とかいうやつになると「再帰処理」というものを使う。

再帰処理については、下記の記事などでも扱っている。

Excel VBA 空のフォルダを一括削除するマクロ

Excel VBA フォルダ構造をコピーするマクロ 個人用マクロブックに組み込めるよ

割と即興で書いたので、エラー処理とかは色々と甘いと思いますが、ひとまず間に合わせで使うくらいはできるかなと。

スポンサーリンク