VBA Format関数の書式と指定文字

VBA Format関数の書式と指定文字

Format関数で使う書式指定文字

Format関数とは、指定した書式で表示変換してくれる関数。
とっても便利なんだけど、書式の決まりが複雑です。

文字列

@1つの文字またはスペースを表す。対応する文字が存在する場合は、その文字が表示される。文字がなければスペースが表示される。
&1つの文字を表す。対応する文字が存在する場合は、その文字が表示される。文字がなければ何も表示せず、詰められて表示される。
<すべての文字は小文字に変換される。
>すべての文字は大文字に変換される。
!文字を右から左ではなく、左から右の順に埋めていくように指定する。この文字を指定しない場合は、右から左の順に埋められる。
\この記号に引き続く1文字をそのまま表示する。
書式1;書式2文字列が入力されているときには「書式1」を適用し、入力されていないときには「書式2」を適用する。

数値

0数値の1桁を表す。指定された桁位置に該当する値がない場合は、0が表示される。
ex.>ゼロ埋め Format(“123”, “‘00000”) → 00123 で表示されます。
#数値の1桁を表す。指定された桁位置に該当する値がない場合は、その桁には何も表示しない。
.表示書式指定文字 (“0” または “#”) と組み合わせて、小数点の位置を指定する。
%数値を 100 倍し、パーセント記号 (%) を付けて表示。
,1000単位の区切り記号を挿入する。整数部の右端にこの表示書式指定文字 “,” を1つ、または2つ以上続けて指定した場合 (小数部の表示指定の有無は任意)、変換対象の数値は 1000 単位で割った値に変換される。”##0,,” →数値 100000000 (1 億) →100
:時刻(時間、分、秒)の区切り記号を挿入する。
/日付(年、月、日)の区切り記号を挿入する。
E- E+ e- e+指数表記を表す。”E-“、”E+”、”e-“、”e+”のいずれかの右側に”0″または”#”を1つ以上指定すると、数値は指数表記で表され、整数部と指数部の間に e または E が挿入される。これらの表示書式指定文字の右側に指定する “0” または “#” の数は、指数部の桁数を示す。”E-“、”e-“ →指数が負の場合にはマイナス記号が付く。”E+”、”e+” →指数の正負に合わせてプラス記号かマイナス記号が付く。
– + $ ( )スペース指定する文字をそのまま挿入する。これら以外の表示書式指定文字を挿入するには、その前に円記号 (\) を付けるか、ダブル クォーテーション (” “) で囲む。
\すぐ後に続く1文字をそのまま表示する。そのままでは挿入できない文字=日付や時刻の表示書式指定文字 (a、c、d、h、m、n、p、q、s、t、w、y、/、:)数値の表示書式指定文字 (#、0、%、E、e、カンマ、ピリオド)文字列の表示書式指定文字 (@、&、<、>、!)
*この記号に引き続く1文字を繰り返し表示して埋める。
!表示文字列を左寄せにする。書式記号も文字列として扱われる。@ &で書式を指定できる。
書式1;書式2;書式3;書式4数値が正のときには「書式1」、負のときには「書式2」、0のときには「書式3」、Nullか未入力なら「書式4」を適用する。書式3や書式4を省略すると、それぞれの場合で書式1を適用する。ただし何も記述しないと何も表示されない。

日付と時刻の書式

日付/時刻型のデータの場合、”Format/書式” プロパティに定義済みの日付/時刻書式またはカスタム書式を設定できます。

: (コロン)時刻の区切り記号を表示します。時刻の区切り文字は、Windows のコントロール パネルの [地域のプロパティ] ダイアログ ボックスで設定します。
/日付の区切り記号を表示します。
c定義済み書式の [General Date/日付 (標準)] と同じです。
d1 桁または 2 桁で日付を表示します (1 ~ 31)。
dd2 桁の数値で日付を表示します (01 ~ 31)。
ddd曜日を省略形 (英語 3 文字) で表示します (Sun ~ Sat)。
aaa曜日を省略形 (日本語) で表示します (日~土)。
dddd曜日を英語で表示します (Sunday ~ Saturday)。
aaaa曜日を日本語で表示します (日曜日~土曜日)。
ddddd定義済み書式の [Short Date/日付 (S)] と同じです。
dddddd定義済み書式の [Long Date/日付 (L)] と同じです。
w曜日を数値で表示します (1 ~ 7)。
wwその日が 1 年のうちの何週目であるかを表示します (1 ~ 53)。.
m1 桁または 2 桁の数値で月を表示します (1 ~12)。
mm2 桁の数値で月を表示します (01 ~ 12)。
mmm月の名前を省略形 (英語 3 文字) で表示します (Jan ~ Dec)。
mmmm月の名前 (英語) を省略せずに表示します (January ~ December)。
q1 年のうちのどの四半期に属すかを表示します (1 ~ 4)。
g年号の頭文字を表示します (M、T、S、H)。
gg年号の先頭の 1 文字を漢字で表示します (明、大、昭、平)。
ggg年号を表示します (明治、大正、昭和、平成)。
e年を年号を元に表示します。
ee年を年号を元に 2 桁の数値を使って表示します。
y日付を 1 月 1 日からの日数で表示します (1 ~ 366)。
yy西暦の最後の 2 桁を表示します (01 ~ 99)。
yyyy西暦を表示します (0100 ~ 9999)。
h1 桁または 2 桁の数値で時間を表示します (0 ~ 23)。
hh2 桁の数値で時間を表示します (00 ~ 23)。
n1 桁または 2 桁の数値で分を表示します (0 ~ 59)。
nn2 桁の数値で分を表示します (00 ~ 59)。
s1 桁または 2 桁の数値で秒を表示します (0 ~ 59)。
ss2 桁の数値で秒を表示します (00 ~ 59)。
ttttt定義済み書式の [Long Time/時刻 (L)] と同じです。
AM/PM時刻に応じて大文字の AM または PM を付けて、12 時間制で時刻を表示します。
am/pm時刻に応じて小文字の am または pm を付けて、12 時間制で時刻を表示します。
A/P時刻に応じて大文字の A または P を付けて、12 時間制で表示します。
a/p時刻に応じて小文字の a または p を付けて、12 時間制で表示します。
AMPMWindows のコントロール パネルの [地域のプロパティ] ダイアログ ボックスに定義されている午前または午後を示す文字列を付けて、12 時間制で表示します。