Webbrowserコントロールと、「WithEvents IE As InternetExplorer」を共存させるには?


With  2004-09-15 05:47:24  No: 85570

こんにちは。

1.WEBbrowserコントロールで、あるWEBページを表示
2.コマンドボタン(Btn_Cmd)を押下すると、IEを起動
    -> 起動したIE上で、submitボタンが押されたことを
       感知して、Msgboxを表示
という1.2.の機能を兼ねるアプリを作っているのですが
1.を実現するために、「コンポーネントの追加」で
Microsoft Internet Controls にチェックを入れて、
2.を実現するために、「参照設定」で
Microsoft Internet Controls にチェックを入れています。

この状態で、コード上で
Set IE = CreateObject("InternetExplorer.Application")
とすると、データ型が一致しません(エラー番号13)となってしまいます。
これを回避することはできないでしょうか?

よろしくお願いします。


Say  2004-09-15 17:15:02  No: 85571

とりあえず私の環境では下記で正常動作しますが?

Option Explicit
Private WithEvents IE As InternetExplorer
Private Sub Command1_Click()
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Navigate2 "http://www.yahoo.co.jp/"
End Sub

Private Sub Form_Load()
WebBrowser1.Navigate2 "http://www.yahoo.co.jp/"
End Sub

Private Sub IE_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
    IE.Visible = True
End Sub


ミチ  2004-10-15 19:32:58  No: 85572

私も同じような事象が起きました。

>    Dim objIE As SHDocVwCtl.InternetExplorer
>    Set objIE = CreateObject("InternetExplorer.Application")

このCreateObjectで同様のエラーが起きます。
Microsoft Internet Controlsを参照設定をすると、エラーになりますね。
WebBrowserコントロールのせいかどうかはわかりませんが…。

誰か分かる方いらっしゃいましたら、ご教授いただきたく思います。


りっとっと  2004-10-16 00:13:51  No: 85573

Withさんがもし、ミチさんと同じようにオブジェクト変数の型を
SHDocVwCtl.InternetExplorer
としていたら型が違うというエラーが発生しますね。
InternetExplorerは、SHDocVw.InternetExplorerというオブジェクト型
ですのでこの型で宣言してください。
単に As InternetExplorerとしても一応OKです。

参照設定しなければWithEvents付き宣言ができないですよねw。
参照設定しているのでしたら、  
Set IE = CreateObject("InternetExplorer.Application")
とするのではなく
Set IE = New InternetExplorer
としたほうがいいのではないでしょうか?


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加