0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【UiPath】繰り返し (Excel の各行)内の処理をワークフローファイル化

Last updated at Posted at 2025-02-09

きっかけ

UiPathのExcelモダンアクティビティでの繰り返し処理を行う際に「繰り返し(Excelの各行)」を使用しますが

あれ?繰り返しの内の処理を外部ワークフロー化する手順ってどうするんだろう?

という疑問が沸いたので、検証してみました。

前提

下記内容はExcelモダン、ワークフローファイル抽出、引数等ついて知識がある前提となっています

外部ワークフローファイル化したい理由

軽くだけ、なぜ外部ワークフローファイル化したいのかも一応触れておくと

ネストを深くしたくない

フローの階層が深くなると、劇的に可読性が落ちます
自分で作ったフローを一月後に見返したら嫌気がさすレベルです  

エラー処理(try catch)を入れたい

上記のネストの話とも関係しますが、Excel一覧を処理させるプロセスでは、エラーが出た行のデータは異常終了させて、後続の行は処理継続させたいケースが多いと思います。
となると、繰り返し内にtry catchを入れて、エラーハンドリングしたいけど、直でtry catchを繰り返し内に入れるとネストが深くなるということもあり、ワークフローファイル化したくなります。

入出力

下記の様なExcelデータを読ませて、計算結果列に、「入力値 × 5」の値を返すだけです

入力データ
image.png

出力データ
image.png

普通に組んだ場合

大体、下記の様な形になると思います
image.png

ワークフローファイルへ切り出し

該当箇所を部分をワークフローファイル化します
image.png

image.png

抽出できましたが、CurrentRow変数が定義されてないので、エラーになります
引数を定義して、呼び出し側で引数を渡してやる必要があります
image.png

この変数ですが、型が分かりません・・・
image.png

ドキュメントに情報がないので、代入アクティビティの左辺にCurrentRowを入力して、マウスオーバーすると「UiPath.Excel.CurrentRowQuickHandle」型であることが分かる
(他にも調べる方法あるかも)
image.png

無事引数を定義して、エラー解決
image.png

呼び出し側で引数を渡してやり、無事完成、うまく動きました
image.png

まとめ

従来だと下記の様に処理していて、Excelモダンでの行データの渡し方が不明でした。
これでExcelモダンの利用範囲が広げられそうです。

従来処理方法
⓵Excelをデータテーブル型変数へ読み込み
⓶繰り返し(データテーブルの各行)でループ
⓷ループ内の本体をワークフローファイルへ切り出し、引数はDataRow型を使用

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?