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を付けて条件指定。 - 実務では検索条件や認証トークンを付けることが多い。
- URLに
例題で練習
'例1:シンプルなGETリクエスト
'例2:ステータスコードをチェック
'例3:JSONレスポンスを解析してシートに展開
'例4:パラメータ付きGETリクエスト
VB初心者向けポイント
- MSXML2.XMLHTTPを使う → VBAでHTTP通信の基本。
- GETはデータ取得専用 → URLにパラメータを付ける。
- レスポンスはJSONやXML形式 → JSONならライブラリで解析。
- ステータスコードを確認してエラー処理 → 実務では必須。
- シートに展開すると業務で使いやすい → API連携の定番パターン。
👉 この「REST API GETテンプレ」を覚えておけば、Excel VBAで 外部サービスからデータを取得し、シートに展開して業務に活用する処理 を簡単に作成できます。
