- ベストアンサー
VBAにて:開いている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です。(適当に作りました)
関連するQ&A
- 現在開かれているIEのアドレスを取得したい
お世話になります。 VBAで作成しております。 objIE.Navigate "http:A" でAのページを開こうとしています。 しかしながら、Aに行くにはパスワードが必要で途中でBのパスワードを入力する画面が必要になることがあります。 既にログインしている場合は objIE.Navigate "http:A" IEのフォームに対して入力するコマンド でうまくいくのですが、 ログインしていないときは objIE.Navigate "http:A"をすると、パスワード入力画面が 出てきますので、 IEのフォームに対して入力するコマンド でエラーが出ます。 そこで、現在開かれているページのアドレスを取得して、 "http:A" ならIEのフォームに対して入力するコマンド を実行と したいのですが、 現在IEで開かれているアドレスはどのようにすれば取得できるでしょうか? お手数ですがよろしくお願いします。
- ベストアンサー
- Visual Basic
- VBAでIEを操作したいです。
VBAでIEを操作したいです。 エクセルでデータ管理をしております。 VBA・マクロ等を使用して、ウェブページの入力フォームに自動で入力、ウェブページの結果を再度エクセルに返すことはできますでしょうか? こちらがサイトになります。 モノレート http://mnrate.com/ こちらのサイトはアマゾンの商品の年間の価格推移を調べることができます。 ここに商品の「JANコード」(13ケタの商品ごとについているバーコード)を入力して、「グラフを見る」というボタンを押すと表示されます。 例えば、「Smap!Tour!2002! [DVD] 」という商品が知りたいとします。 その場合「4988002446582」(DVDの商品コード)を入力して「グラフを見る」を押します。 その後、ページが切り替わって切り餅のページが表示されると思います。 表示されたページの商品写真の横にあるASIN:「B00008GEUD」 という数字と、表示されたアドレス「http://mnrate.com/item/aid/B00008GEUD」をエクセルに返したいです。 話を整理させていただきます。 現在エクセルでは、A1セル~A100セルに「JANコード」(13ケタの商品ごとについているバーコード)が入力されております。 そこで「マクロ実行」をします。 そうすると、自動でIEが起動してB1セル~B100セルに「ASINコード」(例:B00008GEUD)、C1セル~C100セルに「ハイパーリンク」(例:http://mnrate.com/item/aid/B00008GEUD) ※エクセルから直接ジャンプできるように青色になったもの を自動で入力。 すべて完了後、IEが閉じてその後MSGで「完了しました」と表示される。 「入門者のExcel VBA」という本と、「EXCEL VBAでIEを思いのままに操作できるプログラミング術」という本を買って、一通り読み切ったのですが難しくて困っております。 分かる方おられましたら宜しくお願い致します。 最初だけしかわかりませんでした。 'IEの起動 Set ie=CreateObject("InternetExplorer.Application") ie.Visible=True 'URLへジャンプ ie.Navigate "http://mnrate.com/"
- ベストアンサー
- Visual Basic
- VBAでIEを操作したいです。
エクセルでデータ管理をしております。 VBA・マクロ等を使用して、ウェブページの入力フォームに自動で入力、ウェブページの結果を再度エクセルに返すことはできますでしょうか? こちらがサイトになります。 モノレート http://mnrate.com/ こちらのサイトはアマゾンの商品の年間の価格推移を調べることができます。 ここに商品の「JANコード」(13ケタの商品ごとについているバーコード)を入力して、「グラフを見る」というボタンを押すと表示されます。 例えば、「越後製菓 生一番 切り餅 1kg 」という商品が知りたいとします。 その場合「4901075022569」(切り餅の商品コード)を入力して「グラフを見る」を押します。 その後、ページが切り替わって切り餅のページが表示されると思います。 表示されたページの商品写真の横にあるASIN:「B00305HGSG」 という数字と、表示されたアドレス「http://mnrate.com/item/aid/B00305HGSG」をエクセルに返したいです。 話を整理させていただきます。 現在エクセルでは、A1セル~A100セルに「JANコード」(13ケタの商品ごとについているバーコード)が入力されております。 そこで「マクロ実行」をします。 そうすると、自動でIEが起動してB1セル~B100セルに「ASINコード」(例:B00305HGSG)、C1セル~C100セルに「ハイパーリンク」(例:http://mnrate.com/item/aid/B00305HGSG) ※エクセルから直接ジャンプできるように青色になったもの を自動で入力。 すべて完了後、IEが閉じてその後MSGで「完了しました」と表示される。 「入門者のExcel VBA」という本と、「EXCEL VBAでIEを思いのままに操作できるプログラミング術」という本を買って、一通り読み切ったのですが難しくて困っております。 分かる方おられましたら宜しくお願い致します。 最初だけしかわかりませんでした。 'IEの起動 Set ie=CreateObject("InternetExplorer.Application") ie.Visible=True 'URLへジャンプ ie.Navigate "http://mnrate.com/"
- ベストアンサー
- Visual Basic
- EXCEL VBAでユーザーが選択しているアドレス取得
EXCELのVBAでアプリケーションを作成していますが、ユーザーが選択しているセルのアドレス取得方法がわかりません。連続、不連続ともにユーザーが選択せいているセルの数と、各セルのアドレス取得方法をご教授願います。
- ベストアンサー
- その他(プログラミング・開発)
- IE7で「無効なアドレス」、「アドレスが有効ではありません」
IE7で、あるページを参照しようとすると「アドレスが有効ではありません」と表示されページが表示できません。IEのタイトルバーには「無効なアドレス」と表示さています。 ページをIE6のマシンで表示すると、正しく表示できるのですが、なぜでしょうか? アドレスは、「http://・・・・.co.jp」のような普通のアドレスで、イントラネットのサイトを参照しています。
- 締切済み
- HTML
- VBAにて任意のアドレスでIEを立ち上げる
VBA(他でも構いません)等にて指定したアドレスでIEを立ち上げたいのですが全く素人で方法が分かりません。 具体的にはIEでサーバー上にある画像ファイルや、映像ファイルを開きたいのですが、さらに、そのファイル名の一部を変数として、その変数を任意に入力し、その値をファイル名に引き継がれるようにしてIEを立ち上げるというソフトを作りたいのですが・・・ どういった方法があるでしょうか?
- ベストアンサー
- オフィス系ソフト
- VBAでHTMLからテキストを抜き出す
VBAでIEからページをセルに取得するのに、DOMを利用して抜き出します。 その時プロパティで .innerText を使ってテキストを抜き出しています。 ここで質問なのですが、取り出した箇所が2行以上あった場合に、1行ずつ各セルに分ける方法はありますか。
- ベストアンサー
- Excel(エクセル)
- エクセルVBAで別ファイルのデータを取得しに行ってます。
エクセルVBAで別ファイルのデータを取得しに行ってます。 http://www.officetanaka.net/excel/vba/tips/tips28.htm の二つ目に書かれたコードを参考に作ったんですが、取得セル範囲を何も入力されてない所まで広げると何も入力されてない所は『0』と取得、表示されてしまいます。 取得した時に『0』で表示するのを避ける方法はありますか?
- ベストアンサー
- Visual Basic
- VBAで既に開いているIEをアクティブにするには
質問しつれいします。 三流君のサイトをみながら、エクセルのVBAで、IEを開き証券口座にログインするプログラムを作りました。 一つのプログラムでIEを起動して、注文実行まではできるのですが、既に開いている(口座にログインしている)IEをアクティブにしてそこから注文する方法がわからず困っています。 相場が開いている間、シグナルが出た場合、すぐにIEをアクティブにして、注文を入力するプログラムをつくりたいと思っています。 既に開いてるIE(口座にログインしている)を選択し、objIE.navigate "" 'で指定のページに移動できるようにするにはどうしたらいいでしょうか?
- ベストアンサー
- その他(プログラミング・開発)
- VBA IE操作について
こんにちは。いつもお世話になっております。 初心者質問かと思いますが、宜しくお願いいたします。 ご質問したいのは、VBAにてIEを連続で起動、 終了した場合に起きるフリーズについてです。 あるwebサイトにある画像を連続で取得しようとしているのですが、 途中で"応答なし"となり、固まってしまいます。 画像のあるサイトには複数のページがあり、そのページ毎に一つの画像があります。 それらの画像の取得には、下記の動作を何度も繰り返しています。 1) URLを指定してIEを起動する 2) 画像を取得する 3) IEを閉じる (1)に戻る 取得する画像ページは50ページほどあるので、 その分だけくりかえしていますが、10回目ほどで固まってしまいます。 メモリ、またはCPUの不足が原因でしょうか? IEの一時ファイルは削除したのですが、駄目でした。 コードがないのでアドバイスしにくいとおもいますが、 ご指南頂けます方お待ちしています。 windows7,EXCEL2007
- ベストアンサー
- Visual Basic
お礼
回答ありがとうございます。 うまく行きました。