ファイルを世代管理したい
VBAマクロでログファイルの生成やバックアップ用ファイルの自動作成などを行うケースがあります。
次の問題点が、出来上がったログやバックアップの管理をどこまでするかです。
ずっと放置してデータを貯めていくという考えもよいですが、ファイルを世代管理し、
世代が古いデータは削除するといった事も対応していきたいです。
ファイルを世代管理するサンプルコード
世代管理である一定の数を超えた場合は、ファイル削除する形をとります。
’■ファイルを世代管理する(指定数より古いファイルは削除する) Public Sub sample() Dim sPath As String: sPath = "C:\vba" 'バックアップ用パス Dim sExtension As String: sExtension = "*.xls*" '拡張子※指定しない場合はワイルドカード Dim num As Long: num = 10 '10世代分はバックアップを取得する Dim sFullName As String Dim i As Long For i = Call_GetFileCount(sPath, sExtension) To num + 1 Step -1 '★ sFullName = Call_GetOldestFile(sPath, sExtension) '★ '■直接削除する場合 'Kill sFullName '■ゴミ箱へ移動する場合 Call_MoveDustbox (sFullName) '★ Next End Sub
注意点
- 上記コードのみでは動きません。下記のパーツ化された処理も追加してください。
※コメント★部分の処理は別処理で動きます。
フォルダ内ファイル数を取得する ファイルをゴミ箱に移動する【Namespace(10)】
フォルダ内、更新日時の一番古いファイルを取得する【FileDateTime】
コメント