• ベストアンサー

VBAからhttpを呼びソースを取得

ブラウザでURLを指定すると、htmlがサーバーから返され表示されます。 それをVBAからURLを指定し、htmlのソースを文字列で受け取りたいと思います。 普通にshellで渡すとブラウザが起動されてしまうし・・・。 方法があれば教えてください。

  • rally
  • お礼率61% (339/553)

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

HTMLテキストを取るには Sub test01() Set obj = CreateObject("InternetExplorer.Application.1") 'IEを新規オブジェクトとして宣言 obj.Visible = True targetURL = "http://okweb.jp/kotaeru.php3?qid=1044759" obj.Navigate (targetURL) '指定アドレスに飛ばす '時間待ち(objが動作中であれば) Do While obj.busy Loop '表示 obj.Visible = True For n = 0 To obj.Document.All.Length - 1 If UCase(Trim(obj.Document.All(n).tagname)) = "HTML" Then s = obj.Document.All(n).outerhtml 'HTMLのテキスト Cells(n + 1, 1) = s 'エクセルONLY用 End If Next End Sub 2,3のWEBに載ってたものの寄せ集めですが。 なかなか載って無いものですね。 sが文字列です。エクセルなどでは、長さ制約あり。 WSHやBASP21やWEBBROWSERなど使う方法があるようですが、不勉強で全体を見渡せていないので取りあえず。

rally
質問者

お礼

IE自体をオブジェクトで持っていれば、ログインから実行していけるので画面遷移の問題もクリアですね。 かなり参考になりました。 Webアプリケーションの自動テストツールの作成にも使えそうですね。

その他の回答 (1)

  • incho0922
  • ベストアンサー率41% (84/204)
回答No.1

同様の質問をしたことがあるので・・・^_^; BASP21コンポーネントのW3get関数を利用する方法があります。文字列で「受け取る」ことはできませんが。

参考URL:
http://www.hi-ho.ne.jp/babaq/basp21.html
rally
質問者

補足

BASP21、いいですね。 文字列で受け取らなくても、ソースを取得してファイルオープンすればいいですからね。 サイトを参考に取得することができました。 もう少し教えてください。 あるページで試してみると「ちゃんとしたルートから遷移してください」のエラーとなりました。 クッキーの指定でどうにかなりそうなのですが、どんな値を渡せばいいのかわかりません。 どこかを見ればわかるものでしょうか? (例えば、Temporary Internet Fileとか)

関連するQ&A

  • EXCELのVBAから画像ファイルを指定してPhotoEditorを起動したい。

    Excel2002のVBA(Ver6.0)を使っています。指定した画像ファイル(セル内に文字列データとして格納)をPhotoEditorを起動させて表示させるのが目的です。Shell関数ではPhotoEditorは起動できるのですが、ファイルが指定できませんでした。GetObject関数が使用できるではと思い、試してみましたがうまくいきません。  どなたか解決方法をお教えください。(ちなみにユーザーフォームでの表示はできています。)

  • apacheにソースが表示されてしまう。

    下記を参考にして webstartを作成したいのですが 自宅でブラウザからURLにjnlpを指定すると 起動ではなくjnlpのソースコードがブラウザ上に表示されてしまいます。 直にjnlpファイルを起動するとwebstartはうまく起動します。 すなわち、ブラウザから指定するとwebstartが起動しないと言っております。 これは、apacheの設定http.confが悪いですか? http://www.geocities.jp/java3dtest/QA09/question9.html

    • ベストアンサー
    • Java
  • ソースコードを表示するブラウザはありますか?

    次のような機能を持ったブラウザを探しているのですが、このようなものはあるのでしょうか? (1)URLを指定するとそのページのソースコードを表示する。 (2)ソースコード中の<A>タグ(またはURL)をクリックすると、そのURLをIEなどのHTMLを解釈して表示するブラウザに渡して表示させる。

  • Pythonで、htmlソースを取得した時

    urllib2.urlopen('url').read() 上記の方法でhtmlのソースを取得していますが、あるデータにおいて、 ブラウザ上→存在する ブラウザでソースを表示→存在する Pythonでソースを取得→存在しない といった事が起こり、取得出来ないデータがあります。 1. 何故このような事が起こるのか、考えられる原因 2. このデータをPythonで取得する方法はあるか、あるならどんな方法か 以上2点を教えてください。 宜しくお願いいたします。

  • javascriptでブラウザに表示されている文字列を取得したい

    javascriptでブラウザに表示されている文字列を取得したい 宜しくお願いします。 javascriptを使って、現在表示されているブラウザの文字列を取得する方法はありますか? ソースから取得したり、出来そうな気がするのですが、検索しても方法が見つかりませんでした。 もしくは、ブラウザのセキュリティで出来ないのでしょうか?

  • VBAのテキストボックスについて

    VBAのテキストボックスについて質問させてください。 テキストボックス内の文字列をハイパーリンクにする事は可能でしょうか? 具体的にはテキストボックス内のURLをクリックすると ブラウザが立ち上がり、URLのサイトにアクセスすると言ったものです。 すごく平凡なんですけど、方法が見つからなかったのもで・・・。 どなたかご教授お願いします。

  • excel VBA で、エクスプローラを開くとき

    excel VBA で、フォルダを指定してエクスプローラーを開くことができますが、そのとき検索文字も指定できるのでしょうか。 具体的には、以下のようにpath0でパスを指定して、エクスプローラーが開きます。 Shell "c:\windows\explorer.exe " + path0, vbNormalFocus このとき、検索文字列を指定したいのですが、可能でしょうか? エクスプローラの右上の虫眼鏡のウインドウに入れる文字を指定して、検索を自動実行させたいのですが。

  • ExcelのVBAで ホームページのソースコード

    vExcelのVBAで ホームページのソースコード一部分をぬきたいのですが、わかるかたおしえてください。 http://onlinestore.barneys.co.jp/html/item/001/049/item48187.html こちらのサイトのZOOMUPした時の画像のURLを取得したいのです。 A列には、URL でB列にはその画像URLを自動で取得というかんじです。 わかるかた教えていただけないでしょうか。

  • VBAでエンコードができる?

    お世話になってます。 現在、VBAでURLを作成(文字列を連結)して、IEを起動させようとしています。 そこで、日本語(DB名称)をエンコードして、パラメータとして渡したいのですが、エンコードする方法がわかりません。 どなたかわかる方がおられましたら、教えて下さい。 宜しくお願いします。

  • エクセルVBAでメモ帳制御はできますか?

    WIN98SEでエクセル2000を使用しています。 VBAで下記のことは可能でしょうか? 1.エクセルで作成したデータ(文字列のみ)をメモ帳(Notepad)に貼り付けたい。 2.データを貼り付けた後のメモ帳を、名前を付けて保存したい。 Shellを使ってメモ帳を起動するまでは出来たのですが、Copyしたデータを貼り付けることが出来ずに困っています。 どういった方法が有るのか教えていただけないでしょうか?宜しくお願いします。

専門家に質問してみよう