ヒガサラblog

サラリーマン向けに、仕事を効率良く進めていくための方法についてご紹介しています。プログラミングから対人スキルまでを幅広く掲載中。

ヒガサラblog

【VBA】複数フォルダ内のファイルを一括取得!フォルダも含めて表示!

f:id:yshgs_elec:20200905003352j:plain

大事なファイルをどこにしまったのか忘れてしまった。ファイル名もわからないので、検索することもできない。

 

この記事ではこんな悩みを解決するために、複数のフォルダの中身をエクセルファイル上に一括表示する方法についてご紹介します。

 

それでは早速やっていきましょう!

 

 

やりたいことのイメージ共有

本題に入る前に、この記事で紹介する内容を共有化しておきましょう。

状況としては以下のようにcase01からcase10までのフォルダが存在しています。

f:id:yshgs_elec:20200905000635j:plain

さらにその中には以下のようにフォルダとファイルが3つづつ入っています。

f:id:yshgs_elec:20200905000936j:plain

case01からcase10までフォルダとファイルが複数入っている状態です。

今回はこれらのフォルダとファイルをエクセル上に一覧表示していきます。

 

あなたのやりたいこととイメージが一致していれば、ぜひ続きをご覧ください。

 

フォルダの中身を一括取得する方法

まずは以下の画像のようにエクセルファイルを整えておきます。

※今回は探索するフォルダのフルパスが取得できている前提で説明していきます。

f:id:yshgs_elec:20200905000016j:plain

フォルダのフルパスの取得方法については以下の記事をご覧ください。

www.higashisalary.com

 

下準備が整ったら次はVBAコードの記述します。

以下が実行コードです。

 

フォルダとファイルを一括取得するコード

Sub search_file()
Dim search_folder As String
Dim path_name As String
Dim file_name As String
i = 0
Do Until Cells(4 + i, 1) = ""
search_folder = Cells(4 + i, 1).Value
path_name = search_folder & "\"
file_name = Dir(path_name, vbDirectory)
j = 0
Do While file_name <> ""
If file_name <> "." And file_name <> ".." Then
j = j + 1
Cells(4 + i, 5 + j) = file_name
End If
file_name = Dir()
Loop
i = i + 1
Loop
End Sub

 

 

記述が終わったらあとは実行するのみ!

 

いざ実行!!

 

以下が実行結果です。

しっかりとフォルダとファイルが表示されていますね。

f:id:yshgs_elec:20200905001301j:plain

 

ファイルだけを一括取得するコード

フォルダは除外して表示したい場合は、

file_name = Dir(path_name, vbDirectory) の部分を

file_name = Dir(path_name, vbNormal) に変更すればOKです。

 

念のためコードを記述しておきます。

Sub search_file()
Dim search_folder As String
Dim path_name As String
Dim file_name As String
i = 0
Do Until Cells(4 + i, 1) = ""
search_folder = Cells(4 + i, 1).Value
path_name = search_folder & "\"
file_name = Dir(path_name, vbNormal)
j = 0
Do While file_name <> ""
If file_name <> "." And file_name <> ".." Then
j = j + 1
Cells(4 + i, 5 + j) = file_name
End If
file_name = Dir()
Loop
i = i + 1
Loop
End Sub

 

 この場合は以下のようにファイルだけが表示されています。

f:id:yshgs_elec:20200905002027j:plain

 

フォルダをひとつひとつ開いて中身を確認するのは非常に面倒な作業ですので、これを一度作っておくと非常に便利ですね。

終わりに

というわけで今回は取得したフォルダのフルパスから、中に入っているフォルダやファイルをエクセル上に一覧表示する方法についてご紹介しました。

このブログでは、エクセル(VBA)を中心に、様々な業務効率化スキルを紹介しています。

■もっと業務を効率化したい。

■無駄な作業を極力へらしたい。

こんなひとはぜひ他の記事も読んでみてください。

 

最後に・・・

このブログを応援してあげても良いよ、という方は以下のボタンをポチっていただけると嬉しいです。

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

にほんブログ村 IT技術ブログへ
にほんブログ村

 

Twitterもやっていますので、興味があれば覗いてみてください。

それではまた!!

 

関連記事

www.higashisalary.com

www.higashisalary.com