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

    日経ソフトウエア 2014年 10月号 「VBAでExcelを業務アプリ化」

    購読している雑誌、日経ソフトウエア 2014年 10月号に「イベントプ…

  2. Excel

    マクロでリボンを最小化する。

    mougの回答用に書いたコードです。忘れないうちにメモ。・…

  3. Office関連

    2つの文書を比較するWordマクロ

    先日テキスト比較ソフトの「ちゃうちゃう!」がバージョンアップされたこと…

  4. Office関連

    [Excel Services ECMAScript]ActiveWorkbookのパスを取得する。…

    埋め込んだExcelワークブックのパスを取得するコードです。 (さ…

  5. Office アドイン

    [Office用アプリ]アプリ開発コンテスト・受賞者発表

    以前書いた記事でお知らせしていた「Apps for Office アプ…

  6. Office アドイン

    [Office用アプリ]Office ストアのURLリスト

    Microsoft Office StoreのURLをリスト化しました…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP