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

VBA Format 関数

はじめに

Excel VBA マクロの Format 関数を紹介します。

Format 関数は、値を指定した書式で文字列型 (String) に変換します。

数値や日付を指定の形式に変換したいときに使用します。四捨五入をするときにも使用します。

構文

Format()
を文字列に変換します。

Format(, 書式)
書式の形式で文字列に変換します。

引数「値」数値や日付などを指定します。
引数「書式」省略できます。書式を指定します。
戻り値の型文字列型 (String)

引数「書式」、値が数値の12345のとき

書式 結果 説明
####,###12,345桁があればそれを表示します。
0000,000012,345桁があればそれを表示します。ないときは 0 を表示します。
%0.0%1234500.0%数値を 100 倍し % 記号を表示します。
\\\\0\12345\ 記号を表示します。
文字最大0最大12345そのまま文字を表示します。

引数「書式」、値が日付の2013/1/2 3:4:56のとき

書式 結果 説明
yyyyy2013年を表示します。書式 1 つが下 1 桁を表しています。
mmm01月を表示します。
mm のようにすると必ず 2 桁で表示します。日時分秒でも同じです。
dd2日を表示します。
hhh03時を表示します。
nn4分を表示します。
ss56秒を表示します。

解説

数値を渡されたときは、数値の書式が適用されます。

日付を渡されたときは、日付の書式が適用されます。

書式を省略したときは、値をそのまま文字列にします。

書式に "0" を指定すると四捨五入できます。

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

使用例

数値の書式


Dim i As Long
i = 12345

Debug.Print (Format(i,"###,###"))  ' 12,345

Debug.Print (Format(i,"000,000"))  ' 012,345

Debug.Print (Format(i,"0"))        ' 12345

Debug.Print (Format(i, "0.00%"))   ' 1234500.00%

i = 1234567
Debug.Print (Format(i,"#,###"))    ' 1,234,567
  
Debug.Print (Format(i,"#,###.00")) ' 1,234,567.00

日付の書式


Dim d As Date
d = "2013/1/2 3:4:56"

Debug.Print (Format(d,"yy年"))           ' 13年

Debug.Print (Format(d,"yyyy年mm月dd日")) ' 2013年01月02日

Debug.Print (Format(d,"yyyy/m/d"))       ' 2013/1/2

Debug.Print (Format(d,"hh:nn:ss"))       ' 03:04:56

Debug.Print (Format(d,"h:n:s"))          ' 3:4:56

四捨五入する。


Dim i As Integer
  
i = Format(1.5, "0")
Debug.Print (i) ' 2
  
i = Format(2.5, "0")
Debug.Print (i) ' 3

i = Format(3.5, "0")
Debug.Print (i) ' 4