スポンサーリンク

UiPathデータ操作編③ 出力データの加工方法

前回 UiPathデータ操作編② 文字列操作方法

業務を自動化する際には、メールを作成したり、ログに残したりするためにはあらゆるデータを組み合わせてテキストを作成する必要があります。
今回は、出力データの加工方法で以下の3つについて説明したいと思います。

  • 文字列の連結方法
  • 日時の表示形式変更方法
  • String.Formatメソッドについて

今後、データの加工方法は必要な知識になるため覚えておきましょう。

スポンサーリンク

文字列の連結方法

まず、文字列の連結方法について説明します。
文字列を連結する際には「+」記号を使用します。これまでのチュートリアルでも代入1行を書き込みに設定する際によく出てきていました。

String型でなければ文字列の連結は出来ず、エラーが表示されるため注意してください。

現在時刻を取得して、”現在時刻は”という文字列と取得した現在時刻を組み合わせて
"現在時刻は" + 取得した現在時刻 + "です。"と表示してみましょう。

まず、UiPathのMain画面でシーケンスを配置して、変数一覧でnowtimeという変数を作成します。変数の型は型の参照から「型の名前」入力欄にSystem.DateTimeと入力しDateTime型を選択してください。

既定値にはDateTime.Now(Nowのみでも可)と入力してください。

次に、1行を書き込みを配置します。
お気に入りから配置するか、プログラミング -> デバッグ -> 1行を書き込みから配置してください。

配置が完了したら、「Text」に"現在時刻は" + nowtime.ToString + "です。"と入力してください。

それでは、実行してみます。

“現在時刻は01/08/2020 13:57:29です。”と表示されました。
このように「+」を使用することで、文字列を連結させてデータを表示することが出来ます。
次は日時の表示形式を変更してみます。

日時の表示形式変更方法

次は日時の表示形式変更方法について説明します。
DateTime.Nowでは現在日時(MM/dd/yyyy hh:mm:ss形式)を取得します。
日付部分を無くして、表示形式をhh:mm:ssのみに変更しましょう。

まず、1行を書き込みの「Text」を"現在時刻は" + nowtime.ToString("hh:mm:ss") + "です。"となるように変更します。

1行を書き込みを選択している状態で、右側のプロパティの「Text」項目の横にある...を押すと式エディタを表示できます。

変更が完了したら、実行してみます。

“現在時刻は02:59:32です。”と表示されました。
このようにDateTimeToString()内で表示形式を指定することが出来ます。
よく使う日時表示形式の指定方法については以下の表を参考にしてください。

標準の日時形式

形式指定文字説明使用例出力例
“d”短い形式の日付(MM/dd/yyyy)DateTime.Now.ToString(“d”)01/08/2020
“D”長い形式の日付(曜日, MM, 月, yyyy)DateTime.Now.ToString(“D”)Wednesday, 08 January 2020
“g”一般の日付と短い形式の時刻(MM/dd/yyyy hh:mm)DateTime.Now.ToString(“g”)01/08/2020 13:45
“G”一般の日付と長い形式の時刻(MM/dd/yyyy hh:mm:ss)DateTime.Now.ToString(“g”)
※DateTime.Nowと同じ
01/08/2020 13:45:00
“t”短い形式の時刻(hh:mm)DateTime.Now.ToString(“t”)13:45
“T”長い形式の時刻(hh:mm:ss)DateTime.Now.ToString(“T”)13:45:00

カスタム日時形式

形式指定文字説明使用例出力例
“d”日にち(1~31)DateTime.Now.ToString(“yyyy/M/d”)2020/1/8
“dd”日にち(01~31)DateTime.Now.ToString(“yyyy/M/dd”)2020/1/08
“ddd”曜日の省略名DateTime.Now.ToString(“yyyy/M/dd ddd”)2020/1/08 Wed
“dddd”曜日の完全名DateTime.Now.ToString(“yyyy/M/dd dddd”)2020/1/08 Wednesday
“M”月(1~12)DateTime.Now.ToString(“yyyy/M/d”)2020/1/8
“MM”月(01~12)DateTime.Now.ToString(“yyyy/MM/d”)2020/01/8
“MMM”月の省略名DateTime.Now.ToString(“yyyy, MMM, d”)2020, Jan, 8
“MMMM”月の完全名DateTime.Now.ToString(“yyyy, MMMM, d”)2020, January, 8
“y”年(年の下2ケタ 0~99)nowdate.ToString(“y/M/d”)
※nowdate=0001/01/08
1/1/8
“yy”年(年の下2ケタ 00~99)nowdate.ToString(“yy/M/d”)
※nowdate=0001/01/08
01/1/8
“yyy”年(000~9999)nowdate.ToString(“yyyy/M/d”)
※nowdate=0001/01/08
001/1/8
“yyyy”年(000~9999)nowdate.ToString(“yyyy/M/d”)
※nowdate=0001/01/08
0001/1/8
“h”12時間形式の時間(1~12)DateTime.Now.ToString(“h:m:s”)1:45:0
“hh”12時間形式の時間(01~12)DateTime.Now.ToString(“hh:m:s”)01:45:0
“H”24時間形式の時間(1~24)DateTime.Now.ToString(“H:m:s”)13:45:0
“HH”24時間形式の時間(01~24)DateTime.Now.ToString(“HH:m:s”)13:45:0
“m”分(0~59)DateTime.Now.ToString(“h:m:s”)1:5:0
“mm”分(00~59)DateTime.Now.ToString(“h:mm:s”)1:05:0
“s”秒(0~59)DateTime.Now.ToString(“h:m:ss”)1:5:0
“ss”秒(00~59)DateTime.Now.ToString(“h:m:ss”)1:5:00

参考サイト

日付や時間などのデータは色々なところで使用すると思いますので、覚えておきましょう。

String.Formatメソッドについて

次はString.Formatメソッドについて説明します。
「+」を使った文字列連結は簡単に設定でき、とても扱いやすいですがテキストが長い場合やデータ量が多い場合はString.Formatメソッドを使用すると便利です。

String.Formatメソッドはデータを自動でString型に変換し、カスタム書式がサポートされているので先ほどの日時表示形式を指定することが可能です。

まず、1行を書き込みの「Text」をString.Format("現在時刻は{0}です",nowtime)となるように変更します。

一度これで実行してみます。

“現在時刻は01/09/2020 11:38:38です”と表示されました。
文字列が連結され、表示されていることが確認出来ました。

{0}は”,”の後ろに入力した文字列や変数のインデックス値を指定して取得しています。今回の場合はnowtimeの値を取得しています。
“,”で後ろに他の文字列や変数をnowtime以外に追加したい場合は{1}{2}とインデックス値を指定することで、文字列や変数の値を取得できます。

インデックス値は0からスタートします。

それでは、1行を書き込みの「Text」をString.Format("現在時刻は{0}{1}",nowtime,"です")となるように変更して実行してみましょう。

さきほどと同じように”現在時刻は01/09/2020 11:55:00です”と表示されました。

次は、カスタム書式のサポートについてです。
今度は日時表示形式の指定をしてみます。hh:mm:ss形式で表示してみましょう。

1行を書き込みの「Text」をString.Format("現在時刻は{0:hh:mm:ss}{1}",nowtime,"です")となるように変更します。

それでは、実行してみます。

“現在時刻は12:02:30です”と表示されました。

このように、インデックス値の後ろに“:”を追加し、カスタム書式を指定する文字を入力することで表示形式を変更することが出来ます。

以上で、出力データの加工方法についての説明は終了します。

最後に

「+」で文字列を連結する方法もString.Formatメソッドを利用した文字列を連結する方法も両方覚えておくととても便利です。
日時の表示形式以外にもカスタム書式の指定の仕方があるのでそちらも必要なときは調べながら実行して見てください。

次回はDataTableの使い方について説明したいと思います。

次回 UiPathデータ操作編④ DataTableの使い方

コメント