NRIネットコム Blog

NRIネットコム社員が様々な視点で、日々の気づきやナレッジを発信するメディアです

【Microsoft PowerAutomate】簡単な実装例3つを添えて紹介

本記事は NRIネットコム Advent Calendar 2022 16日目の記事です。
🎁 15日目 ▶▶本記事 ▶▶ 17日目 🎄

はじめに

はじめまして。システムエンジニアの鈴木です。
本記事では、Microsoft PowerAutomateについて簡単な実装例と共に紹介しようと思います。
「Microsoft PowerAutomateって何?」「使ってみたけどよく分からなかった」といった方向けの入門編です。

Microsoft PowerAutomateって何?

Microsoft社が提供しているタスク自動化のためのプラットフォームです。

...よ、よく分からない。

私は日々、Microsoftさんには足を向けて寝れないほどお世話になっています。ExcelやPowerPointやTeamsやOutlookや色々と使わせていただいています。

特にExcelなんか使わない日はないんじゃないでしょうか?
新人の頃から一番成長したのは何かと聞かれたら、「Excelの使い方です」って答えるかもしれない。

いやいや、Excelから一旦離れましょう。

そんなMicrosoft大先生が提供してくださっているものの一つがPowerAutomateです。
日々のタスクを自動化することができます。

例を挙げると
あなたは毎日10時にとあるExcelを別名コピーしてバックアップを取る仕事を任されているとします。あったらいいな。
PowerAutomateを使って「とあるExcelを別名コピーしてバックアップを取る」というタスクを作って毎日10時に動くように設定したら仕事が減ります。自動化万歳。

つまり、タスク自動化フローを作成・管理するのがPowerAutomateです。

自動化って難しいんじゃないの?

心配するなかれ、PowerAutomateの開発はローコードです。
ローコードとは、コード(ソースコード)をほぼ書くことなくアプリケーション等の開発を行う技術を指します。
そのため、ちんぷんかんぷんなコードを書く必要はありません。
カレーの隠し味程度にコードっぽいものを書くことはありますが、それもExcel関数レベルのものなので問題ありません。
というか、入力補助が付いているので初見でもなんとかなることが多いです。

簡単な実装例と共に、PowerAutomateの開発方法の紹介をしようと思います。

触ってみようPowerAutomate

それではPowerAutomateの実装例を紹介します。
簡単なものを3つほど紹介するので、やる気のある方は一緒に作ってみてください。

今回使うもの

・Microsoft Power Automate
 主役その1。自動化万歳。
・Microsoft Teams
 主役その2。適当なチームと適当なチャネルを用意してください。
 既に利用しているものでも構いません。
・Microsoft Excel
 主役その3。触らない日はない。

Teamsにメッセージを投稿する

1つ目はPowerAutomateからTeamsにメッセージを投稿させる処理です。
最初なので丁寧にいきます。

PowerAutomateはブラウザ上からも使うことができるのですが、私はTeamsから使うことが多いのでこちらの手順で解説させてもらいます。

Teamsの左側にある「PowerAutomate」アイコン(下図左の赤枠)からPowerAutomateを開きます。
アイコンが存在しない場合は、「アプリ」アイコン(下図左の青枠)から追加しましょう。

PowerAutomateを開いたら、「+新しいフロー」(下図右の赤枠)を押下。

「+一から作成」ボタンを押下。

これでタスク自動化のフロー作成画面に移動できました。
最初にトリガーを設定します。
トリガーとは、「どんな時にこのフローを実行するのか」です
今回は「モバイルのフローボタン」を選択します。

「モバイルのフローボタン」を選択後、「手動でフローをトリガーします」を押下します。
そのままの意味ですね。このフローは手動で実行します。

これでトリガーの設定が出来ました。
次は実行させたい処理を追加しましょう。
「新しいステップ」を押下

「Microsoft Teams」を選択

「チャットまたはチャネルでメッセージを投稿する」を押下

すると、設定項目が出てくるので以下のように設定しましょう。(下図参考)

投稿者:「フローボット」
投稿先:「チャネル」
チーム・チャネル:メッセージの投稿先を選択
メッセージ:任意の文章を入力

これで完成です。作っていて不安になるほど短時間でできました。

では実行させてみましょう
フローの管理画面に移動して、上部の「実行」を押下。

メッセージの投稿先に設定したチャネルを確認してみます。
PowerAutomateで設定したメッセージが投稿されています。

この例ではフローのトリガーを手動に設定しましたが、「チームにメンバーが追加された時」というトリガーもあります。

そちらを使えば「メンバー追加をトリガーとしてガイドラインに誘導するメッセージを投稿する」といったことも可能です。

投稿されたメッセージを保存する

2つ目はTeamsのチャネルに投稿されたメッセージをExcelファイルへ保存する処理です。
今回はメッセージの投稿時刻と投稿内容を保存する処理を作成します。

準備

実装例の紹介へ入る前に、少し準備をします。
PowerAutomateでExcelファイルに対してデータの書き込み、読み取りをさせるための事前作業です。

Teamsの適当なチャネルで上部タブにある「ファイル」を押下。

適当な名前のExcelファイルを作成しましょう。(「+新規」のボタンから作成できます。)
今回は「おためし」という名前のExcelを作りました。

作成したExcelを開いて
「セルを選択 → テーブルとして書式設定 」でテーブルを作成します。
下図の①~③の手順です。

テーブルが作成できたら、見出しを変更しておきましょう。
今回は「時刻」と「内容」としました。

こうすることでPowerAutomateからデータを書き込んだり読み取ったりすることができます。

実装

データの準備ができたので、実装に入ります。

1つ目同様にフローの作成画面まで移動します。
トリガーには、Microsoft Teamsの「チャネルに新しいメッセージが追加されたとき」を選びます。

チームとチャネルには、保存するメッセージの投稿先を設定します。

「+新しいステップ」から「現在の時刻」を追加します。
これは現在時刻(世界標準時)を取得してくれます
世界標準時なので日本時間に変換する必要がありますが、今回は世界標準時のまま進めます。

「表に行を追加」を追加します。
Excel Online (Business)とExcel Online (One Drive)の2つがありますが、Excel Online (Business)の方を選択します。

追加すると、色々設定する項目が出てきます。
事前に準備しておいたExcelファイルを設定します。

場所:Excelファイルが置いてあるチーム
ドキュメントライブラリ:ドキュメント
ファイル:準備しておいたExcelファイル
テーブル:Excelファイルで設定したテーブル(今回はテーブル1)

テーブルまで設定すると、その内容を読み取って「時刻」や「内容」といった情報を出してくれます。

行を追加する際に登録する情報を設定します。
「時刻」の入力欄にフォーカスすると、候補を自動的に出してくれます。
先ほど取得した「現在の時刻」を選択。

同じように「内容」も設定します。
こちらは「メッセージ本文コンテンツ」を選択しましょう。

これでフローは完成です。保存して動かしてみます。

トリガーで設定したチャネルに移動して、適当なメッセージを投稿してみます。

フローの管理画面から、実行履歴でフローが稼働して成功しているか確認します。
実行まで最大で5分ほどラグがあるため、「稼働してないかも?」となった時は更新を連打しましょう。

ちゃんとフローが動いて処理が成功しているようなので
Excelファイルにメッセージが保存されているか確認します。

投稿時刻と内容がちゃんと保存されています。

データを移動させる

最後は、Excelファイルに保存されたデータを別のExcelファイルにコピーする処理です。

先ほどExcelへデータ保存する処理を作ったので、そこに保存されたデータから「内容」のみを抜き出して別のExcelファイルへコピーする、という処理を作ることにします。

それではまず、データの移動先のExcelファイルを作成します。
今回は準備で作った「おためし.xlsx」と同じ場所に「いどうさき.xlsx」というものを作成することにしました。

Excelの中身もテーブルとして設定しておきます。
「内容」のみのテーブルを設定します。

それではフローを作成していきます。
トリガーについては、「モバイルのフローボタン」を選択後、「手動でフローをトリガーします」を設定しておきます。
「Teamsにメッセージを投稿する」で解説しているので手順は割愛。

最初の処理は、移動元となるデータを取得します。
「表内に存在する行を一覧表示」を設定します。

以下の要領で設定しましょう。

場所:Excelファイルが置いてあるチーム
ドキュメントライブラリ:ドキュメント
ファイル:移動元のExcelファイル(今回はおためし.xlsx)
テーブル:Excelファイルで設定したテーブル(今回はテーブル1)

これで「おためし.xlsx」に保存されているデータを全て取得することができます。

では、次のステップを追加します
「それぞれに適用する」(Apply to each)を追加します。
不安になる日本語をしていますが、つまるところ「繰り返し」です。

「以前の手順から出力を選択」の部分に「value」を設定。

いやいや、「value」って何。
先ほど「表内に存在する行を一覧表示」でデータを取得しました。
そのデータの一覧が「value」です。

「それぞれに適用する」(Apply to each)の枠の処理が「以前の手順から出力を選択」に設定した「value」のデータの件数分実行されます。

では、「それぞれに適用する」(Apply to each)の中の処理を設定します。
「それぞれに適用する」(Apply to each)の枠の中の「アクションの追加」を選択

データを移動先に移すため「表に行を追加」を追加します。
選択するExcelファイルは「いどうさき.xlsx」です。
「内容」には「表内に存在する行を一覧表示」の「内容」を選択しましょう。

これで完成です。

全体フローは以下のような形になりました。

そのまま完成したフローを実行してもいいのですが
適当にデータを増やしておきます。

「投稿されたメッセージを保存する」フローを作っているので、適当なメッセージを何回か投稿して「おためし.xlsx」にデータを登録しておきます。
「いち」「に」という内容のデータを増やしておきました。

それでは、「データを移動させる」フローを実行します。

もしかしたら、フロー管理画面に「データを移動させる」フローが出てこない場合があるかもしれません。
その場合は「Microsoft Teams フロー」のフィルターを「すべてのフロー」に切り替えると出てきます。

いざ、「データを移動させる」フローを実行。
「いどうさき.xlsx」を確認します。

「おためし.xlsx」に保存されている3件のデータの「内容」が「いどうさき.xlsx」にコピーされています。

おわりに

PowerAutomateのタスク自動化フローの実装について、簡単な例と共に紹介しました。

実装は視覚的にも感覚的にも分かりやすく、作ったものもすぐに動かすことができるので使い勝手がとてもいいです。

頭の中の「こうやったら自動化できるのでは?」という考えをそのままフローに落とし込むだけで簡単にタスクを自動化ができるため、コーディングするよりも手間・時間を少なくすることができます。

今回は簡単な実装例を3つ紹介しましたが、掘り下げるともっとたくさんのことができるので
今後、そちらも紹介できればと思います。

それでは。