Excel

Trello APIを使ってカードを投稿するVBAマクロ

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

関連記事

  1. Excel

    Office 2016で“ヤツ”を召喚してみた。

    4月1日にMicrosoft Office公式アカウント、MSOffi…

  2. Excel

    右クリックメニューを非表示にするExcelマクロ

    Answersに図形を右クリックしたときのメニューをマクロで非表示にし…

  3. Office関連

    Outlookの連絡先をvcf形式で一括保存する方法

    Outlookの連絡先をvcf形式で保存する場合、通常は「連絡先を v…

  4. Excel

    Google TTSで文字列を読み上げるマクロ(言語自動検出対応版)

    2012/2/15 追記:下記マクロをExcel 2007/201…

コメント

  • コメント (0)

  • トラックバックは利用できません。

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

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP