• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA web情報取得(スクレイピング)について)

VBA web情報取得(スクレイピング)について

このQ&Aのポイント
  • VBAを使用してweb情報を取得する方法について解説します。
  • VBAを使ってwebから情報を取得し、Excelのシートにデータを入力する方法を紹介します。
  • webサイトからHTMLを取得し、必要な情報を抽出する際に見つかりにくい場合、取得方法に問題がある可能性があります。参考になるサイトや参考書を探すことをおすすめします。

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

  • ベストアンサー
  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.2

tokyo2199さん こんにちは。    以下のマクロでテストを行なって確認下さい。 「今日の天気」の文字はあると思います。   Sub test()  Dim oHttp   As Object  Dim 文字位置 As Long  Set oHttp = CreateObject("MSXML2.XMLHTTP")  oHttp.Open "GET", "http://weather.yahoo.co.jp/weather/jp/27/6200.html", False  oHttp.Send  文字位置 = InStr(oHttp.responseText, "今日の天気")  Debug.Print 文字位置  Debug.Print Mid(oHttp.responseText, 文字位置, 1000) End Sub > 初心者ですが 基本をしっかり勉強してくださいね。 問題は「イミディエイトウィンドウ」には表示される文字数には【限界】があります。 よって、今回Debug.Print oHttp.responseTextでHTMLを表示させていますが、文字数が 多いので、最初の方の文字が切れて表示されていません。 よって「今日の天気」の文字が見つけられなかったのだと思います。   初心者を脱却するには、人のプログラムを試すのも大事ですが、自分で色々工夫 【InStrとか命令を入れたり、 Debug.Print mid(oHttp.responseText,1000,1000)とか表示文字数を減らしたり】 して、テストの方法を試行錯誤することが大事だと思います。   頑張って【初心者】を脱出してください。

tokyo2199
質問者

お礼

ありがとうございます。 なるほど。イミディエイトウィンドウには表示される文字数に制限があったのですね。基本は大事だと痛感いたしました。 jcctaira様の言われるように基本をもっと学び、自分の中でしっかりとしたテスト環境を構築できるようにしたいと思います。 仕事でたまに使う程度の知識から始めたVBAのため、本当に基本がなってません。早く初心者から抜け出したいですが・・・ 先はまだまだ長そうです。これからも質問することはあると思いますが、見つけた時はお叱り、助言いただけたらと思います。本当にありがとうございました。

その他の回答 (1)

回答No.1

まず、自分で検証しませんか? 取得した内容すべてを、テキストなり、HTML文で、出力してください。 どうですか、サイトのソースと同じですか? それから質問しましょう。

tokyo2199
質問者

お礼

ありがとうございます。 基本ができていないため、比較方法もサイトソースとイミディエイトウィンドウを比べる程度でした。 きちんとテストできるようにしっかり基本を学びたいと思います。