自動バックアップを行うには

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関数のように丸められます。

自動バックアップのコード

以下は自動バックアップの設定を出力するコードです。

実行結果
自動バックアップ先:C:\Users\user\AppData\Roaming\Microsoft\Excel\
自動バックアップ有無:True
自動バックアップ間隔:10分