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

12月 1, 2024

※当ブログではリンク先にプロモーションを含みます。

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

Excel(エクセル)VBAやAccess(アクセス)VBAの処理前にファイルをバックアップしておきたい人
古いバックアップファイルを自動的に削除したい人向けに書いています。

 

本記事の内容

・VBA処理前のファイルのバックアップ方法
・古いバックアップファイルの削除方法

VBA処理前のファイルのバックアップを保存しておきたいと思ったことはありませんか?
古いバックアップを自動的に削除したいと思ったことはありませんか?
処理前のファイルのバックアップの方法と古いバックアップファイルの削除方法を紹介します。

 

VBA(マクロ)処理前ファイルのバックアップ作成&古いバックアップファイル削除方法

以下がVBA処理前のファイルのバックアップ作成プログラムです。

  1. '*****************************************
  2. '* バックアップファイル作成
  3. '*****************************************
  4. Sub BACKUP_FILE()
  5.     Dim B_Path As String 'バックアップファイルパス
  6.     Dim DayTime As String '日時
  7.     Dim SaveDir As String 'バックアップフォルダパス
  8.     Dim buf As String '
  9.     Dim Delet_Date As Long '削除対象日
  10.     '■バックアップ
  11.     'バックアップファイルの保存先
  12.     SaveDir = ThisWorkbook.Path & “\バックアップ"
  13.     ' フォルダがなければ作成する
  14.     If Dir(SaveDir, vbDirectory) = “" Then
  15.         MkDir SaveDir
  16.     End If
  17.     'バックアップファイルの保存先+\
  18.     SaveDir = SaveDir & “\"
  19.     '日時取得
  20.     DayTime = Format(Now, “yyyymmddhhnnss")
  21.     'バックアップファイルパス
  22.     B_Path = SaveDir & DayTime & “_BackUp.xlsm"
  23.     'バックアップ
  24.     ThisWorkbook.SaveCopyAs B_Path
  25.     '■1ヶ月以上前の古いファイルを削除する
  26.     '1ヶ月前の日付取得
  27.     Delet_Date = Val(Format(DateAdd(“m", -1, Date), “yyyymmdd"))
  28.     'フォルダ内のファイル検索
  29.     buf = Dir(SaveDir & “*.xlsm")
  30.     Do While buf <> “"
  31.         'ファイル名の年月日が1ヶ月以上前の場合は削除する
  32.         If Delet_Date > Val(Left(buf, 8)) Then
  33.             Kill SaveDir & buf
  34.         End If
  35.         buf = Dir()
  36.     Loop
  37. End Sub

VBAファイルの同階層フォルダにバックアップフォルダを作成して、そこにバックアップファイルは保存されます。
もし違うところに保存したい場合は15行目の保存先のフォルダパスを変更してください。

バックアップファイル名は28行目で設定しています。
バックアップファイル名を変更したい場合はこちらを変更ください。

バックアップファイルは1ヶ月以上前のファイルは削除されるようになっています。
削除対象期間を変更したい場合は35行目の設定を変更してください。

スポンサーリンク

 

まとめ

VBA処理前のファイルのバックアップ方法を紹介しました。
処理の不具合対策でバックアップを取っておきたいことがあると思います。
処理前のファイルをバックアップしたい場合に役に立てていただけたらと思います。
最後までご覧いただき、ありがとうございました。

 

定期的にVBA(マクロ)を実行したい方は以下のリンクで定期自動実行方法を紹介していますので、ご覧ください。
→「ExcelVBA(マクロ)定期自動実行方法【batファイル VBScriptファイル タスクスケジューラ】


→「AccessVBA定期自動実行方法【batファイル vbsファイル タスクスケジューラ】

【VBA】CDOでメール送信する方法」も紹介していますので、もしよろしければこちらも御覧ください。

 

¥1,604 (2024/11/19 08:45時点 | Amazon調べ)