VBA 表示書式を変換するFormat関数

スポンサーリンク

Format【フォーマット】関数

データの書式を変更するには、Format【フォーマット】関数を使用します。

引数Expression【エクスプレッション】に指定された、数値・文字列・日付や時刻を表す文字列を引数Format【フォーマット】に指定された表示形式に変換して、バリアント型(内部処理形式StringのVariant)の値で返します。

Format 【フォーマット】関数の書式と引数の説明

[]内は省略可
Format(Expression[,Format][,firstdayofweek][,firstweekofyear])
【戻り値】バリアント型(内部処理形式StringのVariant)

  • Expression【エクスプレッション】(必須)
    表示書式を変換したい数値や文字列、日付や時刻を表す文字列、関数を指定します。
  • Format【フォーマット】(省略可)
    変換後の表示書式を「定義済み書式」または、「ユーザー定義書式」を使用して指定します。省略した場合は、引数Expression【エクスプレッション】に指定した文字列をそのまま返しますが、数値は文字列に変換されます。
  • FirstDayOfWeek【ファーストデイオフウィーク】(省略可)
    週の始まりの曜日を表す定数を指定します。省略の場合は、日曜日。

    引数 FirstDayOfWeek に指定可能な定数一覧表
    定数内容
    vbUseSystem0各国語対応APIの設定値を使用
    vbSunday1日曜日(既定値)
    vbMonday2月曜日
    vbTuesday3火曜日
    vbWednesday4水曜日
    vbThursday5木曜日
    vbFriday6金曜日
    vbSaturday7土曜日
  • FirstWeekOfYear【ファーストウィークオフイヤー】(省略可)
    年度の第 1 週を表す定数を指定します。省略の場合は、1 月 1 日を含む週が第 1 週。

    引数 FirstWeekOfYear に指定可能な定数一覧表
    定数内容
    vbUseSystem0各国語対応APIの設定値を使用
    vbFirstJan111 月 1 日を含む週を第1週とします。(既定値)
    vbFirstFourDays2週の 4 日以上が含まれる最初の週を第1週とします。
    vbFirstFullWeek3週の7 日が含まれる最初の週を第一週とします。

引数Format【フォーマット】に指定する変更後の表示書式一覧と使用例

定義済み数値書式一覧表
書式内容使用例
General
Number
【ゼネラルナンバー】
桁区切り記号を付けずに数を表示Format(10000,”General Number”)
→10000
Currency
【カレンシー】
桁区切り記号を付けて数を表示
小数点記号の右 2 桁を表示
Format(10000,”Currency”)
→¥10,000
Fixed
【フィックスド】
最低整数部 1 桁、小数部 2 桁を表示
桁区切り記号は付きません。
Format(1235.678,”Fixed”)
→1235.67
Standard
【スタンダード】
最低整数部 1 桁、小数部 2 桁を表示
桁区切り記号が付きます。
Format(1235.678,”Standard”)
→1,235.67
Percent
【パーセント】
数値を 100 倍して
パーセント記号 (%)を付けて表示
小数部は常に 2 桁です。
Format(0.123456,”Percent”)
→12.35%
Scientific
【サイエンティフック】
標準の指数表記を使用します。Format(0.000123,”Scientific”)
→12.3E-04
Yes/No
【イエス/ノー】
数値が 0 の場合はNo
それ以外の場合はYes を表示
Format(1,”Yes/No”)→Yes
Format(0,”Yes/No”)→No
True/False
【トゥルー/フォルス】
数値が 0 の場合は False
それ以外の場合は True を表示
Format(1,”True/False”)→True
Format(0,”True/False”)→False
On/Off
【オン/オフ】
数値が 0 の場合は Off
それ以外の場合は On を表示
Format(1,”On/Off”)→On
Format(0,”On/Off”)→Off

数値表示書式指定文字一覧表
文字内容使用例
0「0」1つで、数値の1桁を表します。
指定された桁位置に値がない場合
その桁には0が入いります。
数値が0の場合は、0を表示します。
桁が指定した「0」の数より
多い場合はすべて表示されます。
Format(123,”0000″)→0123
Format(123,”00″)→123
Format(0,”0″)→0
#「#」1つで、数値の1桁を表します。
指定された桁位置に値がない場合
その桁にはなにも入りません。
数値が0の場合は、なにも表示されませんが
1桁目に「0」を指定することで
数値が0の場合に0を表示させることができます。
桁が指定した「#」より多い場合は
すべて表示されます。
Format(123,”####”)→123
Format(123,”##”)→123
Format(0,”###”)→
Format(0,”##0″)→0
.「0」や「#」と組み合わせて、
小数点の位置を指定します。
小数部の桁数が指定した桁位置を
超える場合は指定の桁位置に合わせて
四捨五入されます。
「.」の左側に「#」だけが指定されている場合は
1未満の数値は小数点記号から始まります。
0が付くようにするには、「0」を指定します。
Format(0.123,”0.0000″)
→0.1230
Format(0.456,”0.00″)→0.46
Format(0.456,”#.##”)→46
%数値を100倍にして「%」が付きます。Format(0.4567,”0.#%”)→45.7%
,1000単位の区切り記号を挿入するときに
指定します。整数部の右端に「,」だけを
続けて指定した場合は一つの「,」につき
1000単位で割った値に変換されます。
このとき値は
桁位置の指定に応じて丸められます。
Format(1000000,”#,##0″)
→1,000,000
Format(123456789,”##0,,”)
→123

+
$
( )
スペース
これからの文字はそのまま表示される。
これらの文字以外の文字を表示するには
その前に「¥」を付けます。
Format(123,”(-$0)”)→(‐$123)
¥すぐあとに続く1文字をそのまま表示する。
「¥」を表示するには「¥¥」と続けて記述。
Format(1234,”#,##0¥k¥g”)
→1,234kg
Format(1234,”¥¥#,##0″)
→¥1,234
E-
E+
e-
e+
指数表記で表示するときに指定します。
「E-」「E+」「e-」「e+」の右側に
「0」や「#」で指数部の桁数を指定します。
「E-」や「e-」を使うと指数が負の場合に
マイナス記号が付きます。
「E+」や「e-」の場合は指数の正負に合わせて
プラスやマイナス記号が付きます。
Format(123456,”0.00E+00″)
→1.23E+05
Format(0.0004567,”0.00e+##”)
→4.57e-4

定義済み日付・時刻書式一覧表
書式内容使用例
General
Date
【ゼネラルデイト】
「地域」ダイヤログボックスの
「形式」タイプに設定されている
形式で日付/時刻を返します。
整数と小数の両方を含むシリアル値を
指定した場合は日付と時刻の両方を
表す文字列に変換します。
整数のみの場合は日付
小数のみの場合は時刻を
表す文字列に変換します。
Format(24856.5,”General Date”)
→2017/05/01 12:00
Format(24856,”General Date”)
→2017/05/01
Format(0.5,”General Date”)
→ 12:00
Long Date
【ロングデイト】
「地域」ダイヤログボックスの「形式」
タイプの「時刻(長い形式)」に
指定された表示形式で日付を返します。
Format(24856,”Long Date”)
→2017年5月1日
Medium Date
【ミディアムデイト】
簡略形式で表した日付を返します。Format(24856,”Medium Date”)
→17-05-01
Short Date
【ショートデイト】
「地域」ダイヤログボックスの「形式」
タイプの「時刻(短い形式)」に
指定された表示形式で日付を返します。
Format(24856,”Short Date”)
→2017/05/01
Long Time
【ロングタイム】
「地域」ダイヤログボックスの「形式」
タイプの「時刻(長い形式)」に
指定された表示形式で時刻を返します。
Format(0.5,”Long Time”)
→12:00:00
Medium
Time
【ミディアムタイム】
時間と分を12時間制で表した
時刻を返します。
同時に「形式のカスタマイズ」
ダイヤログボックスの
「時刻」タブで設定されている形式で
「午前 午後」を表示します。
Format(0.5,”MediumTime”)
→12:00午後
Short
Time
【ショートタイム】
「地域」ダイヤログボックスの「形式」
タイプの「時刻(短い形式)」に
指定された表示形式で時刻を返します。
Format(0.5,”Short Time”)
→12:00

日付・時刻表示書式指定文字一覧表
文字内容使用例
:時刻の区切り記号「:(コロン)」を
挿入するときに指定します。
Format(120000,”##:##:##)
→12:00:00
/日付の区切り記号「/(スラッシュ)」を
挿入するときに指定します。
Format(201705,”####/##)
→2017/05
c「地域」ダイアログボックスの
「日付(短い形式)」と「時刻(長い形式)」
の表示書式で、日付、時刻の順で返します。
小数がない場合は日付のみ
整数部がない場合は時刻のみ返します。
Format(24856.5,”c”)
→2017/05/01 12:00:00
d日付(1~31)を返します。
一桁の日付は一桁で返します
Format(“2017/05/01″,d”)
→1
dd日付(1~31)を返します。
一桁の日付は二桁で返します
Format(“2017/05/01″,d”)
→01
ddd曜日を英語の省略形で返します。Format(“2017/05/01″,ddd”)
→Mon
dddd曜日を英語で返します。Format(“2017/05/01″,dddd”)
→Monday
dddddd年、月、日を「地域」ダイアログボックスの
「形式」タブの「時刻(長い形式)」に
指定した長い形式で返します。
Format(“2017/05/01″,dddddd”)
→2017年05月1日
(yyyy”年”MM”月”dd”日”の場合)
aaa曜日を日本語で返します。
「曜日」を含まない省略形で返します。
Format(“2017/05/01″,aaa”)
→月
aaaa曜日を日本語で返します。Format(“2017/05/01″,aaaa”)
→月曜日
w日曜日を1、土曜日を7とした
曜日を表す数値を返します。
Format(“2017/05/01″,w”)
→2
ww1年の内で何週目に当たるかを
1~54の数値で返します。
Format(“2017/05/01″,ww”)
→6
m月を表す数値を返します。
一桁の場合は一桁で返します
Format(“2017/05/01″,m”)
→5
mm月を表す数値を返します。
一桁の場合は二桁で返します
Format(“2017/05/01″,mm”)
→05
mmm月の名前を英語の
省略形で返します。
Format(“2017/02/01″,mmm”)
→Feb
mmmm月の名前を英語で返します。Format(“2017/02/01″,mmmm”)
→February
oooo月の名前を日本語
(1月~12月)で返します。
Format(“2017/05/01″,oooo”)
→5月
q1年の内で何番目の四半期に
当たるかを表す1~4の数値を返します。
Format(“2017/05/01″,q”)
→2
y1年の内で何日目に当たるかを
1~366の数値で返します。
Format(“2017/05/01″,y”)
→121
yy西暦の年を下二桁の数値で返します。Format(“2017/05/01″,yy”)
→17
yyyy西暦の年を四桁の数値で返します。Format(“2017/05/01″,yyyy”)
→2017
h時刻の時を0~23の数値で返します。
一桁の数値は一桁で返します。
Format(“1:05:06″,”h”)
→1
hh時刻の時を0~23の数値で返します。
一桁の数値は二桁で返します。
Format(“1:05:06″,”h”)
→01
n時刻の分を0~59の数値で返します。
一桁の数値は一桁で返します。
Format(“1:05:06″,”h”)
→5
nn時刻の分を0~59の数値で返します。
一桁の数値は二桁で返します。
Format(“1:05:06″,”h”)
→05
s時刻の秒を0~59の数値で返します。
一桁の数値は一桁で返します。
Format(“1:05:06″,”h”)
→6
ss時刻の秒を0~59の数値で返します。
一桁の数値は二桁で返します。
Format(“1:05:06″,”h”)
→06
tttt「地域」ダイアログボックスの
「時刻(長い形式)」で
設定されている形式で時刻を返します。
Format(“1:05:06″,”ttttt”)
→1:05:06
[H:mm:ss]設定の場合
AM/PM時刻が午前の場合は「AM」
午後の場合は「PM」が返されます。
Format(“1:05:06″,”AM/PM”)
→AM
am/pm時刻が午前の場合は「am」
午後の場合は「pm」が返されます。
Format(“1:05:06″,”am/pm”)
→am
A/P時刻が午前の場合は「A」
午後の場合は「P」が返されます
Format(“1:05:06″,”A/P”)
→A
a/p時刻が午前の場合は「a」
午後の場合は「p」が返されます
Format(“1:05:06″,”a/p”)
→a
AMPM「形式のカスタマイズ」ダイアログで
指定されている表示形式で
「午前・午後」を表す文字列を返します。
Format(“1:05:06″,”AMPM”)
→午前

文字列表示書式指定文字一覧表
文字内容使用例
@一つの文字またはスペースを表します。
@(アットマーク)に対応する位置に
文字が存在する場合はその文字が表示されます。
文字がなければスペースが表示されます。
文字は右から左の順にうめられます。
Format(“VBA”,”@@@@@”)
→ VBA
!文字を左から右の順にうめるように指定します。Format(“VBA”,”!@@@@@”)
→VBA
&一つの文字を表す
「&(アンパサンド)」に対応する位置に
文字が存在する場合はその文字が表示されます。
文字がなければ何も表示されず詰められます。
文字は右から左の順にうめられます。
Format(“VBA”,”&&&&&”)
→VBA
<すべての大文字を小文字に変換します。Format(“VBA”,”<&&&”)
→vba
>すべての小文字を大文字に変換します。Format(“vba”,”>&&&”)
→VBA

以上で、Format【フォーマット】関数の解説を終了します。ありがとうございました。

文字列関数一覧表

文字列関数の一覧表です。
関数名のリンクで詳細ページが開きます。
関数内容
Formatデータの表示書式を変換
Left文字列の左端から文字列の一部分を取り出す
Right文字列の右端から文字列の一部分を取り出す
Mid文字列の指定した一部分を取り出す
LeftB文字列の左端からバイト数で文字列の一部分を取り出す
RightB文字列の右端からバイト数で文字列の一部分を取り出す
MidB文字列の指定位置からバイト数で文字列の一部分を取り出す
Len文字列の長さを取得する
LenB文字列のバイト数を取得する
ChrASCIIコードに対応する文字を取得する
Asc文字に対応するASCIIコードを取得する
StrConv文字の種類を変換する
LCaseアルファベットの大文字を小文字に変換
UCaseアルファベットの小文字を大文字に変換
LTrim文字列の先頭にあるスペースを削除する
RTrim文字列の末尾にあるスペースを削除する
Trim文字列の先頭と末尾のスペースを削除する
Replace文字列を置換えする
Spaceスペースを追加する
String文字を指定した数表示する
StrComp2つの文字を比較する
InStr文字を文字列の先頭から検索する
InStrRev文字を文字列の末尾から検索する

スポンサーリンク

関連記事・広告