2

現在のシステム時刻に基づいて、30 秒ごとに Excel ファイルを保存したいと考えています。HH:MM:30 と HH:NN:00 です。たとえば、16:30:00 (以下を参照) など、TimeValue を使用して特定の時間に (ブックを保存するために) マクロを呼び出すことができることは承知しています。現在のシステム時刻が Excel で XX:XX:30 または XX:XX:00 に更新されたときに、これまたは別の関数を使用して開いているブックを保存できるかどうかは誰にもわかりません。

Private Sub Workbook_Open()

Application.OnTime TimeValue("16:30:00"), "macro_save"

End Sub
4

1 に答える 1

5

ワークブックのコードで:

Private Sub Workbook_Open()
    If Second(Now) < 30 Then
        Application.OnTime VBA.TimeSerial(Hour(Now), Minute(Now), 30), "macro_save"
    Else
        Application.OnTime VBA.TimeSerial(Hour(Now), Minute(Now) + 1, 0), "macro_save"
    End If
End Sub

標準モジュールでは:

Public Sub macro_save()
    ThisWorkbook.Save
    If Second(Now) < 30 Then
        Application.OnTime VBA.TimeSerial(Hour(Now), Minute(Now), 30), "macro_save"
    Else
        Application.OnTime VBA.TimeSerial(Hour(Now), Minute(Now) + 1, 0), "macro_save"
    End If
End Sub

おそらく、コード内のエラーを処理する必要がありますmacro_save。そうしないと、ユーザーにとってかなり (非常に) 迷惑になる可能性があります。

于 2013-03-01T02:23:49.827 に答える