重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

エクセルvbaについて質問です。
Private Sub Workbook_Open()
Application.OnTime NOW + TimeValue("00:00:10"), "マクロ"
End Sub
上記のようにファイルを開いてを10秒後に実行されるマクロをそのファイルを10秒以内に閉じたら実行されないようにしたいです。
どうすればいいでしょうか?

A 回答 (1件)

こんにちは。


'//ThisWorkbook

Dim myTime As Date 'モジュール・スコープ変数
Dim flg As Boolean
Private Sub Workbook_Open()
myTime = Now + TimeValue("00:00:10")
flg = True
Application.OnTime myTime, "マクロ", , flg
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If flg Then
  flg = False
  On Error Resume Next 'OnTime 設定なしだとエラーが発生するので、回避
  ThisWorkbook.Saved = True ''この部分は任意です。*
  Application.OnTime myTime, "マクロ", , flg 'False で解除
  On Error GoTo 0
End If
End Sub

*
以下が入っていないと、何もしないでも、保存を求められてしまいますので、それをオフセットするものですが、逆に、しかし、何かしても、保存を求めてきません。
任意のオプションです。

ThisWorkbook.Saved = True
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!