以前Fiddlerを使ってTrello APIを実行する記事を書きましたが(下記参照)、今回はVBAマクロからTrello APIを叩いてみたいと思います。
Trello APIを使ってカードを投稿するVBAマクロ
折角なので、「Google Calendar APIを使って日本の祝日を取得するマクロ」で取得した各祝日情報をTrelloのカードとして投稿することにします。
- APIキーやトークン、リストIDはこの記事を参考に、事前に取得しておいてください。
- 下記コードはScriptControlを使用しているため、64ビット版のOfficeでは動作しません。
Option Explicit Public Sub Sample() Dim i As Long '-------------------------------------------------- '※必要に応じて変更 '-------------------------------------------------- Const ApiKey As String = "(APIキー)" Const ApiToken As String = "(トークン)" Const ListId As String = "(リストID)" '-------------------------------------------------- With ActiveSheet For i = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row PostTrelloCard .Cells(i, 2).Value, _ ApiKey, _ ApiToken, _ ListId, _ Format(.Cells(i, 1).Value, "yyyy-mm-dd") Next End With MsgBox "処理が終了しました。", vbInformation + vbSystemModal End Sub Private Sub PostTrelloCard(ByVal CardName As String, _ ByVal ApiKey As String, _ ByVal ApiToken As String, _ ByVal ListId As String, _ Optional ByVal CardDue As String = "") 'Trelloの指定したリストにカードを投稿 Dim Url As String Url = "https://api.trello.com/1/cards?idList=" & ListId & _ "&key=" & ApiKey & _ "&token=" & ApiToken & _ "&name=" & EncodeURL(CardName) If Len(Trim(CardDue)) > 0 Then Url = Url & "&due=" & EncodeURL(CardDue & "T00:00:00+09:00") '時間は0時固定 With CreateObject("WinHttp.WinHttpRequest.5.1") .Open "POST", Url, False .Send Select Case .Status Case 200: 'Debug.Print .ResponseText '確認用 Case Else: MsgBox "処理が失敗しました。", vbCritical + vbSystemModal End Select End With End Sub Private Function EncodeURL(ByVal Target As String) As String 'URLエンコード With CreateObject("ScriptControl") .Language = "JScript" EncodeURL = .CodeObject.encodeURIComponent(Target) End With End Function
上記コードを実行すると、問題が無ければ下図のようにカードが投稿されます。
Trelloに一括投稿したい情報がある場合は、今回紹介したマクロのように、外部からAPIを呼び出すのがお手軽で便利です。
Visual Basic Advent Calendar 2017
前回の記事と同様、今回の記事も「Visual Basic Advent Calendar 2017」に参加させていただきます。
この記事へのコメントはありません。