【VBA】VBAでBacklog APIを利用してユーザー情報を操作する

VBA

Backlogはタスクを管理するWebアプリケーションです。
APIが提供されているので、ブラウザ上のBacklogでできる操作をAPIから行えます。

Backlogの課題を操作する記事を以前書きましたが、今回はVBAからAPIを利用して
ユーザーの取得を行ってみます。

動作環境

  • Windows10 Home 64bit
  • Microsoft Office 365 Business
  • Backlog フリープラン

事前準備

参照設定

以下の3つの参照設定を利用するので、VBAエディターの参照設定でチェックを入れます。

  1. Microsoft XML v6.0
  2. Microsoft Scripting Runtime
  3. Microsoft VBScript Regular Expressions 5.5

参照設定の方法は以下をご覧ください。

VBAで参照設定を行う

VBA-JSONの導入

Backlog APIでは結果がJSON形式で返ってきます。
VBAではJSONをパースする標準ライブラリがないので、VBA-JSONを利用します。

VBA-tools/VBA-JSON
JSON conversion and parsing for VBA. Contribute to VBA-tools/VBA-JSON development by creating an account on GitHub.

git cloneまたはzipファイルをダウンロードして、JsonConverter.basを
VBAのプロジェクトにインポートします。

導入方法はVBAエディターを開き、プロジェクトウィンドウでVBAProjectを
右クリックしファイルのインポートをクリックします。

VBA-JSONのJsonConverter.basを選択して「開く」をクリックします。

標準モジュールにJsonConverterが表示されれば、VBA-JSONの導入は完了です。

APIキーを取得

Backlog APIを利用するにはAPIキーを取得する必要があります。

Backlog ヘルプセンター
Backlog ヘルプセンターではBacklogを初めて使う方向けの使い方ガイド、運用のコツやプロジェクト管理に役立つ活用ガイド、よくあるご質問などをご用意しております。ユーザーコミュニティでは他のユーザーとつながって、Backlogの疑問を解決することもできます。

configシートを用意し、B1セルに利用しているBacklogのURLと
B2セルに取得したAPIキーを入力しておきます。

ユーザーの一覧を取得する

Backlog APIを利用してスペースのユーザーの一覧を取得します。

userシートを事前に作成しておき、APIから取得した情報をuserシートに書き込みます。

 

Backlog APIを利用してユーザー情報の一覧を取得するコードです。

 

URLのキャッシュがあると、前のGETの結果を利用してしまうので
下記を参考にRequestHeaderに値を入力してsendします。

Excel VBA で サーバーが動いていないのにMSXML2.XMLHTTPのレスポンスが返る?|teratail
CentOSにてPython FlaskによるWebサーバーを立ち上げ、Excel VBAよりこのサーバーに対するHTTP送受信を試みています。VBAにて以下のコードのようにリクエストすると、一見、正常のレスポンスが返ってきます。(通信エラーなどは発生していません) Set o

 

Backlog APIの結果が複数の内容を含むもの(ユーザー一覧取得課題一覧取得など)ではレスポンスボディの最初に[と最後に]が付いています。事前準備で導入したVBA-JSONは[]が付いているとパースできないため括弧を削除しておきます。

 

VBA-JSONはBacklog APIの結果が複数の内容を含むもの(ユーザー一覧取得課題一覧取得など)で最後の内容しか取得できません。SplitJsonUserListResult内で正規表現を使用して、取得結果を1個1個のデータに分割し、配列として返しています。

GetUserListを実行するとユーザーの一覧がuserシートに表示されます。

コメント