【EXCEL VBA】WinHttpRequestを使った YahooJapan のHTML取得サンプル

VBA・Officeカテゴリを表すパンダのイラスト VBA・Office

Excel VBAで WinHttpRequest オブジェクトを使用して、WebページのHTMLをシンプルに取得するサンプルコードです。HTTP通信の同期実行と文字コード変換の基本的な流れを確認できます。

前提条件

  • Windows 環境の Excel (VBA)
  • VBEの「ツール」>「参照設定」から Microsoft WinHTTP Services, version 5.1 にチェックを入れること

サンプルコード

Option Explicit

Sub HTML取得()
    Dim Http As New WinHttpRequest
    Dim URL As String
    Dim HTML As String
    
    URL = "https://www.yahoo.co.jp/" ' サンプルURL
    
    With Http
        .Open "GET", URL, False ' False = 同期実行
        .Send
        
        If .Status <> 200 Then
            Err.Raise 5, , "HTML の取得に失敗しました。ステータスコード: " & .Status
        Else
            ' レスポンスボディをShift-JISからUnicodeへ変換
            HTML = StrConv(.ResponseBody, vbUnicode, 1041)
            Debug.Print HTML
        End If
    End With
End Sub

コードのポイント

  • 早期バインディング: New WinHttpRequest を利用するため、事前に参照設定が必要です。
  • 文字コード変換: レスポンスがバイナリ (ResponseBody) で返されるため、StrConv を用いて日本語環境向けの文字コードに変換しています。

注意点

対象サイトの常時SSL化(HTTPS)に伴い、URLは https:// を指定してください。また、APIやスクレイピングを行う際は、相手サーバーに負荷をかけないよう適切なウェイトを考慮してください。

この記事の更新履歴

この記事は、生成AIを活用した自動レビュー・更新フローにより内容を見直し、必要な修正を反映しています。

2026年9月29日

  • 変更コードブロックのマークアップを改善し、読みやすさを向上させました。
  • 追加WinHttpRequestの前提条件とエラーハンドリングに関する解説を追加しました。

文書情報

記事タイトル
【EXCEL VBA】WinHttpRequestを使った YahooJapan のHTML取得サンプル
作成日
更新日
Source URL
https://papanda925.com/?p=480

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

タイトルとURLをコピーしました