【VBA】バックアップファイルを作成する方法&古いバックアップを削除する方法(マクロ)

Excel(エクセル)VBAやAccess(アクセス)VBAの処理前にファイルをバックアップしておきたい人
古いバックアップファイルを自動的に削除したい人向けに書いています。
本記事の内容
・古いバックアップファイルの削除方法
VBA処理前のファイルのバックアップを保存しておきたいと思ったことはありませんか?
古いバックアップを自動的に削除したいと思ったことはありませんか?
処理前のファイルのバックアップの方法と古いバックアップファイルの削除方法を紹介します。
VBA(マクロ)処理前ファイルのバックアップ作成&古いバックアップファイル削除方法
以下がVBA処理前のファイルのバックアップ作成プログラムです。
- '*****************************************
- '* バックアップファイル作成
- '*****************************************
- Sub BACKUP_FILE()
- Dim B_Path As String 'バックアップファイルパス
- Dim DayTime As String '日時
- Dim SaveDir As String 'バックアップフォルダパス
- Dim buf As String '
- Dim Delet_Date As Long '削除対象日
- '■バックアップ
- 'バックアップファイルの保存先
- SaveDir = ThisWorkbook.Path & “\バックアップ"
- ' フォルダがなければ作成する
- If Dir(SaveDir, vbDirectory) = “" Then
- MkDir SaveDir
- End If
- 'バックアップファイルの保存先+\
- SaveDir = SaveDir & “\"
- '日時取得
- DayTime = Format(Now, “yyyymmddhhnnss")
- 'バックアップファイルパス
- B_Path = SaveDir & DayTime & “_BackUp.xlsm"
- 'バックアップ
- ThisWorkbook.SaveCopyAs B_Path
- '■1ヶ月以上前の古いファイルを削除する
- '1ヶ月前の日付取得
- Delet_Date = Val(Format(DateAdd(“m", -1, Date), “yyyymmdd"))
- 'フォルダ内のファイル検索
- buf = Dir(SaveDir & “*.xlsm")
- Do While buf <> “"
- 'ファイル名の年月日が1ヶ月以上前の場合は削除する
- If Delet_Date > Val(Left(buf, 8)) Then
- Kill SaveDir & buf
- End If
- buf = Dir()
- Loop
- End Sub
VBAファイルの同階層フォルダにバックアップフォルダを作成して、そこにバックアップファイルは保存されます。
もし違うところに保存したい場合は15行目の保存先のフォルダパスを変更してください。
バックアップファイル名は28行目で設定しています。
バックアップファイル名を変更したい場合はこちらを変更ください。
バックアップファイルは1ヶ月以上前のファイルは削除されるようになっています。
削除対象期間を変更したい場合は35行目の設定を変更してください。
まとめ
VBA処理前のファイルのバックアップ方法を紹介しました。
処理の不具合対策でバックアップを取っておきたいことがあると思います。
処理前のファイルをバックアップしたい場合に役に立てていただけたらと思います。
最後までご覧いただき、ありがとうございました。
定期的にVBA(マクロ)を実行したい方は以下のリンクで定期自動実行方法を紹介していますので、ご覧ください。
→「ExcelVBA(マクロ)定期自動実行方法【batファイル VBScriptファイル タスクスケジューラ】」
→「AccessVBA定期自動実行方法【batファイル vbsファイル タスクスケジューラ】」
「【VBA】CDOでメール送信する方法」も紹介していますので、もしよろしければこちらも御覧ください。


最近のコメント