こんにちは!UiPath メンターです。
前回は、リストのデータを上から順に処理する「繰り返し」を学びました。
しかし、実際の業務では「全てのデータを同じように処理する」ことばかりではありませんよね。
「金額が1万円以上の案件だけ処理したい」
「ステータスが『完了』になっている行は飛ばしたい」
そんな時、ロボットに**「判断(YES か NO か)」**をさせるのが、今回学ぶ**「条件分岐 (If)」**です。
これを組み合わせることで、あなたのロボットはただの手足から、少し「頭脳」を持ったパートナーへと進化します。
1. 使うアクティビティ:「条件分岐 (If)」
前回作成したループ処理(For Each Row)の中に、判断ポイントを追加しましょう。
手順
- [アクティビティ] パネルで「If」または「条件」と検索します。
- [条件分岐 (If)] をドラッグ&ドロップします。
重要:必ず [繰り返し] の枠の中(シーケンス内) に入れてください。
2. ロボットへの「質問」を書く
アクティビティを置くと、[Condition (条件)] という入力欄があります。
ここに、「YES」か「NO」で答えられる質問(式)を書きます。
例えば、「売上金額」という列の値が「10,000以上」かどうかを判断させたい場合、以下のように書きます。
Cint(CurrentRow("売上金額")) >= 10000
式の解読(ちょっとだけプログラミング!)
CurrentRow("売上金額"):今見ている行の「売上金額」のデータ。>= 10000:1万「以上」ですか?という記号。
(ちなみに「より大きい」は>、「等しい」は=です)Cint(...):ここがポイント!
Excelから読み込んだデータは、ロボットにとって「文字」か「数字」か曖昧なことがあります。
Cintは “Convert to Integer”(整数に変換せよ) という命令です。
これを付けることで、「文字としての”10000″」ではなく「数値の10,000」として正しく大小比較ができるようになります。
3. 分かれ道:「Then」と「Else」
条件を書くと、アクティビティの中に2つの部屋が表示されます。
- Then(真): 質問の答えが YES の時に実行する部屋。
- Else(偽): 質問の答えが NO の時に実行する部屋。
設定例
- Then の中に: [メッセージ ボックス] を置き、
"高額案件です!"と表示させる。 - Else の中に: [メッセージ ボックス] を置き、
"通常案件です"と表示させる(または何も置かずにスルーする)。
4. よく使う条件の書き方リスト
業務でよく使うパターンをまとめておきました。コピペして使ってください。
| やりたい判断 | 条件式の書き方 |
|---|---|
| 文字が一致するか? (例:ステータスが”完了”) |
CurrentRow("ステータス").ToString = "完了" |
| 数値が大きいか? (例:年齢が20歳以上) |
Cint(CurrentRow("年齢")) >= 20 |
| 空欄ではないか? (データが入っているか) |
Not String.IsNullOrEmpty(CurrentRow("備考").ToString) |
💡 メンターからのアドバイス:Elseは空っぽでもOK
初心者のうちは「YESとNO、両方に何か入れなきゃ」と思いがちですが、
「条件に合う時だけ処理したい(合わない時は何もしない)」なら、Else側は空っぽのままで大丈夫です。
シンプルに作りましょう。
今回のまとめ
- ロボットに判断させるには [条件分岐 (If)] を使う。
- 数値の比較をするなら
Cint()で数字に変換してから比較するのが鉄則。 - 条件に合うなら Then、合わないなら Else に進む。
⚠️ つまづきポイント:全角数字の罠
Excelの中に「1000」のように全角で数字が入っていると、Cint で変換できずにエラーになることがあります。
その場合は、Cint(StrConv(CurrentRow("金額").ToString, VbStrConv.Narrow)) という呪文(関数)を使うと、全角を半角に直してくれますよ。
これで、UiPathの基本パーツである「入力・出力・ループ・条件分岐」が全て揃いました。
次回からは、いよいよ「実践ワークフロー作成」に入ります。
これまでに学んだパーツをパズルのように組み合わせて、
「交通費精算サイトからデータを読み取って、Excelの管理表に転記する」
という、実務さながらのロボットを作り上げましょう!