下記記事の通り「地域経済分析システム RESAS」のAPIが公開されたので、さっそくVBAから使ってみました。
内閣官房 まち・ひと・しごと創生本部事務局と内閣府 地方創生推進室は、地域経済分析システム「RESAS(リーサス)」のAPI(RESAS-API)を11月1日に公開した。登録を行えば、誰でも無料で利用できる。
https://codezine.jp/article/detail/9792 より
APIの利用登録
RESAS-APIを使うには、まず利用登録をする必要があります。
- https://opendata.resas-portal.go.jp/ にアクセスし、「RESAS-API利用登録(無料)」をクリックします。
- RESAS-API利用登録画面が表示されたら、メールアドレスや氏名、利用目的といった必要事項を入力し、「入力内容確認」ボタンをクリックします。
- 入力したメールアドレス宛に、すぐに利用登録仮完了の案内メールが届きます。私が登録したときはメールが“迷惑メール”として引っ掛かってしまったので、このメールが届かない方は一度迷惑メールフォルダを確認してみてください。
- 利用登録仮完了の案内メールに記載されたURLを開き、登録を完了します。
- 無事に利用登録が完了すると、画面にAPIキーが表示されます。このAPIキーはメールで送られてこないので、忘れずにコピーしておきましょう。


登録画面は黒背景でカッコイイのですが、プルダウン項目が非常に見づらかったです(Firefox利用)。


APIの利用方法
APIの利用方法は下記Webページに詳しく記載されています。
- RESAS-API – API概要
- https://opendata.resas-portal.go.jp/docs/api/v1-rc.1/index.html
- RESAS-API – API詳細説明
- https://opendata.resas-portal.go.jp/docs/api/v1-rc.1/detail/index.html
エンドポイント(https://opendata.resas-portal.go.jp)にGETでリクエストを投げるだけなので、非常に使いやすいです(レスポンスはJSON形式)。
注意点としては、リクエストを投げる際にヘッダー「X-API-KEY」(値は上記手順で取得したAPIキー)を付けることです。
これがないと403エラーが返ってきてしまいます。
RESAS-APIを呼び出すVBAコード
というわけで、さっそくVBAマクロからAPIを呼び出してみたいと思います。
※ 下記コードはScriptControlを利用しているため、64ビット版のOfficeでは動作しません。
Option Explicit
Public Sub Sample()
'RESAS-APIを使って都道府県一覧を取得
Dim url As String
Dim jso As Object
Dim result As Object
Dim itm As Object
Const api_key As String = "(取得したAPIキー)"
url = "https://opendata.resas-portal.go.jp/api/v1-rc.1/prefectures"
Set jso = GetResasResponse(url, api_key)
If Not jso Is Nothing Then
On Error Resume Next
Set result = VBA.CallByName(jso, "result", VbGet)
On Error GoTo 0
If Not result Is Nothing Then
For Each itm In result
Debug.Print "都道府県コード:" & VBA.CallByName(itm, "prefCode", VbGet) & vbTab & _
"都道府県名:" & VBA.CallByName(itm, "prefName", VbGet)
Next
End If
End If
End Sub
Private Function GetResasResponse(ByVal url As String, _
ByVal api_key As String) As Object
Dim js As String
Dim jso As Object
On Error Resume Next
With CreateObject("WinHttp.WinHttpRequest.5.1")
.Open "GET", url, False
.SetRequestHeader "X-API-KEY", api_key
.Send
If .Status = 200 Then
js = "(" & .ResponseText & ")"
With CreateObject("ScriptControl")
.Language = "JScript"
Set jso = .CodeObject.eval(js)
Select Case Left(VBA.CallByName(jso, "statusCode", VbGet), 1)
Case "4", "5" '4xx Client Error, 5xx Server Error判定
MsgBox js, vbExclamation + vbSystemModal, "Error"
Exit Function
End Select
End With
End If
End With
On Error GoTo 0
Set GetResasResponse = jso
End Function
上記コードを実行すると、問題なくAPIの呼び出しが行われれば、下図のように都道府県の一覧がイミディエイト ウィンドウに出力されます。

上記は単に都道府県名を取得しただけですが、「API一覧」を見る限り、特許一覧や人口ピラミッドなど、かなりの情報を取得することができるようです。
RESASで何ができるか、分かりやすく解説されたマンガ(下記)もあるので、興味がある方はご参照ください。
RESASまんがブックレット「そうだったのか!RESASでわかる私たちの地域」 – まち・ひと・しごと創生本部
http://www.kantei.go.jp/jp/singi/sousei/resas/information/index_manga_booklet.html



















この記事へのコメントはありません。