Office関連

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

RSSの日付を変換するVBAマクロ前のページ

【感想】僕と君の大切な話17話次のページ

関連記事

  1. Office関連

    指定したAccessファイルで「データベースの最適化/修復」を実行するVBAマクロ

    大分前の記事になりますが、開いているデータベースを最適化するマクロのコ…

  2. Office関連

    JPEG画像の回転情報を変更するVBAマクロ

    mougに「マクロでJPEG画像のExif(Orientation)を…

  3. Office関連

    [Office 2016]コマンド検索即実行、便利な「Tell Me」機能

    ※ 下記情報はOffice 2016 Preview版を元にしています…

  4. Office アドイン

    [Office用アプリ]マニフェストファイルをSharePointに配置する。

    今更になりますが、今回はマニフェストファイルをSharePoint上に…

  5. Office関連

    Word 2013では文書にオンライン ビデオを挿入できるようになりました。

    ※ この情報はOffice 2013 カスタマー プレビュー版を元にし…

  6. Office関連

    [Excel Services ECMAScript]ループによる入力と一括入力の処理時間について

    埋め込んだExcelワークブックのセルに対して、ループで1セルずつ入力…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP