Format 関数の使い方
【書式】
result = Format ( expression [ , format, firstdayofweek, firstweekofyear ] )
引数・戻り値
- expression ・・・ 変換元の任意の式を指定します。
- format ・・・ 引数 expression を変換する書式(定義済み書式または表示書式指定文字)を指定します(省略可 ⇒ Str 関数 の実行結果に準じた値を返します)。
- firstdayofweek ・・・ 週の始まりの曜日を表す定数を指定します。省略すると日曜日を指定したものとみなされます(「週の始まりの曜日を示す定数」を参照 )。
- firstweekofyear ・・・ 年度の第 1 週を表す定数を指定します。省略すると、1 月 1 日を含む週が第 1 週とみなされます(「年度の始まりを示す定数」を参照 )。
- result ・・・ 引数 expression を format で指定した書式に変換、その文字列を示すバリアント型 (内部処理形式 String) の値。
複数の種類の書式を指定する(数値)
表示書式指定文字を使って数値を文字列に変換する場合は、引数 format には、セミコロン(;)で区切ることにより最大4種類の書式を指定できます。ただし、引数 format に定義済み書式が含まれる場合、指定できる書式は 1 つだけです。
また、複数のセミコロン(;)の間に何も記述しない場合には、その空の書式に対応する数値は、正の数値用の書式を使って変換されます
書式数 | |
1 | 常にその書式を使用 |
2 | 数値 >= 0 ⇒ 1 番目の書式 / 数値 < 0 ⇒ 2 番目の書式 |
3 | 数値 > 0 ⇒ 1 番目の書式 / 数値 < 0 ⇒ 2 番目の書式 / 数値 = 0 ⇒ 3 番目の書式 |
4 | 数値 > 0 ⇒ 1 番目の書式 / 数値 < 0 ⇒ 2 番目の書式 / 数値 = 0 ⇒ 3 番目の書式 / 数値が Null 値 ⇒ 4 番目の書式 |
複数の種類の書式を指定する(文字列)
文字列の書式指定でもセミコロン(;)で区切ることにより複数の書式(最大2種類)を引数 format に指定できます。
書式数 | |
1 | 常にその書式を使用 |
2 | 通常 ⇒ 1 番目の書式 / Null 値または長さ 0 の文字列(“”) ⇒ 2 番目の書式 |
書式を指定する時に使用できる記号等
記号 | 内容 | 使用例 | 表示書式 | ||
入力値 | 書式 | 結果 | |||
なし | 指定した数値をそのままで返す(文字列) | 125.25 | 125.25 | 数値 | |
0 | 数値1桁「0」表示 | 125.25 | “0000.0” | 0125.3 | |
“0.000” | 125.250 | ||||
# | 数値1桁「0」非表示 | 125.25 | “####.# | 125.3 | |
“#.### | 125.25 | ||||
% | 数値を100倍して「%」をつける | 0.365 | “#.#0%” | 36.50% | |
, | 1000単位の区切り記号挿入 | 1259900 | “#,#” | 1,259,900 | |
#,#,千円 | 1,260千円 | ||||
0,0 | 1,259,900 | ||||
E+ e+ | 指数表記(指数の正負にあわせて + – の記号が付く | 100000000 | “0.00e+” | 1.00e+8 | |
-100000000 | “0.00e+” | -1.00e+8 | |||
0.5 | “0.00e+” | 5.00e-1 | |||
E- e- | 指数表記(指数が負の時、- の記号が付く | 2500 | “0.00e-“ | 2.50e3 | |
-100000000 | “0.00e-“ | -1.00e8 | |||
0.5 | “0.00e-“ | 5.00e-1 | |||
\ | \,#,E 等の特別な意味をもつ文字を表示するには、その前に「\」を付ける | 1000 | “\\#,#” | \1,000 | |
@ | 1文字またはスペース(@ の位置に対応する文字がない場合) | 1 | “@@月” | 1月 | 文字列 |
& | 1文字 | 1 | “&&月” | 1月 | |
< | 小文字に変換 | ABCDE | “ | abcde | |
> | 大文字に変換 | abcde | “>” | ABCDE | |
! | 文字を左から取得 | abcde | “@@!” | de | |
y | 元旦から数えて何日目か | #1/1/2015# | “y” | 1 | 日付時刻 |
西暦(下2桁のみ表示) | “yy” | 15 | |||
西暦(下4桁表示) | “yyyy” | 2015 | |||
m | 月 | #1/1/2015# | “m” | 1 | |
月(1 ~ 9 月は前に「0」を付ける) | “mm” | 01 | |||
月(英語)短縮形 | “mmm” | Jan | |||
月(英語)完全形 | “mmmm” | January | |||
o | 月(日本語) | #1/1/2015# | “oooo” | 1月 | |
d | 日 | #1/1/2015# | “d” | 1 | |
日(1 ~ 9 日は前に「0」を付ける) | “dd” | 01 | |||
曜日(英語)省略形 | “ddd” | Thu | |||
曜日(英語)完全形 | “dddd” | Thursday | |||
年月日を含む短い形式(コントロールパネルで設定)で表した日付 | “ddddd” | 2015/01/01 | |||
年月日を含む長い形式(コントロールパネルで設定)で表した日付 | “dddddd” | 2015年1月1日 | |||
a | 曜日(日本語)短縮形 | #1/1/2015# | “aaa” | 木 | |
曜日(日本語)完全形 | “aaaa” | 木曜日 | |||
w | 曜日を示す定数(週の1日目は引数 firstdayofweek で指定可) | #1/1/2015# | “w” | 5 | |
週初めから数えて何番目か(年の第1週目は引数 firstweekofyear で指定可) | “ww” | 1 | |||
g | 年号( 頭文字:M, T, S, H ) | #1/1/2015# | “g” | H | |
年号( 先頭の漢字1文字:明, 大, 昭, 平 ) | “gg” | 平 | |||
年号(明治, 大正, 昭和, 平成) | “ggg” | 平成 | |||
e | 和暦の年 | #1/1/2015# | “e” | 27 | |
和暦の年(1桁の場合、先頭に「0」が付く) | “ee” | 27 | |||
h | 時間 | #1:11:00 AM# | “h” | 1 | |
時間(1桁の場合、先頭に「0」が付く) | “hh” | 01 | |||
n | 分 | #1:11:00 AM# | “n” | 11 | |
分(1桁の場合、先頭に「0」が付く) | “nn” | 11 | |||
s | 秒 | #2:18:07 AM# | “s” | 7 | |
秒(1桁の場合、先頭に「0」が付く) | “ss” | 07 | |||
t | 時刻(コントロールパネルで設定) | #1/1/2015 12:11:00 PM# | “ttttt” | 12:11:00 | |
c | 日付時刻(日付の部分は、「ddddd」と同じ、時刻の部分は「ttttt」と同じ) | #3/3/2015 12:11:00 PM# | “c” | 2015/03/03 12:11:00 |
定義済み書式
数値書式
書式 | 内容 |
General Number | 数値を 1000 単位の区切り記号は付けない。 |
Currency | 通貨記号、小数点以下の桁数、1000 単位の区切り記号を付ける。 |
Fixed | 整数部を最低 1 桁、小数部を最低 2 桁表示。1000 単位の区切り記号は付けない。 |
Standard | 整数部を最低 1 桁、小数部を最低 2 桁表示。1000 単位の区切り記号を付ける。 |
Percent | 指定した数値を 100 倍して、小数部を常に 2 桁表示。パーセント記号(%)が右側に付く。 |
Scientific | 標準的な科学表記法で表した文字列を返す。 |
Yes/No | 数値が 0 の場合には No、それ以外は Yes を返す。 |
True/False | 数値が 0 の場合には偽 (False)、それ以外は真 (True) を返す。 |
On/Off | 数値が 0 の場合には Off、それ以外は On を返す。 |
日付・時刻書式
書式 | 内容 |
General Date | 日付または時刻、あるいはその両方を返す。日付と時刻の表示形式はコントロール パネルの設定。 |
Long Date | 年月日を含む長い形式(コントロールパネルで設定)で表した日付。 |
Medium Date | 簡略形式で表した日付。 |
Short Date | 年月日を含む短い形式(コントロールパネルで設定)で表した日付。 |
Long Time | 時刻、分、秒を含む形式で表した時刻。 |
Medium Time | 時間と分を 12 時間制で表した時刻。午前は「AM」、午後は「PM」を付ける。 |
Short Time | 時間と分を 24 時間制で表した時刻。 |
週の始まりの曜日を示す定数(firstdayofweek に指定する値)
値 | 定数 | 内容 |
0 | vbUseSystem | NLS(システムの各国対応)APIの設定値を使用 |
1 | vbSunday | 日曜日(規定値) |
2 | vbMonday | 月曜日 |
3 | vbTuesday | 火曜日 |
4 | vbWednesday | 水曜日 |
5 | vbThursday | 木曜日 |
6 | vbFriday | 金曜日 |
7 | vbSaturday | 土曜日 |
年度の始まりを示す定数(firstweekofyear に指定する値)
値 | 定数 | 内容 |
0 | vbUseSystem | NLS(システムの各国対応)APIの設定値を使用 |
1 | vbFirstJan1 | 1月1日を含む週を年度の第1週とする(規定値) |
2 | vbFirstFourDays | 7日のうち少なくとも4日が新年度に含まれる週を年度の第1週とする |
3 | vbFirstFullWeek | 全体が新年度に含まれる最初の週を年度の第1週とする |
Format 関数の使用例(1)
数値・文字列 表示書式指定文字
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
Sub SampleFormat01() 'Format 関数使用例その1 Debug.Print Format(125.25) Debug.Print Format(125.25, "0000.0") Debug.Print Format(125.25, "0.000") Debug.Print Format(125.25, "####.#") Debug.Print Format(125.25, "#.###") Debug.Print Format(0.365, "#.#0%") Debug.Print Format(1259900, "#,#") Debug.Print Format(1259900, "#,#,千円") Debug.Print Format(1259900, "0,0") Debug.Print Format(100000000, "0.00e+") Debug.Print Format(-100000000, "0.00e+") Debug.Print Format(0.5, "0.00e+") Debug.Print Format(2500, "0.00e-") Debug.Print Format(-100000000, "0.00e-") Debug.Print Format(0.5, "0.00e-") Debug.Print Format(1000, "\\#,#") Debug.Print Format("1", "@@月") Debug.Print Format("1", "&&月") Debug.Print Format("ABCDE", "<") Debug.Print Format("abcde", ">") Debug.Print Format("abcde", "@@!") End Sub |
実行結果
Format 関数の使用例(2)
日付・時刻 表示書式指定文字
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
Sub SampleFormat02() 'Format 関数使用例その2 Debug.Print Format(#1/1/2015#, "y") Debug.Print Format(#1/1/2015#, "yy") Debug.Print Format(#1/1/2015#, "yyyy") Debug.Print Format(#1/1/2015#, "m") Debug.Print Format(#1/1/2015#, "mm") Debug.Print Format(#1/1/2015#, "mmm") Debug.Print Format(#1/1/2015#, "mmmm") Debug.Print Format(#1/1/2015#, "oooo") Debug.Print Format(#1/1/2015#, "d") Debug.Print Format(#1/1/2015#, "dd") Debug.Print Format(#1/1/2015#, "ddd") Debug.Print Format(#1/1/2015#, "dddd") Debug.Print Format(#1/1/2015#, "ddddd") Debug.Print Format(#1/1/2015#, "dddddd") Debug.Print Format(#1/1/2015#, "aaa") Debug.Print Format(#1/1/2015#, "aaaa") Debug.Print Format(#1/1/2015#, "w") Debug.Print Format(#1/1/2015#, "ww") Debug.Print Format(#1/1/2015#, "g") Debug.Print Format(#1/1/2015#, "gg") Debug.Print Format(#1/1/2015#, "ggg") Debug.Print Format(#1/1/2015#, "e") Debug.Print Format(#1/1/2015#, "ee") Debug.Print Format(#1:11:00 AM#, "h") Debug.Print Format(#1:11:00 AM#, "hh") Debug.Print Format(#1:11:00 AM#, "n") Debug.Print Format(#1:11:00 AM#, "nn") Debug.Print Format(#2:18:07 AM#, "s") Debug.Print Format(#2:18:07 AM#, "ss") Debug.Print Format(#1/1/2015 12:11:00 PM#, "ttttt") Debug.Print Format(#3/3/2015 12:11:00 PM#, "c") End Sub |
実行結果
Format 関数の使用例(3)
定義済み書式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
Sub SampleFormat03() 'Format 関数使用例その3 '定義済み日付/時刻書式 Debug.Print Format(#9/8/2015 3:21:09 AM#, "General Date") Debug.Print Format(#9/8/2015 3:21:09 AM#, "Long Date") Debug.Print Format(#9/8/2015 3:21:09 AM#, "Medium Date") Debug.Print Format(#9/8/2015 3:21:09 AM#, "Short Date") Debug.Print Format(#9/8/2015 3:21:09 AM#, "Long Time") Debug.Print Format(#9/8/2015 3:21:09 AM#, "Medium Time") Debug.Print Format(#9/8/2015 3:21:09 AM#, "Short Time") Debug.Print '定義済み数値書式 Debug.Print Format(7550.1268, "General Number") Debug.Print Format(7550.1268, "Currency") Debug.Print Format(7550.1268, "Fixed") Debug.Print Format(7550.1268, "Standard") Debug.Print Format(7550.1268, "Percent") Debug.Print Format(7550.1268, "Scientific") Debug.Print Format(7550.1268, "Yes/No") Debug.Print Format(7550.1268, "True/False") Debug.Print Format(7550.1268, "On/Off") End Sub |
実行結果
Format 関数の使用例(4)
複数の書式を設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Sub SampleFormat04() 'Format 関数使用例その4 '複数の書式を設定する1 Debug.Print Format(39800, "\\#,##0;(#,##0);#") '正数:1番目の書式適用 Debug.Print Format(-39800, "\\#,##0;(#,##0);#") '負数:2番目の書式適用 Debug.Print Format(0, "\\#,##0;(#,##0);0") '0:3番目の書式適用 '複数の書式を設定する2(2番目の書式を設定していない) Debug.Print Format(25, "0000;;#;\N\U\L\L") '正数:1番目の書式適用 Debug.Print Format(-25, "0000;;#;\N\U\L\L") '負数:1番目の書式適用 Debug.Print Format(0, "0000;;#;\N\U\L\L") '0:3番目の書式適用 Debug.Print Format(Null, "0000;;#;\N\U\L\L") 'Null:4番目の書式適用 End Sub |