« ある文字列を含むかで条件分岐 | トップページ | 簡易メール送信 2 »

2010年5月25日 (火)

マクロ実行中に一定時間ごとにブックを保存

マクロ実行中に一定時間ごとにブックを保存

時間の掛かるマクロを実行中は
ブックを定期的に
キリのいいところで保存していきたいです。

途中で強制終了して
また初めからなんてことがあります。

されど、ブックの保存は時間が掛かるし、
経験的にブックの開閉や保存のときには
強制終了が起こる確率が高いので
あまり頻繁にはブックを保存したくありません。

そこで自分がちょうど良いと思える頻度で
ブックを保存するプロシージャを作りました。

一定時間ごとにブックを保存する方法は
幾通りもあると思います。

ここでは、
現在の日時とブックの最終保存日時を比較して
差が○○分以上のとき
ブックを保存します。

時間の掛かるマクロの中に組み込んで
使ってください。

コードはこちら

一定時間ごとにブックを保存するコード:

Sub SaveBy(M As Integer)
'M分ごとに保存する
'ワークブックの最終保存日時とNowを比較して
'差がM以上なら保存する

    If (Now() - FileDateTime(Workbooks(wb).Path)) * 24 * 60 > M Then
        ActiveWorkbook.Save
    End If
   
End Sub
Sub macro100525b()
'SaveBy使用例

    '時間の掛かるマクロの途中で
    Call SaveBy(20)
   
End Sub

SaveBy(20)で
ブックを20分毎に保存します。

SaveBy(30)で
ブックを30分毎に保存します。

|

« ある文字列を含むかで条件分岐 | トップページ | 簡易メール送信 2 »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: マクロ実行中に一定時間ごとにブックを保存:

« ある文字列を含むかで条件分岐 | トップページ | 簡易メール送信 2 »