ファイルの更新状況を管理したい時に役立つサンプルマクロ
ファイルの更新状況を管理したい時に役立つExcel用マクロ
日々ファイルを作成・更新していると、フォルダ内のファイル更新日時を一覧化したいって思うことが度々あります。
が、Windowsのエクスプローラー標準機能には、残念ながらそのような機能はありません。
(ファイルのパス一覧を取得する「パスのコピー」機能はあるのだから、このような機能も実装されてても良い気がしますが。。。)
そこで、
特別なツールなどを使わず、
「特定フォルダ内のファイル名、更新日時を取得・一覧化」する方法を調べました。
その結果、見つけたのが今回以下記事でご紹介いただいているサンプルマクロによる方法です。
www.relief.jp
すぐに作ってみたところ、
見事思った通りの一覧を出力してくれて重宝しています。
ということで、
以下より、その作成手順をご紹介いたします。
【Excel VBA】指定フォルダ内のファイル名と更新日時の一覧を作成する VBA
サイトを構成する複数ファイルの更新状況を把握、管理するのに役立つサンプルマクロです。
【作成手順】
1. Excelを起動します。
2. 「開発」タブ-「マクロ」 をクリックします。
※「開発」タブは標準では表示されていません。
「開発」タブが表示されていない状態の方は、以下を参考に「開発」タブを表示してください。
[開発] タブを表示する - Office サポート
3. 「Visual Basic」をクリックします。
⇒ Visual Basic エディタが表示されます。
4. VBAプロジェクトで「ThisWorkbook」をダブルクリックします。
⇒ コードウィンドウが表示されます。
5. コードウィンドウに下記コードをコピー・貼り付けします。
6. VBエディタのメニューより実行(Sub/ユーザーフォームの実行)してみます。
7. ファイル選択画面が表示されたら、適当なフォルダを選択します。
8. 実行結果として、ファイル一覧が正しく作成されることを確認します。
9. 無事確認ができれば、VBエディタのメニューより「ファイル」-「終了してMicrosoft Excelへ戻る」をクリックし、VBエディタ画面を閉じます。
《サンプルマクロ》
ソースは以下の通り
Sub FileUpdateList() Dim fld As FileDialog Dim fol_path As String ' フォルダーのフルパス Dim f_name As String ' ファイル名 Dim i As Long Set fld = Application.FileDialog(msoFileDialogFolderPicker) If fld.Show = 0 Then Exit Sub 'キャンセル時 fol_path = fld.SelectedItems(1) 'フォルダのフルパスを変数に格納 f_name = Dir(fol_path & "\*") '指定されたフォルダの一つ目のファイル名を取得 If f_name = "" Then MsgBox "ファイルが存在しません。": Exit Sub Worksheets.Add Before:=Sheets(1) Range("A1").Value = fol_path Range("A2").Value = "のファイル一覧" Range("A4").Value = "ファイル名" Range("B4").Value = "最終更新日時" ChDir fol_path & "\" 'カレントフォルダの変更 i = 5 Do Until f_name = "" Cells(i, "A").Value = f_name Cells(i, "B").Value = FileDateTime(f_name) i = i + 1 f_name = Dir '次のファイル名を取得 Loop MsgBox Sheets(1).Name & "に一覧を作成しました。" End Sub
【マクロ実行手順】
以下、作成したマクロの実行手順です。
1. 本マクロを実装したExcelファイルを開きます。
2. 「開発」タブ-「マクロ」 をクリックします。
3. 「マクロ」ウィンドウで先程のマクロが選択されている状態で「実行」ボタンをクリックします。
4. ファイル選択画面が表示されたら、適当なフォルダを選択します。
該当フォルダ内のファイル一覧が作成されたら完了です。