投稿日 | : 2004/07/07(Wed) 13:05 |
投稿者 | : へむへむ |
Eメール | : |
URL | : |
タイトル | : Re: 実行時エラー91の原因究明方法 |
恐らくイベントの発生順に
関係しているのではないでしょうか?
Option Explicit
Private wObject As Object
Private Sub Command1_Click()
Do while ...
'* wObject を使用する処理
...
DoEvents
Loop
End Sub
Private Sub Form_Load()
set wObject = ...
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set wObject = Nothing
End Sub
実際はどのような処理を行っているのか分かりませんが、
例えば、上のようなコードがあった場合、
ボタンを押して Loop 処理中に
フォームの×ボタンなどを押すと
Loop 中なのに Unload イベントが割り込んできて
オブジェクトを解放してしまい、
Loop 処理に戻ってきた時に
wObject は解放されてしまっている
というようなエラーが発生するという現象ではないでしょうか?
Loop 処理後ならば、×を押しても正常に終了しますし。
それなので、イベントプロシージャの
開始時と終了時にそれぞれログを出力するようにし、
プロシージャの呼び順を確認すれば分かるかと。