こんにちは。
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)となってしまいます。
これを回避することはできないでしょうか?
よろしくお願いします。
とりあえず私の環境では下記で正常動作しますが?
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
私も同じような事象が起きました。
> Dim objIE As SHDocVwCtl.InternetExplorer
> Set objIE = CreateObject("InternetExplorer.Application")
このCreateObjectで同様のエラーが起きます。
Microsoft Internet Controlsを参照設定をすると、エラーになりますね。
WebBrowserコントロールのせいかどうかはわかりませんが…。
誰か分かる方いらっしゃいましたら、ご教授いただきたく思います。
Withさんがもし、ミチさんと同じようにオブジェクト変数の型を
SHDocVwCtl.InternetExplorer
としていたら型が違うというエラーが発生しますね。
InternetExplorerは、SHDocVw.InternetExplorerというオブジェクト型
ですのでこの型で宣言してください。
単に As InternetExplorerとしても一応OKです。
参照設定しなければWithEvents付き宣言ができないですよねw。
参照設定しているのでしたら、
Set IE = CreateObject("InternetExplorer.Application")
とするのではなく
Set IE = New InternetExplorer
としたほうがいいのではないでしょうか?
ツイート | ![]() |