RPA体験談【実践編:Input dialog(入力ダイアログ)の選択肢にExcelの一覧を使う】
前回から大分空いてしまいました。申し訳ありません。
ここからは実践編として、UiPathでの設定のハックというか、私が知って役立ったことを記載していきます。
UiPathを使っている方に向けて書きますので、
そうで無い方には何のこっちゃということもあると思いますが、お許し下さい。
困ったことの解決方法を書くことで、他に困った方、もしくは未来の自分に向けています。
【Input dialog(入力ダイアログ)アクティビティについて】
UiPathでの操作者とのインターフェイスは「Input dialogアクティビティ」です。
Web画面での入力項目(ユーザIDやパスワード)にも使いますが、
メニュー選択フォームのように使うこともできます。
1.選択肢A
2.選択肢B
3.選択肢C
…
みたいなイメージですね。
その際には Input Dialogのオプション値に使用する変数を以下のように設定します。
・配列型にする(変数型の覧にString[]と表示される)
↓具体的には、Array of T を選択して、 Stringを選ぶ。
↓デフォルト(既定値)に {“1.選択肢A”,”2.選択肢B”,”3.選択肢C”}を入力
「配列」って始め使い慣れないと、何だろう?と思いますが、こういう風なイメージです。
result(結果)は、配列では無いString型です。沢山ある行列から一つを選んでいるからですね。
————————————————————————————————-
さて、選択肢が流動的(都度変わる)だったり、数が大量だったりしたら、どうすれば良いのでしょうか?
この場合は、いったん選択肢をDataRow型に読み込んで処理します。
このDataRowは、ざっくり言うとDataTableの1行だけのデータです。
具体的な事例をあげます。
下の様なExcelの表により処理を選択するケースです。
選択した後、右列の色々(保存フォルダやらファイル名やら)を取り込みたいとします。
【Excel上の準備】
Excelの処理一覧のシートを準備します。(元シートになります)
InputDialogに使うために、もう一つ別のシートを作ります。
このシートでは、元のシートを横型に展開します。
(colomun()で列番号・vlookupで列番号をkeyに選択肢を表示する)
そこからは、以下のようにUiPathを設定します。
1. 横型の方のシートを読み込む(1行のみ…表題行含めて2行)
2. InputDialogに使う変数として配列型のStringを用意する。
Assign(代入)元を DT_List.rows(0).ItemArray.Cast(Of String)().ToArray
代入先は配列型のString
3. InputDialogで、「2の変数」を表示する。
4. 元シート(縦型)をDataTableに読み込む
5. ユーザが選択したkeywordを元に「4のDataTable」を抽出し、1行のDataTableにする
Assign(代入)元を DT_Syori.Select(“[項目]= ‘”+SearchWord + “‘” ).copytodatatable
(Assing先はDataTable)
6. ここからは、5のDataTableを元に必要な項目を読み込む
例:Assign(代入)元を DT_SyoriFilter.Rows(0)(“出力フォルダ”).ToString とする。
↓こんな感じです。
これが出来ると結構便利です。
お試し下さい。
↓日記の目次を作りました。
RPA体験談【目次(主にUiPath)】