【初心者向け】Power Automate Desktopの条件分岐を理解しよう

  • URLをコピーしました!

Power Automate Desktop(PAD)でフローを作成する際、条件に応じて処理を分ける「条件分岐」は必須の知識です。適切に条件分岐を設定することで、効率的な自動化が可能になります。この記事では、If文・Switch文の基本から評価式の詳細、倍数の判定方法まで 詳しく解説します。


目次

条件分岐とは?

条件分岐とは、ある条件を満たす場合に特定の処理を実行し、満たさない場合は別の処理を実行する仕組み です。

例えば、次のようなケースで使用します。

  • ユーザーの入力値が100以上なら「合格」と表示、それ未満なら「不合格」と表示
  • 現在の曜日が「月曜」ならA処理、「火曜」ならB処理を実行
  • 数値が偶数か奇数かを判定し、それぞれ異なる処理を実行

PADでは、「条件分岐(If)」や「Switch」アクションを使って条件を設定できます。


If文を使ってみよう

If文とは?

If文は、最も基本的な条件分岐の方法です。

基本の構文

If (条件) Then
〇〇の処理
Else
△△の処理
End If

例1:入力値が100以上かどうか判定する

  1. 「メッセージを表示」アクションで、ユーザーに数値を入力させる
  2. 「条件分岐(If)」アクションを追加
  3. 条件を設定:「入力値 >= 100」
  4. 100以上なら「合格」、それ以外なら「不合格」を表示
If %入力値% >= 100 Then
メッセージを表示 ("合格")
Else
メッセージを表示 ("不合格")
End If

このIf文により、100以上なら「合格」、それ以外なら「不合格」 と表示されます。


Ifの中のIf(ネスト)

Ifの中にIfを入れる(ネスト)

If文の中にさらにIf文を入れることで、より細かい条件分岐が可能です。

例2:入力値が100以上かつ200以下なら「範囲内」、それ以外は「範囲外」

If %入力値% >= 100 Then
If %入力値% <= 200 Then
メッセージを表示 ("範囲内")
Else
メッセージを表示 ("200を超えています")
End If
Else
メッセージを表示 ("100未満です")
End If

IF文のネストはなるべく避ける

ネストのデメリット

  • コードが読みにくくなる(複雑な条件の場合、理解しづらい)
  • 処理が増えるとフローが重くなる

ネストを避ける方法

  1. 条件をシンプルにする
  2. 「ElseIf」を活用する
  3. Switch文を使う(後述)

例3:ElseIf を使って、ネストを減らす

If %入力値% < 100 Then
メッセージを表示 ("100未満です")
ElseIf %入力値% <= 200 Then
メッセージを表示 ("範囲内")
Else
メッセージを表示 ("200を超えています")
End If

こうすることで、シンプルな構造 になり、可読性が向上します。


Switch文を使ってみよう

Switch文とは?

Switch文は、1つの変数に対して、複数のケースを比較し、それに応じた処理を実行する方法 です。

If文とSwitch文の違い

  • If文 → 条件を細かく設定する場合(数値の範囲判定など)に向いている。
  • Switch文特定の値ごとの処理を分ける のに適している。(例:曜日判定など)

Switch文の使い方

例4:曜日によって異なるメッセージを表示する

Switch (%曜日%)
Case "月曜日":
メッセージを表示 ("今日は月曜日です")
Case "火曜日":
メッセージを表示 ("今日は火曜日です")
Case "水曜日":
メッセージを表示 ("今日は水曜日です")
Default:
メッセージを表示 ("その他の日です")
End Switch

このSwitch文では、変数「曜日」の値に応じてメッセージを切り替えています。


評価式をもう少し詳しく

条件分岐を使いこなすには、評価式(条件の書き方)を理解することが重要です。

評価式の演算子

演算子意味結果
=等しい%X% = 10Xが10ならTrue
<>等しくない%X% <> 10Xが10でないならTrue
>より大きい%X% > 5Xが5より大きいならTrue
<より小さい%X% < 5Xが5より小さいならTrue
>=以上%X% >= 5Xが5以上ならTrue
<=以下%X% <= 5Xが5以下ならTrue
AND両方の条件を満たす%X% > 5 AND %Y% < 10Xが5より大きく、Yが10未満ならTrue
ORどちらかの条件を満たす%X% > 5 OR %Y% < 10Xが5より大きい、またはYが10未満ならTrue

倍数の判定

数値が特定の倍数かどうかを判定する

倍数の判定には、「剰余演算子(MOD)」 を使用します。

例5:数値が3の倍数かどうか判定

If %入力値% Mod 3 = 0 Then
メッセージを表示 ("3の倍数です")
Else
メッセージを表示 ("3の倍数ではありません")
End If

この処理では、入力値を3で割った余りが0なら「3の倍数」と判定します。

応用:3と5の倍数を判定(FizzBuzz)

If %入力値% Mod 3 = 0 AND %入力値% Mod 5 = 0 Then
メッセージを表示 ("FizzBuzz")
ElseIf %入力値% Mod 3 = 0 Then
メッセージを表示 ("Fizz")
ElseIf %入力値% Mod 5 = 0 Then
メッセージを表示 ("Buzz")
Else
メッセージを表示 (%入力値%)
End If

このように、条件分岐を駆使することで、さまざまな状況に対応できます。

よくある質問(FAQ)

Q1. If文とSwitch文の使い分けは?

A. 条件が「範囲」ならIf文、特定の「値」ならSwitch文 を使うのが一般的です。

条件推奨される方法
数値が100以上かどうか判定If文%入力値% >= 100
曜日によって処理を変えるSwitch文"月曜日" のとき〇〇"
変数が「A」か「B」かで分岐Switch文"A" または "B"
変数が0以上かつ50以下If文%入力値% >= 0 AND %入力値% <= 50

Q2. Ifの条件を複数組み合わせるには?

A. ANDOR を使って複数の条件を設定できます。

If %年齢% >= 18 AND %年齢% < 65 Then
メッセージを表示 ("対象年齢です")
Else
メッセージを表示 ("対象外です")
End If

この場合、「18歳以上かつ65歳未満」の場合に「対象年齢」と表示されます。


Q3. If文を使わずに倍数の判定をする方法は?

A. 変数に数値を格納し、Switch文を使うことで倍数の判定ができます。

Switch (%入力値% Mod 3)
Case 0:
メッセージを表示 ("3の倍数です")
Default:
メッセージを表示 ("3の倍数ではありません")
End Switch

この方法では、If文を使わずに3の倍数を判定 できます。


Q4. Switch文で「範囲」を指定することはできる?

A. Switch文は基本的に「特定の値」のみに対応 しており、数値の範囲(例:100以上)を判定する場合はIf文を使うのが一般的です。

If %入力値% >= 100 Then
メッセージを表示 ("100以上")
Else
メッセージを表示 ("100未満")
End If

Q5. ElseIfを何回も使うと処理が遅くなる?

A. 条件が増えると処理時間が増えますが、一般的なフローでは問題になりません。ただし、過度なネスト(入れ子)や無駄な判定を避けることが重要 です。

改善例(無駄な判定を削減)

悪い例(冗長な条件分岐)

If %値% = "A" Then
メッセージを表示 ("Aです")
Else
If %値% = "B" Then
メッセージを表示 ("Bです")
Else
If %値% = "C" Then
メッセージを表示 ("Cです")
Else
メッセージを表示 ("その他です")
End If
End If
End If

良い例(Switch文を使う)

Switch (%値%)
Case "A":
メッセージを表示 ("Aです")
Case "B":
メッセージを表示 ("Bです")
Case "C":
メッセージを表示 ("Cです")
Default:
メッセージを表示 ("その他です")
End Switch

このように Switch文を使うとシンプルで可読性が向上 します。


Q6. If文で使える「評価式」の便利な書き方は?

A. 条件をコンパクトに書くことで、コードを短縮できます。

例1:偶数・奇数の判定

If %数値% Mod 2 = 0 Then
メッセージを表示 ("偶数")
Else
メッセージを表示 ("奇数")
End If

例2:文字列の一部を判定(大文字・小文字を無視)

If ToLower(%文字列%) = "test" Then
メッセージを表示 ("一致しました")
End If

ToLower(%文字列%) を使うことで、大文字・小文字の違いを無視できます。


Q7. If文の条件に「NOT」を使うことはできる?

A. NOT を使うことで、条件の逆を判定できます。

例3:入力値が100ではない場合の処理

If NOT (%入力値% = 100) Then
メッセージを表示 ("100ではありません")
End If

この場合、入力値が100でない場合にメッセージを表示 します。

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

この記事を書いた人

目次