*****環境*****
OS :Windows XP professional SP2
Excel:2002(サービスパック適用無し)
*****症状*****
ユーザーフォームを複数持つExcelブックで、どれか1つフォームをVBAでshowした後、
Hideで非表示の状態にして放置しておくと、
「パス名が無効です」
のエラーが表示されます。
エラーはOKボタンで消去しますが、十数個重なって発生しており、それが終わると最後に
「システムエラーです &H8000FFFF(-2147418113)致命的なエラーです」
が表示されます。
これをOKで消去するとエラーは出なくなりますが、それ以降どのフォームも
「実行時エラー75 指定されたオブジェクトは見つかりません」
と出て表示できなくなります。
1つのフォームは例えば下記のコードで処理していますが、UserForm13.Showのところで止
まります。
※フォームの「ShowModal」はtrue
’標準モジュールのコード
Sub ZANRYOU()
Dim ZAN0, ZAN1
Application.Worksheets("登録").Activate
ZAN0 = Sheets("登録").Cells(2, 12)
UserForm13.TextBox1.Text = ZAN0
UserForm13.Show
ZAN1 = UserForm13.TextBox1.Text
If CancelFlg = 0 Then
Sheets("登録").Cells(2, 12) = ZAN1
End If
End Sub
’UserForm13内のコード
Private Sub CommandButton1_Click()
UserForm13.Hide
CancelFlg = 1
End Sub
Private Sub CommandButton2_Click()
UserForm13.Hide
CancelFlg = 0
End Sub
「Office 97 / 2000 からMicrosoft Office 2003 Editionsへの移行における、Visual
Basic for Applications の互換性と注意点」
インターネット上でたまたま見つけた上記資料の72頁によれば、
「モーダル、モードレスに関係なくShowメソッドの後にユーザーフォームにアクセスする
コードを記述するのは避けるべき」
との記述があり、当プログラムでもフォーム上のテキストボックスを参照しているのが怪
しいとは思っています。
しかし同一ブックをExcel2000と2003で実行しても症状が再現しません。
ちなみにこのアプリケーションは他所のソフト業者がExcel97上で開発したものをコードも
この部分についてはそのまま流用していますが、Excel97でもこの症状が出たとは聞いてい
ません。
Excel2002特有の問題であるような気がしますが、類似事例や手がかり、解決策等ご存知の
方は居られないでしょうか?
以上、よろしくお願い致します。
オプションの「自動保存」のところで、
「次の間隔で回復用データの自動保存を行う」のチェックをはずし、
「自動保存を行わない」のチェックを入れるとエラーが発生しなくなりました。
スペックの低いパソコンで動作させていると、およそ8時間くらいの間隔でエラーが出ているようでしたが、発生直後に出たメッセージで
「予期しないエラーが発生しました。このブックでは自動保存を実行できません」
となっており、もしやと思って上記設定を行ったところ、数日経ってもエラーが出なくなりました。
Excel2003では自動保存を行う設定で動作させていてもエラーが出なかったのですが、やはりExcel2002特有の問題でしょうか?
もし類似の経験をされた方が居られましたら、引き続き情報を頂けないでしょうか。
よろしくお願いします。