5
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Power Automate Desktop の変数(4)「ブール型」

Last updated at Posted at 2021-02-21

概要

Power Automate Desktop(以下PAD) の変数についての記事4回目「ブール型」です。「変数の設定」アクションを使用することで複雑な条件をわかりやすく記述できます。
PADのベース言語Robinのドキュメントを参考に試したものをまとめています。コードはPADにコピペで試せます。

目次

  1. 概要、数値型
  2. テキスト型
  3. Datetime型
  4. ブール型<今回の記事>
  5. リスト型
  6. データテーブル型
  7. カスタムオブジェクト型

注意

  • すでに使いこなしているかた向けの記事ではありません。
  • Robin言語はあくまでベースであるためPADと異なる部分があります。
  • この記事の内容はすべて試していますが公式の見解とは異なる可能性がありますのでご注意ください。
  • Power Automateクラウドフローの入出力変数については触れていません。
  • 2021年2月の記事です。
  • あくまでも個人のまとめです。
  • 誤りがありましたらコメントでご指摘いただけると幸いです。
  • Robinの公式サイトは2021年4月30日に終了しました。

ブール型変数について

ブール型変数は比較演算、論理演算から返されるブール値TrueまたはFalseが代入される変数です。
条件アクションで使うことが多いですがあらかじめ変数にすることで複雑な条件もわかりやすくできます。
「変数の設定」アクションでは宛先内に判定したい条件を%で囲い設定します。

比較演算

比較演算とは比較演算子を使って2つの値を比べます。同じ型どうしで行います。

比較演算子 呼び名 True(真)の条件
= 等価 左オペランドと右オぺランドが等しければTrue
<> 不等価 左オペランドと右オぺランドが不一致ならばTrue
> 大なり 左オペランドが右オぺランドより大きければTrue
>= 大なりイコール 左オペランドが右オぺランド以上ならばTrue
< 小なり 左オペランドが右オぺランドより小さければTrue
<= 小なりイコール 左オペランドが右オぺランド以下ならばTrue

「変数の設定」アクションでは他にin,not inがリスト型に使えます。Robinのドキュメントでは比較演算子に列挙されていますが、リスト型のときにあらためて記載します。

数値の比較

2021-02-14-22-42-08.png

2021-02-14-22-42-57.png

2021-02-14-22-48-06.png

2021-02-14-22-48-30.png

datetime値の比較

2021-02-14-22-55-55.png

テキスト値のLengthプロパティの比較

2021-02-14-22-57-43.png

テキスト値の比較

アルファベットはA<Zの順位を持っています。
2021-02-14-23-04-49.png

論理演算

比較演算の条件を論理演算で複合できます。
返す値はTrueまたはFalseのみです。
論理演算子

論理演算子 呼び名 True(真)の条件 覚え方
AND 論理積 すべての条件が満たされるときTrue かつ
OR 論理和 複数条件から1つの以上条件が満たされるときTrue または
XOR 排他的論理和 2つの条件のうち1つだけが満たされるときTrue どちらか1つだけが
NOT 論理否定 条件を満たさないときTrue でない

論理積 AND

複数の条件すべてが真のときTrueを返します。

2021-02-15-21-01-05.png

2021-02-15-21-01-27.png

ブール型変数も条件にできます。

2021-02-15-21-03-25.png

2021-02-15-21-04-11.png

論理和 OR

複数の条件のうち、いずれかが真のときTrueを返します。
2021-02-17-18-05-57.png

2021-02-17-18-06-15.png

排他的論理和 XOR

2つの条件うち片方だけが真のときTrueになります。両方Trueまたは両方FalseのときはFalseです。
2021-02-17-20-49-51.png

2021-02-17-20-50-09.png

論理否定 NOT

単一条件の否定が成立するときTrueになります。
「7は5より小さい」を否定→「7は5より小さくない」
2021-02-17-20-57-28.png

2021-02-17-21-00-42.png

複数条件を変数にして可読性を上げる

PADに限らず次例のような複雑な条件をみたことないでしょうか。あるいはIF文が不要に入れ子になっている表記を。読めなくはないですが他人に読んでもらうのも時間がかかるし、何より自分自身が混乱して間違えやすくなります。
2021-02-17-22-21-06.png

PADの場合は「変数の設定」アクションをつかうと複雑な条件も可読性がよくなります。1つ1つの条件を変数に設定してIFの前に外だしするだけで、とてもすっきりします。

15日以降
image.png

2月または4月
image.png

日曜日でない
image.png

image.png

アクション数は増えますが、だいぶ読みやすくなったのではないでしょうか。
また条件の内容を変数名にしておくことでどのような判定をしていているのかわかりやすく、条件の変更がも容易になります。

今回のコード

SET boolvar TO 3 = 3
SET boolvar2 TO 3 <> 4
DateTime.GetCurrentDateTime.Local DateTimeFormat: DateTime.DateTimeFormat.DateAndTime CurrentDateTime=> CurrentDateTime
SET datetime TO D'2021/02/25 00:00:00'
SET boolvar3 TO CurrentDateTime > datetime
SET Text TO $'''ABCDEFGH'''
SET boolvar4 TO Text.Length >= 6
SET boolvar5 TO Text[2] < 'D'
SET boolvar6 TO CurrentDateTime.DayOfWeek <= datetime.DayOfWeek
SET LogiVar TO 3 = 3 AND 2 = 1
SET LogiVar2 TO boolvar AND boolvar2
SET LogiVar3 TO 'D' <> 'D' OR 'E' < 'J'
SET LogiVar4 TO 4 > 3 XOR 6 < 5
SET LogiVar5 TO NOT 7 < 5
IF (CurrentDateTime.Day >= 15 AND (CurrentDateTime.Month = 2 OR CurrentDateTime.Month = 4) AND NOT CurrentDateTime.DayOfWeek = 'Sunday') = True THEN
    Display.ShowMessageDialog.ShowMessage Title: $'''PA4d''' Message: $'''変数のテスト''' Icon: Display.Icon.None Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False ButtonPressed=> ButtonPressed
END
SET IsDayGt15 TO CurrentDateTime.Day > 15
SET IsMonthAprOrFeb TO CurrentDateTime.Month = 2 OR CurrentDateTime.Month = 4
SET IsWeekOfDaySunday TO NOT CurrentDateTime.DayOfWeek = 'Sunday'
IF (IsDayGt15 AND IsMonthAprOrFeb AND IsWeekOfDaySunday) = True THEN
    Display.ShowMessageDialog.ShowMessage Title: $'''PA4d''' Message: $'''変数のテスト''' Icon: Display.Icon.None Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False ButtonPressed=> ButtonPressed
END

今回のまとめ

複雑な条件を記述する場合、変数をつかった方法は効果が高いのでオススメです。

参考

Robin - RPA language

5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?