エクセルマクロVBA「Web連携」Microsoft XMLとDOMの活用例

この講座は有料講座です。
講座の購入後ご覧になれます。

ログインアカウントの新規作成

解説

この動画では、Microsoft XMLとDOMを組み合わせて、まぐまぐの登録解除をする方法を説明しています。Microsoft WinHTTP Services 5.1 を活用する場合との共通点、違いに注意しつつ学んでください。

この教材についての過去の質問・感想

8752 : 小川慶一の回答 (2017-08-23 08:53:08)

田中 宏明さん:

お楽しみください☆

> こんばんは。
> ようやくMicrosoft XMLを少し使えるようになりました。
> インターネットエクスプローラを起動して制御するほうが簡単ですが、こちらのほうが軽快に動作することが実感できました。
> 安定して動作するツールを制作できるレベルを目指していきます。


8746 : 田中 宏明さんのコメント (2017-08-20 22:39:42)

こんばんは。
ようやくMicrosoft XMLを少し使えるようになりました。
インターネットエクスプローラを起動して制御するほうが簡単ですが、こちらのほうが軽快に動作することが実感できました。
安定して動作するツールを制作できるレベルを目指していきます。


4660 : 受講生さんのコメント (2015-07-06 21:35:22)

小川慶一 さん:

わかりました、いろいろ試してみます。
ご回答いただきありがとうございました。

>受講生 さん:
>
>トップページだと、Cookieの値によってどこの気象情報を取ってくるかが変わりそうですね。
>
>ついては、以下の類のページから取得すれば?とも。
>神奈川県東部
>http://weather.yahoo.co.jp/weather/jp/14/4610.html
>
>横浜市港北区
>http://weather.yahoo.co.jp/weather/jp/14/4610/14109.html
>
>
>
>>小川さん
>>
>>こんばんは。
>>YAHOOのトップページより「天気・災害トップ」の時間毎の天気・気温・湿度・降水量・風向・風速を
>>取得したいと考えております。
>>その途中で下記コード「「天気」の摘要・アドレスを抽出」の部分をうまく取得できない状況です。
>>どの部分に誤りがあるか教えていただけますか。
>>お手数をおかけしますが、よろしくお願いいたします。
>>
>>

 
>>Sub main()
>>'〇ライブラリの参照設定
>>'Microsoft XML, v3.0 かそれ以上のバージョン -> XML解析のため
>>'Microsoft HTML Object Library -> HTMLコンテンツの取得と、DOM解析のため
>>
>>    'YAHOO!_JAPAN_画面へアクセス。
>>        Dim xh As New MSXML2.XMLHTTP
>>        Dim pElem As MSHTML.HTMLParaElement
>>        Dim hDoc As New MSHTML.HTMLDocument
>>        Dim e As MSHTML.HTMLHtmlElement
>>        
>>        xh.Open "GET", "http://www.yahoo.co.jp/" & "?time=" & Format(Now, "yymmddhhnnss")
>>        xh.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
>>        xh.send
>>        
>>        Do Until xh.readyState = 4
>>            DoEvents
>>            Debug.Print xh.readyState
>>        Loop
>>        
>>        If xh.Status <> 200 Then
>>            MsgBox "リクエストに失敗しました" & vbNewLine & xh.Status & ":" & xh.StatusText
>>        End If
>>    
>>    'レスポンスヘッダーをすべて出力
>>        'Debug.Print xh.GetAllResponseHeaders
>>    'レスポンスボディーを解析
>>        'Debug.Print xh.responseText 'htmlページをすべて出力してみよう
>>    '(YAHOO!_JAPANトップページの)「天気」のアドレスを抽出
>>        For Each pElem In hDoc.getElementsByClassName("cbysC13")
>>            Debug.Print pElem.href
>>        Next
>>    '(YAHOO!_JAPANトップページの)「天気」をクリック。
>>    '「176-0000」(東京都練馬区)を入力し、「検索」をクリック。
>>    '「市町村名」をクリック。
>>    '「時間」毎の天気・気温・湿度・降水量・風向・風速を抽出。
>>
>>End Sub
>>

>


4657 : 小川慶一の回答 (2015-07-06 20:56:57)

受講生 さん:

トップページだと、Cookieの値によってどこの気象情報を取ってくるかが変わりそうですね。

ついては、以下の類のページから取得すれば?とも。
神奈川県東部
http://weather.yahoo.co.jp/weather/jp/14/4610.html

横浜市港北区
http://weather.yahoo.co.jp/weather/jp/14/4610/14109.html



>小川さん
>
>こんばんは。
>YAHOOのトップページより「天気・災害トップ」の時間毎の天気・気温・湿度・降水量・風向・風速を
>取得したいと考えております。
>その途中で下記コード「「天気」の摘要・アドレスを抽出」の部分をうまく取得できない状況です。
>どの部分に誤りがあるか教えていただけますか。
>お手数をおかけしますが、よろしくお願いいたします。
>
>

 
>Sub main()
>'〇ライブラリの参照設定
>'Microsoft XML, v3.0 かそれ以上のバージョン -> XML解析のため
>'Microsoft HTML Object Library -> HTMLコンテンツの取得と、DOM解析のため
>
>    'YAHOO!_JAPAN_画面へアクセス。
>        Dim xh As New MSXML2.XMLHTTP
>        Dim pElem As MSHTML.HTMLParaElement
>        Dim hDoc As New MSHTML.HTMLDocument
>        Dim e As MSHTML.HTMLHtmlElement
>        
>        xh.Open "GET", "http://www.yahoo.co.jp/" & "?time=" & Format(Now, "yymmddhhnnss")
>        xh.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
>        xh.send
>        
>        Do Until xh.readyState = 4
>            DoEvents
>            Debug.Print xh.readyState
>        Loop
>        
>        If xh.Status <> 200 Then
>            MsgBox "リクエストに失敗しました" & vbNewLine & xh.Status & ":" & xh.StatusText
>        End If
>    
>    'レスポンスヘッダーをすべて出力
>        'Debug.Print xh.GetAllResponseHeaders
>    'レスポンスボディーを解析
>        'Debug.Print xh.responseText 'htmlページをすべて出力してみよう
>    '(YAHOO!_JAPANトップページの)「天気」のアドレスを抽出
>        For Each pElem In hDoc.getElementsByClassName("cbysC13")
>            Debug.Print pElem.href
>        Next
>    '(YAHOO!_JAPANトップページの)「天気」をクリック。
>    '「176-0000」(東京都練馬区)を入力し、「検索」をクリック。
>    '「市町村名」をクリック。
>    '「時間」毎の天気・気温・湿度・降水量・風向・風速を抽出。
>
>End Sub
>


4652 : 受講生さんのコメント (2015-07-04 21:35:04)

小川さん

こんばんは。
YAHOOのトップページより「天気・災害トップ」の時間毎の天気・気温・湿度・降水量・風向・風速を
取得したいと考えております。
その途中で下記コード「「天気」の摘要・アドレスを抽出」の部分をうまく取得できない状況です。
どの部分に誤りがあるか教えていただけますか。
お手数をおかけしますが、よろしくお願いいたします。

 
Sub main()
'〇ライブラリの参照設定
'Microsoft XML, v3.0 かそれ以上のバージョン -> XML解析のため
'Microsoft HTML Object Library -> HTMLコンテンツの取得と、DOM解析のため

    'YAHOO!_JAPAN_画面へアクセス。
        Dim xh As New MSXML2.XMLHTTP
        Dim pElem As MSHTML.HTMLParaElement
        Dim hDoc As New MSHTML.HTMLDocument
        Dim e As MSHTML.HTMLHtmlElement
        
        xh.Open "GET", "http://www.yahoo.co.jp/" & "?time=" & Format(Now, "yymmddhhnnss")
        xh.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        xh.send
        
        Do Until xh.readyState = 4
            DoEvents
            Debug.Print xh.readyState
        Loop
        
        If xh.Status <> 200 Then
            MsgBox "リクエストに失敗しました" & vbNewLine & xh.Status & ":" & xh.StatusText
        End If
    
    'レスポンスヘッダーをすべて出力
        'Debug.Print xh.GetAllResponseHeaders
    'レスポンスボディーを解析
        'Debug.Print xh.responseText 'htmlページをすべて出力してみよう
    '(YAHOO!_JAPANトップページの)「天気」のアドレスを抽出
        For Each pElem In hDoc.getElementsByClassName("cbysC13")
            Debug.Print pElem.href
        Next
    '(YAHOO!_JAPANトップページの)「天気」をクリック。
    '「176-0000」(東京都練馬区)を入力し、「検索」をクリック。
    '「市町村名」をクリック。
    '「時間」毎の天気・気温・湿度・降水量・風向・風速を抽出。

End Sub


3日がかりのその仕事、3分で終わらせる方法教えます。ガラパゴスタディーオンライン講座 ユーザー登録

本講座の動画一覧

  1. 【動画1】 エクセルマクロVBA「Web連携」講座の概要
    【動画1】 エクセルマクロVBA「Web連携」講座の概要 未習得
  2. 【動画2】 エクセルマクロVBA「Web連携」サーバとクライアント
    【動画2】 エクセルマクロVBA「Web連携」サーバとクライアント 未習得
  3. 【動画3】 エクセルマクロVBA「Web連携」ApacheとCGI
    【動画3】 エクセルマクロVBA「Web連携」ApacheとCGI 未習得
  4. 【動画4】 エクセルマクロVBA「Web連携」セッションとポート
    【動画4】 エクセルマクロVBA「Web連携」セッションとポート 未習得
  5. 【動画5】 エクセルマクロVBA「Web連携」クライアントとは
    【動画5】 エクセルマクロVBA「Web連携」クライアントとは 未習得
  6. 【動画6】 エクセルマクロVBA「Web連携」リクエストとレスポンスとは
    【動画6】 エクセルマクロVBA「Web連携」リクエストとレスポンスとは 未習得
  7. 【動画7】 エクセルマクロVBA「Web連携」GETリクエスト
    【動画7】 エクセルマクロVBA「Web連携」GETリクエスト 未習得
  8. 【動画8】 エクセルマクロVBA「Web連携」POSTリクエスト
    【動画8】 エクセルマクロVBA「Web連携」POSTリクエスト 未習得
  9. 【動画9】 エクセルマクロVBA「Web連携」Cookieを使ったリクエスト
    【動画9】 エクセルマクロVBA「Web連携」Cookieを使ったリクエスト 未習得
  10. 【動画10】 エクセルマクロVBA「Web連携」HTMLコンテンツの取得と解析_概要
    【動画10】 エクセルマクロVBA「Web連携」HTMLコンテンツの取得と解析_概要 未習得
  11. 【動画11】 エクセルマクロVBA「Web連携」Microsoft WinHTTP Services 5.1_GETリクエスト
    【動画11】 エクセルマクロVBA「Web連携」Microsoft WinHTTP Services 5.1_GETリクエスト 未習得
  12. 【動画12】 エクセルマクロVBA「Web連携」Microsoft WinHTTP Services 5.1_POSTリクエスト
    【動画12】 エクセルマクロVBA「Web連携」Microsoft WinHTTP Services 5.1_POSTリクエスト 未習得
  13. 【動画13】 エクセルマクロVBA「Web連携」Microsoft WinHTTP Services 5.1_Cookie
    【動画13】 エクセルマクロVBA「Web連携」Microsoft WinHTTP Services 5.1_Cookie 未習得
  14. 【動画14】 エクセルマクロVBA「Web連携」DOM(Document Object Model)を使った解析_概要
    【動画14】 エクセルマクロVBA「Web連携」DOM(Document Object Model)を使った解析_概要 未習得
  15. 【動画15】 エクセルマクロVBA「Web連携」DOMを使った解析_基礎
    【動画15】 エクセルマクロVBA「Web連携」DOMを使った解析_基礎 未習得
  16. 【動画16】 エクセルマクロVBA「Web連携」DOMを使ったサンプル
    【動画16】 エクセルマクロVBA「Web連携」DOMを使ったサンプル 未習得
  17. 【動画17】 エクセルマクロVBA「Web連携」DOM活用のテクニック
    【動画17】 エクセルマクロVBA「Web連携」DOM活用のテクニック 未習得
  18. 【動画18】 エクセルマクロVBA「Web連携」DOMの活用例_メルマガのタイトルを取得
    【動画18】 エクセルマクロVBA「Web連携」DOMの活用例_メルマガのタイトルを取得 未習得
  19. 【動画19】 エクセルマクロVBA「Web連携」DOMの活用例_複数のメルマガ解除を自動化
    【動画19】 エクセルマクロVBA「Web連携」DOMの活用例_複数のメルマガ解除を自動化 未習得
  20. 【動画20】 エクセルマクロVBA「Web連携」Microsoft XMLを活用したコンテンツ取得
    【動画20】 エクセルマクロVBA「Web連携」Microsoft XMLを活用したコンテンツ取得 未習得
  21. 【動画21】 エクセルマクロVBA「Web連携」Microsoft XML_活用例
    【動画21】 エクセルマクロVBA「Web連携」Microsoft XML_活用例 未習得
  22. 【動画22】 エクセルマクロVBA「Web連携」Microsoft XMLとDOMの活用例
    【動画22】 エクセルマクロVBA「Web連携」Microsoft XMLとDOMの活用例 未習得
  23. 【動画23】 エクセルマクロVBA「Web連携」Microsoft Internet ControlsならではのWebコンテンツの取得
    【動画23】 エクセルマクロVBA「Web連携」Microsoft Internet ControlsならではのWebコンテンツの取得 未習得
  24. 【動画24】 エクセルマクロVBA「Web連携」Microsoft Internet Controls_Webコンテンツの取得
    【動画24】 エクセルマクロVBA「Web連携」Microsoft Internet Controls_Webコンテンツの取得 未習得
  25. 【動画25】 エクセルマクロVBA「Web連携」DOMを使ってXMLを解析
    【動画25】 エクセルマクロVBA「Web連携」DOMを使ってXMLを解析 未習得
  26. 【動画26】 エクセルマクロVBA「Web連携」Web連携のよくある問題
    【動画26】 エクセルマクロVBA「Web連携」Web連携のよくある問題 未習得
  27. 【動画27】 エクセルマクロVBA「Web連携」総括
    【動画27】 エクセルマクロVBA「Web連携」総括 未習得
  28. 【動画28】 AJAX通信の解析1: 背景、対応、流れの簡単な説明
    【動画28】 AJAX通信の解析1: 背景、対応、流れの簡単な説明 未習得
  29. 【動画29】 AJAX通信の解析2: 流れと事例の詳細
    【動画29】 AJAX通信の解析2: 流れと事例の詳細 未習得
  30. 【動画30】 クッキーを取得する方法
    【動画30】 クッキーを取得する方法 未習得
  31. 【動画31】 セッションの解析と実装-イントロダクション
    【動画31】 セッションの解析と実装-イントロダクション 未習得
  32. 【動画32】 「セッション」とは?その目的と、ウェブページでの事例
    【動画32】 「セッション」とは?その目的と、ウェブページでの事例 未習得
  33. 【動画33】 セッション解析と実装の落とし穴
    【動画33】  セッション解析と実装の落とし穴 未習得
  34. 【動画34】 セッション解析と実装のサンプルデータ解説
    【動画34】 セッション解析と実装のサンプルデータ解説 未習得

塾長 小川慶一

メニュー

コメント紹介

もっと見る

ページの先頭へ