見出し画像

無料版Power Automate DesktopでもOK!WindowsタスクスケジューラでWeb自動化を定期実行しよう

クラウド版が使えない問題

🦊こんにちは!Inusukiです。

以前、記事に書いたように
PAD(Power Automate Desktop)が無料版だとクラウド版との連携ができないという最大の問題があります。また、個人アカウントではクラウド版Power Automateが使えないという問題もありますね。。

つまりせっかく作った自動化フローでも、自分でぽちっとクリックするしかない。。。
ということはありません😉
PADはローカルPCで動くので、Windowsのタスクスケジューラと組み合わせれば解決できます!

ではやっていきましょー!😊

PAD側の準備

・フロー保存
・実行ファイルの場所を確認しておく
 例:C:\ProgramFile\Microsoft\Windows\Power Automate Desktop\PAD.~
・実行コマンドの形式を確認
 PAD.ConsoleHost.exe run --flow "フロー名

※コマンドはコピペでOK

タスクスケジューラの設定手順

1. タスクスケジューラを開く

開き方はいろいろありますが、一番簡単なのが、
スタートボタンを押す➡️検索窓に 「タスクスケジューラ」 と入力
出てきたアプリをクリック

タスクスケジューラが起動します。

 2. 「基本タスクの作成」

右側の一覧の上から2行目くらいに、「基本タスクの作成」があるのでクリックし項目を入力していきます。

  • 名前:PAD_データ取得

  • 説明:毎月のWebデータ取得を自動化

次へ をクリック。

● 3. トリガー(実行タイミング)

  • 毎月

  • 毎月1日

  • 朝8:00 など

● 4. 操作

  • 「プログラムの開始」

  • プログラム:PAD.ConsoleHost.exe

  • 引数:run --flow "フロー名"(※"フロー名"は、ご自身の環境のフロー名に書き換えてください)

● 5. 完了

→ これで毎月自動でPADが動く

⑤ ⚠️注意点(ここが実務で大事)

✔ PCがスリープだと動かない

→ スリープ設定を変更する必要あり

✔ ログイン画面のままだと動かない

→ 自動ログイン設定 or ログイン状態を維持

✔ Webサイトの仕様変更に弱い

→ 月1で軽く動作確認すると安心

※スクリーンセーバー中やスリープ中動かない、設定したPCが動いていないと実行されないのは、ちょっと不便ですよね😅やはりクラウド版との連携がスマートではありますが。。
私は仕事してるであろう平日の、PC画面が動いても邪魔にならないお昼休みや出社してから勤務開始までのPCは開けてるけど何もしていないちょっとした時間などに設定しています🤔つまり自分が休んだりしたら動かない可能性はありですね💦
その辺りは月一なら実行日前後何日かを連続で指定し、PAD側で、実行されていたらフローは実行しない。とIF文等で設定していくといいのですが、細かくなるのでまた次の機会にしますね。

⑥ 図解:完全自動化フロー

🦊 完全自動化フロー
① PADでWeb自動化フローを作る
② タスクスケジューラで実行時間設定
③ 毎月自動でPADが動く
④ Excelにデータが自動でたまる

⑦ まとめ

  • クラウド版が使えなくても、 PAD × タスクスケジューラで完全自動化は可能

  • 無料版ユーザーでも実務レベルの自動化ができる

  • Web操作 → Excel保存 → 定期実行 の流れが完成

ここまでが基本の設定です👏

なのですが!

以前も書いたように、これで実行すると、PADが立ち上がるのですが、「このフローを実行しますか?」というポップアップが出て止まってしまう現象が起こることがあります。
自動化できると思ったのに、、ここでまた「はい」をぽちっとしないとなのか。。😡と思いますよね。私も実務でぶち当たったのですが、その時使用したのが、
「BAT(バッチファイル)からVBS(VBScript)を呼び出して、Enterキーを送信(Enterを連打)する」方法です😉
以下設定の仕方を記載しますね😊

📄 1. VBScriptのコード(Enterキーを押す役)

VBSは、画面上に「Enterキー」などのキーボード操作を強制的に送り込むのが得意なスクリプトです。

メモ帳などに以下を貼り付け、ファイル名を auto_enter.vbs などの名前(拡張子が .vbs)で保存します。

Dim wshShell
Set wshShell = CreateObject("WScript.Shell")

' 1. PADが起動して確認画面が出るまで、ちょっとだけ待つ(3秒待機)
WScript.Sleep 3000

' 2. 「はい」にフォーカスが当たっている状態なので、Enterキーを送信する
wshShell.SendKeys "{ENTER}"

💡 ポイント WScript.Sleep 3000 は「3秒待つ」という意味です。パソコンのスペックによってPADが立ち上がる速度が違うので、もし確認画面が出る前にEnterが送信されてしまう場合は、ここを 5000(5秒)などに調整してください。(私は5000で設定しています。)


⚙️2. BAT(バッチファイル)のコード (全体をコントロールする役)

BATは、「VBSを裏で動かしつつ、同時にPADのフローも呼び出す」という司令塔の役割をします。

メモ帳などに以下を貼り付け、ファイル名を run_pad.bat などの名前
(拡張子が .bat)で保存します。

@echo off

::先に裏でVBS(Enterを押す準備)を起動させておく
REM === Power Automate Desktop起動 ===
start "" "ここにフローのプロパティ画面、URLを実行の下のコードをコピペする"

REM === PAD起動待機(重要) ===
timeout /t 10 /nobreak

REM === VBScript実行(同期) ===
cscript //nologo "%~dp0auto_enter.vbs"

exit /b 0

💡 ポイント start コマンドを使うことで、「VBSを実行して、その終了を待たずにすぐPADも起動する」という同時進行を行っています。これによって、PADの確認画面が出た瞬間に、VBSが待機していた3秒が経過してEnterをポンッと押してくれる仕組みです。 ※ VBSファイルが置いてある場所(パス)は、ご自身の環境に合わせて書き換えてくださいね。

start "" "ここにフローのプロパティ画面、URLを実行の下のコードをコピペする"

フローのプロパティ画面は、PADの左側のフローをクリックすると自分の作成したフローが出てくるので、調べたいフロー名をマウスオンすると横に、
再生ボタン・四角いストップボタン・編集の鉛筆ボタン・インフォメーションボタン・三点ボタンが表示されると思います。
三点ボタンをクリックして、一案下のプロパティをクリックします。
フローのプロパティ画面が出てくるので、詳細情報画面にして中間付近にあるURLを実行をコピーしてください。(右横にコピーマークあります)

作成した
auto_enter.vbs
run_pad.bat
の二つをデスクトップに作成したフォルダーに入れておきましょう。
※必ず同じフォルダー内に入れてくださいね😉

🎯 タスクスケジューラへの登録変更方法

この2つが準備できたら、タスクスケジューラ側の「操作」の設定を少しだけ変更します。

タスクスケジューラの画面で先ほど作成したPAD_データ取得をダブルクリックします。
プロパティ画面が出てくるので、「操作」をクリックします。
現在入力されている、プログラムの開始を選択し、編集をクリックします。
操作の編集画面が出てきますので、
プログラム/スクリプト: C:\任意のフォルダパス\run_pad.bat(作ったBATファイルを指定するだけ!)参照ボタンから auto_enter.vbs
run_pad.batが保存されているフォルダーを開きrun_pad.batを選ぶと確実です👌
引数の追加: 空欄でOKです。
以前作成したものを削除し、新たに作ってもいいですね。

OKをクリックします。

これで、PCの電源が入っていれば等の制約はありますが、決まった時間にPADが実行されます👏

この「BAT + VBS」の組み合わせは、PADだけでなく、他の「どうしても自動化の途中で出てくる邪魔なポップアップ」を消すときにも応用できる万能のコードです。

🔧 もしもっと安定させたいなら

  • VBS側で「ウィンドウタイトルを探してからEnterを送る」

  • PowerShellでSendKeysを使う

  • AutoHotkeyを使う(上級者向け)

などの方法もあります。コパイロットやGeminiに聞いてみるのもいいかもしれません😊

今回も長々と呼んでいただきありがとうございました。
普段の業務でんん?と思ったことを今後も皆さんと共有できたらいいなと思います。のらりくらり更新していきますのでお付き合いください🍵

参考


いいなと思ったら応援しよう!

inusuki_IT 応援よろしくお願いします!応援いただけると励みになります!