Power Automateで「祝日は実行しない」スケジュールフローを作る方法(SharePoint不要)

  • URLをコピーしました!
目次

この記事でできること

Power Automate のクラウドフロー(スケジュール実行)で、

  • ✅ 祝日は処理を止める(実行しない)
  • ✅ 平日だけ処理を実行する
  • ✅ SharePointやExcelで祝日を管理しない(手入れ不要)

を実現します。

今回は、よくある構成として「平日はデスクトップフロー(PAD)を実行する」例で説明しますが、メール送信など別の処理でも同じ作り方でOKです。


完成形(ゴール)

フローは最終的にこうなります。

Recurrence(繰り返し)
  ↓
作成(今日の日付)
  ↓
HTTP(祝日一覧を取得)
  ↓
条件
  ├ True(祝日) → 終了(Terminate)
  └ False(平日)→ デスクトップフロー実行(または通常処理)

なぜSharePoint不要でできるの?

日本の祝日は「祝日API」を使って取得できます。
その祝日一覧に「今日の日付が含まれているか?」をチェックするだけ。

祝日を自分で更新する必要がないので、運用が楽です。


事前準備(1分)

  • Power Automate にログインできること
  • すでに「Recurrence(繰り返し)」で動くクラウドフローがある(または新規で作る)
  • ※HTTPアクションが使える環境(通常は使えます)

手順1:スケジュール(Recurrence)を用意する

すでに Recurrence がある場合はそのままでOKです。

もし新規で作る場合

  1. Power Automate → 「作成」
  2. 「スケジュール済みクラウド フロー」
  3. 実行間隔を設定(例:毎日 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不要で祝日停止をやるなら、

  1. 今日の日付を作る(JST)
  2. 祝日APIをHTTPで取る
  3. 含まれていれば終了(Terminate)
  4. 含まれていなければ通常処理

これだけで完成です。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次