教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAでFormat関数の使い方

構文

構文は以下の通りです。

Format(対象値, 形式)

解説

Format関数は、日付や数値などのデータを指定された形式で表示するための関数です。対象値は、日付や数値など書式設定したい値を指定します。形式は、書式を指定するための文字列を指定します。例えば、日付を「yyyy/mm/dd」の形式にしたり、数値に通貨記号を付けたりできます。この関数を使うことで、見やすい形でデータを表示できます。形式のパターンを以下で紹介します。

【数値のパターン】

形式 内容
0 指定桁数の数値を表示。0は不足した桁を埋める Format(12.3, "0000") → 0012
# 数値を表示。ただし、表示しない部分には何も表示しない Format(12.3, "####") → 12
#,##0 3桁ごとにカンマを追加し、数値を表示 Format(1234567, "#,##0") → 1,234,567
0.00 小数点以下2桁を表示 Format(12.345, "0.00") → 12.35
#,##0.00 カンマ付きで小数点以下2桁を表示 Format(1234.567, "#,##0.00") → 1,234.57
"¥"#,##0 通貨の「¥」記号を付けて表示 Format(1234, "¥#,##0") → ¥1,234
"¥"#,##0;-"¥"#,##0 正負の通貨を表示。負数にはマイナス符号を付ける Format(-1234, "¥#,##0;-"¥"#,##0") → -¥1,234
0.00% パーセンテージ表示 Format(0.123, "0.00%") → 12.30%

【日付のパターン】

形式 内容
yyyy 4桁の年を表示 Format(#2024/09/05#, "yyyy") → 2024
yy 2桁の年を表示 Format(#2024/09/05#, "yy") → 24
mmmm 月のフルスペルを表示 Format(#2024/09/05#, "mmmm") → September
mmm 月の短縮形を表示 Format(#2024/09/05#, "mmm") → Sep
mm 2桁の月を表示 Format(#2024/09/05#, "mm") → 09
m 1桁の月を表示 Format(#2024/09/05#, "m") → 9
dddd 曜日のフルスペルを表示 Format(#2024/09/05#, "dddd") → Thursday
ddd 曜日の短縮形を表示 Format(#2024/09/05#, "ddd") → Thu
dd 2桁の日を表示 Format(#2024/09/05#, "dd") → 05
d 1桁の日を表示 Format(#2024/09/05#, "d") → 5
hh 2桁の時(24時間形式)を表示 Format(#14:30:00#, "hh") → 14
h 1桁の時(24時間形式)を表示 Format(#14:30:00#, "h") → 14
nn 2桁の分を表示 Format(#14:30:00#, "nn") → 30
n 1桁の分を表示 Format(#14:30:00#, "n") → 30
ss 2桁の秒を表示 Format(#14:30:30#, "ss") → 30
s 1桁の秒を表示 Format(#14:30:30#, "s") → 30
AM/PM 12時間形式で、午前・午後を表示 Format(#14:30:00#, "h:nn AM/PM") → 2:30 PM

【特殊なパターン】

形式 内容
@ テキストのまま表示 Format("abc", "@@@") → abc
"文字列" 文字列として指定された部分をそのまま表示 Format(1234, "数字は ""#,##0"" です") → 数字は 1,234 です
空白 指定桁数の空白スペースを表示 Format(123, "0000") → 0123

プログラミング例

具体的なプログラミング例を紹介します。

(例1)数値のフォーマット

Sub 数値の表示()
    Dim 数字 As Double
    数字 = 1234.567
    MsgBox Format(数字, "#,##0.00") ' 「1,234.57」と表示されます
End Sub

上記のプログラムは、Format関数を使用して、小数第2位までの数値に3桁ごとにカンマを付けて表示します。小数点以下の桁数を指定しているので、数値が丸められて表示されます。

(例2)日付のフォーマット

Sub 日付の表示()
    Dim 日付 As Date
    日付 = #2024/09/05#
    MsgBox Format(日付, "yyyy年mm月dd日") ' 「2024年09月05日」と表示されます
End Sub

上記のプログラムは、Format関数を使用して、日付を「年/月/日」の形式で表示します。yyyyは年、mmは月、ddは日を表します。この形式を使うことで、日付を見やすくカスタマイズして表示できます。

(例3)通貨のフォーマット

Sub 通貨の表示()
    Dim 金額 As Double
    金額 = 1234.567
    MsgBox Format(金額, "¥#,##0") ' 「¥1,235」と表示されます
End Sub

上記のプログラムは、通貨記号「¥」を追加して、金額を表示します。小数点以下は表示されず、最も近い整数に丸められています。

まとめ

Format関数は、数値や日付を指定された形式で簡単に表示するための強力なツールです。数値をカンマ区切りにしたり、日付の形式を変更したり、通貨記号を追加することが可能です。これにより、データが視覚的にわかりやすくなり、用途に応じた出力ができます。