今回は、UiPathを用いて時刻を記録する方法です。
その例として、メッセージボックスが表示されてからOKボタンをクリックするまでの時間を計測するツールを作成してみましょう。
ツールの内容は以下の通りです。
1.0~10秒までの任意の秒数(1秒単位)で待機する。
2.変数startTimeに現在の時刻を格納し、直後にメッセージボックスを起動させる。
3.OKボタンをクリックした後、現在の時刻を変数stopTimeに格納する。
4.ExcelファイルClick.xlsxを起動し、B列にstartTime、C列にstopTimeを記録する。
5.1~4を計5回繰り返す。
6.現在の時刻を取得し、yyyyMMddhhmmss形式に変換。ファイル名として別名保存する。
実行動画
完成図
実際のフローチャート
変数は以下の通りです
では早速構築していきましょう
①繰り返しアクティビティを設定する
変数counterを用いて繰り返し回数を設定します。
今回は5回繰り返します。よって、Conditionは以下の通りです。
counter <= 5
②0~10秒までの待機秒数を発生させるため、変数addtimeを設定する
random関数を用いて以下のように設定すると0~10秒までの任意の数字を返します。
addtime=New Random().Next(0,10)
③変数addtimeで返した秒数待機する
待機アクティビティを使用します。
待機アクティビティは00:00:00単位で入力する必要があるため、
任意の秒数で設定するにはTimeSpanを用いて以下のように設定します。
New TimeSpan(00,00,addtime)
④開始時間を変数startTimeに格納する
現在時刻を取得するには、Nowを用いて以下のように設定します。
startTime = Now.ToString(“hh:mm:ss.ff”)
この形式を用いて今回は1/100秒まで取得できるようにしました。
⑤メッセージボックスを表示させる
メッセージボックスアクティビティを使用します。
⑥クリック後の時刻を変数stopTimeに格納する
③と同様の方法で以下のように設定します。
stopTime = Now.ToString(“hh:mm:ss.ff”)
⑦ExcelファイルにstartTimeとstopTimeを入力する
Excelアプリケーションスコープアクティビティを挿入し、ファイルのフルパスFを入力します。
このExcelファイルは以下のような構成になっています。
なお、
D列にはC列-B列の差を求めることで、クリックまでにかかった時間をセルF2にはD列で算出された5回の平均値を計算する関数があらかじめ埋め込まれています。
変数counterの初期値は1、セルは2列目から始まっていることより、
範囲は以下のように指定します。
startTime⇒”B”+(counter+1).ToString
stopTime⇒”B”+(counter+1).ToString
⑧代入アクティビティでカウンターを1増やします
counter=counter+1を設定するとよいですね。
ここまでが繰り返しの内容となります。
⑨ファイルを別名で保存する
特別なアクティビティは存在しないので
「ファイルをコピー」アクティビティを使用します。
元ファイルのパス:現在使用中のファイルのフルパス
保存先のパス:変更したいファイルのフルパス に設定します。
⑩元ファイルの入力欄をブランクにする
Excelアプリケーションスコープを挿入し、その中にセルに書き込みアクティビティを挿入します。
範囲:“B2:C6”
値:“”とすることで範囲内をブランクにすることができます。
いかがでしたでしょうか?
今回はメッセージボックスをクリックすることでイベントを発生させ、その前後の時刻を取得しましたが、この考え方は、出退勤管理、1日の行動管理などに応用することができます。
ぜひ試してみてください。