VBAを使ってファイル名を取得する方法【 取得したファイル名を一覧表に表示させるVBAを紹介 】
こんな要望に応えるVBAを紹介します。
取得したファイル名を一覧表にすることで、いろんな作業の効率化に応用するができます。
- ファイルの更新日時を取得し、使用頻度の少ないファイルを把握する
- ファイル名をまとめて変更する
- 使用頻度の少ないファイルをまとめて削除する
ファイル名を取得するVBAはサーバー内のファイルやフォルダの整理整頓作業でよく利用されます。私の会社は転勤が多いためサーバー内の整理整頓作業がなかなか進まない状況でした。このファイル名を取得するVBAを利用すれば、現状サーバー内のデータがどのように保存されているか!を一瞬で一覧表にすることができます。下記の記事では、エクセルを使ってファイルやフォルダを整理整頓する方法について詳しく紹介しています。
サーバーの整理整頓を効率よく行う方法に興味のある方は合わせてチェックしてみてください。
目次
エクセルを使ってファイルを操作するVBAとは
下記の動画でファイル名を一覧表にするVBAと一覧表からファイル名を変更するVBAについてサンプルを使って紹介しています。
動画で紹介されている「ファイル名を一覧表にするVBA」と「一覧表からファイル名を変更するVBA」は下記のサイトからダウンロードすることが可能です。VBAを使ってサーバー内のデータ整理を行いたい!と考えている方は是非利用してみてください。
エクセルのファイル名を一覧表にするVBA
ファイルの種類(拡張子の違い)の情報を元に一覧表を作成します。まずはエクセル形式のファイル名を一覧表にするVBAを紹介します。
サンプルVBA
1 | Sub データ名エクセル取得() |
2 | gyo = Cells(Rows.Count, 1).End(xlUp).Row |
3 | Range(Cells(4, 1), Cells(gyo + 1, 1)).ClearContents |
4 | Dim FP As String |
5 | FP = Cells(2, 4) |
6 | FoName = Dir(FP & “\*.xls*") |
7 | Do Until FoName = “" |
8 | gyo = Cells(Rows.Count, 1).End(xlUp).Row |
9 | Cells(gyo + 1, 1) = FoName |
10 | FoName = Dir |
11 | Loop |
12 | End Sub |
サンプルVBAはコピーしてそのまま使うことができます。是非使ってみてください。
エクセルファイル名を一覧表にするVBAの使い方
1.名前を取得するファイルが保存されているフォルダを確認
フォルダの中にはエクセルファイル、ワードファイル、テキストファイルが保存されています。拡張子が異なっていても名前を取得できるか確認するために、ワードファイルはわざと拡張子が異なる形式にしています。
2.フォルダの場所をD2セルに記入
3.名前を取得するVBAを実行
データ名取得(エクセル)というボタンにサンプルVBAが登録されています。ボタンを押してVBAを実行すると、フォルダ内にあるエクセル形式のファイル名を取得し一覧表にすることができます。
実行結果
指定したファルダ内にある全てのエクセルファイルの名前を一覧表にすることができました。エクセルファイルの中で拡張子が異なっていても問題なく名前を取得することができます。
ワードのファイル名を一覧表にするVBA
ワードファイルの名前を一覧表にするVBAを紹介します。VBAを実行したとき拡張子の違いがどのような結果になるのか!を確認するために、フォルダ内には、拡張子が(.docx)、(.doc)、(.docm)の3種類のワードが保存されています。
サンプルVBA
1 | Sub データ名ワード取得() |
2 | gyo = Cells(Rows.Count, 1).End(xlUp).Row |
3 | Range(Cells(4, 1), Cells(gyo + 1, 1)).ClearContents |
4 | Dim FP As String |
5 | FP = Cells(2, 4) |
6 | FoName = Dir(FP & “\*.doc*") |
7 | Do Until FoName = “" |
8 | gyo = Cells(Rows.Count, 1).End(xlUp).Row |
9 | Cells(gyo + 1, 1) = FoName |
10 | FoName = Dir |
11 | Loop |
12 | End Sub |
サンプルVBAはコピーしてそのまま使うことができます。是非使ってみてください。
ワードのファイル名を一覧にするVBAの使い方
1.名前を取得したいファイルがあるフォルダを確認
2.フォルダの場所をD2セルに記入
3.名前を取得するVBAを実行
データ名取得(ワード)というボタンにサンプルVBAが登録されています。ボタンを押してVBAを実行すると、フォルダ内にあるワード形式のファイル名を取得し一覧表にすることができます。
実行結果
拡張子の種類が異なっていても、全てのワードファイルの名前を一覧表にすることができました。
もし、拡張子(.docm)のファイル名だけを取得したい場合、サンプルVBAの6行目に記載されている「.doc」→「.docm」に変更すれば可能となります。VBAの中身を少し変えるだけでいろんなことが可能です。私の職場では、マクロが設定されたワードファイルの抽出にこのVBAを使っています。
テキストファイルを一覧表にするVBA
テキストファイルの名前を一覧表にするVBAを紹介します。
サンプルVBA
1 | Sub データ名テキスト取得() |
2 | gyo = Cells(Rows.Count, 1).End(xlUp).Row |
3 | Range(Cells(4, 1), Cells(gyo + 1, 1)).ClearContents |
4 | Dim FP As String |
5 | FP = Cells(2, 4) |
6 | FoName = Dir(FP & “\*.txt*") |
7 | Do Until FoName = “" |
8 | gyo = Cells(Rows.Count, 1).End(xlUp).Row |
9 | Cells(gyo + 1, 1) = FoName |
10 | FoName = Dir |
11 | Loop |
12 | End Sub |
テキストファイルを一覧表にするVBAの使い方
1.名前を取得したいファイルがあるフォルダを確認
2.フォルダの場所をD2セルに記入
3.名前を取得するVBAを実行
データ名取得(テキスト)というボタンにサンプルVBAが登録されています。ボタンを押してVBAを実行すると、フォルダ内にあるテキスト形式のファイル名を取得し一覧表にすることができます。
実行結果
指定したファルダ内にある全てのテキストファイルの名前を一覧表にすることができました。
ファイルの情報を一覧表にするVBA
ファイルの情報を一覧表にするVBAを紹介します。上記で紹介したファイル名を一覧表にするVBAに加えファイルの情報を一覧表にするVBAを設定すれば、フォルダ内のデータ保存状態を一目で確認することができます。
そもそも「ファイルの情報」とはどういうものかというと、ファイルのプロパティで確認することができる「作成日時」、「更新日時」、「アクセス日時」のことです。
この情報を一覧表にすることで、現在使われていないファイルやいつファイルが更新されたのかを一目で確認することができます。私の職場では、この一覧表をもとに5年以上アクセスのないファイルをピックアップして削除する!というルールを定め、データの整理整頓作業を行っています。
サンプルVBA
1 | Sub データ更新日取得() |
2 | Dim FP As String |
3 | FP = Cells(2, 4) |
4 | Dim fl As FileSystemObject |
5 | Set fl = New FileSystemObject |
6 | Dim Flp As File |
7 | Dim Pa As String |
8 | gyo = Cells(Rows.Count, 1).End(xlUp).Row |
9 | For i = 4 To gyo |
10 | Pa = Cells(i, 1) |
11 | Set Flp = fl.GetFile(FP & “\" & Pa) |
12 | Cells(i, 2) = Flp.DateCreated |
13 | Cells(i, 3) = Flp.DateLastModified |
14 | Cells(i, 4) = Flp.DateLastAccessed |
15 | Next |
16 | End Sub |
ファイルの情報を一覧表にするVBAの使い方
1.上記で紹介しているファイル名を取得して一覧表にするVBAを使って一覧表を作成
2.ファイル情報を取得するVBAを実行
実行結果
大量にあるファイルの情報を一つ一つ手作業でまとめていては時間がいくらあっても足りません。VBAを使えば大量にあるファイル情報を一瞬で一覧表にすることが可能。このVBAはいろんな作業の効率化に応用することができます。
ファイルの情報を一覧表にするVBAは下記のサイトからダウンロードすることが可能です。ほかにも「ファイル名を一覧表にするVBA」や「一覧表からファイル名を変更するVBA」など、この記事では紹介しきれなかったVBAが設定されています。気になる方は是非ダウンロードしてみてください。
ファイル名を取得するVBAを使ってデータの整理整頓を行う
大人数で共用のサーバーを使って仕事をしていると、サーバー内にいろんなフォルダやファイルが増えていきますよね。
- 2018年勤務表
- 2019年写真フォルダ
- 2020年スケジュール表
- 2020年伝票フォルダ
私の職場では、このようなフォルダが何百個とあります。転勤が多い仕事のため赴任した職場で古いフォルダやファイルが重要なのか、削除していいのか判断できず、ずっと残り続ける!という状況になっています。
古いフォルダやファイルが何百個もあるサーバーの整理整頓をするときに活躍するのが、この記事で紹介した「ファイル名を一覧表にするVBA」と「ファイルの情報を一覧表にするVBA」です。
サーバーの整理整頓業務
ファルダ内のファイル名、更新日、アクセス日一覧表にする。その一覧表を職場全員に回覧して不要なファイルを削除してよいか確認をとる。
実際に私は下記のような資料を作成し、サーバー内のデータ整理を行っています。
このような資料を作成するにはかなりの時間と労力が必要になりますが、VBAを使えばあっという間に作ることができます。
今回はエクセルファイルやワードファイルの名前の取得する方法を中心に紹介しました。下記の記事ではフォルダ名を取得する方法を詳しく紹介しています。「ファイル名を取得するVBA」と「フォルダ名を取得するVBA」を組み合わせれば、データ整理作業の効率をさらにアップさせることができます。
サーバー内のデータ整理を効率よくやりたい!というかたは合わせてチェックしてみてください。
ディスカッション
コメント一覧
まだ、コメントがありません