![レンジ2](https://assets.st-note.com/production/uploads/images/9462042/rectangle_large_type_2_45a9b3a6c0fc8b7d4fd097acf997b647.jpeg?width=1200)
Excel小技①
重要なExcelファイルってありますよね。消えたらマズい、もしくは共有していて変に更新したらいけないようなものです。私の職場にも複数そういったファイルがあり、データ保守の為に作成した自動バックアップの仕組みをご紹介します。
このnoteでできること
以下のマクロを導入したExcelファイルのExcelファイルと同じフォルダに"BackupFile"フォルダを生成し、を1日に1回(初めに開いた時)に自動バックアップします。
【導入手順】
1.マクロを導入するExcelファイルを開き、[Alt]+[F11]キーでVBエディタを開きます。
2.左側メニュー(プロジェクトウィンドウ)の"ThisWorkbook"をダブルクリックします。
3.右側の空欄に以下のコードをコピー&ペーストします。
Private Sub Workbook_Open()
'1日1回(このエクセルファイルを最初に起動した時)バックアップファイルを保存します。
Dim bak_file As String 'バックアップ対象のファイル名(拡張子抜き)
Dim bak_fld As String '保存フォルダ名
Dim bak_fullpath As String 'バックアップファイルのフルパス
'ファイル名に"BackupFile"が含まれている場合終了
If InStr(ThisWorkbook.Name, "BackupFile") > 0 Then Exit Sub
'バックアップファイル名生成
bak_file = Left(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1) '拡張子を除いたファイル名取得
bak_file = bak_file & "_BackupFile_" & Format(Now, "yymmdd") & ".xlsm" 'ここで保存スパンを調節
'フォルダ作成
bak_fld = ThisWorkbook.Path & "\BackupFile"
If Dir(bak_fld, vbDirectory) = "" Then
MkDir bak_fld
End If
'本日のバックアップファイルの有無を確認し、無ければ保存
bak_fullpath = bak_fld & "\" & bak_file
If Dir(bak_fullpath) = "" Then
ThisWorkbook.SaveCopyAs bak_fullpath
End If
End Sub
4.ファイルを「名前を付けて保存」
※ファイルの種類をは「マクロ有効ブック」にすること。
以上で完了です。
保存したExcelファイル(test.xlsm)を開くと、
BackupFileフォルダが作成され・・・
1日1回このように保存されていきます。
byそくにゃん