Excel ワークブックを一定時間開いていた場合に自動的に閉じて保存するマクロを作成しようとしています。Microsoft の Web サイトで見つけたいくつかのコードを変更すると、次のようになります。
Private Sub Workbook_Open()
StartTimer
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
StartTimer
End Sub
Const idleTime = 30
Dim Start as Long
Sub StartTimer()
Start = Timer
Do While Timer < Start + idleTime
DoEvents
Loop
Application.DisplayAlerts = False
ActiveWorkbook.Close True
Application.DisplayAlerts = True
End Sub
ただし、これはループの終了時 (30 秒経過後) にエラーをスローします。その行でApplication.DisplayAlerts = False
エラーが発生BASIC runtime error Object variable not set
します Application 行をコメントアウトすると、ActiveWorkbook 行と同じエラーが発生します。次に、単なる呼び出しであるマクロを作成しようとしましたがMsgbox ActiveWorkbook.name
、これにより同じエラーが発生しました。私は以前に VBA を使用したことがないので、これはばかばかしい明らかなバグだと感じていますが、サポートをいただければ幸いです。