仕事でエクセルを使っていると、
「指定されたフォルダ内にあるファイル名をリスト化して欲しい」
といった要望が出てくる時があります。
特に画像ファイルの確認の場合が良い例です。
「ECサイトに商品を掲載したいけど、
商品リストにある商品画像は揃っているかリストと確認してくれる?」
といったような場合ですね。
動画ファイルや、音声ファイルなどもこんな感じで
リスト化したい場面が出てきそうです。
数が少ない場合は簡単に確認ができますが、
100以上になってくると見るだけでクラっとなります。
頻度は少なくても、
フォルダ内のファイル名を一つずつ
コピーして、貼りつけて・・・
といった作業は地味で、時間もかかります。
そこで便利なのがExcelに標準搭載されている
VBAというマクロを使った作業をすることです。
VBAとは?
VBAとは、
Visual Basic for Applicationの略称です。
簡単なプログラムコードを入力することで
処理を自動化してくれるものです。
書店にExcelの本を見に行った時、
Excel関連の本のカテゴリに一緒においてる
難しそうなあれです。
かといって、難しいことはありません。
なぜなら、VBAはプログラムで使用できる機能を
パズルのように組み合わせることで、
VBAのコードが理解できなくても使えるからです。
ファイル名を取得するマクロ
今回紹介するVBAのマクロは、
- ファイル名を検索するフォルダを指定するダイアログボックス表示
- 指定されたフォルダ内のファイル名をExcelにリスト化する
という2つの機能を組み合わせたものです。
以下のコードをエクセルのマクロにコピペするだけです。
(マクロのコピペ(貼り付け)方法について分からない方は
こちらの記事を参考にしてください)
Sub ファイル名取得() Dim folderPath As Variant With Application.FileDialog(msoFileDialogFolderPicker) .Show folderPath = .SelectedItems(1) End With Debug.Print "選択したフォルダパス:" & folderPath Dim f As Object, cnt As Long With CreateObject("Scripting.FileSystemObject") For Each f In .GetFolder(folderPath).Files cnt = cnt + 1 Cells(cnt, 1) = f.Name Cells(cnt, 2) = f.DateCreated Next f End With End Sub
使い方
マクロを起動すると、
開くフォルダを選択するダイアログボックスが開きます。
左上に「参照」と表示されています。
そこでリスト化したいファイルの入っているフォルダを選択します。
これでExcelにフォルダ内のファイル名が出力されます。
簡単ですね。
この機能では、指定したフォルダ内にあるフォルダの名前や、
下層にあるフォルダの内容などは出力されません。
それぞれフォルダを選択して出力するようにしてください。