WebBrowser使用時に発生するエラーについて教えていただけますでしょうか。
環境 Windows2000,VB6.0
MDIを使用してブラウザを作成している過程で表題のエラーが発生し原因が
わからずに困っています。
やりたい事は子フォーム1のリンクをクリックすると子フォーム2に表示されるという単純なものなのですが、
可能な限り余計なウィンドウを新規で開きたくないため
WebBrowserのNewWindow2イベント実行時に次のように記述しています。
※ 子フォーム1と子フォーム2を作成しそれぞれのフォームにWebBrowserコントロールを配列で作成
Form2.show
Set ppDisp = Form2!WebBrowser1(1).Object
一応動作はするのですが何度かフォーム1のリンクをクリックしフォーム2に
表示されるといった動作を繰り返していると表題のエラー「実行時エラー'-1 (ffffffff)'」が発生してしまいます。
ちなみに過去ログを参考にさせていただき以下のように記述すればエラーは発生しませんがリンクをクリックするたびに
新規ウィンドウが作成されるため可能であれば特定のフォームにのみ表示したいと思っています。
Dim Form As Form2
Set Form = New Form2
Load Form
Set ppDisp = Form.WebBrowser1(1).Object
またSSTabを使用し同様にSet ppDisp = WebBrowser1(1).Objectと記述しているときは正常に動作していました。
質問内容は以上になります。よろしくお願いいたします。
回答にはなりませんが、IE7を入れてから、こちらでもそういうエラーが
頻繁に発生します。で、エラートラップを入れようにも、VBコードで記述
できる範囲では、どこでもかかりませんし、EXEにして実行するとエラー
が発生しなかったりするので、対応に苦慮しています。
ちなみに、私の環境では、NewWindow2イベント中で上記の対応をしても
そのエラーが発生します。
また、本題とは関係ありませんが、
> Form2!WebBrowser1(1).Object
いまは
Form2.WebBrowser1(1).Object
と書くことが推奨されています。"!"は他の役割が出てきましたし。
> Dim Form As Form2
Form型と衝突しかねないので、他の被らない変数名を使うことを勧めます。
K.J.K.さん書き込みありがとうございます。
そうなんです。エラーが発生した際にエラートラップを記述していても移行してくれないためソースの記述自体に問題があるわけではないようなので対応に苦慮しています。MSのサイトで表題と同じエラーで検索してみると
過去の例でDataGridだったかActiveXコントロール自体の不具合でこのようなエラーが発生すると記述があったため、今回も同様の問題なのかそれとも、そもそも同じフォームに表示させるという運用自体に問題があるような気もするので対処方法が見つからない以上当面新規ウィンドウを開くといった形で対応しようと思います。