本コンテンツ最後に追記があります。
VBAのセミナーで、いつも表示形式の話をします。そうしたExcelの標準機能を理解していなかったら、マクロなんて作れるわけがありません。だってマクロは「Excelに対する指示・命令」なのですから、Excelにどんな機能があって、何ができるかを知っていなかったら、指示も命令も出せません。「VBA!VBA!」ってプログラミング的なことばかりやってたって、マクロは作れないんですよ。いくら日本語を勉強しても、いいストーリーは書けないんです。ま、いいや。で、そのセミナーで「日付を和暦で表示する」ってのも、最近(2019年3月現在)紹介しています。今年は元号が変わりますからね。旬な話題として。で、昨日のセミナーで、いつものようにやったら・・・まさに「げげげっ!」でした。
ちなみに、元号や和暦を表示する書式記号は、次のとおりです。
書式記号 | 表示 | 例 |
---|---|---|
g | 元号のアルファベット | H |
gg | 元号の先頭1文字 | 平 |
ggg | 元号(2文字) | 平成 |
e | 和暦年 | 31 |
今までは、こうでした。それが急に「gg」の表示が変わりました。Excel 2013とExcel 2016で比べてみましょう。どちらも、セルA1には「2019/03/07」という日付が入力されています。表示形式には「gg」を設定しました。
【Excel 2013】
【Excel 2016】
まさに「げげげっ!」でしょ。これ、2019年3月6日(水)のセミナーで気づきました。その前、セミナーでやったのは2月17日(日)です。間違いありません。このときは、確かに「平」でした。この間の、約2週間のどこかで変更されたんです。「㍻」ってw 今年(2019年)は、元号が変わります。当然、Excelなどでも、それに備えてアップデートが必要です。それに合わせてというか、そのついでにというか、変更したんでしょうね。ちなみに、Professional PlusとProPlusの両方で確認しました。
この表示形式を使って、平成生まれかどうかを判定するような仕組みは全滅です。
【Excel 2013】
【Excel 2016】
表示形式が変わったのなら、VBAのFormat関数にも影響が出るでしょう。これ、検証してみて驚きました。Format関数の「gg」は、Excel 2016だけでなく、Excel 2003から全部変更されています。
Sub Macro1() MsgBox Format(Now, "gg") ''2019/03/07 End Sub
【Excel 2003】
まとめると、次のように変更されています。すべて、それぞれのバージョンを起動して確認しました。
バージョン | 表示形式 | TEXT関数 | Format関数 |
---|---|---|---|
2003 | 平 | 平 | ㍻ |
2007 | 平 | 平 | ㍻ |
2010 | ㍻ | ㍻ | ㍻ |
2013 | 平 | 平 | ㍻ |
2016 | ㍻ | ㍻ | ㍻ |
TEXT関数は、セル内で使ったときも、VBAのWorksheetFunctionから呼び出したときも同じです。
今年は、元号が変わったり、消費税率が変わったりと、ただでさえ混乱が予想されるのに、これは勘弁して欲しいです。しかも、来年(2020年)はWindows 7とOffice 2010のサポートが切れます。おそらく多くの企業で、Excelの(といかOfficeの)バージョンを上げるでしょう。どのバージョンから、どのバージョンに上げるか分かりませんが、いずれにしても大混乱でしょう。
【2019/04/01 追記】
2日前の30日「Excelアドイン活用セミナー」を実施しました。そのとき、本コンテンツに書いた「元号の表示形式が変わった」件を話して、実際にやってみたのですが、そのときまたゲゲゲっとなりました。なんと、「gg」の表示形式が「平」に戻っていました。いったい何だったのでしょうか。もしかしたら、何らかのミスかもしれませんね。なので、2019/04/01 現在、上記のようなことはありません。ただ、こんなこともあったということで、備忘録として残しておきます。ちなみに、先ほど発表がありましたが、新しい元号は令和だそうですね。新しい元号に関するMicrosoftの対応は、
をご覧ください。