Azure DevOpsとExcelを同期させる

Azure DevOpsでタスク管理していても使い慣れてるExcelでやりたいことありませんか。
- ガントチャートで進捗を見たい
- 工数を人月で出したい
- 大量のWork Itemをちまちま更新するのめんどくさい

などAzure DevOpsではかゆいところに手が届かないことがよくありました。  
そんなときExcel連携ツールが便利だったのでご紹介します。  
「Azure DevOps Office® Integration 2019」を使えば、Azure DevOps上のタスクをExcelと簡単に連携させて双方向に同期させることができます。

# インストール
1. [ダウンロードページ](https://visualstudio.microsoft.com/ja/downloads/)からインストーラをダウンロード  
ページ下部の「その他の Tools、Frameworks...」を展開すると表示されます
![download.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2524774/ee7dce25-3e87-aafb-9bce-59b478daef04.png)

1. インストールはワンクリックでOK  
![install.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2524774/90fdf242-fa41-5111-9574-a3772af17e65.png)

1. インストール終了後、Excelを開くと、リボンに「チーム」タブが追加されます
![excel1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2524774/a8af984e-1f07-4a44-750f-5ff0be9eea72.png)


# 初期設定
1. Azure DevOpsのURLを設定します
    Excelのチームリボンから  
    新しい一覧＞サーバー＞追加＞URLを入力します。  
    ![excel3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2524774/6c1d4bb3-d8e9-fb61-8cd3-5b3aa1b66ae7.png)

    このとき入力するのはAzure DevOpsのトップページでorganizationを選択したときのURLです。  
    ![excel2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2524774/deda39b9-6bb1-d660-26ae-495dd72d1e98.png)

1. リストの種類を選択します  
![excel4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2524774/f2cadc4f-a334-089a-893e-7e29d98f4bf0.png)

すでにAzure DevOpsでクエリが作ってあってクエリの結果を使いたいならクエリリスト、  
クエリ作るのめんどくさい、単純な条件でいいからWork Itemを取得したいって方は入力リスト
を選んでください。（あとから変えることもできます）  
入力リストを選ぶと検索して絞り込んだWork Itemを取得できます。  
   - チーム＞作業項目の取得  
      Azure DevOpsのクエリ、ID、タイトルで検索できます。  
   ![excel5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2524774/bcc00a03-f0b7-825b-af7d-2ac1f1b092ac.png)


# できること
初期設定を終えるとExcelでAzure DevOpsのWork Itemの取得と更新ができます。  
一覧の最新化、Excelで登録・更新した内容をAzure DevOpsに反映、表示列の変更もできます。  
大量のWork Itemの更新もまとめてできます。
- Azure DevOpsで登録されているWork Item（上）とExcelに取得された一覧（下）  
  ツリークエリの場合、Excelでは「Title 1, Title 2, ...」という列名になるので注意
   ![dev-excel.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2524774/56541bcc-7bfd-b04d-c2a3-1b98dc28c3a9.png)

- リボンから操作  
   ![excel6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2524774/24315aa8-2b96-1b6d-7cba-86816c2255be.png)

  - 最新の情報に更新：Azure DevOpsを参照してExcelの一覧を最新化します。  
  入力リストの場合は、新規追加したWork Itemは取得できないので注意。「作業項目の取得」で取り直す必要があります。
  - 公開：Excelで登録・更新した内容をAzure DevOpsに反映できます。
  - 列の選択：Excel上の表示列を選べます。  
  Azure DevOpsのクエリの列には影響がないので、Excelで使用したい列を選べばOKです。

その他詳細は[公式ドキュメント](https://docs.microsoft.com/ja-jp/azure/devops/boards/backlogs/office/bulk-add-modify-work-items-excel)を参照してください。

# 活用例
## ガントチャートにしてみる
Azure DevOpsから最新の状態がExcelに一覧化できたので、ガントチャートにしてみました。   
※ガントチャートのテンプレートは[こちら](https://templates.office.com/ja-jp/%e3%82%a2%e3%82%b8%e3%83%a3%e3%82%a4%e3%83%ab-%e3%82%ac%e3%83%b3%e3%83%88-%e3%83%81%e3%83%a3%e3%83%bc%e3%83%88-tm55723235)からダウンロードしました。   
ボタン１つで最新化できるので進捗管理も楽ですね。  
もちろんAzure DevOpsの方が最新化されていないと意味がないので事前にチームで更新ルールを決めておきましょう。
- 連携している一覧
   ![excel7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2524774/d8425ad0-4221-fe83-ec32-1b70fc98bf46.png)

- ガントチャート  
左の列は一覧から参照しています。
右のチャート部分には色分けのルールが入っていたので、それをWork Item Typeに置き換えています。
   ![excel8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2524774/5fe70419-017b-5724-c787-c845d2c1a4a4.png)
  

実はAzure DevOpsにもDelivery Plansというガントチャート機能もあるので細かい作業は気にしないというのであればこちらのほうがお手軽です。  
ドラッグ＆ドロップでリスケできるのも直観的でいいですね。
- Delivery Plans  
  上記で作ったガントチャートと同じWork Itemで作成したもの。  
  Work Itemの端を移動させて開始日、終了日を変更できる。  
  すべての日付が表示されているわけではなく、Taskまでは表示されない。  
   ![dev1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2524774/bb106689-f0d0-82b8-45ba-ef2389e59bcb.png)
  

# まとめ
今回はAzure DevOpsとExcelを連携させる拡張機能と活用方法の一例としてAzure DevOpsと同期したガントチャートをご紹介しました。  
Azure DevOpsのWork Itemには多くのカラムがあり、カスタムもできるのでExcelで集計して振り返りに使ってもいいと思います。  
ExcelからAzure DevOpsへの更新についても、Titleのプレフィックスを一括置換するといったこともできるので、プロジェクトのWork Itemが多いほど活用できるツールだと感じました。