サイトについて      連絡先   検索

VBA 数値を変換

はじめに

Excel VBA の 数値 (Integer など) を文字列へ変換する方法を紹介します。

Format 関数を使用して数値を書式に従った文字列へ変換できます。

数値を日付に変換する方法も紹介します。

数値を文字列へ変換

VBA では文字列型へ数値を入れると自動的に変換されます。


Dim s As String
s = 123
Debug.Print (s) ' 123

書式にしたがって数値を文字列に変換するには「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

Excel のセルの書式設定に似ています。

数値を日付へ変換

VBA では日付型へ数値を入れると自動的に変換されます。日付型の初期値 1899/12/30 に数値の日数を加えた日付になります。


Dim d As Date
d = 1
Debug.Print (d) ' 1899/12/31

d = 2
Debug.Print (d) ' 1900/01/01

DateSerial 関数」を使って、年月日を数値で指定して日付を取得できます。


Dim d As Date
d = DateSerial(2000, 12, 31)
Debug.Print (d) ' 2000/12/31

TimeSerial 関数」を使って、時分秒を数値で指定して時刻を取得できます。


Dim d As Date
d = TimeSerial(1, 2, 3)
Debug.Print (d) ' 1:02:03

関連ページ