UiPath

【UiPath】初心者必見!「Null」と「空白」の違いをわかりやすく解説

「Null」と「空白」の違いって最初は混乱しますよね。。。

具体例を出しながら、なるべくわかりやすく説明します!

Nullとは

「Null」とは、何もない、つまり「存在しない」ことを示す特別な値です。

例えば、String型の変数に値が設定されていない場合、その値はNullになります。

画像に alt 属性が指定されていません。ファイル名: image-6.png

「str」変数を宣言し、既定値を設定せず、メッセージボックスに「Length」メソッドで文字数を表示させようとします。

実行すると以下のようにエラーになります。

画像に alt 属性が指定されていません。ファイル名: image-7.png

何もない変数の文字数は表示できないので、「Length」メソッドが失敗しました。

Nullに対してメソッドを呼び出しすると、System.NullReferenceExceptionが発生します。

メソッドを利用する時は、必ず変数に値が入っている必要があります。

空白とは

「空白」とは、何か存在はするものの、その中身が空っぽであることを示します。

例えば、String型の変数に“”(空の文字列)が設定されている場合、その変数は空白となります。

画像に alt 属性が指定されていません。ファイル名: image-8.png

「str」変数を宣言し、既定値に“”(空の文字列)を設定し、メッセージボックスに「Length」メソッドで文字数を表示させようとします。

実行すると以下のように文字数が表示されます。

画像に alt 属性が指定されていません。ファイル名: image-9.png

Nullとは違い、“”(空の文字列)は値と認識されるため、メソッドが利用できます。

値は入っているけど、文字は設定されていないので、文字数は0文字となります。

【UiPath】Excelの列番号をアルファベットに変換する

エクセルの列番号をアルファベットに変換する方法を紹介します。

1⇒A

10⇒J

100⇒CV

…という感じです。

使用アクティビティ

・「Do While」

・「Assign」

・「Message Box」

手順

変数i(int32型)に列番号を指定します。

今回は50を指定します。50はAXに変換されます。

次に「Do While」アクティビティの中に、「Assign」アクティビティを3つ用意します。

上から、

①「Assign」
i = i -1

②「Assign」
alphabet = Chr(i Mod 26 + 65) & alphabet
※alphabetはString型変数

③「Assign」
i = i \ 26

条件式は

i > 0

と設定します。

「Message Box」に変数alphabetを表示します。

変換結果

以上です。

【UiPath】「Rethrow」アクティビティの使い方

「Rethrow」とは

エラー再発生させるアクティビティです。

「Try Catch」アクティビティのCatchの中でのみ使用できます。

「Rethrow」の使い方

「Try Catch」のCatchの中に設置します。プロパティの設定はありません。

実行し、Tryで発生したエラーを、「Rethrow」で再発生させ、処理を停止します。

【UiPath】指定地域(タイムゾーン)の時刻を取得する

指定地域(タイムゾーン)の時刻を取得する方法です。

日本(Tokyo)の時刻を取得し、米国(Hawaiian)の時刻に変換します。

TimeZoneInfo型

TImeZoneInfo型の変数を用意します。

日本(Tokyo)と米国(Hawaiian)で2つ変数を用意します。

タイムゾーン情報設定

日本(Tokyo)と米国(Hawaiian)のタイムゾーン情報を変数に設定します。

Tokyo_Time = TimeZoneInfo.FindSystemTimeZoneById(“Tokyo Standard Time”)

Hawaiian_Time = TimeZoneInfo.FindSystemTimeZoneById(“Hawaiian Standard Time”)

※取得したいタイムゾーンIDを赤字に設定

時刻を取得

日本(Tokyo)の現在時刻を取得します。

DateTimeOffset型の変数timeに設定します。

time = New DateTimeOffset(Now(), Tokyo_Time.BaseUtcOffset)

※現在時刻を2018/10/17 23:30:59とします

 

時刻を変換

取得した日本(Tokyo)時刻を米国(Hawaiian)の時刻に変換し、メッセージボックスに出力します。

TimeZoneInfo.ConvertTime(time, Hawaiian_Time).ToString

タイムゾーンID一覧

UTC-11

Samoa Standard Time

Hawaiian Standard Time

Alaskan Standard Time

Pacific Standard Time (Mexico)

Pacific Standard Time

US Mountain Standard Time

Mountain Standard Time (Mexico)

Mountain Standard Time

Central America Standard Time

Central Standard Time

Central Standard Time (Mexico)

Canada Central Standard Time

SA Pacific Standard Time

Eastern Standard Time

US Eastern Standard Time

Venezuela Standard Time

Paraguay Standard Time

Atlantic Standard Time

Central Brazilian Standard Time

SA Western Standard Time

Pacific SA Standard Time

Newfoundland Standard Time

E. South America Standard Time

Argentina Standard Time

SA Eastern Standard Time

Greenland Standard Time

Montevideo Standard Time

UTC-02

Mid-Atlantic Standard Time

Azores Standard Time

Cape Verde Standard Time

Morocco Standard Time

UTC

GMT Standard Time

Greenwich Standard Time

W. Europe Standard Time

Central Europe Standard Time

Romance Standard Time

Central European Standard Time

W. Central Africa Standard Time

Namibia Standard Time

Jordan Standard Time

GTB Standard Time

Middle East Standard Time

Egypt Standard Time

Syria Standard Time

South Africa Standard Time

FLE Standard Time

Israel Standard Time

E. Europe Standard Time

Arabic Standard Time

Arab Standard Time

Russian Standard Time

E. Africa Standard Time

Iran Standard Time

Arabian Standard Time

Azerbaijan Standard Time

Mauritius Standard Time

Georgian Standard Time

Caucasus Standard Time

Afghanistan Standard Time

Ekaterinburg Standard Time

Pakistan Standard Time

West Asia Standard Time

India Standard Time

Sri Lanka Standard Time

Nepal Standard Time

Central Asia Standard Time

Bangladesh Standard Time

N. Central Asia Standard Time

Myanmar Standard Time

SE Asia Standard Time

North Asia Standard Time

China Standard Time

North Asia East Standard Time

Singapore Standard Time

W. Australia Standard Time

Taipei Standard Time

Ulaanbaatar Standard Time

Tokyo Standard Time

Korea Standard Time

Yakutsk Standard Time

Cen. Australia Standard Time

AUS Central Standard Time

E. Australia Standard Time

AUS Eastern Standard Time

West Pacific Standard Time

Tasmania Standard Time

Vladivostok Standard Time

Central Pacific Standard Time

New Zealand Standard Time

UTC+12

Fiji Standard Time

Kamchatka Standard Time

Tonga Standard Time

 

【UiPath】「Send Hotkey」でスペース(Space)の設定方法

アクティビティ「Send Hotkey」でスペースを設定する方法です。

Keyの中に[space]はありません。

スペース(space)の設定方法

Keyの部分に” “を設定します。

ショートカットキー「Alt + Space + c」でメモ帳を閉じてみます。

メモ帳を開き、セレクタを設定し、Keyを設定します。

実行するとメモ帳が閉じます。

【UiPath】VB.NET関数一覧(パス関連)

パス関連で使用するVB.NETの関数をまとめました。

カレントディレクトリパス取得

カレントディレクトリとは…ロボットファイル(Main.xamlなど)の場所

System.IO.Directory.GetCurrentDirectory

or

System.Environment.CurrentDirectory

結果⇒”カレントディレクトリパス”

※「Get Environment Variable」アクティビティで取得可能

システムディレクトリパス取得

システムディレクトリとは…デフォルトでは”C:\\WINDOWS\\SYSTEM”

System.Environment.SystemDirectory

結果⇒”システムディレクトリパス”

※「Get Environment Variable」アクティビティで取得可能

デスクトップパス取得

System.Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)

結果“デスクトップパス

※「Get Environment Folder」アクティビティで取得可能

ルートディレクトリ取得

ルートディレクトリとは…一番上のディレクトリ

System.IO.Path.GetPathRoot(“C:\tmp\test.txt”)

結果“C:\

絶対パス取得

System.IO.Path.GetFullPath(“C:\tmp\test.txt”)

結果“C:\tmp\test.txt”

ディレクトリパスとファイル名を結合

System.IO.Path.Combine(“C:\tmp\”,”test.txt”)

結果“C:\tmp\test.txt”

ファイル名取得

System.IO.Path.GetFileName(“C:\tmp\test.txt”)

結果⇒”test.txt

ファイル名(拡張子なし)取得

System.IO.Path.GetFileNameWithoutExtension(“C:\tmp\test.txt”)

結果⇒”test”

ディレクトリパス取得

System.IO.Path.GetDirectoryName(“C:\tmp\test.txt”)

結果“C:\tmp

拡張子の存在

System.IO.Path.HasExtension(“C:\tmp\test.txt”)

結果⇒True

拡張子変更

System.IO.Path.ChangeExtension(“C:\tmp\test.txt”,”.log”)

結果“C:\tmp\test.log”

拡張子削除

System.IO.Path.ChangeExtension(“C:\tmp\test.txt”,Nothing)

結果“C:\tmp\test”

【UiPath】変数一覧(UiPath Studio)を簡単に並び替える

UiPath Studioの変数(Variables)一覧を任意の順番で並び替えます。

基本は、変数の作成順に並んでいます。

xamlファイルをテキストエディタで開く

Main.xamlファイルをメモ帳にドラッグ&ドロップしましょう。

任意の順番に並び替える

<Sequence.Variables>~</Sequence.Variables>で囲まれた変数一覧を編集します。

Sequenceの部分はスコープの範囲になります。

昇順に並び替えました。

※他の部分は編集しないでください。ファイルが破損する恐れがあります。

保存してロボットを起動しましょう。

大量の変数を並び替えたい時に重宝します。

 

 

【UiPath】データテーブルにプライマリキー(主キー)を設定する方法

データテーブルに主キーを設定します。

主キーを設定することで、変数に入れず簡単に値を取得できます。

データテーブルに主キーを設定する

以下のようなデータテーブルを例に説明します。

変数名はdtb(DataTable型)です。

社員番号(Int32) 名前(String) 部署(String) 役職(String)
1001 梅村 人事 部長
1002 田中 人事 なし
1003 中村 営業 課長

「Assign」アクティビティでデータテーブルに主キーを設定します。

左は、

DataTable型.PrimaryKey

右は複雑ですが、

New DataColumn() {DataTable型.Columns.Item(“主キーに設定する列名“)}

これで設定は完了です。

注意事項は、主キーは必ずユニーク(重複しない)で、かつNULL(空文字)は不可です。エラーになります。

主キーから値を取得する

設定した主キーから行を特定し列名から値を取得します。

取得したい行の主キーを変数に設定します。

メッセージボックスに表示します。

DataTable型.Rows.Find(取得する主キーの値).Item(“取得する列名“).ToString

上の例だと、社員番号の1002の部署を取得します。

社員番号(Int32) 名前(String) 部署(String)← 役職(String)
1001 梅村 人事 部長
1002← 田中 人事← なし
1003 中村 営業 課長

出力結果です。

社員番号1003で、名前を取得してみます。

出力結果

 

【UiPath】文字列の長さを取得する(.NET関数 Length)

VB.NETの関数、「Length」の使い方を紹介します。

Length

文字列の長さを取得します。

文字列.Length

使用例

String型の変数strに文字列を設定します。

int型の変数int1に取得した文字数を設定します。

メッセージボックスに取得結果を出力します。

※int型なので.ToStringで文字列に変換します。

実行結果

 

 

【UiPath】文字列を削除する(.NET関数 Remove)

VB.NETの関数、「Remove」の使い方を紹介します。

Remove

文字列を削除します。

文字列.Remove(数値1,数値2)

数値1⇒削除する文字位置

数値2⇒削除する文字数

使用例

String型の変数strに文字列を設定します。

Removeの設定です。

3文字目(“う”)の後から2文字(“えお”)を削除します。

実行結果

応用編

【UiPath】文字列の最後の文字を削除