- ベストアンサー
VBAにて:開いているIEのアドレスを取得するには?
セルに入力してあるアドレスを利用して、VBAからIEを開き、そのサイトを開くことが出来ます。 ところが、そのアドレスが現在は使われてなくて、 ”お探しのページが見つかりませんでした” と表示されることがあります。 この時、IEをVBAから閉じたいのですが、その判断方法として、 セルのアドレスとIEに表示されているアドレスが異なる ことを利用しようと考えています。 そのために、IEのアドレスの取得方法を知りたいのです。 ご存知の方お願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> 今回知りたいのは、「お探しのページは見つかりませんでした」の場合です。 > 例えば、http://kkk.hp.infoseek.co.jp/25.htmlです。 そうなんですか。 それでは、こんな感じになると思います。 Msgboxの所は、それぞれの処理を記述します。 Sub URL_ADD_CHK() Dim url As String url = Worksheets("Sheet1").Range("A2").Value On Error Resume Next With Worksheets("URL_CHK").QueryTables("URL_CHK") .Connection = "URL;" & url .WebSelectionType = xlAllTables .WebFormatting = xlWebFormattingAll .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .Refresh BackgroundQuery:=False End With If Err.Number > 0 Then MsgBox "URLアドレスは存在しません。" Else If Not Worksheets("URL_CHK").Cells. _ Find("お探しのページは見つかりませんでした", _ lookat:=xlPart) Is Nothing Then MsgBox "お探しのページは見つかりませんでした。" Else MsgBox "見つかりました。" 'ここに見つかった時の処理を記述 End If End If End Sub
その他の回答 (3)
- ja7awu
- ベストアンサー率62% (292/464)
現在のコードは、セルA2のURLになっておりますからテストするときは気をつけてね。 直すの忘れました。 ↓ url = Worksheets("Sheet1").Range("A2").Value
お礼
回答ありがとうございます。 動かないので最初悩みました。汗)
- ja7awu
- ベストアンサー率62% (292/464)
#1ですが あれっ Excelのことですよね。 違っていたら無視してください。
お礼
Excelのことなので、OKです。
- ja7awu
- ベストアンサー率62% (292/464)
質問内容にズバリのレスにはなっていませんが・・・ IEにURLを指定する前にチェックした方が合理的と思います。 「お探しのページが見つかりませんでした」になるまで、ちょっと時間が かかると思いますので、URLが変わるタイミングの処理も必要かと思います。 もっといい方法があるかも知れませんが、Webクエリを使う方法で如何でしょうか。 例えば、 ・ "URL_CHK" という名前のシートを準備します。 ・ そのシートに"URL_CHK"というQueryTableを作成し、非表示にします。 (1回だけWebQeryAdd()を実行すれば、作成されます。) ・ 下記 URL_ADD_CHK()を実行すれば3行目で指定したセルに入力されている URLアドレスが、存在するかどうかを表示します。 Sub URL_ADD_CHK() Dim url As String url = Worksheets("Sheet1").Range("A1").Value On Error Resume Next With Worksheets("URL_CHK").QueryTables("URL_CHK") .Connection = "URL;" & url .WebSelectionType = xlAllTables .WebFormatting = xlWebFormattingAll .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .Refresh BackgroundQuery:=False End With If Err.Number > 0 Then MsgBox "URLアドレスは存在しません。" Else MsgBox "URLアドレスは存在します。" End If End Sub '----------------- Sub WebQeryAdd() 'Webクエリを作成する(1回だけ実行) Worksheets("URL_CHK").Activate With ActiveSheet.QueryTables.Add(Connection:= _ "URL;http://abcd.co.jp", Destination:=Range("A1")) .Name = "URL_CHK" nd With End Sub
お礼
回答ありがとうございます。 なんか凄いですね。 確認したところ以下のようになりました。 「ページを表示できません」の場合 アドレスは存在しません。と出ます。 「お探しのページは見つかりませんでした」の場合 アドレスは存在します。と出ます。 今回知りたいのは、 「お探しのページは見つかりませんでした」の場合です。 例えば、http://kkk.hp.infoseek.co.jp/25.htmlです。(適当に作りました)
お礼
回答ありがとうございます。 うまく行きました。