セルに表示形式を設定する方法
セルに入力されているデータの表示形式は、「セルの書式設定」ダイアログボックスの「表示形式」タブで設定します。
VBAで表示形式を変更するには、Range【レンジ】オブジェクトのNumberFormatLocal【ナンバーフォーマットローカル】プロパティを使用します。
NumberFormatLocal【ナンバーフォーマットローカル】プロパティ
指定したセルの表示形式を取得または、設定するには、Range【レンジ】オブジェクトのNumberFormatLocal【ナンバーフォーマットローカル】プロパティを使用します。
NumberFormatLocal【ナンバーフォーマットローカル】プロパティの書式と設定値
【取得】
オブジェクト.NumberFormatLocal
【戻り値】バリアント型 (Variant)
【設定】
オブジェクト.NumberFormatLocal = 表示形式
- オブジェクト(必須)
表示形式を設定したいセル範囲をRangeオブジェクトで指定します。 - 表示形式(必須)
セルに設定する表示形式を、定義済み書式または、書式記号を使用して文字列で指定します。
表示形式で使用する主な書式記号の一覧
NumberFormatLocal【ナンバーフォーマットローカル】プロパティで設定する表示形式で使用する書式記号には、「数値」「日付」「時刻」「文字列」のそれぞれについて使用する記号が用意されています。
数値の書式記号
数値の書式記号は「#」と「0」で数字の1桁を表し
「,」で桁区切り「.」で小数点を表します。
書式記号 | 内容 | 表示形式 | 数値 | 表示結果 |
---|---|---|---|---|
# | 1桁を表します。 | ##.## | 123.456 | 123.46 |
## | 0 | 表示なし | ||
0 | 1桁を表します。 | 0000.0 | 123.456 | 123.5 |
00 | 0 | 00 | ||
, (カンマ) | 3桁ごとの区切り または1000単位の省略 | #,##0 | 55555555 | 55,555,555 |
#,##0, | 55,556 | |||
. (ピリオド) | 小数点 | 0.0 | 12.34 | 12.3 |
% | パーセント | 0.0% | 0.2345 | 23.5% |
? | 小数点位置を揃える | ???.??? | 123.45 12.345 | 123.45 _12.345 |
数値の書式記号のコード例
Sub 数値書式記号() Range("A1").NumberFormatLocal = "##.##" Range("A2").NumberFormatLocal = "##" Range("A3").NumberFormatLocal = "0000.0" Range("A4").NumberFormatLocal = "00" Range("A5").NumberFormatLocal = "#,##0" Range("A6").NumberFormatLocal = "#,##0," Range("A7").NumberFormatLocal = "0.0" Range("A8").NumberFormatLocal = "0.0%" Range("A9").NumberFormatLocal = "???.???" Range("A10").NumberFormatLocal = "???.???" Range("A1").Value = 123.456 Range("A2").Value = 0 Range("A3").Value = 123.456 Range("A4").Value = 0 Range("A5").Value = 55555555 Range("A6").Value = 55555555 Range("A7").Value = 12.34 Range("A8").Value = 0.2345 Range("A9").Value = 123.456 Range("A10").Value = 12.3456 End Sub
実行結果
※「#」と「0」はどちらとも数字の1桁を表しますが「#」の場合は表示形式で指定した桁数よりも実際の桁数が少ない場合はそのまま表示されます。「0」の場合は桁数が少ない分だけ0が補われます。また、表示形式より桁数が多い場合はともに、整数の場合はそのまま数値が表示され小数点以下の場合は、指定した桁数に合わせて四捨五入された値が表示されます。
日付の書式記号
日付の表示形式は「y」「m」「d」などの記号を組み合わせて設定すます。
内容 | 書式記号 | 表示結果(1990/1/1) |
---|---|---|
西暦 | yy yyyy | 90 1990 |
和号 | g gg ggg | H 平 平成 |
和暦 | e ee | 2 02 |
月 | m mm mmm mmmm | 1 01 Jan January |
日 | d dd | 1 01 |
曜日 | ddd dddd aaa aaaa | Mon Monday 月 月曜日 |
※日付の書式記号に文字列を組み合わせるには、「m””月””」や「d””日””」のように書式記号と””で囲んだ文字列を組み合わせると「1月」「1日」のように表示することができます。
日付の書式記号のコード例
Sub 日付書式記号() Range("A1").NumberFormatLocal = "yy" Range("A2").NumberFormatLocal = "yyyy" Range("A3").NumberFormatLocal = "g" Range("A4").NumberFormatLocal = "gg" Range("A5").NumberFormatLocal = "ggg" Range("A6").NumberFormatLocal = "e" Range("A7").NumberFormatLocal = "ee" Range("A8").NumberFormatLocal = "m" Range("A9").NumberFormatLocal = "mm" Range("A10").NumberFormatLocal = "mmm" Range("A11").NumberFormatLocal = "mmmm" Range("A12").NumberFormatLocal = "d" Range("A13").NumberFormatLocal = "dd" Range("A14").NumberFormatLocal = "ddd" Range("A15").NumberFormatLocal = "dddd" Range("A16").NumberFormatLocal = "aaa" Range("A17").NumberFormatLocal = "aaaa" Range("A1:A17").Value = "1990 / 1 / 1" End Sub
実行結果
時刻の書式記号
時刻の書式形式は「h」「m」「s」の記号を使用して設定します。
内容 | 書式記号 | 表示結果(16時5分30秒) |
---|---|---|
時(24時間) | h hh | 16 16 |
分(hやsとともに使用) | m mm | 16:5(h:mの場合) 16:05(hh:mmの場合) |
秒 | s ss | 16:5:30(h:m:sの場合) 16:05:30(hh:mm:ssの場合) |
時AM/PM(12時間) | hAM/PM | 4 PM |
時:分AM/PM(12時間) | h:mmAM/PM | 4:05 PM |
時:分:秒A/P(12時間) | h:mm:ssA/P | 4:05:30 P |
※経過時間(24時間以上)を表示する場合は「[hh]:mm」のように[]で囲みます。
経過分(60分以上)を表示する場合は[mm]:ss
経過秒(60秒以上)を表示する場合は[ss]
時刻の書式記号のコード例
Sub 時刻書式記号() Range("A1").NumberFormatLocal = "h" Range("A2").NumberFormatLocal = "hh" Range("A3").NumberFormatLocal = "h:m" Range("A4").NumberFormatLocal = "hh:mm" Range("A5").NumberFormatLocal = "h:m:s" Range("A6").NumberFormatLocal = "hh:mm:ss" Range("A7").NumberFormatLocal = "hAM/PM" Range("A8").NumberFormatLocal = "h:mmAM/PM" Range("A9").NumberFormatLocal = "h:mm:ssA/P" Range("A1:A9").Value = "16:05:30" End Sub
実行結果
文字やそのほかの書式記号
書式記号 | 内容 | 使用例 | 表示結果 |
---|---|---|---|
@ | 入力した文字列 | @””様”” | 山田太郎様 |
[黒][赤][青][緑][黄][紫][水][白] | 文字の色 | ¥#,##0;[赤]¥-#,##0 | ¥-1,500 |
¥#,##0;[赤]¥-#,##0 | 通貨 | 1500 | ¥1,500 |
文字列そのたの書式のコード例
Sub 文字その他書式記号() Range("A1").NumberFormatLocal = "@""様""" Range("A2").NumberFormatLocal = "¥#,##0;[赤]¥-#,##0" Range("A3").NumberFormatLocal = "¥#,##0;[赤]¥-#,##0" Range("A1").Value = "山田太郎" Range("A2").Value = -1500 Range("A3").Value = 1500 End Sub
実行結果
表示形式を元(標準)に戻す方法
選択セル範囲に対してNumberFormatLocal【ナンバーフォーマットローカル】プロパティに「”G/標準”」を設定します。
以上で、セルの表示形式を設定するNumberFormatLocal【ナンバーフォマットローカル】プロパティについての解説を終了します。ありがとうございました。