tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: SHDocVw.InternetExplorer の Visible で エラー
投稿日: 2017/08/08(Tue) 11:05
投稿者魔界の仮面弁士
> 型 'System.Runtime.InteropServices.COMException' のハンドルされていない例外が mscorlib.dll で発生しました
> 追加情報:メンバーが見つかりません。 (HRESULT からの例外:0x80020003 (DISP_E_MEMBERNOTFOUND))

当方では再現しなかったので、なんらかの環境依存の問題があるのかもしれませんが
具体的な情報は持ち合わせていません。
Windows Update を行ってみても同じでしょうか?

[Internet Explorer 11 の "DISP_E_MEMBERNOTFOUND" エラーとプロキシ認証の問題]
https://support.microsoft.com/ja-jp/help/3119137/



ただ、一般的には
 Dim objIE As New SHDocVw.InternetExplorer()
 objIE.Visible = True
もしくは
 Dim objIE As Object = CreateObject("InternetExplorer.Application")
 objIE.Visible = True
あるいは
 Private WithEvents objIE As SHDocVw.InternetExplorer
 objIE = New SHDocVw.InternetExplorer()
と書くべきかと思います。


アーリーバインドとレイトバインドの両方を使うケースでも、
 Dim objIE1 = CreateObject("InternetExplorer.Application")
 Dim objIE2 = DirectCast(objIE1, SHDocVw.InternetExplorer)
もしくは、
 Dim objIE3 As New SHDocVw.InternetExplorer()
 Dim objIE4 As Object = CObj(objIE3)
でしょう。



> Dim objIE As SHDocVw.InternetExplorer = CType(CreateObject("InternetExplorer.Application"), SHDocVw.InternetExplorer)
> objIE.Visible = True    ' ----- ※1
このケースでは、InternetExplorer インターフェイス のコクラスである
InternetExplorerClass クラスの Visible プロパティへのアーリーバインドでの書き込みとなります。

> Dim objIE As Object = CType(CreateObject("InternetExplorer.Application"), SHDocVw.InternetExplorer)
> objIE.Visible = True
上記の CType に意味があるのかは疑問ですが、この場合はレイトバインドになりますので、
先のケースとは手続きとしては別ですね。
とはいえデュアルインターフェイスの場合、本来は同じ結果になることが期待されるのですが…。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。