はじめに
インターネットでPower Appsによる祝日判定の方法が意外と出ていなかった印象なので、投稿することにしました。
Power Automateによる祝日判定は、かなり見かけましたが、Power Automateで出来ることは、Power Appsから直接できるケースもあります。
仮説検証方法の一例として見ていただければ幸いです。
まずはPower Appsを準備
データからOffice 365 Outlookを追加しましょう。
判定する日付を選択するコントロールを用意
- 一例として載せているだけであって、必須ではありません
Power Automateの方法から類推してみる
さて、前述のとおり、祝日判定はPower Automateの分は多く出てきます。
方法は下記の通り。
イベントのカレンダー ビューの取得 (V3)
イベントのカレンダー ビューの取得 (V3) のアクションを使って、開始時刻から終了時刻のイベントを拾っています。
上記の設定では戻り値はこの通り。
勤労感謝の日がでますね。
やっていることは単純です。
ではPower Appsで直接こちらを実行するには、どのようにしたらよいでしょうか?
パラメーターに注目する
アクションの実行に必要な材料はパラメーターです。
まずは赤線の未加工入力の表示をクリックしてみましょう。
アクションに必要な材料が列挙されていることがわかります。
見切れているcalendarIdが日本の祝日を表すIDと理解できますね。
あとは開始時刻と終了時刻と見て取れます。
Power Appsで再現する。
DatePickerCanvas1が、モダンコントロールの日付ピッカーです。
DatePickerCanvas1.SelectedDateで、選択した日付が取得できます。
👆は、日付ピッカーに合わせて祝日名を出力するアプリ。
DatePickerCanvas1.SelectedDateはDate型のデータなので、文字列に変換します。
強引に変換したケースが下記の例です。
First(
Office365Outlook.GetEventsCalendarViewV3(
"AAMkADBiYTQzZDYzLWQ4NzMtNDI4Yy05MzM5LTJmZGQ3OWViZDcxNQBGAAAAAADfGay5QuF-RaPDhnhQhBiwBwDkSCYyPiA9RbDtjRLFGs9eAAAAAAEGAADkSCYyPiA9RbDtjRLFGs9eAAATWTqBAAA=",
Text(DatePickerCanvas1.SelectedDate,"yyyy-mm-dd") & "T00:00:00",
Text(DatePickerCanvas1.SelectedDate,"yyyy-mm-dd") & "T00:00:00"
).value
).subject
戻り値が、テーブル(配列のような考え方)になるので、First関数で先頭の値を取得しましょう。
Firstによって最初のレコードが取得できるので、そこから値をとればOK!!
subjectがイベント名ですね!
Power AutomateからPower Appsの応用方法を調べてみよう!
Power Automateで出来ることは直接Power Appsで出来るケースがあります。
大切なのは自分で仮説を立てて検証してみることです。
Good night!






