- 公開日:2017-1-19
- プロスタTOP / プログラミング初心者向け技術系ノウハウ・まとめ

VBAのFormat関数で日付の書式を設定する方法についてご説明します。
日付の表記の仕方は西暦・和暦・曜日を表示する等様々な方法がありますが
イメージ通りの表示形式を指定するにはどのようにすればよいのでしょうか。
以下、具体的なパターンについて順に確認していきましょう。
Formatを使用した構文例
書式を設定したいセル=Format(日付, 書式設定)
組み込み定数を使用した書式設定
VBAにはあらかじめ定義されたフォーマットで日付を表示する『組み込み定数』がいくつか用意されています。
日付をNow(現在日付)に設定してそれぞれ確認してみましょう。
<コード>
1 2 3 4 5 6 7 |
Range("D3") = Format(Now, "Long Date") 'YYYY年MM月DD日形式で表示' Range("D4") = Format(Now, "Medium Date") '年月日をハイフンで区切って表示' Range("D5") = Format(Now, "Short Date") '年月日をスラッシュで区切って表示' Range("D9") = Format(Now, "Long Time") '時間・分・秒をコロンで区切って表示' Range("D10") = Format(Now, "Medium Time") '時間と分をコロンで区切り、午前・午後を表示' Range("D11") = Format(Now, "Short Time") '時間・分をコロンで区切って表示' |
<実行例>
同じ日付が様々な表示形式で表示されました。
ちなみに組み込み定数はダブルクォートで囲み、半角小文字(スペースを含む)で入力するようにしましょう。
書式記号を使用した書式設定
書式記号は特定のアルファベットの組み合わせが独自の意味を持っているというものです。
組み込み定数とは異なり任意の文字列を挿入することもでき、自由度が高い表現が可能です。
書式記号の例(※小文字でも入力可)
書式記号 | 詳細 |
---|---|
S | 秒 |
SS | 秒(1桁の場合は先頭に0を付与して2桁にする) |
N | 分 |
NN | 分(1桁の場合は先頭に0を付与して2桁にする) |
H | 時間 |
HH | 時間(1桁の場合は先頭に0を付与して2桁にする) |
AM/PM | 午前・午後 |
D | 日付 |
DD | 日付(1桁の場合は先頭に0を付与して2桁にする) |
AAA | 曜日(日本語:日~土) |
AAAA | 曜日(日本語:日曜日~土曜日) |
DDDD | 曜日(英語) |
WW | 1年のうち何週目かを数値で表示 |
M | 月 |
MM | 月(1桁の場合は先頭に0を付与して2桁にする) |
Q | 1月を初めとして何番目の四半期に当たるかを表示 |
YY | 年(西暦2桁) | YYYY | 年(西暦4桁) |
GGG | 年号 |
GGGE | 年号+年 |
それでは、これらの書式記号を組み合わせて日付を表示してみましょう。
<コード>
1 2 |
MsgBox "本日は" & Format(Now, "YYYY年MM月DD日AAAA") & vbCrLf & _ "第" & Format(Now, "Q") & "番目の四半期です。" |
<実行例>
<コード>
1 2 |
MsgBox "現在は" & Format(Now, "H:N:S-DDDD") & vbCrLf & _ Format(Now, "GGGE年") & Format(Now, "WW") & "週目です。 |
<実行例>
まとめ
日付や時刻は組み込み定数や書式記号を用いて様々な書式設定を行う事ができます。
今回ご紹介したもの以外にも様々な設定が可能ですので、ぜひ色々と試してみてください。