業務を自動化する際には、メールを作成したり、ログに残したりするためにはあらゆるデータを組み合わせてテキストを作成する必要があります。
今回は、出力データの加工方法で以下の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です。”と表示されました。
このようにDateTime
はToString()
内で表示形式を指定することが出来ます。
よく使う日時表示形式の指定方法については以下の表を参考にしてください。
標準の日時形式
形式指定文字 | 説明 | 使用例 | 出力例 |
---|---|---|---|
“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の使い方について説明したいと思います。
コメント