Power Automate Desktop 無料でフローを自動実行させてみた

効率化
スポンサーリンク

Power Automate Desktop(以下PAD)は、無料で利用できるRPAです。

ところが、自動起動させるためには、「有料」のアカウントを必要とします。

「無料」でできるのは手動実行のみ……
それだとイマイチなので、無料の範囲でうまく自動実行させられないか、試してみました。

できるようになること

PADで、フローを自動実行させることができるようになります。

結論

3つのアイデアがあります。

  1. PAD内でタイマートリガーを(擬似的に)使う
  2. メールをトリガーに使う
  3. ファイルをトリガーに使う

やりたいことに合わせて、どのトリガーを使うのが楽かが変わってきます。

それぞれ解説していきます。

1.PAD内でタイマートリガーを(擬似的に)使う

PADでは、「日時」を取り扱うことができます。
この「日時」を活用します。

利用するもの

完成形イメージ

8行目に、自動実行したいフローを組みます。

概要

定期実行(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番めのオペランド
    • 0
      つまり、1通以上ということですね。

{x}をクリックすると、利用できる変数を選ぶことができます。
%RetrievedEmails.Count%を手打ちする必要がなくなります。

4行目

ここにやりたい処理を入れます。

6行目

Waitを入れて待機します。

これがないと、ひっきりなしにメールチェックしにいくので、サーバに負荷がかかります。

本当は1分以上、間隔をあけたほうがいいかな、と思います。

3.ファイルをトリガーに使う

ファイルを使います。

利用するもの

完成形イメージ

3行目に、自動実行したいフローを組みます

概要

外部からフローを実行したいときに向いています。

  • 特定のファイルが存在するか確認する
  • 存在していたら、フロー実行後、特定のファイルを削除
    • また新しいファイルが作成されたら、フロー実行可能にするため
  • ファイルが存在しなければ、一定時間待機して、再度ファイルを見に行く

例えば、IFTTTとかZapierなど、無料で組める「ファイル作成」可能なサービスと組み合わせると、遠隔から自動実行できます。

毎朝5時にファイルを作成すれば、定時実行も(擬似的に)可能になります。

Excelと組み合わせて、最終行まで処理させるということもできます。

参考

解説

2行目

ファイルが存在するか確認します。

  • ファイルが次の場合
    • 「存在する」
  • ファイルパス
    • お好みのファイルを選んでください。
      トリガーの性質上、OneDriveやDropbox、GoogleDriveなどのクラウドストレージ内のファイルを選ぶと、外部から制御しやすくなります。

3行目

ここに処理したいフローを追加します。

4行目

ポイントです。ファイルを削除します。

フローを実行させたらファイルを削除しておかないと、ずっとファイルが残りつづます。

ファイルが残り続けると、2行目の「ファイルが存在するか」のチェックで常に「存在するぞ」となって、フローが実行しっぱなしになるので、注意です。

6行目

待機を入れます。

CPUとの兼ね合い。
処理させる内容によりますが、5分とか間隔長めでもいい気がします。

まとめ

Power Automate Desktopを、無料プランで自動実行させる方法について、3種類解説しました。

うまくやれば、他にもいろいろな方法がありそうですね。

一方で、やはり無理やり感(付け焼き刃)な自動実行という感じは拭えません。
業務で本気運用するなら、有料プランも視野に入る気がします。

とはいえ、お試しでやってみるなら充分だと思います。
自動実行でお悩みの方、試してみてはいかがでしょうか。

コメント

タイトルとURLをコピーしました