セルの日付は書式で見え方が変わる

セルの日付にはいろんな表示方法があります。

「2021/3/2」西暦
「令和3年3月2日」和暦
「令和三年三月二日」漢数字
などなど。

これらはいずれもセルの値は同じ2021年3月2日を示すシリアル値が設定されています。表現の仕方が違うだけです。

ちなみに、現在日付や現在時刻をセルに入力するショートカットはとても便利で、セルに今日の日付を入力したい場合は、Ctrl + ;(Ctrlキーを押しながら;(ひらがなの”れ”)キー)を押すと入力され、「Ctrl + *(け)」で現在時刻が入力されます。

西暦と和暦の書式

西暦と和暦の表示には以下のような種類があります。

ユーザー定義での書式設定 1年(元年) 2年以降
yyyy/m/d 2019/12/20 2021/3/2
yyyy/mm/dd 2019/12/20 2021/03/02
yyyy/mm/dd(aaa) 2019/12/20(金) 2021/03/02(火)
yyyy-mm-dd 2019-12-20 2021-03-02
yyyy”年”m”月”d”日” 2019年12月20日 2021年3月2日
[DBNum1][$-ja-JP-x-gannen]ggge”年”m”月”d”日” 令和一年十二月二十日 令和三年三月二日
[DBNum2][$-ja-JP-x-gannen]ggge”年”m”月”d”日” 令和壱年壱拾弐月弐拾日 令和参年参月弐日
[DBNum3][$-ja-JP-x-gannen]ggge”年”m”月”d”日” 令和元年12月20日 令和3年3月2日
[$-ja-JP]ge.m.d R1.12.20 R3.3.2

ここで挙げたのは代表的なものですが、書式を組み合わせて他の表示方法にすることも可能です。

書式については「セルの表示形式の書式記号」で詳しく書いていますのでご参照ください。

和暦について補足します。

「DBNum1」は漢数字、「DBNum2」は数字の大字(難しい書き方の漢数字)、「DBNum3」は全角のアラビア数字で表示します。「$-ja-JP」は和暦で表示し、「-x-gannen」が付くと1年を元年と表示します。ただし、「DBNum1」と「-x-gannen」を組み合わせた場合は”元年”ではなく”一年”と表示されます。

セルの日付を西暦や和暦に変更する方法

VBAでセルの日付の書式を変える場合は、対象セル範囲のRangeオブジェクトのNumberFormatLocalプロパティを使います。

以下はA1セルからA9セルにそれぞれ上で挙げた西暦と和暦の書式を設定しています。日付は全て2021/3/2にしています。

VBAに書く際の注意点というか面倒な点が1つあります。それはダブルクォーテーションの扱いです。書式にダブルクォーテーションが含まれている場合は、ダブルクォーテーションを2つ書いてエスケープする必要があります。以下のコードはエスケープ対応済みです。

実行するとA1セルからA9セルまでに以下が表示されます。

2021/3/2
2021/03/02
2021/03/02(火)
2021-03-02
2021年3月2日
令和三年三月二日
令和参年参月弐日
令和3年3月2日
R3.3.2