今の会社でファイルサーバーの容量を削減するなどの活動をしていました。

その際、どのくらいファイルがファイルサーバーに格納されているんだろう、ということを調べるために、サブフォルダまで検索してファイルを取得するツールがあれば便利だなと思い作成しました。

ファイルパスを取得する方法はたくさん存在するのですが、今回はExcelVBAのツールで実現してみました。

 

実行結果の実例

以下の画像では、ローカルにあるフォルダを親フォルダとして指定して、配下のファイルパスを取得してみました。

エクセルのツール内のボタンを押すだけでファイルパスやファイル名そのファイルが格納されているフォルダ・ファイルのリンクも取得することができます。

LinkToFolderをクリックすると各ファイルが保存されているフォルダが開き、LinkToFileをクリックすると、E列のファイルをそのまま開くことができます。

 

 

ダウンロードリンク

以下のファイルをダウンロードしてご利用ください。

 

ファイルパス取得ツールの使い方

1.親フォルダのフォルダパスを入力する

親フォルダのフォルダパスを入力してください。この時、文字列の最後に¥がついていてもいなくても構いません。

 

2.検索オプションを選択する

ここで選択するオプションは二つです。

  • 親フォルダ直下のみ検索
  • 子フォルダ(サブフォルダ)まで検索

 

読んで字のごとくですが、「親フォルダの直下のみ検索」ということは、この例だと、「C:\temp」の直下にあるファイルだけを取得します。

 

一方、「子フォルダ(サブフォルダ)まで検索」というのは、親フォルダを含む、その下の階層まで検索をします。

 

状況に応じてオプションを選択ください。

 

3.検索対象となる拡張子を入力する

検索するファイルの拡張子を入力します。たとえば、エクセル(マクロ入りブック)のみを検索対象とする場合は、「.xlsm」と入力します。すべてのファイルを検索対象とする場合は、以下の通り、ブランクのままにします。

 

4.検索対象ファイル名を入力する

Ver3.0からの新機能となります。

検索対象ファイル名にファイル名を入力すると、そのファイル名と一致するファイルパスを取得します。

 

上記の図では、ファイル名に加えて、「*(アスタリスク)」を入力しています。

こうすることで、部分一致するファイルを取得することができます。

「松本*」とすると、以下のファイルをすべて取得することが可能です。

 

5.実行ボタンをクリックする

これで設定は完了です。あとは、以下の実行ボタンをクリックすると、実行できます。結果は、Resultシートに書き込まれます。

 

6.Resultシートを確認する

Resultシートを確認しましょう。

B列・・・ファイルが格納されているフォルダへのハイパーリンクを設定しています。

C列・・・ファイルパスのハイパーリンクを表示しています。つまり、リンクをクリックすると、直接ファイルを開くことができます。

D列・・・ファイルのフルパスを表示しています。

E列・・・ファイル名のみを表示しています。

F列以降・・・Settingsシートに記載した親フォルダ内配下の子フォルダの階層を表示しています。

※Ver2.0より階層を出力するように仕様変更しました。

 

さいごに

ファイルパスを取得する方法と聞いて、皆さんの中でも「この方法でやればいいんじゃない?」というイメージがあると思います。

ひとつの選択肢として、このツールを使うということもイメージしてもらえると嬉しいです。

 

更新履歴

バージョン 更新日 内容
1.0 2021/04/10 初版リリース
2.0 2022/01/07 親フォルダ配下の子フォルダの階層を記入する機能を追加
3.0 2022/03/04 ファイル名を部分一致で検索する機能を追加