PowerAutomateでアンケート結果から会議招集を送る③

PowerAutomateでアンケート結果から会議招集を送る①は[こちら](https://qiita.com/snow_sch/items/720b6fe589994a6aba63)
PowerAutomateでアンケート結果から会議招集を送る②は[こちら](https://qiita.com/snow_sch/items/1be918a31140e6bb7bcf)

# 前提条件
- Office365を使用しており、以下のサービスは使用できる
    - Outlook
    - Excel
    - Teams
    - Forms
- CDS（Common Data Service）は使用できない

# 作ったPowerAutomate
以下のような流れになっています
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/895455/c1323d87-9d3f-2cad-3f7a-14174cf57d16.png)

「新しい応答が送信されるとき」「応答の詳細を取得する」については、[①の記事](https://qiita.com/snow_sch/items/720b6fe589994a6aba63)を、
「表に行を追加」「条件」については[②の記事](https://qiita.com/snow_sch/items/1be918a31140e6bb7bcf)ご確認ください。

# 詳細
今回はExcelからデータを取得し、Teams会議を作成する部分を記載します。

### 7.Excelにデータ集計用のテーブルを作成する
「日程」という名前のテーブルを作成しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/895455/418b84de-9b9c-905e-0933-3ef1b2016215.png)

日付の部分はアンケートの選択肢を手打ちで入れています。
ここの日付の部分を、のちのち会議招集するときに使う際になにかと便利なので、
日付の書式は「文字列」としています。

「数」列は`=COUNTIF(回答,[@日付])`の数式が入っています。
[②の記事](https://qiita.com/snow_sch/items/1be918a31140e6bb7bcf)で作った回答結果を保持しているテーブルから集計しています。

### 8.Excelから値を取得する
今回はExcelからとってくるので「行の取得」のアクションを使用しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/895455/f47f78b7-d554-dc35-2a8e-0ef7851e8d10.png)

自分のOneDriveなど、クラウド上に先ほど作ったExcelをおき、その場所やファイルを指定します。
[場所][ドキュメントライブラリ][ファイル]を指定すると、
[テーブル]のところに指定したExcelファイル内に存在しているテーブルの名称が表示されるので、
先ほど作成したテーブル「日程」を選択します。
[テーブル]を指定すると、そのテーブルの項目（「日付」「数」）が[キー列]に表示されます。
参加できない人がいない日を会議日程としたいので、[キー列]を[数]、[キー値]を[0]としました。

「数」が「0」の列が複数ある場合、どうも最上位のものをとってきてくれているようです。


### 9.会議招集を作成する
基本的にオンライン会議をするので「Teams会議の作成」のアクションを作成しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/895455/403b00ba-35ad-27de-304b-5f76eff8b189.png)

Outlookの「イベントの作成」では[カレンダーID]のところはもうちょっと気が利いてる感じなのですが、
プレビュー機能だけあって日本語が多少不自由な感じです。
Outlookの「イベントの作成」アクションと項目名が微妙に違うので表に入れました。

以下のように指定します。

|  項目名  |イベントの作成の<br>項目名 |  内容  | 
| ---- | ---- | ---- |
|  カレンダーID | 予定表ID| 自分の予定表を選択するので[Calendar]  |
| 件名 |件名| 会議の件名を入れる |
| メッセージ | 本文|会議招集の本文部分 |
| timeZone |タイムゾーン| Tokyo Standard Time |
| 開始時刻 |開始時刻|concat(outputs('行の取得')?['body/日付'],'T09:30:00')<br>開始時刻のフォーマットが「yyyy-mm-ddThh:MM:ss」なので<br>日付と時刻をconcatしています。|
| 終了時刻 |終了時刻|concat(outputs('行の取得')?['body/日付'],'T10:00:00')|
| 必須出席者<br>任意出席者 |必須出席者<br>任意出席者| 出席者のメールアドレスを入力 |

ちなみに「Teams会議の作成」のアクションの詳細オプションは以下です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/895455/a2c0c7e9-1296-fc1e-72d3-cc61dff677c5.png)

|  項目名  |イベントの作成の<br>項目名 |  内容  | 
| ---- | ---- | ---- |
|  場所 | 場所| 自由入力で記載できる。 |
| 重要性|重要度| 低 - 低<br>正常 - 標準<br>高 - 高 |
| Recurrence pattern | 繰り返し|日ごと<br>週ごと<br>月ごと<br>年ごと |
| Number of recurrences |発生回数| 予定を繰り返す回数|
| Recurrence Day(s) of<br> week - 1 |-|おそらく曜日指定の時に曜日を入力する。|
| 定期実行の開始日 |-|定期的な予定とする場合に開始日を指定する<br>yyyy-mm-dd形式で指定する。|
| 繰り返しの開始日 |繰り返しの終了日|定期的な予定とする場合に終了日を指定する。<br>yyyy-mm-dd形式で指定する。|
| 終日イベントですか? |終日イベントですか?| はい - 終日<br>いいえ - 終日ではない |
| アラーム | アラーム | アラートがあがる時間を指定。単位は分。|
| アラームオン | リマインダーをオンにする | アラームを指定するときは「はい」を選ぶ|
|表示方法|表示方法|free - 空き時<br>tentative - 仮の予定<br>busy - 予定あり<br>oof - 外出中<br>workingElsewhere - 他の場所で作業中<br>unknown - 非公開|
|要求された応答|応答の要求|承諾、辞退時に応答を希望する場合は「はい」を選ぶ|

### 10.完成です！！
実際にアンケートが集まって作成されたTeams会議は以下です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/895455/188622d0-0f62-d81a-adf2-ccee4568f18b.png)

# 今後の改善点
- アンケートを作成するのも、それに合わせてExcelの表を更新するのも面倒なので、PowerAppsとかでなんかうまいことその辺を自動化したい
- 1人の人が二重回答した場合に誤って会議招集が動くので防止したい
- 自分自身に会議招集の通知がこない
- 回答１～５や、数についてはExcelの関数を使用しているが、PowerAutomateだけで完結させたい
- どうにかしてFormsの回答集計結果のExcelを流用できないのか
- 時刻の指定部分もアンケートに組み込んで、自由な時間で会議招集を送れるようにしたい