「大事なファイルをどこにしまったのか忘れてしまった。ファイル名もわからないので、検索することもできない。」
この記事ではこんな悩みを解決するために、複数のフォルダの中身をエクセルファイル上に一括表示する方法についてご紹介します。
それでは早速やっていきましょう!
やりたいことのイメージ共有
本題に入る前に、この記事で紹介する内容を共有化しておきましょう。
状況としては以下のようにcase01からcase10までのフォルダが存在しています。
さらにその中には以下のようにフォルダとファイルが3つずつ入っています。
さきほどのcase01からcase10までフォルダとファイルが複数入っている状態です。
今回はこれらのフォルダとファイルをエクセル上に一覧表示していきます。
あなたのやりたいこととイメージが一致していれば、ぜひ続きをご覧ください。
フォルダの中身を一括取得する方法
まずは以下の画像のようにエクセルファイルを整えておきます。
※今回は探索するフォルダのフルパスが取得できている前提で説明していきます。
フォルダのフルパスの取得方法については以下の記事をご覧ください。
下準備が整ったら次はVBAコードの記述します。
以下が実行コードです。
フォルダとファイルを一括取得するコード
Sub search_file()
Dim search_folder As String
Dim path_name As String
Dim file_name As String
Dim i As Integer, j As Integer
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
記述が終わったらあとは実行するのみ!
以下が実行結果です。
しっかりとフォルダとファイルが表示されていますね。
ファイルだけを一括取得するコード
フォルダは除外して表示したい場合は、
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
Dim i As Integer, j As Integer
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
この場合は以下のようにファイルだけが表示されています。
フォルダをひとつひとつ開いて中身を確認するのは非常に面倒な作業ですので、これを一度作っておくと非常に便利ですね。
おわりに
というわけで今回は取得したフォルダのフルパスから、中に入っているフォルダやファイルをエクセル上に一覧表示する方法についてご紹介しました。
このブログでは、エクセル(VBA)を中心に、様々な業務効率化スキルを紹介しています。
■もっと業務を効率化したい。
■無駄な作業を極力へらしたい。
こんなひとはぜひ他の記事も読んでみてください。
最後に・・・
このブログを応援してあげても良いよ、という方は以下のボタンをポチっていただけると嬉しいです。
Twitterもやっていますので、興味があれば覗いてみてください。
それではまた!!
オススメ記事
コメント