VBA用Data APIライブラリ(その2・基本的な使い方)

Movable TypeのVBA用Data APIライブラリの基本的な使い方を解説します。

1.初期化

Data APIライブラリを使うには、まずData APIのオブジェクトを生成して初期化します。
その書き方は以下のようになります。

Dim api As MTDataAPI
Set api = New MTDataAPI
api.init "http://your-host/path-to-mt/mt-data-api.cgi", "クライアントID"

「your-host」と「path-to-mt」の部分は、Movable Typeのインストール先に応じて書き換えます。
また、「クライアントID」の部分には、半角英数字でIDを決めて指定します。

2.sendメソッド

Data APIで通信するには、「send」というメソッドを使います。

1つ目のパラメータで、呼び出すエンドポイントのIDを指定します。
また、2つ目以降のパラメータで、Data APIに渡す情報を指定します。

2つ目以降のパラメータの渡し方は、PHP用ライブラリとほぼ同じです。
ただし、PHP用で連想配列を渡していたパラメータでは、その代わりにScripting.Dictionary型のオブジェクトを渡します。

sendメソッドの戻り値は、Data APIから返された情報になります。
素のData APIではJSON文字列が返されますが、sendメソッドの戻り値はJSON文字列をScripting.Dictionary型に変換した値になります。

3.事例

簡単な事例として、IDが1番のウェブサイト(またはブログ)から記事を読み込み、Excelのワークシートに各記事のタイトルを書き込む例を紹介します。
Excelで昨日の記事の準備作業を行った後、Visual Basicのエディタに標準モジュールを追加し、以下のコードを入力して実行します。

Sub ImportFromMT()
    Dim api As MTDataAPI, i As Integer
    Dim response As Scripting.Dictionary

    Set api = New MTDataAPI
    api.init "http://your-host/path-to-mt/mt-data-api.cgi", "クライアントID"
    Set response = api.send("listEntries", 1)
    If response.Exists("Error") Then
        MsgBox "記事読み込み失敗"
        Exit Sub
    End If
    For i = 1 To response("items").Count
        Cells(i, 1).value = response("items")(i)("title")
    Next
End Sub