【UiPath】Windows電卓のセレクターを調整して計算する方法

概要

Excelシート内(下記)に用意した「数字A」と「数字B」を、Windowsの電卓で足し算をして、「合計」に全行分を計算して書き込みます。
数字の入力は【クリック】アクティビティで操作させます。2桁以上の数字は電卓のキー操作が出来ない為、例外(エラー)が発生しますので、【トライキャッチ】を使って「NG」と書き込みます。

サンプルデータ

完成ワークフロー全体図

ワークフロー全体図

主な使用アクティビティ

アプリケーションを使用
Excelアプリケーションスコープ
範囲を読み込み
繰り返し (データ テーブルの各行)
代入
トライキャッチ
クリック
テキストを取得
セルに書き込み

変数

[名前]|[変数の型]|[用途]

str_String|String|計算結果
dt_DataTable|DataTable|計算するExcelの表
Int_Counter|Int32|合計を書き込むセルの行番号
str_数字A|String|dt_DataTableの数字A列
str_数字B|String|dt_DataTableの数字B列

作成手順

1.はじめに(作業の流れ)

→実際に手作業でやる流れを確認します。
①電卓起動
②数字A「1」クリック
③「+」クリック
④数字B「9」クリック
⑤「=」クリック
⑥Excel「合計」列に、計算結果「10」を書き込み

2.「1.はじめに」の①~⑤の操作と⑥の計算結果を取得

→【アプリ/Webレコーダー】もしくは、各アクティビティを組み合わせて、一連の計算操作のアウトラインを下記のように作成します。計算結果を「str_String」に代入します。

アプリ/Webレコーダー

3.【アプリケーションを使用】内に、【Excelアプリケーションスコープ】と【範囲を読み込み】を配置

→「SampleData.xlsx」シート名「202308h5」の情報をデータテーブル「dt_DataTable」で取得します。【範囲を読み込み】の[ヘッダーを追加]にチェック。

【Excelアプリケーションスコープ】と【範囲を読み込み】

4.【繰り返し (データテーブルの各行)】を配置

→【繰り返し (データテーブルの各行)】から1行ずつ値を取得します。プロパティの現在のインデックスに、変数「Int_Counter」を設定。「0」から始まり、繰り返すごとに「+1」が加算されます。

▼取得したDataRow例(1行目)▼

DataRow { HasErrors=false, ItemArray=object[3] { 1, 9, [] }, RowError=””, RowState=Added, Table=[DataTable] }

5.【複数代入】を配置

→【繰り返し (データテーブルの各行)】内に配置し、DataRowの情報を変数「str_数字A」「str_数字B」に代入します。また合計列に書き込む際に使用する「Int_Counter」の1回目は「0」が入る為、「2」を足して、セルの2行目から書き込まれるようします。繰り返されるごとに「2、3、4…」とカウントされます。

str_数字A = Row(“数字A”).ToString
str_数字B = Row(“数字B”).ToString
Int_Counter = Int_Counter + 2

複数代入

6.2番目で作成した数字Aの【クリック】~計算結果【テキストを取得】までのアクティビティを、【繰り返し (データテーブルの各行)】内に配置

→【複数代入】アクティビティの下に配置します。

7.数字の【クリック】の厳密セレクターを変数に置き換える

→「プロパティ>ターゲット>厳密セレクター」から、レコーディングした際にクリックした「(例)1」を「str_数字A」に置き換えます(※2箇所)。同様に「(例)9」を「str_数字B」も置き換えます。

変更前
厳密セレクター変更前

変更後
厳密セレクター変更後

※該当箇所を「右クリック」→「変数を使用」

8.「数字Aの【クリック】~計算結果【テキストを取得】までのアクティビティ」を、トライキャッチの[Try]に入れ、[Catches]には【代入】、[Finally]には【セルに書き込み】を配置

→数字A列の5番目は「55」となっている為、電卓に入力できず、例外が発生します。(※実際は【文字を入力】アクティビティで入力可能です)それを[Catches]の【代入】で、計算結果の変数「str_String」に「NG」を代入します。必ず実行される[Finally]には、「str_String」の「計算結果」か「NG」の情報が書き込まれます。

[Catches]には【代入】

【セルに書き込み】
シート名:”202308h5″
範囲:”C” + Int_Counter.tostring
値:str_String

[Finally]には【セルに書き込み】

実行結果

実行結果