以前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」に参加させていただきます。























この記事へのコメントはありません。