• 締切済み

指定のurlの内容を読み込む

質問です。 VBAでweb上の指定のurlの内容を読み込む方法を教えてください。 現在 CreateObject("InternetExplorer.application") でIEを立ち上げて読み込んでいるのですが、 これでは1ページ読み込むのにIEがページを更新するのを待たなければならず 複数のページを読み込むには時間が掛かりすぎてしまいます。 IEを起動せずにurlの内容を取得する方法はないでしょうか? よろしくお願いします。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

VBAでhttpベースのデータを読むのはやはりIEの機能をつかうのが 順当ですね。 IEの更新を待つということは単純にデータの読み込みが完了 するのを待つということですから、待たないわけにはいかないでしょう? どうしてもというのであればhttpのクライアントツールを自作することです。

関連するQ&A

  • EXCEL VBA で URL内容を 取得できない

    EXCEL VBAで URLの内容を取得しようとしていますが、URLの内容中に FINNAIRの広告ラベル? がトップにでてくる場合には URLの内容が取得できません。広告ラベルが 時々に変更されますが、FINNAIR以外の 広告ラベルの場合は URLの内容を取得できます。 FINNAIRの 広告ラベルも 取得できるようにするには、どうすればいいのでしょうか? FINNAIRの広告ラベルは、短時間のうちに 変化しているようです。なぜ、取得できないのか、まったくわかっていません。 解決方法を教えていただきたく、よろしくお願いします。 Sub IEデータ取得() Dim IE As Object Set IE = CreateObject("InternetExplorer.Application") IE.Visible = True IE.navigate "http://www.japantimes.co.jp/news/" While (IE.readyState <> 4) Or IE.busy = True DoEvents Wend DoEvents IE.document.body.Focus IE.ExecWB 17, 0 IE.ExecWB 12, 0 Excel.Application.CutCopyMode = False Sheets.Add.name = "Formatテキスト" Range("A1").Select ActiveSheet.PasteSpecial Format:="テキスト" IE.Quit Set IE = Nothing End Sub

  • IEではなくファイアフォックスを指定することは

    VBAでブラウザを開く場合、 IEではなくファイアフォックスを指定することは可能ですか? 既定のブラウザはIEにしています。 Sub test1() Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Navigate "http://www.ocn.ne.jp/" objIE.Visible = True Set objIE = Nothing End Sub の Set objIE = CreateObject("InternetExplorer.Application") の部分を Set objIE = CreateObject("firefox.exe") に変えてみたら、 【ActiveX コンポーネントはオブジェクトを作成できません。(Error 429)】 になりました。

  • Excel VBA IEの終了方法は?

    お世話になっています。 検索しましたが判らなかったので質問します。 VBAでIEを起動します。 Sub IE起動() Set IE = CreateObject("internetExplorer.application") IE.Visible = True IE.navigate ("http://www.goo.ne.jp") End Sub ここまでは出来ました。 --<質問内容>------ では、IEを終了するには?

  • VB.NETでIEを起動してそのIEが後から見ても分かるようにしたい

    VB.NETで IE = CreateObject("InternetExplorer.Application") IE.Navigate("http://www.yahoo.co.jp") のようにしてIEを起動して、 その後通常のように手動でページを移動したり 複数のIEを手動で起動したりした場合に どれがこのプログラムで起動したIEかを ウインドウを見ただけで分かるようにしたいのですが、 何か方法はあるでしょうか? ウィンドウタイトルの文字で HTMLのページタイトルの横のMicrosoft Internet Explorerなどを 自分の自由に設定できればと思うのですが、 そういうことができたら教えて頂きたいです。 よろしくおねがいします。

  • vbaでIEを閉じるだけの処理

    オフィス2003を使用しています。 「IEを開いて閉じる」は Sub TEST() Set ObjIE = CreateObject("InternetExplorer.application") ObjIE.Visible = True '見えるようにする '文字列で指定したURLに飛ぶ ObjIE.navigate "http://www.yahoo.co.jp/index.html" '表示終了まで待つ Do While ObjIE.Busy = True DoEvents Loop ObjIE.Quit End Sub と言うことがわかったのですが 開くのは他の作業をしたときに行うので 「閉じる」だけをvbaで行いたいのですがどうすればいいのかわかりません。 Sub TEST2() Set ObjIE = CreateObject("InternetExplorer.application") ObjIE.Visible = True '見えるようにする ObjIE.Quit End Sub だと また新たなIEが起動してしまい「現在起動しているIEを閉じる」と言うことができません。 アドバイスをお願い致します。

  • 特定のurlを指定してブロックしたい

    ブラウザはsleipnirを使っています。 あるページをsleipnirで開くと、別にie7が起動して広告ページが開いてしまいます。sleipnirのようにie7にブロックしたいurlを指定してブロックさせる方法はないでしょうか?また、それにかわる広告ページを開かせない方法はないでしょうか?

  • インターネットで調べてVBSで下のようなものを作ってみました。

    インターネットで調べてVBSで下のようなものを作ってみました。 やりたいことは、IEを起動して複数のサイトを複数のタブで表示 したいのですが、サイトの種類分IEも起動してしまいます。 考えているようなことはできないのでしょうか。 ========ここから下です======== Option Explicit Dim objIE Dim objShell 'Shell.Application Set objShell = CreateObject("Shell.Application") Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True 'IEウィンドウを表示 objIE.Navigate2 "http://www.okwave.jp/" Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True 'IEウィンドウを表示 objIE.Navigate2 "http://www.google.co.jp/" Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True 'IEウィンドウを表示 objIE.Navigate2 "http://www.yahoo.co.jp/" ======================= よろしくお願いいたします。

  • 起動したIEのウインドウタイトルを取得する方法

    こんばんは。WindowsXP+VB.NET環境です。 IE = CreateObject("InternetExplorer.Application") IE.Navigate("http://www.yahoo.co.jp") でインターネットエクスプローラを起動した場合に IEのウインドウの上の部分に表示されている 「Yahoo! JAPAN - Microsoft Internet Explorer」という文字と プロセスIDとプロセス名を取得したいのですが どのようなコードを書けば良いでしょうか? WEBサイトで調べていたら起動中の全プロセスのものを全て表示する 方法はあったのですが、起動したIE限定で取得したいです。 IE.IdとかIE.ProcessName、IE.MainWindowTitleのようにしてみたのですが エラーになってしまいました。 あと、別の方法で Dim hProcess As System.Diagnostics.Process = System.Diagnostics.Process.Start("iexplore") hProcess.WaitForInputIdle() Dim pName As String = hProcess.MainWindowTitle としたら出来るようになったのですが、 起動した後に上の方法でやった時のようにIE.Navigate("http://****")で 移動したりしたいのですが、この方法で起動した場合の 方法が分からなくなってしまいました。 IE = CreateObject("InternetExplorer.Application")で起動したIEのように 操作できるようにする方法を教えて頂きたいです。よろしくお願い致します。

  • プログラムからのブラウザ立ち上げ

    VBAなどで CreateObject("InternetExplorer.application") っといった プログラムを書くとIEが立ち上がるのですが これでOperaというブラウザを立ち上げたいのです。 ()内の.applicationの前を色々試したのですが分りませんでした。 宜しくお願いします。m(__)m

  • URL先のページサイズの取り方を教えてください

    Excel VBAでの質問になります。 指定したURL先のWEBページ(.htmlファイルのサイズなど)のサイズを得るにはどうしたらよいでしょうか? FileLen(str)で、strに通常ファイルのパスを指定するとサイズは取得できるのですが、URLを指定してもパラメタエラーになります。URL先のページのサイズを知る方法はありますか。 そのページサイズを保存しておき、後日、そのURLページに変更があったかをチェックしたいと思っています。 よろしくお願い致します。