更新日:、 作成日:
VBA CStr 関数:文字列に変換する
はじめに
Excel VBA マクロの CStr 関数から文字列に変換する方法を紹介します。
CStr 関数は、数値や日付などを文字列型 (String) に変換します。
数値ならそのまま文字列に変換します。1 なら "1" を返します。
日付なら Windows の形式に従って変換します。2000/1/2 3:4:5 なら "2000/01/02 3:04:05" などを返します。
明示的に数値や日付を文字列型に変換したいときに使用します。
数値を文字列に変換するには「数値を変換する」をご覧ください。
日付を文字列に変換するには「日付を変換する」をご覧ください。
CStr 関数の引数と戻り値
CStr(値)
値を文字列型 (String) に変換します。
引数「値」 | 数値や日付などを指定します。 |
戻り値の型 | 文字列型 (String) |
解説
数値や日付を文字列型 (String) に代入すると、CStr 関数を使用したときと同じ結果になります。
引数「値」が文字列なら、そのまま返します。
引数「値」が数値なら、そのまま文字列に変換します。1 なら "1" を返します。
引数「値」が日時なら、Windows の「日付の短い形式」と「時刻の長い形式」に変換します。2000/1/2 3:4:5 なら "2000/01/02 3:04:05" などを返します。
Windows の形式を変更するには次の設定から行います。
引数「値」が Boolean 型なら、"True" か "False" を返します。
数値や日付の形式を指定して文字列に変換するには「Format 関数」を使用します。
スポンサーリンク
使用例
CStr 関数の使用例を紹介します。
文字列に変換する
文字列に変換します。
Dim s As String
s = CStr("Tips")
Debug.Print(s) ' Tips
s = CStr(123)
Debug.Print(s) ' 123
s = CStr(10.5)
Debug.Print(s) ' 10.5
s = CStr(-100)
Debug.Print(s) ' -100
s = CStr(#1/2/2013#)
Debug.Print(s) ' 2013/01/02、日付の短い形式
s = CStr(#1:02:03 AM#)
Debug.Print(s) ' 1:02:03、時刻の長い形式
s = CStr(CDate("2000/1/2 3:4:5"))
Debug.Print(s) ' 2000/01/02 3:04:05
s = CStr(True)
Debug.Print(s) ' True
数値や日付の書式や形式を指定する
「Format 関数」を使用して、数値や日付の書式や形式を指定して文字列に変換できます。
Dim c As Currency
c = 1234567
Debug.Print(Format(c,"#,###,###")) ' 1,234,567
Debug.Print(Format(c,"0,000,000")) ' 001,234,567
Debug.Print(Format(c,"0")) ' 1234567
Debug.Print(Format(c,"#,###.00")) ' 1,234,567.00
Debug.Print(Format(c, "0.00%")) ' 123456700.00%
Debug.Print(Format(c, "\\#,###")) ' \1,234,567、円マーク
Debug.Print(Format(c, "#,###円")) ' 1,234,567円
Dim d As Date
d = "2000/1/2 3:4:56"
Debug.Print(Format(d,"yyyy/m/d")) ' 2000/1/2
Debug.Print(Format(d,"yyyy年mm月dd日")) ' 2000年01月02日
Debug.Print(Format(d,"h:n:s")) ' 3:4:56
Debug.Print(Format(d,"hh:nn:ss")) ' 03:04:56