VB2005でオブジェクトの安定した操作方法


どろ沼  2007-06-03 07:26:40  No: 136593

他のサイトでExcelを起動するサンプルは見るのですが、
IEの方はそのまんまのサンプルが無いようで理解できません。
自分では出来ているつもりなのですが、どうか宜しくお願いします。

VB2005EE  Win2000  IE6を使っています。

以下、自分の書いたテストコードです。(DLLを作っています)
手始めにコンストラクタとデクリメント?(終了させるもの)を作っています。

Private objIE As Object 'As InternetExplorer.Application

Public Sub Set_IE_Object(Optional ByVal visibleMode As Boolean = True)

 objIE = System.Reflection.Missing.Value  ←ここはMSDNのサンプルから
 objIE = New InternetExplorer.Application  ←ここがダメです

 objIE.MenuBar = False 'メニューバーを非表示
 objIE.ToolBar = False 'ツールバーを非表示
 objIE.StatusBar = False 'ステータスバーを表示

 objIE.Left = 0 '表示位置を変更
 objIE.Top = 0

 'objIE.document.ParentWindow.screenの値を取得する為、ブランクページを表示する
 objIE.Navigate("about:blank")
 'InternetExplorerを最大化
 objIE.Width = objIE.document.ParentWindow.screen.availWidth
 objIE.Height = objIE.document.ParentWindow.screen.availHeight

 objIE.Visible = visibleMode 'InternetExplorer画面表示
End Sub

Public Function Quit_IE_Object() As Boolean

 objIE.Quit() 'IEを閉じる
 System.Runtime.InteropServices.Marshal.ReleaseComObject(objIE)
 objIE = Nothing 'オブジェクトの開放
 Quit_IE_Object = True

End Function

現在のコードだとInternetExplorer.Application指定が間違いのようです。

そこで Dim ieProcess As System.Diagnostics.Process = _
System.Diagnostics.Process.Start("InternetExplorer.Application")
というプロセスの作成?という方法をとったのですが、

ieProcess.ToolBarなどの設定部分がエラーになります。

プロセスからの操作方法。
Newステートメントからの操作方法の違いがいまいちわかっていません。

CreateObjectを使うと動作はしたのですが、この場合のオブジェクトの解放が
Disposeの所でエラーになってしまいます。

System.Reflection.Missing.Valueという表記理由もリファレンスを呼んでも
理解できません。
.NETになってからオブジェクトの解放が重要ということは調べたのですが・・・。
安全な操作がわからないのです。
というか色々な方法があるのは解るのですが、適切な組み合わせがわからないです。

逆引き辞典とかを買ってみたのですが、疑問部分が解決できません。

どなたかアドバイスしていただけないでしょうか?
お勧めの図書を紹介していただけるだけでも嬉しいです。
初めてクラスを使ってプログラムを楽しんでいる段階です。


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

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






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