バックアップいろいろ
いろいろなタイミングでのバックアップについて。
ここではバックアップというのは
ファイルの複製をコピーする
ということを指します。
ファイル保存時のバックアップは以前の記事で書きました。
『
ファイル保存時に自動でコピーを作って保存
』
上の記事の補足ですが、
この「保存時」とは手動で保存したときのみです。
記事を書いたときはVBAで保存したときも
イベントが発動すると思っていましたが
違っていました。
VBAで保存したときは、
Workbook_BeforeSaveは発動しません。
他にはどんなタイミングが考えられるかリストアップします。
一定時間ごとにバックアップを保存
ブックを閉じるときにバックアップを保存
いろいろなんて言っておいて
2つしか挙げられないので、
バリエーションで誤魔化します。
1. ○○分ごとにバックアップを作成する
2. ○○分ごとにバックアップを上書き保存する
3. ○○分ごとに本体を保存して、バックアップも作成する
4. ○○分ごとに本体を保存して、バックアップも上書き保存する
5. ブックを閉じるときにバックアップを作成する
6. ブックを閉じるときにバックアップを上書き保存する
以上についてやっていきます。
1. ○○分ごとにバックアップを作成する
○○分ごとといえば
OnTimeです。
コードはこちら
Sub macro110514a()
'本体保存 Dim wb As
String End Sub |
このコードは最初の一回を実行しないと
繰り返し実行しないので
ブックを開いたら自分で最初の一回を実行してください。
それも自動でするなら
Workbook_Openイベントを利用します。
ワークブックのオブジェクトモジュールの
イベントの利用方法についても上のリンクの記事を参照してください。
コードはこちら
Private Sub Workbook_Open() Dim flag As Integer |
OnTimeで設定したプロシージャは、
ブックを閉じただけで、Excelが立ち上がっている状態では
設定した時間になると
ブックを閉じていてもブックを開いて実行しようとします。
OnTimeで設定したものをなくしたいときは、
Excel自体を閉じてください。
2. ○○分ごとにバックアップを上書き保存する
これはバックアップを毎回作成していくのではなく、
バックアップのファイルを1つだけ作成して、
次からは上書き保存していきます。
SaveCopyAsメソッドは、
既存の同名ファイルがあっても
エラーや警告になることなく上書き保存されます。
既存の同名ファイルがなければ作成されます。
コードはこちら
Sub macro110514b()
'本体保存 End Sub |
3. ○○分ごとに本体を保存して、バックアップも作成する
1番のコードに
次の本体を保存するコードを追加するだけです。
'本体保存
ActiveWorkbook.Save
1番のコードにコメントブロックしてありますので
シングルクォーテーションをはずしてください。
4. ○○分ごとに本体を保存して、バックアップも上書き保存する
2番のコードに本体を保存するコードを追加するだけです。
3番と同様にコメントブロックしてあります。
5. ブックを閉じるときにバックアップを作成する
Workbook_BeforeCloseイベントを使用します。
コードはこちら
Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim wb As String End Sub |
6. ブックを閉じるときにバックアップを上書き保存する
こちらも
Workbook_BeforeCloseイベントを使用します。
コードはこちら
Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim wb As String |
同じコードを何回も使ってしまいました。
似たようなことをしていると
同じコードを何回も使用していることが多くなります。
そうなったときは、
独立したプロシージャを作ったほうが
コードの入力は楽です。
Callステートメントで呼び出せば省力できます。
| 固定リンク
この記事へのコメントは終了しました。

コメント