自動バックアップを行うには
Excelブックの自動バックアップは、リボンのファイルタブ→オプション(Excelのオプションダイアログ表示)→左の一覧の「保存」をクリック、で表示されているブックの保存関係の設定の中で、「次の間隔で自動回復用データを保存する」のチェックがあります。
このチェックをつけて、何分間隔かを指定すると、以降はそのタイミングで「自動回復用ファイルの場所」に設定されているフォルダにバックアップファイルが作成されます。
これと同じことをVBAでも行うことが可能です。
用途としては、VBAで動作している最中だけ自動バックアップの設定を変更し、終わったら元に戻す、という場合にも利用できます。
AutoRecoverオブジェクト
自動バックアップはAutoRecoverオブジェクトを利用します。
各プロパティは以下の通りです。
プロパティ | 内容 |
Application | Excelアプリケーションを指すApplicationオブジェクトを返します。 |
Creator | このオブジェクトを作成したアプリケーションを示す整数値を返しますが、常に定数xlCreatorCodeを返します。
定数xlCreatorCodeは整数値で1480803660ですが、これを16進数にすると0x5843454Cになり、さらにASCIIコード変換すると、0x58=”X”、0x43=”C”、0x45=”E”、0x4C=”L”の”XCEL”となります。 |
Enabled | 自動バックアップが有効か無効かをBooleanで返します。設定も可能です。有効の場合はTrue、無効の場合はFalseです。 |
Parent | AutoRecoverオブジェクトの親オブジェクトであるApplicationオブジェクトを返します。 |
Path | 自動バックアップしたファイルの保存先のパスを返します。設定も可能です。 |
Time | 自動バックアップを行う分単位の間隔を返します。設定も可能です。1(分)から120(分)の整数範囲が扱えます。既定値は10(分)です。設定時に小数点以下を含めて設定するとRound関数のように丸められます。 |
自動バックアップのコード
以下は自動バックアップの設定を出力するコードです。
1 2 3 4 5 6 7 8 9 |
Sub AutoBackup() Dim ar As AutoRecover Set ar = Application.AutoRecover Debug.Print "自動バックアップ先:" & ar.Path Debug.Print "自動バックアップ有無:" & ar.Enabled Debug.Print "自動バックアップ間隔:" & ar.Time & "分" End Sub |
実行結果
自動バックアップ先:C:\Users\user\AppData\Roaming\Microsoft\Excel\
自動バックアップ有無:True
自動バックアップ間隔:10分