【できるUiPath】は注目のRPAサービス「UiPath」を使って、RPAのワークフローを作るための基本操作から、実際に業務をRPA化する実践テクニックまでを解説する連載です。
過去の記事一覧【できるUiPathまとめ】
日時情報の取得
日付や時刻から必要な情報だけを抜き出して入力するには
[DateTime]をさらに活用してみましょう。日時を指定した形式で表示したり、日時から特定の情報だけを取得したりすることもできます。
日時から必要な情報を得る
業務を自動化するときは、単純に日時を得るだけでなく、それを必要な形式に変更したり、必要な情報だけを取り出す必要があります。ここでは、日時のデータの基本的な扱い方を紹介します。
日付を取得する
「DateTime.Now.ToString("yyyy/MM/dd")」のようにすると、日時を指定した形式の文字列として取り出せます。
時刻を取得する
日時の情報から時刻だけを取り出すこともできます。「"hh:mm:ss"]と表示したい形式を指定しましょう。
日時を計算する
[AddDays]で日付を足したり、ちょっとした工夫で前月末を取得したりと、日付の計算もできます。
HINTカレンダーの操作などにも活用できる
このレッスンで紹介する方法は、見積もり作成ソフトで日付を選択したり、カレンダーアプリで日付を選択したりするなど、日付を扱うワークフローを作成するときに便利です。
HINTこのレッスンで使う変数
このレッスンでは、次の変数を使います。ワークフロー内で登場する変数の用途を確認しておきましょう。
dtToday
型:GenericValue
用途:取得した日時を格納する
日付だけを取得する
日付と時刻の両方が含まれた[DateTime.Now]から、日付だけを指定して取り出しましょう。形式を指定することで、欲しい情報だけを表示できます。
1ワークフローを開く
2処理を書き換える
3処理を実行する
HINT形式にこだわらないなら
「2018/10/21」のように「年/月/日」で並ぶ形式で表示したいときは、手順2のように「.ToString("yyyy/MM/dd")」と形式を指定する必要があります。もしも、海外で一般的な「月/日/年(10/21/2018)」のような形式で表示したいときは、単に「.ToShortDateString」と指定して日付を取り出しましょう。
なお、「.ToLongDateString」と指定すると、「Sunday, 21October 2018」のような長い形式で表示できます。
HINT月を表す「MM」は大文字で指定しよう
日時を表すフォーマットでは、「m」の扱いに注意が必要です。ここで指定した月を表す場合は、必ず大文字の「M」を指定します。小文字の「m」は時刻の分を表すためのものなので、間違えないように注意しましょう。
HINTすべて指定する必要はない
ここでは、「yyyy/MM/dd」と年、月、日をすべて指定しましたが、「ToString("dd")」と指定することで、日付だけを取り出せます。例えば、Webアプリで今日の日付をクリックしたいときなどは、この方法で日付を取得して、クリック先を指定できます。
時刻を取得する
続いて、時刻だけを取り出します。日付のときと同様に「.ToString("hh:mm:ss")と形式を指定します。「""」内の違いに注意して実行してみましょう。
1ワークフローを開く
2処理を書き換える
3処理を実行する
HINT形式を指定せずに時刻を取得するには
日付のときは、形式に注意する必要がありましたが、時刻の場合は地域による表記の違いがほとんどないため、よりシンプルな方法で時刻を取得できます。「.ToShortTimeString(時と分のみ)」や「.ToLongTimeString(秒まで表示)」と指定して結果を確認しましょう。
HINT分は小文字の「mm」と指定する
形式を指定して時刻を取得する際は、必ず「m」を小文字で表記します。大文字にすると、前で解説した月と判断されるため、「時:月:秒」と表示されます。
HINT日時をファイル名に使いたいときは
ログファイルを出力するワークフローを作成するときなどは、取得した日時をファイル名に使用できます。ただし、日時に含まれる「/」や「:」はファイル名として使えないため、「"yyyyMMdd"」や「"hhmmss"」のように「/」や「:」を抜いた形式で指定します。
×日後の日付を取得する
作成するワークフローによっては、今日から指定した日数後の日付を取得したいことがあります。そこで、日付を計算する方法を見てみましょう。
1ワークフローを開く
2処理を書き換える
3処理を実行する
HINT年や月、時刻の計算もできる
ここでは、日付を計算するための「AddDays」を使いましたが、このほか、次の方法で日付以外を計算できます。
・AddMonths:月を計算する
・AddYears:年を計算する
・AddHours:時を計算する
・AddMinutes:分を計算する
・AddSeconds:秒を計算する
HINT引き算をするには
「AddDays」は、「Add」という言葉が使われていますが、足し算だけでなく引き算もできます。「AddDays(-1)」と負の数を指定すれば、指定した日数前の日付を表示できます。
前月の末尾を取得する
請求処理などでは、前月の末尾を日付として扱うことがよくあります。このような日付も、発想を少し工夫することで指定が可能です。
1ワークフローを開く
2処理を書き換える
3処理を実行する
HINTどうやって前月末を指定しているの?
「前月の末日」は、発想を変えて考えると、「今月の1日の1日前」といえます。これを表したのが手順2で記入した処理です。長いので2つに分解して見てみましょう。
まず、「New DateTime(DateTime.Now.Year, DateTime.Now.Month, 1)」は、最後の「1」から分かるように現在の年、月の1日(最初の日)を指定しています。この構文に対して、「AddDays(-1)」を指定しているので、1日前、つまり前月の末日を指定できます。最後に、これで取得できた日時の情報をToString("yyyy/MM/dd")で、指定した形式の文字列にしています。
HINT日時の形式をマスターしよう
HINT日付の記号は個別に変更できる
Point日時のデータを活用しよう
日時は、普段の業務を自動化する際に欠かせない情報の1つです。ログとして情報を残したり、請求書の日付として使ったり、データの取得日を指定したり、タイムスタンプとして使ったりと、いろいろな活用ができます。単に表示するだけでなく、必要な情報をどのように取り出すか、どうやって計算するかを覚えておくと、いろいろなワークフローで活用できるでしょう。
提供:UiPath