0

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 を使用したことがないので、これはばかばかしい明らかなバグだと感じていますが、サポートをいただければ幸いです。

4

1 に答える 1

0

これは実際には単純なバグであり、もう少しグーグルで解決しました。

OO 3.3 以降、Microsoft とは異なる API を使用する OpenOffice でテストしています。ref docs を使用していた 3.2 は ActiveWorkbook をサポートしていましたが、3.3 では ActiveWorkbook の代わりに ThisComponent が必要です。

于 2012-08-03T04:10:55.290 に答える