UiPath開発では、データ型の変換や文字列操作は避けて通れないスキルです。その中でも.ToString()
は最も頻繁に使う機能の1つでありながら、意外と奥が深いものです。
この記事では初心者でも理解できるよう.ToString()
の基本から応用まで徹底的に解説します。
この記事を読むと・・・

.ToStringとは?
.ToString()
は、あらゆるデータ型の値を文字列(テキスト)に変換するメソッドです。
なぜこのメソッドが必要なのでしょうか?
それは、UiPathの様々な場面で文字列形式のデータが必要になるからです。
.ToStringの使用場面
- 異なるデータ型を結合して表示する場合
- ログメッセージを作成する場合
- 値をテキストボックスに入力する場合
- 条件分岐でテキスト比較をする場合
【重要】カルチャー設定について
カルチャー設定が出来ていない場合、これから紹介する.ToStringの使い方をマネしても、望む結果になりません。
カルチャー設定って何?
ざっくり言うと、どこの国でUipathを使うのか?という設定です。
デフォルトでは海外になっているので、「私は日本で開発してますよ」と設定する必要があります。
カルチャー設定の有無で、結果を比較してみましょう。
種類 | カルチャー設定あり | カルチャー設定なし |
---|---|---|
数値(通貨) | \1000 | ¤1,000 |
日付 | 2025/2/1 | 2/1/2025 |
Uipathでの実行例:

解決方法1:プロジェクト全体のカルチャー設定を変更
この問題を解決するためには、プロジェクト開始時に1度だけカルチャーを設定するのが効率的です。
同じワークフロー内で複数の異なる地域設定を使い分ける必要がない場合は、この方法でOKです。
プロジェクト開始時に以下のコードを実行すると、プロジェクト全体のカルチャー設定が変更されます。
※呼び出し先のXamlにも適用されます。
System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("ja-JP")
System.Threading.Thread.CurrentThread.CurrentUICulture = New System.Globalization.CultureInfo("ja-JP")
UiPathでの実装例:

解決方法2:アクティビティごとにカルチャー設定
同じワークフロー内で複数の異なる地域設定を使い分ける必要がある場合は、個別のアクティビティでカルチャー設定するのが適しています。
以下のように実装します。New CultureInfo("ja-JP")
によってカルチャー設定が個別に変更されています。
1234.56.ToString("C", New CultureInfo("ja-JP"))
UiPathでの実装例:

保存する値:1234.56.ToString(“C”, New CultureInfo(“ja-JP”))
上記の実装では代入アクティビティ単体のみカルチャー設定が実行され、他のアクティビティではカルチャー設定がデフォルトのままになります。
基本的な.ToStringの使い方
1. 変数を文字列に変換する | .ToString()
構成:変数.ToString()
詳細説明:
もっとも基本的な.ToString()
の使い方です。どんな変数でも文字列に変換できます。
使用例:
123.ToString() → "123" (整数を文字列に変換)
True.ToString() → "True" (ブール値を文字列に変換)
DateTime.Now.ToString() → "2025/03/30 15:30:45" (現在の日時を文字列に変換)
UiPathでの実装例:

数値の.ToStringメソッド
2. 数値を特定の書式で文字列に変換する | .ToString(format)
構成:数値.ToString(format)
詳細説明:
数値型では書式を指定して文字列に変換できます。
書式指定子を使って桁数や小数点、通貨記号などを制御しましょう。
主な書式指定子:
- C:通貨形式
- P:パーセント
- N:カンマ区切り
- “F” – 固定小数点
- “E” – 指数表記
- “D” – 10進数(整数)
使用例:
1234.56.ToString("C") → "¥1,234.56" (通貨形式に変換)
0.1234.ToString("P") → "12.34%" (パーセント形式に変換)
1234.ToString("N") → "1,234.56" (カンマ区切りになる)
UiPathでの実装例:

・書式指定子の後に数字をつけることで、桁数や小数点以下の桁数を指定できます。
・通貨形式はカルチャーを日本に指定しないと\が表示されない点に注意してください。
カルチャー設定に関する説明はこちら
3. カスタム書式で数値を文字列に変換する | .ToString(customFormat)
構成:数値.ToString(customFormat)
詳細説明:
より細かな書式設定が必要な場合は、カスタム書式パターンを使用できます。
数値の0埋めは特によく使いますね。
主なカスタム書式記号:
- 0:数字を0埋めする
- #:数字(必要な場合のみ表示)
- ピリオド(.):小数点
- カンマ(,):桁区切り
- %:パーセント表示
使用例:
123.ToString("000000") → "000123" (6桁で表示、0埋め)
1234.56.ToString("#,##0.00") → "1,234.56" (桁区切りと小数点2桁固定)
0.5678.ToString("0.00%") → "56.78%" (パーセント表示で小数点2桁)
UiPathでの実装例:

日付の.ToStringメソッド
4. 日付の書式を指定して文字列に変換する | .ToString(standardFormat)
構成:日付変数.ToString(standardFormat)
詳細説明:
日付を様々な書式に変換できます。
書式指定子は大文字小文字で意味が変わるので注意しましょう。
主な標準書式指定子:
- d:短い日付パターン
- D:長い日付パターン
- t:短い時刻パターン
- T:長い時刻パターン
- f:完全な日付/時刻パターン(短い時刻)
- F:完全な日付/時刻パターン(長い時刻)
- g:一般的な日付/時刻パターン(短い時刻)
- G:一般的な日付/時刻パターン(長い時刻)
使用例:
'DateTime.Nowは現在日時を算出するメソッドです
'DateTime.Now = 2025/04/01 23:39:34
DateTime.Now.ToString("d") → "2025/03/30" (短い日付形式)
DateTime.Now.ToString("D") → "2025年3月30日日曜日" (長い日付形式、地域設定により異なる)
DateTime.Now.ToString("t") → "15:30" (短い時刻形式)
DateTime.Now.ToString("F") → "2025年3月30日日曜日 15時30分45秒" (完全な日付/時刻形式、地域設定により異なる)
UiPathでの実装例:

日付の日本語変換はカルチャー設定が必要です。
カルチャー設定の説明はこちら
5. 日付をカスタム書式で文字列に変換する | .ToString(customFormat)
構成:日付変数.ToString(customFormat)
詳細説明:
より細かな書式設定が必要な場合は、カスタム書式パターンを使用できます。
主なカスタム書式記号:
- yyyy:4桁の年
- MM:2桁の月
- dd:2桁の日
- HH:24時間形式の時
- mm:分
- ss:秒
カスタム書式では大文字・小文字の違いが意味を持ちます。
例えば、”MM”は月ですが、”mm”は分を表します。
使用例:
'DateTime.Nowは現在日時を算出するメソッドです
'DateTime.Now = 2025/04/01 23:39:34
DateTime.Now.ToString("yyyy年MM月dd日") → "2025年03月30日" (年月日を日本語形式で)
DateTime.Now.ToString("yyyyMMdd") → "20250330" (年月日を日本語形式で)
DateTime.Now.ToString("HH:mm:ss") → "15:30:45" (時分秒をコロン区切りで)
DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss") → "2025-03-30_15-30-45" (ファイル名に適した形式)
UiPathでの実装例:

コレクションの文字列変換
6. 配列やリストを文字列に変換する
詳細説明:
配列やリストに.ToString()
を使うと、型名が返されるだけで内容は表示されません。
UiPathでの実装例:

以下の方法で配列の中身を取り出すことができます。
6.1 String.Join を使用する
使用例:
Dim numbers As Integer() = {1, 2, 3, 4, 5}
Dim result As String = String.Join(", ", numbers)
' result = "1, 2, 3, 4, 5"
UiPathでの実装例:


詳細はこちらの記事をご覧ください


オブジェクトの.ToStringメソッド
7. 独自のクラスを文字列に変換する | .ToString()
構成:オブジェクト.ToString()
詳細説明:
UiPathで扱うデータの中には、DataTableやDataRowなどの複雑なオブジェクトがあります。このようなオブジェクトに対して単純に.ToString()
を使うと、「System.Data.DataRow」のようなクラス名が返されるだけで、実際の内容は表示されません。
オブジェクトから値を取り出す場合は、対象オブジェクトごとのルールに従う必要があります。
使用例:
new DataRow().ToString() → "System.Data.DataRow" (DataRowクラスの名前が返される)
解決方法:
' DataRowの内容を表示する場合
Dim row As DataRow = dataTable.Rows(0)
Dim firstColumnValue As String = row(0).ToString()
' または特定の列名を指定
Dim nameColumnValue As String = row("名前").ToString()
オブジェクト(DataTable、DataRowなど)に対しては、単純に.ToString()
を使うのではなく、その内容にアクセスするための適切なプロパティやメソッドを使用しましょう。



データテーブルについては以下の記事も参考にしてください


.ToStringの問題点と他のメソッドとの比較
.ToStringの問題点:nullを処理できない
null参照(変数の中身が空)に対して.ToString()
を呼び出すと例外が発生します。


解決方法1:Convert.ToString()を使用
構成:Convert.ToString(変数)
詳細説明:Convert.ToString()
は、あらゆる変数を文字列に変換できるメソッドです。
特にnull値に対しても安全に使用できる点が大きな特徴です。ただし.ToString
よりも処理速度は遅いです。
使用例;
Convert.ToString(null) → "" (nullの場合は空文字列を返す)
UiPathでの実装例:


解決方法2:条件分岐でNullチェックを行いエラーを回避
nullに対して.ToString()
を呼び出すと例外が発生するので、nullの場合は.ToString()を呼び出さないようにする方法です。
条件分岐で対象がNullの場合は代入しないようにして、エラーを回避しています。





String.IsNullOrEmpty()の詳細は以下の記事をご覧ください


他の変換メソッドとの比較
UiPathで使用できる文字列変換メソッドには、複数の選択肢があります。
メソッド | 使用例 | メリット | デメリット |
---|---|---|---|
.ToString() | {値}.ToString() | フォーマット指定できる 使用範囲が広い | nullで呼び出すとエラー |
Convert.ToString() | Convert.ToString({値}) | nullでも安全 | 処理速度が少し遅め |
CStr() | CStr({値}) | 簡潔に記載できる 暗黙的型変換 | nullで呼び出すとエラー C#では使えない |
UiPathでの使い分け:
基本的には.ToString()
を使えば問題ありません。
対象がNullの可能性があり、Nullの場合にエラーを起こしたくない場合はConvert.ToString()
を使用しましょう。
実践的な使用例
.ToString
は様々なケースで使用できます。その一部をご紹介します。
1. 複数の値を結合して表示する
使用例:
"ID: " + customerId.ToString() + ", 名前: " + customerName + ", 金額: " + amount.ToString("C")
→ "ID: 12345, 名前: 山田太郎, 金額: ¥10,000"
2. ログメッセージを作成する
使用例:
"処理開始: " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ", 対象ファイル数: " + fileCount.ToString()
→ "処理開始: 2025-03-30 15:30:45, 対象ファイル数: 42"
3. ファイル名に日時を含める
使用例:
"report_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".xlsx"
→ "report_20250330_153045.xlsx"
よくあるエラーと解決法
1. NullReferenceException
エラーメッセージ:
System.NullReferenceException: Object reference not set to an instance of an object.
原因:
このエラーは値が存在しないオブジェクト(Null)に対し、.ToStringを呼び出した時に発生します。
解決策:Convert.ToString()を使用
' 安全な方法1: Convert.ToString()を使う
result = Convert.ToString(myVariable)
2. FormatException(書式例外)
エラーメッセージ:
System.FormatException: Input string was not in a correct format.
原因:
このエラーは.ToString()
で、そのデータ型では使用できない書式指定子を指定した場合に発生します。
例えば日付型(DateTime)に対して、数値型専用の”C”(通貨)形式を使用しようとした場合などです。
解決策: 適切な書式指定子を使用する
適切な書式指定子を使用することで、そのデータ型の特性に合った形式で文字列に変換できます。
' 日付を表示したい場合は、日付用の適切な形式を使用
Dim date As DateTime = #3/30/2025#
' 誤: date.ToString("C") ' これはエラー
' 正: 日付形式を使用
result = date.ToString("d") ' 短い日付形式 "3/30/2025"
result = date.ToString("D") ' 長い日付形式 "Sunday, March 30, 2025"
result = date.ToString("yyyy-MM-dd") ' カスタム形式 "2025-03-30"
まとめ
今回紹介した内容は、様々なデータ型を文字列に変換するための基本知識です。書式指定子を活用することで、数値や日付を適切な形式で表示したり、地域設定を考慮した出力が可能になります。
本ガイドで解説した以下のポイントを覚えておくと、効率的に開発を進められるでしょう。
- 数値や日付の書式変更方法
.ToString()
と他のメソッドの適切な使い分け- コレクションやオブジェクト処理の方法
- 一般的なエラーとその解決法
初心者の方はまず基本的な使い方をマスターし、徐々に書式指定子やカスタム書式などの高度な機能に挑戦してみましょう。
このような基本メソッドの理解が、より複雑なワークフローの開発につながります。
ぜひ実際のシナリオで試してみて、.ToString()
の便利さを体感してください。
コメント