Power Automate Desktop(以下PAD)は、無料で利用できるRPAです。
ところが、自動起動させるためには、「有料」のアカウントを必要とします。
「無料」でできるのは手動実行のみ……
それだとイマイチなので、無料の範囲でうまく自動実行させられないか、試してみました。
できるようになること
PADで、フローを自動実行させることができるようになります。
結論
3つのアイデアがあります。
- PAD内でタイマートリガーを(擬似的に)使う
- メールをトリガーに使う
- ファイルをトリガーに使う
やりたいことに合わせて、どのトリガーを使うのが楽かが変わってきます。
それぞれ解説していきます。
1.PAD内でタイマートリガーを(擬似的に)使う
PADでは、「日時」を取り扱うことができます。
この「日時」を活用します。
完成形イメージ
概要
定期実行(5分ごとに実施、など)に向いています。
- 今の時間より少し先(例:15秒)を設定(設定時間)
- 設定時間と現在時刻を比較
- 設定時間より現在時間の方が未来になるまで待機
- 設定時間より現在時間の方が未来になったら、フロー実行
解説
1行目
ループ条件を利用します。
これにより、無限ループを意図的に作ります。
2~3行目
アクションの「日付」から、
をループ内にドラッグアンドドロップします。
3行目の「加算する日時」を以下のようにします。
- 日時
- 「現在の日時を取得します」で設定されている値。
デフォルトだと、%CurrentDateTime%です。
- 加算/時間単位
- どれくらいの間隔で実行するかを設定します。
5分ごとであれば、加算を5、時間単位を分にします。
4行目
ループ条件を設定します。
ここが待機のキモとなる部分です。
設定時間より現在時間が大きい(未来の)間は、このループ内で待ち続けます。
5行目
2行目の「現在の日時を取得します」をコピペします。
%CurrentDateTime%が、現在時刻でどんどん上書きされます。
6行目
無限ループでぐるぐる回ってCPUが大変なことになりそうなので、お好みで待機を入れます。
8行目
ここに、やりたいことをいれます。
現在時間が設定時間より未来になっているので、ループを抜けて8行目までやってきます。
2.メールをトリガーに使う
特定のメールが届いたら自動実行されます。
完成形イメージ
概要
必要なタイミングで自動実行したいとき(問い合わせメールがきたとか)に最適です。
- ループでメールチェックをする
- 指定のメール(例:件名に[TRIGGER]が入っているとき)を受信したときに、フローを実施する
例えば、IFTTTとかZapierなど、無料で組める「メール送信」可能なサービスと組み合わせると、遠隔から自動実行できます。
毎朝5時にメールを送れば、定時実行も(擬似的に)可能になります。
解説
2行目
メールの設定をします。
トリガーにしたいメールのIMAP設定は、各メールサービスの設定を参考にしてください。
この記事では、メールフィルターについて解説します。
- メールフォルダー
- inboxを設定しておくと、ルートの受信トレイを探しに行きます。
特定のフォルダーに振り分けている時などは、そのフォルダーを指定します。
- 取得
- 未読のメールメッセージのみにしておくと、暴発を防げる気がします。
- 開封済みにする
- 処理したら開封済みにすることで既読になり、暴発を防げる気がします。
- 「”送信元”フィールドに次が含まれる」以下の設定
- なんでもいいです。
送信元を設定してもいいし、送信先を設定してもいいです。
この例では”件名”に[TRIGGER]が設定されたメールを受信したときだけに限定しています。
3行目
ifアクションを使います。
If文の中身は以下のようにします。
- 最初のオペランド
- %RetrievedEmails.Count%
「条件に当てはまるメールの数」を意味します。
- 演算子
- 2番めのオペランド
{x}をクリックすると、利用できる変数を選ぶことができます。
%RetrievedEmails.Count%を手打ちする必要がなくなります。
6行目
Waitを入れて待機します。
これがないと、ひっきりなしにメールチェックしにいくので、サーバに負荷がかかります。
本当は1分以上、間隔をあけたほうがいいかな、と思います。
3.ファイルをトリガーに使う
ファイルを使います。
完成形イメージ
概要
外部からフローを実行したいときに向いています。
- 特定のファイルが存在するか確認する
- 存在していたら、フロー実行後、特定のファイルを削除
- また新しいファイルが作成されたら、フロー実行可能にするため
- ファイルが存在しなければ、一定時間待機して、再度ファイルを見に行く
例えば、IFTTTとかZapierなど、無料で組める「ファイル作成」可能なサービスと組み合わせると、遠隔から自動実行できます。
毎朝5時にファイルを作成すれば、定時実行も(擬似的に)可能になります。
Excelと組み合わせて、最終行まで処理させるということもできます。
参考
解説
2行目
ファイルが存在するか確認します。
- ファイルが次の場合
- ファイルパス
- お好みのファイルを選んでください。
トリガーの性質上、OneDriveやDropbox、GoogleDriveなどのクラウドストレージ内のファイルを選ぶと、外部から制御しやすくなります。
4行目
ポイントです。ファイルを削除します。
フローを実行させたらファイルを削除しておかないと、ずっとファイルが残りつづます。
ファイルが残り続けると、2行目の「ファイルが存在するか」のチェックで常に「存在するぞ」となって、フローが実行しっぱなしになるので、注意です。
6行目
待機を入れます。
CPUとの兼ね合い。
処理させる内容によりますが、5分とか間隔長めでもいい気がします。
まとめ
Power Automate Desktopを、無料プランで自動実行させる方法について、3種類解説しました。
うまくやれば、他にもいろいろな方法がありそうですね。
一方で、やはり無理やり感(付け焼き刃)な自動実行という感じは拭えません。
業務で本気運用するなら、有料プランも視野に入る気がします。
とはいえ、お試しでやってみるなら充分だと思います。
自動実行でお悩みの方、試してみてはいかがでしょうか。
コメント
「ファイルをトリガーに使う」をやってみました。
うまくいきました。しかし、私の勘違いのようでした。
PDAが自動的に起動されるわけではなく、
PDAを手動で起動しておき、手動で止める必要があるのですね?
コメントありがとうございます。
おっしゃる通りで、「PDAを用いてloopで判別し続ける」ので、PDA自体には干渉しません。
ユースケースがわからないのでなんとも言えませんが、PDA起動→フロー実行あたりだと
https://yoshio-akz.blogspot.com/2021/03/stream-deck-power-automate-desktop.html
が引っかかったので、試してみてはいかがでしょうか。