初心者ですが宜しくお願いいたします。
環境:EXCEL 2007
簡単な情報を取得してシートに入れていきたいと思っています。
参考サイトを拝見し以下のコードを見つけました。
Sub test()
Dim oHttp As Object
Set oHttp = CreateObject("MSXML2.XMLHTTP")
oHttp.Open "GET", "取得サイトのURL", False
oHttp.Send
Debug.Print oHttp.responseText
End Sub
試しに天気予報から今日の天気を取得しようと思い、
http://weather.yahoo.co.jp/weather/jp/27/6200.html のサイトからHTMLを取得し、
イミディエイトウィンドウで "今日の天気" の語句を検索しましたが、見つかりませんでした。
他のサイトでも試してみましたが、必要な情報がHTMLに含まれていないようです。
切り出したい文字列が見つからないのは、取得方法に何か問題があるのでしょうか?
素人質問で本当に申し訳なく思います。
何か参考になるサイトや参考書等でもかまいませんので、
お知恵を貸していただけると助かります。
宜しくお願いいたします。
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.ht … 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)とか表示文字数を減らしたり】
して、テストの方法を試行錯誤することが大事だと思います。
頑張って【初心者】を脱出してください。
ありがとうございます。
なるほど。イミディエイトウィンドウには表示される文字数に制限があったのですね。基本は大事だと痛感いたしました。
jcctaira様の言われるように基本をもっと学び、自分の中でしっかりとしたテスト環境を構築できるようにしたいと思います。
仕事でたまに使う程度の知識から始めたVBAのため、本当に基本がなってません。早く初心者から抜け出したいですが・・・
先はまだまだ長そうです。これからも質問することはあると思いますが、見つけた時はお叱り、助言いただけたらと思います。本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- オープンソース Python openpyxlを使用したセル番地の使用について 1 2023/08/03 22:05
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
TreeViewのChild Node
-
Yahoo! JAPAN IDを新規取得でき...
-
ps3で久しぶりにCDの音楽情報取...
-
CSSのLicense
-
プライバシーマーク取得に際し...
-
VB.NETで他のアプリが完全に起...
-
VB or VBScriptでPCの製造番号...
-
表示している画面サイズの取得方法
-
【PHP】郵便番号から近隣のお店...
-
URLからタイトルを取得したい!
-
get_headersでLast-Modified
-
自分は小学校の教員免許だけ持...
-
【C#】FindWindowExの使い方を...
-
Windows Media Player> CD情報...
-
C# ASP.NET でIPアドレスからア...
-
簡単に短時間でたくさんメール...
-
DMMの動画を全件取得したのです...
-
積立投資してます。現在平均取...
-
[Active Basic]デスクトップの...
-
ミュージックのアートワークを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「取得先」という表現について
-
Yahoo! JAPAN IDを新規取得でき...
-
ps3で久しぶりにCDの音楽情報取...
-
自分の掲示板にアクセス解析を...
-
DMMの動画を全件取得したのです...
-
IEを使わないでhtmlテキストを...
-
IPアドレスとMACアドレスを取得...
-
ミュージックのアートワークを...
-
【VBA】EXCELブックを開かずに...
-
format関数について
-
ローカルのコンピュータ名を取...
-
不正競争防止法に該当するので...
-
【C#】FindWindowExの使い方を...
-
アクセスの度にIPアドレスを変...
-
EXCEL、マクロ-改ページ行番号...
-
Excel VBA:特定の文字列以降(...
-
VBAでPDFのアクティブページ番...
-
VB2005でXMLデータから複数ある...
-
VBAでPDFファイルの文書のプロ...
-
perl LWPでURLにアクセスした時...
おすすめ情報