← 手順一覧へ戻る
Power Automate Desktop文字・日付初心者向け

指定した月の月初・月末を求める(翌月1日から1日戻す)

PADで基準日から月初と月末を求めます。翌月1日から1日戻す流れを、平年の2月・うるう年・12月の年越しで比較。固定日時の練習で、30日後や最終営業日との違いも確認します。

画面上の名前は、表示言語やバージョンによって異なる場合があります。Desktopの例は、フロー作成時に「Power Fx を有効にする」をオフにした標準構文です。Power Fx対応フローでは式・変数参照・インデックスの書き方が異なります。このページでは変数を %変数名% と表記します。出力変数の名前を入力する欄では、前後の % は付けません。

実行前に確認

  • 月末は暦の最終日です。30日後、前月末、最終営業日とは異なります。土日・祝日を避ける処理は含みません。
  • MonthEndの時刻は00:00:00です。その日の23:59:59や月内全データの締切を表す値ではありません。日時の月内抽出へ応用する場合は、MonthStart以上かつNextMonthStart未満という範囲を別途設計します。
  • 書式変換はタイムゾーン変換ではありません。別の暦・地域設定では変換結果を確認してください。年9999の12月など日時の上限付近はこの練習の対象外です。
  • 有人・手動実行で画面表示する例です。クラウドからの起動や無人実行は別の環境設定・利用権が必要です。実際のPower Automateフローは未実行です。

1使うアクション

  1. アクション 1テキストを datetime に変換固定値20260215120000 → BaseDate
  2. アクション 2datetime をテキストに変換yyyyMM → YearMonth
  3. アクション 3テキストを datetime に変換%YearMonth%01000000 → MonthStart
  4. アクション 4加算する日時MonthStartに1月 → NextMonthStart
  5. アクション 5加算する日時NextMonthStartに−1日 → MonthEnd
  6. アクション 6datetime をテキストに変換月初・月末をそれぞれyyyyMMddにする(2個)
  7. アクション 7メッセージを表示月初と月末を確認して終了

図で見る処理のイメージ

概念図

月の日数を28・29・30・31から選ぶ分岐は不要です。月初を作ってから翌月へ進め、1日だけ戻します。

  1. 月初

    2026/02/01 00:00

  2. 1か月後

    2026/03/01 00:00

  3. 1日前=月末

    2026/02/28 00:00

結果の例

通常の入力は月初と月末を表示して終了。日時に変換できない入力では停止し、後続の計算・表示へ進みません。

基準日を変えた4ケース(期待値)
先頭に入力するテキスト月初翌月1日月末
20260215120000202602012026030120260228
20280215120000202802012028030120280229
20260430120000202604012026050120260430
20261231120000202612012027010120261231

図表は暦と公式仕様に基づく期待値で、実際のフローを実行して確認した結果ではありません。PAD実機未実行です。表の日付の時刻はすべて00:00:00です。

設定と処理を説明する模式図です。実際の設定画面や実行結果のスクリーンショットではありません。

2実際の設定内容

入力する値・操作手順を確認する10ステップの設定と確認方法
  1. 1

    準備:WindowsのPower Automate for desktopで、Power Fxをオフにした新しい手動フローを作ります。標準の %変数名% 記法を使います。日本語・西暦の通常のWindows地域設定を想定します。外部接続、Excel、ファイルの読み書きは使いません。組織の利用ルールと利用権を確認してください。

  2. 2

    「テキストを datetime に変換」で、変換するテキスト=20260215120000、日付はカスタム形式で表されます=オン、カスタム形式=yyyyMMddHHmmss、生成された変数=BaseDate。半角数字で入力し、引用符は付けません。2026年2月15日12時の練習値が日時型になります。

  3. 3

    「datetime をテキストに変換」で、変換するdatetime=%BaseDate%、使用する形式=カスタム、カスタム形式=yyyyMM、生成された変数=YearMonth。期待値はテキストの202602です。MMは月で、mm(分)ではありません。

  4. 4

    もう1個「テキストを datetime に変換」を置きます。変換するテキスト=%YearMonth%01000000、カスタム形式をオン、形式=yyyyMMddHHmmss、生成された変数=MonthStart。年月の後ろに日01と時刻000000を付けるため、入力は20260201000000、結果は2月1日00:00:00の日時型です。YearMonth自体は書き換えません。

  5. 5

    「加算する日時」で、日時=%MonthStart%、加算=1、時間単位=月、生成された変数=NextMonthStart。月初から1か月進めるので、期待値は2026年3月1日00:00:00です。元のBaseDateへ直接1か月を足す設定にしないでください。

  6. 6

    もう1個「加算する日時」で、日時=%NextMonthStart%、加算=-1、時間単位=日、生成された変数=MonthEnd。翌月1日の1日前は当月の最終日です。期待値は2026年2月28日00:00:00になります。

  7. 7

    表示用に「datetime をテキストに変換」を2個追加します。1個目は%MonthStart%をカスタム形式yyyyMMddでStartTextへ、2個目は%MonthEnd%を同じ形式でEndTextへ変換します。「メッセージを表示」の本文=月初:%StartText%/月末:%EndText%、ボタン=OK、自動的に閉じる=オフ。期待表示は月初:20260201/月末:20260228です。

  8. 8

    先頭の14桁だけを表の入力へ変更し、毎回先頭から実行します。うるう年の2028年2月、30日までの4月、12月から翌年1月への切り替わりを確認します。途中のMonthStart・NextMonthStart・MonthEndは日時型のまま、StartText・EndTextは表示用テキストです。

  9. 9

    変換できない入力では、既定のエラー時フロー停止を保ちます。空欄や20260230000000のような存在しない日付を、今日や0に置き換えて続行しません。14桁とカスタム形式を確認し、修正後に先頭からやり直します。

  10. 10

    当月へ切り替える場合は、固定値を確認した後に先頭を「現在の日時を取得します」へ置き換え、出力をBaseDate、タイムゾーンをシステムタイムゾーンにします。PCのタイムゾーンが対象業務と一致することを確認します。日付は一度取得し、途中で再取得しません。

Microsoft公式ページで確認する

設定を確認できる公式資料