この記事でできること
Power Automate のクラウドフロー(スケジュール実行)で、
- ✅ 祝日は処理を止める(実行しない)
- ✅ 平日だけ処理を実行する
- ✅ SharePointやExcelで祝日を管理しない(手入れ不要)
を実現します。
今回は、よくある構成として「平日はデスクトップフロー(PAD)を実行する」例で説明しますが、メール送信など別の処理でも同じ作り方でOKです。
完成形(ゴール)
フローは最終的にこうなります。
Recurrence(繰り返し)
↓
作成(今日の日付)
↓
HTTP(祝日一覧を取得)
↓
条件
├ True(祝日) → 終了(Terminate)
└ False(平日)→ デスクトップフロー実行(または通常処理)
なぜSharePoint不要でできるの?
日本の祝日は「祝日API」を使って取得できます。
その祝日一覧に「今日の日付が含まれているか?」をチェックするだけ。
祝日を自分で更新する必要がないので、運用が楽です。
事前準備(1分)
- Power Automate にログインできること
- すでに「Recurrence(繰り返し)」で動くクラウドフローがある(または新規で作る)
- ※HTTPアクションが使える環境(通常は使えます)
手順1:スケジュール(Recurrence)を用意する
すでに Recurrence がある場合はそのままでOKです。
もし新規で作る場合
- Power Automate → 「作成」
- 「スケジュール済みクラウド フロー」
- 実行間隔を設定(例:毎日 9:00)
ポイント:可能なら Recurrence の設定でタイムゾーンを「Tokyo Standard Time」にします。
(見つからない場合でも後で式で日本時間に直すので大丈夫)
手順2:「今日の日付」を作る(作成 / Compose)
次に、今日が何日かを文字列として作ります。
(祝日データは yyyy-MM-dd 形式なので合わせます)
2-1. 追加する場所
- Recurrence の下にある「+」を押す
- 「アクションの追加」
2-2. アクションを選ぶ
検索窓に「作成」と入力して
👉 「作成(Compose)」 を選択
2-3. 式を入れる
「入力」欄をクリック
→ 右側(または下)に出るタブで 「式」 を選択
→ 下の式をコピペ
formatDateTime(convertTimeZone(utcNow(),'UTC','Tokyo Standard Time'),'yyyy-MM-dd')
これは何をしている?
utcNow():今の時間(世界標準時)convertTimeZone(...Tokyo...):日本時間に変換formatDateTime(...,'yyyy-MM-dd'):2026-02-18の形に整形
ここがズレると祝日判定が外れるので、必ずこの式を使うのがおすすめです。
手順3:祝日一覧を取得する(HTTP)
次に、祝日データを取りに行きます。
3-1. 追加する場所
「作成(Compose)」の下の「+」を押す
→ 「アクションの追加」
3-2. HTTPアクションを追加
検索で「HTTP」
👉 HTTP を選択(緑のアイコンのやつ)
3-3. 設定
- Method:GET
- URI:
https://holidays-jp.github.io/api/v1/date.json
手順4:「祝日なら止める」条件(Condition)を作る
ここがメインです。
4-1. 追加する場所
HTTP の下の「+」を押す
→ 「アクションの追加」
4-2. 条件を追加
検索で「条件」
👉 条件(Condition) を選択
4-3. 条件の左側に式を入れる(超重要)
条件の設定画面で、こんな3つの枠が出ます:
[ 値を選択します ] [ 等しい ] [ 値を選択します ]
左の「値を選択します」をクリック
→ 右側(または下)に 動的なコンテンツ / 式 が出るので
👉 「式」 をクリック
次の式を貼り付けます:
contains(string(body('HTTP')), outputs('作成'))
※もし Compose の名前が「作成」ではなく「作成 1」などになっている場合
outputs('作成 1')のように名前を合わせてください。
この式の意味
- HTTPが返した祝日一覧(JSON)の中に
- 今日の日付(Composeで作った
yyyy-MM-dd)が - 含まれているかチェック
含まれていれば true、なければ false になります。
4-4. 右側は「true」を入れる
真ん中は 等しい のまま
右側の入力欄に(式じゃなくて)文字で
true
と入力します。
最終形はこう:
fx contains(...) 等しい true
手順5:True(祝日)なら終了させる
条件の分岐で
- True(緑):祝日だった
- False(赤):祝日ではない
になっています。
True 側に「終了(Terminate)」を追加
True の枠の中の「+」を押す
→ 検索で「終了」
→ 終了(Terminate) を追加
ステータスは Succeeded でOK。
手順6:False(平日)側に「実行したい処理」を入れる
祝日じゃないときだけ動かしたい処理を、False側に置きます。
例:デスクトップフローを動かす場合
False の枠に デスクトップフロー実行 を入れる。
もし今あなたの画面みたいに「デスクトップフロー実行」が条件の外にある場合は、
ドラッグして False 側へ移動 します。
最後:保存してテスト
右上の 保存 を押します。
テストは右上の テスト から。
祝日じゃない日でもテストできる?
できます。方法は2つあります。
A. 一番安全:Composeの値を一時的に祝日にする
「作成(Compose)」の式を一時的にこれに変更:
'2026-01-01'
→ テストすると True(祝日)側に流れます
→ 確認したら元の式に戻す
B. 条件を一時的に true 固定にする
条件を true = true にして分岐確認する方法。
ただし、戻し忘れしやすいのでおすすめはAです。
よくあるつまずき
1) 祝日なのに動いてしまう
原因の多くは「日付のズレ」です。utcNow() をそのまま使うと日本時間とズレることがあります。
✅ この記事の式(convertTimeZone)を使うと解決します。
2) HTTPが使えない/エラーになる
環境によってはHTTPコネクタが制限されることがあります。
その場合は「Excelで祝日表を持つ」「Outlook予定表で休日判定」など別案に切り替えます。
3) PAD(デスクトップフロー)の接続エラーが出る
「PCにアクセスできない」系のエラーは祝日判定とは別問題です。
接続の再サインイン/ゲートウェイ/マシン登録を見直します。
まとめ
SharePoint不要で祝日停止をやるなら、
- 今日の日付を作る(JST)
- 祝日APIをHTTPで取る
- 含まれていれば終了(Terminate)
- 含まれていなければ通常処理
これだけで完成です。
