Outlookのメール（会議）をTrelloのタスクリストに1クリックで追加しましょう

# はじめに
みなさんTrelloは大好きですか？
私はタスク管理にはTrelloは欠かせません。仕事のことはもちろん、他部署の差し込みから事務的なことまで
Trelloで管理をしてタスクを淡々とこなすのが私の仕事ルーチンであり、同じ方も少なくないと思います。

自主的な業務タスクの追加であれば空いている時間に追加すれば問題ありませんが、メールからの急な差し込みタスクとなるとそう簡単にはいきません。集中して仕事をしている最中にわざわざメールの内容を確認してタスクリストに手入力するのは面倒極まりないことですから。
そこで簡単に差し込みタスクを含んだメールをTrelloに追加する仕組みを作りたいと思います。
(またOutlook VBAの記事が少ないのでその布教としても)

今回の目標では<b>簡単にTrelloのリストに詳細なタスクを追加する</b>ことを目標にしたいと思います。
言い換えると

# 目標
<h3>ワンクリックで、選択したメールのタイトルから本文を含めたカードをTrelloのリストに追加する。<h3/>

#Trello
Trelloはトヨタ発祥の「カンバン方式」を参考に作成された、タスク管理ツールになります。
windows, macOS, iOS, Android, Webアプリケーションなど様々な環境で使用することができる、つまりどこでも管理ができる素晴らしいツールです。![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313381/9736d4ac-8570-f080-bb2a-ed92aa46defb.png)
↑これは私がTrelloを使って実際に管理しているボードです。

# 手順
1. TrelloからAPI Keyを取得する。
2. TrelloからTokenを取得する。
3. タスクを追加するボード、リストのIDを取得する。
4. Outlook VBAからTrello APIを呼び出してカードを作成するマクロを作成。
5. クイックアクセスツールバーに追加

# Trello側の手順
APIを使うため、API KeyとTokenが必要になります。
### 1. API Keyの取得
ここから取得します。https://trello.com/app-key
このページのKey内の値を保存しておきます。
### 2. Tokenの取得
https://trello.com/1/authorize?key=
key=のイコールの先に上記のAPIKeyをペーストします。
すると、承認画面が出るので、そこでAllowを入力するとTokenが発行されるので保存します。

###3.  ボード・リストのIDを取得
追加するカード（タスク）をどこに追加するのかの情報を取得します。

ボードのID取得
```https://trello.com/1/members/<username>/boards?key=<Key>&token=<Token>　```
「username」はプロファイルから「key」「token」は先ほどのものから入力します。
ここからカードを追加したボードのIDを選択します。

リストのIDを取得
```https://trello.com/1/boards/<BoardのID>/lists?key=<Key>&token=<Token>&fields=name　```
<>内について同文

これにて投稿するためのTrello側の下地は整いました。

###4. マクロの作成
作り方は割愛しました。ご参考ください。
（Outlookに開発タブがない場合は、オプションのリボンの設定から「開発」タブを追加してください。）

```vba:カード作成
Public Sub Trelloにタスク追加()
    '変数の宣言
    Dim objIns As Inspector
    Dim APIKey As String
    Dim Token As String
    Dim BoardId As String
    Dim ListId As String
    Dim url As String
    Dim param As String
    
    'メールリストから選択したメールのタイトルと本文を取得
    Subject = Application.ActiveExplorer.Selection(1).Subject
    Body = Application.ActiveExplorer.Selection(1).Body
    
    APIKey = "hogehogehoge
    Token = "hugahugahuga
    idList = "piyopiyopiyo"
    
    'カード作成するAPI（リストのIDはここのparamで使用します）
    url = "https://trello.com/1/cards"
    param = "&key=" + APIKey + "&token=" + Token + "&idList=" + idList + "&name=" + Subject + "&desc=" + Body
       
    'HTTPリクエスト
    Dim xmlhttp As Object
    Set xmlhttp = CreateObject("msxml2.xmlhttp")
    xmlhttp.Open "POST", url, False
    xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    xmlhttp.Send (param)
End Sub
```

###5. クイックアクセスツールバーに追加
![スクリーンショット 2021-12-17 230721.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313381/c748efc0-4070-83d7-8729-ee05b3d4b43e.png)
ここに表示されれば、メールを選択後に簡単にクリックできます。
設定方法は、画像で表示されている個所で「クイックアクセスツールバーのユーザ設定」→「コマンドの選択」の選択リストからマクロで作成したマクロを右のリストに追加
これで準備完了です。

###最後に
後は、Trelloに追加したいメールをリストから選択してボタンを押せば、ワンクリックでタスクが作成されます。
目標達成です！

###参考

<a href="https://qiita.com/isseium/items/8eebac5b79ff6ed1a180">Trello API を叩いてカードを作成する方法（curl利用）<a/>
<a href="https://developer.atlassian.com/cloud/trello/rest/">The Trello REST API <a/>
<a href="https://docs.microsoft.com/ja-jp/office/vba/outlook/concepts/getting-started/writing-an-outlook-macro"> Outlookマクロの作成<a/>