下記記事の通り「地域経済分析システム 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
この記事へのコメントはありません。