【VBA】指定フォルダ内ファイルの最終更新日を一括取得する方法!

この記事では、指定フォルダ内にあるファイルの最終更新日を一括取得する方法をご紹介していきます。

 

データ管理の際などの役立つスキルです。

ぜひやり方を覚えておきましょう。

 

それではさっそくやっていきましょう。

 

スポンサーリンク

やりたいことの事前確認

まずはこの記事の内容があなたのやりたいことと一致しているかどうかを確認するために、最終的にどんなものを作りたいかを始めにご紹介しておきましょう。

 

今回は以下のフォルダ内にあるファイル達のファイル名とその最終更新日をエクセルシートに一括記入していきます。

最終的な完成形はこんな感じですね。

 

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

 

スポンサーリンク

データ記入用にエクセルシートを整える

VBAコードの記述に入る前にまずはデータを記入する場所を整えておきましょう。

今回は以下のようにデータ記入欄を作成しておきました。

もし、この場所とは別の場所にデータを入力する場合は、以降のVBAコードも書き換える必要がありますのでご注意ください。

 

スポンサーリンク

最終更新日を一括取得するVBAコード

それではこの記事の本題であるVBAコードの記述に入っていきましょう。

 

※「VBAを使ったことがない」という方は以下の記事を参考に実行環境を整えておきましょう。

【初心者用】エクセルマクロ(VBA)の始め方を詳細解説

 

以下が先ほど紹介した作業を実施してくれるVBAコードです。

4行目の探索フォルダのフルパス、5行目の拡張子はあなたの状況に応じて適宜変更しましょう。

※今回は拡張子がJPG形式のものだけを取得するようにしています。

Sub date_list()
Dim base_path, extension, file_name As String
Dim file_date As Date
base_path = "C:\Users\Desktop\test"
extension = "JPG"
file_name = Dir(base_path & "\*" & extension, vbNormal)
i = 0
Do Until file_name = ""
    file_date = FileDateTime(base_path & "\" & file_name)
    Cells(2 + i, 1) = file_name
    Cells(2 + i, 2) = file_date
    file_name = Dir()
    i = i + 1
Loop
End Sub
スポンサーリンク

マクロを実行する

コードが書けたら実際に実行してみましょう。

以下が実行結果です。

ご覧のように、このコードを普通に実行してしまうと分単位までの時間を取得してきてしまいます。

 

正直ここまで正確なデータを必要とする状況はそうそうないでしょうから日付までの情報に修正してみましょう。

 

以下がその手順です。

①最終更新日が記入されているセルをすべて選択

②右クリック

③セルの書式設定

と進めていきます。

 

すると次は以下のようなウィンドウが出てきます。

今回はyyyy/m/dを選択します。

⇒OKで閉じます。

 

これで冒頭に紹介した状態のできあがりです。

先ほどの表示形式の選択を変更すれば〇年〇月〇日みたいな形式にもできますのでお好みに合わせて変更してみましょう。

 

スポンサーリンク

おわりに

というわけで今回は指定フォルダ内にあるファイルのファイル名、最終更新日を一括取得する方法をご紹介しました。

データ管理の際などに是非ご活用ください。

 

〇今回の記事で使われているスキル

【VBA】Dir関数の特性を詳細解説!ファイル確認や一括処理に超便利!

 

このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。

⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。

↓ 応援ボタン

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

それではまた!

コメント

タイトルとURLをコピーしました