LoginSignup
0
2

More than 1 year has passed since last update.

Excelの各行をAPIで処理する

Posted at

Excelの各行をAPIで処理するVBAスクリプトの作り方です。
A列のデータをAPIで処理してB列に書き込む簡単なスクリプトです。

JsonConverterのセットアップ

JsonConverterをインストールします。
https://github.com/VBA-tools/VBA-JSON#installation

Excelにボタンをつくる

適当な図形を作成し、右クリックで「マクロを登録」を選択します。

VBAスクリプト

マクロを新規作成し、以下のVBAスクリプトを書きます。
URLやヘッダー、対象とする行数などを修正してください。
C列の日時が入っている行は再実行されないようにしています。

Sub API実行_Click()
    Dim i
    
    i = 2
    Do While i <= 501
        Dim s As String
        Dim dt As String
        
        Application.StatusBar = "A" & i & "を処理しています...(" & Int(i / 501 * 100) & "%)"
        
        dt = Range("C" & i).Value
        s = Range("A" & i).Value
        If dt = "" And s <> "" Then
            Dim req As Object
            Dim url As String
            Dim json As String
            Dim JsonResult As Object
            Dim JsonRequest As Object

            Set JsonRequest = New Dictionary
            JsonRequest.Add "positive", s
            
            url = "https://..."
        
            Set req = CreateObject("MSXML2.XMLHTTP")
            req.Open "POST", url, False
            req.SetRequestHeader "Content-Type", "application/json; charset=UTF-8"
            req.send JsonConverter.ConvertToJson(JsonRequest)
            json = objHttpReq.responseText
            Set JsonResult = JsonConverter.ParseJson(json)
            
            Range("B" & i).Value = JsonResult("result")
            Range("C" & i).Value = Now
        End If
        i = i + 1
    Loop
        
    Application.StatusBar = ""
End Sub

おしまい。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2