Excel VBA 逆引き集 | REST APIのGET

Excel VBA
スポンサーリンク

REST API の GET 呼び出し

Excel VBAで「外部サービスからデータを取得したい」ときに使うのが REST API の GET リクエスト です。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。


基本の考え方

  • REST APIとは?
    Web上のサービスにアクセスして「データ取得(GET)」「データ送信(POST)」などを行う仕組み。
  • GETリクエストの特徴:
    • URLにパラメータを付けて呼び出す
    • データを取得する用途に使う
    • レスポンスはJSONやXML形式が多い

テンプレ1:シンプルなGETリクエスト

Sub RestAPI_GET_Basic()
    Dim http As Object
    Dim url As String
    Dim response As String
    
    ' APIのURL(例:ダミーのJSON API)
    url = "https://jsonplaceholder.typicode.com/posts/1"
    
    ' HTTPオブジェクト作成
    Set http = CreateObject("MSXML2.XMLHTTP")
    
    ' GETリクエスト送信
    http.Open "GET", url, False
    http.Send
    
    ' レスポンス取得
    response = http.responseText
    
    ' 結果を表示
    MsgBox response
End Sub
VB
  • ポイント:
    • MSXML2.XMLHTTP を使うのが基本。
    • responseText にJSON文字列が入る。

テンプレ2:ステータスコードをチェック

Sub RestAPI_GET_Status()
    Dim http As Object
    Dim url As String
    
    url = "https://jsonplaceholder.typicode.com/posts/1"
    
    Set http = CreateObject("MSXML2.XMLHTTP")
    http.Open "GET", url, False
    http.Send
    
    If http.Status = 200 Then
        MsgBox "成功: " & http.responseText
    Else
        MsgBox "エラー: " & http.Status & " " & http.statusText
    End If
End Sub
VB
  • ポイント:
    • http.Status でHTTPステータスコードを確認。
    • 200なら成功、それ以外はエラー。

テンプレ3:JSONレスポンスを解析してシートに展開

※事前に「VBA JSON」ライブラリ(JsonConverter.bas)を導入しておくと便利。

Sub RestAPI_GET_ParseJSON()
    Dim http As Object
    Dim url As String
    Dim response As String
    Dim Json As Object
    
    url = "https://jsonplaceholder.typicode.com/users/1"
    
    Set http = CreateObject("MSXML2.XMLHTTP")
    http.Open "GET", url, False
    http.Send
    
    response = http.responseText
    
    ' JSON解析
    Set Json = JsonConverter.ParseJson(response)
    
    ' シートに展開
    Dim ws As Worksheet: Set ws = Worksheets("Data")
    ws.Cells.Clear
    ws.Range("A1").Value = "名前"
    ws.Range("B1").Value = "メール"
    
    ws.Range("A2").Value = Json("name")
    ws.Range("B2").Value = Json("email")
    
    MsgBox "APIデータをシートに展開しました!"
End Sub
VB
  • ポイント:
    • ParseJson でJSONをDictionaryに変換。
    • キー指定で値を取り出せる。

テンプレ4:パラメータ付きGETリクエスト

Sub RestAPI_GET_Params()
    Dim http As Object
    Dim url As String
    Dim response As String
    
    ' パラメータ付きURL
    url = "https://jsonplaceholder.typicode.com/comments?postId=1"
    
    Set http = CreateObject("MSXML2.XMLHTTP")
    http.Open "GET", url, False
    http.Send
    
    response = http.responseText
    MsgBox response
End Sub
VB
  • ポイント:
    • URLに ?key=value を付けて条件指定。
    • 実務では検索条件や認証トークンを付けることが多い。

例題で練習

'例1:シンプルなGETリクエスト
'例2:ステータスコードをチェック
'例3:JSONレスポンスを解析してシートに展開
'例4:パラメータ付きGETリクエスト
VB

初心者向けポイント

  • MSXML2.XMLHTTPを使う → VBAでHTTP通信の基本。
  • GETはデータ取得専用 → URLにパラメータを付ける。
  • レスポンスはJSONやXML形式 → JSONならライブラリで解析。
  • ステータスコードを確認してエラー処理 → 実務では必須。
  • シートに展開すると業務で使いやすい → API連携の定番パターン。

👉 この「REST API GETテンプレ」を覚えておけば、Excel VBAで 外部サービスからデータを取得し、シートに展開して業務に活用する処理 を簡単に作成できます。

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