三流君 ken3のmemo置き場

メモ置き場、保管庫として利用。まとまっていませんがヨロシク

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。
(※詳細は[三流君 三流プログラマーとは?]を見てください)


広告:


[記事一覧、バックナンバーを見る]

指定したURLのIEを探し閉じる方法


http://www.youtube.com/watch?v=T0WjAw-809Q

下記の質問メッセージを受け取りました。

>起動しているIEの中で、ある特定、
>例えば Yahooのアドレス(http://www.yahoo.co.jp/)が有る場合
>そのIEを強制的に閉じる方法
>をVBAで書く場合どうすればよいですか?

前に作った、
3/27 起動しているIEを全て閉じたい。
http://ken3-info.blog.ocn.ne.jp/objie/2009/03/327_ie_5a92.html

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

↑を改造して、下記のような感じ↓でなんとか完成?しました・・・

Sub ddd()  '指定したURLを.Quitで終わらせる。
    Dim objShell  As Object
    Dim objIE     As Object
    Dim n         As Integer
    
    'これで、エクスプローラーのウインドウを取得する
    Set objShell = CreateObject("Shell.Application")
      
    '後ろから消してく。.Windowsでエクスプローラーとインターネットエクスプローラーにさわれる
    For n = objShell.Windows.Count To 1 Step -1  'MAXから-1ひいてく感じ
        Set objIE = objShell.Windows(n - 1) 'n番目のウインドウを代入
        '.FullNameで普通のファイルエクスプローラーとIE(インターネットエクスプローラー)を区別する
        If Right(UCase(objIE.FullName), 12) = "IEXPLORE.EXE" Then
            Debug.Print objIE.document.URL
            If objIE.document.URL = "http://www.yahoo.co.jp/" Then '次に.URLでURLのチェック
                objIE.Quit   '.QUITで該当URLを閉じる
            End If
        End If
    Next
    Set objShell = Nothing

End Sub

ポイントは、
.document.URLでURLが取得可能なので、普通に
If objIE.document.URL = "http://www.yahoo.co.jp/" Then 'で比べて、
objIE.Quit で閉じました。

で、問題があって、普通のd:\などのフォルダーを開いていると、
.documentが無いので、objIE.document.URLでエラーが発生します。

そのエラーを回避したいので、(※回避しないで、エラーを無視して進むなんて手もありますが、今回は、事前にIEと普通のエクスプローラ、フォルダー開きをチェックしました)
.FullNameで起動した.exeを調べてみます。
If Right(UCase(objIE.FullName), 12) = "IEXPLORE.EXE"
で判断させて、IEか普通のフォルダーを見ているのか判断してみました。

まぁ、実際に動かしてみて、試行錯誤して見てください。。。

VBAIE処理で何かの参考となれば幸いです。。。




三流君へ メッセージを送る

全ての質問に答えることはできませんが、
ダメもとで、気軽に質問、感想、メッセージを送ってくださいね・・・

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


あなたのお名前(ニックネーム):さん
返信は?:

アドレス:に返事をもらいたい
感想や質問↓:


(感想や質問・要望・苦情はHPで記事に載せることがあります。)
例:[XXXXさんへ回答例]←みたいに回答していたり...


Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。
・[Excel/Access VBA]の解説
・[ASP(Active Server Pages)]の解説。
・[元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
・[プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
三流君を踏み台にする
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。

三流解説動画の再生リスト
https://www.youtube.com/user/ken3video/playlists

本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)