ファイル保存時に自動でコピーを作って保存
手動でエクセルのブックを保存する時に
自動でコピーを作って保存します。
何のためにコピーを作るかというと
バックアップの為です。
VBAを使っていると予期せぬ時に
Excelが強制終了してしまうことがしばしばあります。
しかも、そのファイルを開こうとすると
すぐに強制終了して開けなくなることもあります。
あと、マクロを改良していて
前の方がよかったなんて時のために、
保存のたびにその状態のファイルのコピーを残しておきます。
今のパソコンはハードディスクの容量が大きくなったので
Excelのファイルが多少余分にあっても
大した量ではないのでこまめに保存しても問題ないと思います。
消すのはいつでもできます。
方法は、WorkbookのイベントBeforeSaveを使って
ブックを保存する時に、同時にコピーも保存します。
まず、ファイルを名前を付けて保存します。
ここでは、ファイル名を「Book.xls」にします。
「Book.xls」自体は上書き保存する時のファイル名は、常に「Book.xls」です。
コピーのファイルは保存時の日時を付加して名前を付けます。
保存時が2010年4月6日の21:30:21なら
コピーのファイル名を「Book20100406_213021.xls」になるようにします。
WorkBookのイベントを使う具体的な説明をします。
VBEのプロジェクトウィンドウの「ThisWorkbook」のところを
ダブルクリックしてワークブックのモジュールを表示させます。
次に「(General)」のところを「WorkBook」を選択します。
その隣「(Declarations)」のところを「BeforeSave」にします。
上の画像の「Private Sub Workbook_BeforeSave…」から
「End Sub」の間にファイルを保存する前に実行するコードを書きます。
コードはこちら
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) |
保存するとこのように日時を付加した名前のファイルも保存されます。
| 固定リンク
この記事へのコメントは終了しました。


コメント