Outlookの予定表を大人数で共有することを考えます。
Outlookの予定表は、共有したい相手をひとりひとり選択することで、各人の権限(表示のみか、編集もできるか)を分けながらカレンダーを共有できます。予定表を共有する相手が数人であれば、手作業で各人のアドレスを追加すればいいでしょう。これが数十人となった場合、手作業では時間がかかったり抜け漏れが生じたりします。
Microsoft365の自動化ツールといえばPower Automateです。しかし、クラウドフローのPower AutomateにはOutlookの予定表の共有に関するコネクタがありません。そこで、OutlookのデスクトップアプリをPower Automate Desktopを使って繰り返し処理する方法を考えます。
準備するものは3つです。
- Power Automate Desktopのインストール
windows10以降のユーザーであれば、無償でインストールできます。 - 共有したいOutlookの予定表
- 選択共有したい相手のメールアドレスの一覧
Excelファイルに選択共有したい相手のメールアドレスの一覧を入れたものを用意します。Power Automate Desktopから読み込める場所に置いておきます。
Outlookのデスクトップアプリを開いて、「共有アクセス許可」の画面を開きます。ここでは「追加した予定表」という名前の予定表を作成し、大人数に共有します。
Power Automate Desktopを起動して、「新しいフロー」を作成します。下図に示すようなフローをこれから作ります。このフローは大きく2段階に分かれます。前半(1,2,3)では、Excelファイルに記録した予定表の共有相手を一覧を取得します。後半(4,5,6,7,8)では、Outlookの予定表を共有する操作を前半で取得した共有相手一人一人に対して繰り返し処理します。
前半(1,2,3) Excelファイルに記録した予定表の共有相手を一覧を取得
フローの動作は画面左の「アクション」列から、Excelのグループを開きます。
「Excelの起動」では、予定表を共有する相手のメールアドレス一覧が入ったファイルのパスを指定します。
「Excelワークシートから読み取り」では、先ほど開いたExcelファイルの中身を読み取ります。冒頭で示したように各セルにメールアドレスが1個ずつ入っているだけのワークシートであれば、「ワークシートに含まれる使用可能なすべての値」を取得すればメールアドレスの一覧を読み込めます。
メールアドレスの一覧を取得したらExcelファイルは用済みです。後半の操作の邪魔にならないように閉じておきましょう。
後半(4,5,6,7,8) Outlookの予定表を共有する操作を前半で取得した共有相手一人一人に対して繰り返し処理
メールアドレスの一覧を取得したので、この中にあるメールアドレス1個1個に対して同じ処理を繰り返します。この場合は「ループ」から「For each」を選択します。
「For each」のパラメータ設定では、どのデータセットに対して繰り返し処理を行うかを指示します。入力欄の右端にある{x}を押すと、フローに登場する変数などの一覧が表示されます。Excelファイルから読みだしたデータを選択すれば%ExcelData%というテキストが設定されます。
あとは、Outlookでメールアドレスを指定して予定表を共有する操作を設定すれば完了です。フローにOutlookの起動からすべてを任せるのは面倒なので、人の手で繰り返し処理の直前の画面を表示させておきます。
ここでPower Automate DesktopにOutlookのどこを操作すればよいかを教えます。画面右端にある菱形が重なったアイコンを押して「UI要素」を表示します。青色の「UI要素の追加」ボタンを押すと、画面に映っているどの部分に着目するかを教える画面になります。
UI要素の追加を行っている最中は、注目している場所に赤枠が表示されます。狙いたい場所が赤枠で囲まれている状態になったら、Ctrlキーを押しながらクリックしてください。
Ctrlキーを押しながら、予定表の共有を操作を行う際にクリックしたりメールアドレスを入力したりする場所を登録していきます。予定表の共有を行うには、下図のように「追加」ボタンを押す、入力欄にメールアドレスを入力する、「OK」ボタンを押す、という操作が必要です。Outlookの操作画面とPower Automateで対応するフローを次に示します。
登録したUI要素は名前を変更することができます。画面右端の「UI要素」で登録したUI要素を選択し、「名前の変更」を選びます。これらのUI要素はフローを作っていく中で選択しますので、わかりやすい名前に変更しておきましょう。
Outlookのように別のアプリケーションを操作する場合は、「UIオートメーション」内のアクションを使用します。各アクションでは、どのUI要素を操作するのかを指定する必要があります。先述のように、操作が必要なUI要素を登録しておけば、プルダウンリストから選ぶだけです。
メールアドレスを入力する操作は「テキストフィールドに入力する」アクションを使用します。For eachループの中でメールアドレス一覧から取り出された1個ずつのメールアドレスは%CurrentItem%で読みだせます。これも{x}ボタンを押せば候補が選択肢に表示されます。
以上でフローは完成です。画面上部の実行ボタンを押して、フローを動作させてみましょう。作成したフローが正常に動作するのか確認するため、最初は少ない数のメールアドレスを使うことをお勧めします。作成したフローが意図したように動くのであれば、大規模なデータに対して本番処理を実行しましょう。