[三流解説IEのトップページへ] / [IE メソッドの一覧へ 戻る]

.Quitメソッド とは

メソッド .Quit とは、機械和訳だと 終了 です。(あまり意味無いか)
三流プログラマーの勝手な解釈・方言だと:
.Quit メソッドで簡単にIEを閉じることができます。
Set objIE = CreateObject("InternetExplorer.Application") 'オブジェクト作成
objIE.Quit '.Quitで閉じる


正式な解説・説明はMSDNで:[.Quit Methods]を見てください。


.Quit を 使用した三流サンプル

.Quitメソッド を 使用した三流サンプル を 紹介します
Set objIE = CreateObject("InternetExplorer.Application") 'オブジェクト作成
で作り、処理が終わったら、
objIE.Quit '.Quitで閉じる
そんな感じです。

確認して閉じる

.Quit の説明なので、無理やり、MsgBoxで終了確認してみました。

    If MsgBox("IEを閉じますか?", vbYesNo) = vbYes Then '終了確認
        objIE.Quit  '.Quitで閉じる
    End If
    
    Set objIE = Nothing '使用したオブジェクト変数もキレイにしてね。
下記の動作結果を見てください(.Quit一行なので、皆さんもテストで実際に動かしてみてください。)

起動中の全てのIEを終了させたい

・全てのIEを終了させたい、と、よく質問をいただきます。
For Each objWindow In objShell.Windows で ループさせ、.Quitで閉じました。

>NO156を参考にさせていただき、起動済みのIEを探して、順にすべてをQUITし、新しくIEを立ち上げたいのですが、
>すべて処理(QUIT)する前にループを抜けてしまいます。
>ちなみにIE数を確認しているかmsgboxで確認したのですが、起動分数えていました。(ほとんどパクっているので当然ですよね・・・すんません。)
>Private Sub CommandButton1_Click()
> Set objShell = CreateObject("Shell.Application")
>  For Each objWindow In objShell.Windows
>   Set objIE = objWindow
>   MsgBox "確認" & objIE
>   objIE.Quit
> Next
>    'Set objShell = Nothing
>
>Set objIE = CreateObject("InternetExplorer.application") 
>    objIE.Visible = True 
>話がうまくまとめられず申し訳ないのですが、msgboxで確認した起動数と、
>数えているはずなのに処理せず抜けてしまう矛盾に疑問を感じ質問したしだいです。

For Each objWindow In objShell.Windows
のループで、中身がリアルタイムに変わっていくと
(ここでは、ループの中で .Quit してます。)
うまく全てを取れないみたいです。

↓Debug.Print objShell.Windows.Count を 入れてみました。
これで、確認してみてください。

Sub bbb()  'ここで、.Quitで終わらせる。
    Dim objShell  As Object
    Dim objWindow As Object
    Dim objIE     As Object
    
    Set objShell = CreateObject("Shell.Application")
      
    For Each objWindow In objShell.Windows
        Debug.Print objShell.Windows.Count
        Set objIE = objWindow
        MsgBox "確認" & objIE & objShell.Windows.Count
        objIE.Quit
    Next
    Set objShell = Nothing

End Sub

↑、カウンターの減り方が変ですよね。※あっ、そもそも減っちゃまずいのかなぁ。 ※ループ中にobjShell.Windowsの内容が変化してしまうので、 For Each objWindow In objShell.Windows で 順番に取得できないみたいです。 なので、後ろからまわしてみる。そんな処理に変更してみました。

Sub ccc()  'ここで、.Quitで終わらせる。
    Dim objShell  As Object
    Dim objIE     As Object
    Dim n         As Integer
    
    Set objShell = CreateObject("Shell.Application")
      
    '後ろから消してく。
    For n = objShell.Windows.Count To 1 Step -1  'MAXから-1ひいてく感じ
        Set objIE = objShell.Windows(n - 1) 'n番目のウインドウを代入
        MsgBox "確認" & objIE
        objIE.Quit
    Next
    Set objShell = Nothing

End Sub

※objShell.Windows(0)から始まっているので、n-1としてます。 ※※IEだけじゃなくて、C:やD:全てのファイルエクスプローラーも閉じちゃうけど。 疑問は、解決されましたか? 何かの参考となれば、幸いです。

実行結果

.Quit 関連項目 リンク

三流君が .Quit の 関連項目 を 紹介します
おっと、その前に正式な場所は(繰り返し紹介すると) MSDNで:[.Quit Methods]を見てください。

終了の真逆じゃないけど、新しいウインドウ処理も押さえておく。
・新しく開かれたIEを操作したい と、これまたよく質問をいただきます。
[新しく開かれたIEを探す]
↑で、プログの記事をVBA IEから登録で、公開日時を指定 で 新規に起動する、新しいウインドウ(IE)を捕まえる そんな処理にチャレンジしてみたり。
番外編 蛇足:もしかしたら、WebBrowserのイベントで捕まえる、慣れれば、こっちのほうが操作し易いかなぁ。
[新規のウインドウ(IE)が起動する イベントを見る。]
↑WebBrowser1のNewWindow2 新しくウインドウが作られる処理で、
Set ppDisp = Me.WebBrowser2
と1つ呪文を書きます。(呪文ってオイ、、、)、余談です読み飛ばしてください。

Googleを使用して検索する

読者の声:三流君の説明・解説じゃ .Quitメソッド が よくわからなかったから、Googleを使って、自分で検索します。
三流君:残念です。あっ、下記にGoogleの検索窓を設置しました。
よく使われる変数名 : oIE,MyIE,objIE

オブジェクトの指定として : InternetExplorerWebBrowser
を指定しました。※この指定で検索するとサンプルが拾いやすいと思います。

Google 探す言葉:
検索場所:
WWW 全体から検索
microsoft.com の全体を検索 MSDN を指定して検索
三流君 ken3.org を検索 三流君Blogのサンプルコードを検索


ページフッター リンクや広告、質問送信など

三流解説を読んでいただき、どうもです。ここから下は、三流君宛のメッセージ送信や 三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、※質問や感想は、気軽に送ってくださいね。

[IE操作 三流解説のトップページへ 戻る] / [IE操作の三流サンプル一覧へ 戻る]

[三流君 VBAでWebBrowser IEを操作する] / [三流君 VBAで楽しくプログラミング] / [AB型の変わり者 三流プログラマー Ken3 三流君Top]

F1でヘルプを見たり、デバック時にDebug.Print使ったり、イミディエイト ウインドウで簡単な確認したり。
なれると当たり前に操作している方法が↓かなぁ。
[F1ヘルプ マクロ記録ほか]・・・基本のF1を押してヘルプを見る方法など
[実行時エラー、デバッグモード]・・・デバッグの流れを簡単に(ハマった時はツライけど)
[イミディエイト ウインドウ と Debug.Print]・・・プログラム作成時に便利なイミディエイト ウインドウ
[VBA ウォッチ式とSTOPを使ってみた]・・・STOPで止め、ウォッチ式でオブジェクトの中身を確認する方法など
[参照設定のお話]・・・設定すると便利な(設定しないと使えない)、参照設定のお話

項目別に↓にプログラマーの本音?それとも建て前?的な記事をまとめました。お探しのジャンルを選択してください。
[プログラムは心? spirit]・・・プログラマー 心・気質・魂
[学ぶ study]・・・学習、技術の取得
[仕様書 doc]・・・仕様書・設計書関係の話

項目別に↓に人気の記事をまとめてみました。お探しのジャンルを選択してください。
[VBAでIE ウェブブラウザーを操作]・・・VBAでIE,WebBrowserを操作する サンプルです
[MSアクセス から エクセル を呼ぶ Excel.Application]・・・AccessからExcelを操作したりデータの書き出しなどです
[アウトルック メールの操作 Outlook.Application]・・・VBAからOutlookを使い、メール関係を処理するサンプルです
↑上記3つみたいなCreateObjectで他のアプリケーションを操作するサンプルが人気です。

Blog:[三流君の作業日記]/ [objIEを使用したサンプルコードを見る]/ 広告-[通販人気商品の足跡]

質問や要望など メッセージを送る(三流君に連絡する)

三流プログラマーのKen3 が 皆さんの質問にお答えします
と カッコつけて言っても、実力不足ですべての質問に回答することはできないのが現実なのですが、できる範囲で 三流的な逃げ手 や 解決方法 を探します(回答します)。

感想や質問・要望・苦情など 三流君へメッセージを送る。
時間的余裕のある要望・質問・苦情の場合は、下記のフォームからメッセージを送ることができます。

あなたのお名前(ニックネーム):さん
返信は?: 不用(HP更新を待つ) , E-mail→ アドレス:に返事をもらいたい



(感想や質問・要望 メッセージはHPで記事に載せることがあります。)

急ぎで連絡がほしい、そんな時は:[三流君連絡先]に連絡してください。



[トップページへ 戻る] / [メソッドの一覧へ 戻る]