Microsoft Teamsのプレゼンスから部下がサボってないか監視しよう!~ エクセルで可視化編 ~

【目次】Teamsプレゼンス可視化ツール

0. プロローグ 1. 永続的なアクセストークンの取得 2. プレゼンスの取得 3. エクセルで可視化
4. PowerAutomate Desktopで定期実行 5. Pythonで実装 6. 完全自動化Pythonプログラム  

さて、全員分のTeamsプレゼンスが取得できましたので、エクセルに追記して可視化できるようにします。

土台となるエクセルファイルの準備

初めにプレゼンスを追記していくエクセルファイルを準備します。このようなファイルを作成します。

1行目はヘッダーです。A列は日付、B列からプレゼンスを追記していくメンバーを並べます。並べる順番は前回作ったメンバーリストと同じ順番にします。

またシート全体にこのような形で条件付き書式ルールを設定し、追記したプレゼンスに応じてセルの色を変更します。

シート名は「Dashboard」とします。

PowerAutomate Desktopでエクセルの書き込み

土台ができたのでPowerAutomate Desktopを使って各メンバーのプレゼンスの値をエクセルに追記していきます。

「Excelの起動」を選択します。

①「次のドキュメントを開く」を選択

②土台のエクセルを指定します。

「アクティブなExcelワークシートの設定」を選択します。

ワークシート名を「Dashboard」にします。

「Excelワークシートから最初の空の列や行を取得」を選択します。これは選択したシートの最初の空行を取得するフローです。これを入れることでどんどん下にプレゼンスの値を追記できるようになるわけです。最初の空行は「FirstFreeLow」という変数に格納されます。

「Excelワークシートに書き込み」を選択します。

A列には時刻を追記します。書き込む値は変数名「CurrentDateTime」、行はひとつ前のアクションで取得した変数名「FirstFreeRow」を指定します。

B列からプレゼンスを追記していきます。プレゼンスは変数名「JsonAsCustomObject」のavailabilityに入っていますが、複数人のプレゼンスを一度に取得しているのでインデックスを指定して対象の人のプレゼンスを個別に取り出す必要があります。取り出す方法は以下のように指定します。

%JsonAsCustomObject[‘value’][0][‘availability’]%

JSONのインデックスは0から始まるので一人目は0を指定します。

行は先ほどと同様、変数名「FirstFreeRow」を指定します。

二人目はこのような形。インデックスを “1” とします。あとはこのアクションを人数分繰り返すだけです。

最後は「エクセルを閉じる」を選んで

保存して終了です。

出来上がったアクションを「input_excel」という名前のサブフローとして登録します。

これでメンバー全員のTeamsプレゼンスを取得してエクセルに保存して一覧表示できるようになりました。

今回はここまで。次回は定期実行フローの作成です。