【Windows10】Office 2003,2007の和暦(令和)対応状況の調査

  • 投稿 : 2019-05-17

はじめに

Office 2010以降に関しては、2019/05/15頃のWindows Updateで対応された感じです。Excel 2010,Excel 2013でセル書式で見る限りでは、対応できてました。で、問題は、それ以前のOffice はどうなるかですね。

Officeのコア(固有)部分は、対応してもらえないみたい

Office 2007以前は、サポート期限切れなので、対応してもらえないようです。

たとえば、Excel 2003でセルの書式設定をしても、対応してないのがわかります。

VBAあたりは、対応してそうな雰囲気

Range("A1").Value = VBA.Format("2019/4/1", "ggg")
Range("A2").Value = VBA.Format("2019/5/1", "ggg")

Excel 2003で上記VBAコードを試すと、令和になりました。VBAは対応してるっぽいですね。

Windows 7 Home + MS Aceess 2003 というレガシーな環境で、新元号「令和」対応をしないといけないんだけど、VB モジュールで
Format("令和01年05月01日", "yyyy/mm/dd")
こんな風に Format 関数の結果をセットしてみても、2019/05/01 が返ってこない(Null になる)。

Windows の開発環境に詳しい方に聞いてみると、サポートの切れている MS Access 2003 でも、Format 関数は OS のレジストリを見るので、 OS がサポートされていれば大丈夫。ただし、まだ「令和」関係の Windows Update は提供されていないとのことだった。


その中に書いてあるとおり、コマンドプロンプト画面で、

REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras /v "2019 05 01" /t REG_SZ /d "令和_令_Reiwa_R"

を実行。「この操作を正しく終了しました。」のメッセージを確認後、念の為 MS Access 2003 の画面を再起動。
見事、Format("令和01年05月01日", "yyyy/mm/dd") で 2019/05/01 が返ってくることを確認した。
Windows で、とりあえず「令和」対応をする - 電気ウナギ的○○

検索で調べる限りでは、Access 2003とかもVBAは対応してそうな雰囲気です。

情報

VBAが対応されてる理由

■VBA, VB6
OSを更新することで元号対応(本記事の内容)
Format、CDate、DateValue、DateDiff、DateAdd、DatePart、IsDate

■.NET 3.5
OSを更新することで元号対応(本記事の内容)

VB6、およびOffice VBAの元号対応の状況について - Qiita

Windows OS(ライブラリ)を更新すると、令和対応になるみたいです。

Windows API?を呼び出してるだけとかそういう場合は、OS側の更新で自動対応になるという感じではないかと思われます。

原因

また、先日筆者が日本マイクロソフトのセミナーに参加した際に知ったのだが、Windows 10でもハードコードが各所に残っているという。通常はHKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Control¥Nls¥Calendars¥Japanese¥Erasキーに並ぶ値から元号データを取得するものの、日本語MS-IMEやVBScriptエンジンはハードコードのため、OSが新元号に対応しても平成31年という表記になってしまうそうだ。
Windows 10ミニTips(367) 「令和」前にチェック! 和暦を設定する方法 | マイナビニュース

C:\Program Files (x86)\Common Files\microsoft shared\OFFICE数字\MSO.DLL

検索で調べる限りでは、Officeの場合は、MSO.DLLにハードコードされてるそうな。

該当のレジストリ

HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Control¥Nls¥Calendars¥Japanese¥Eras

レジストリから読むようになっている処理は、「令和」のレジストリが追加されるだけで、処理が対応されるようです。VBA関係はこれなのかも。

2019/05/15頃のWindows Updateでこのレジストリが更新されたと思われます。

参考:Windowsのレジストリに「令和」を追加する。 - Qiita

その他

Japan New Era Name Support Blog – 日本マイクロソフトの新元号 (和暦) 対応に関するサポート情報のブログです
2019 年 5 月の日本の元号変更の対応に向けて Windows と Office を準備する方法
[.NET][改元] 「元年」表記に変わる日付書式が今になって拡大!(フレームワーク別の対策が必要)――マイクロソフト様、重大な変更をしれっとリリースしないで - Qiita

マイクロソフト コミュニティ

お世話になります。
OFFICE2003,2007の場合、和暦(令和)の修正プログラムは適用されますか?


onClick 返信日 2019年4月22日
MVP | ボランティア モデレーター

Office 2003 や Office 2007 は、残念ながら、サポートも終了しているため、新元号対応も行われません。
OFFICE2003,2007の場合、和暦(令和)の修正プログラムは適用されますか? - マイクロソフト コミュニティ

このフォーラムの回答って、あまり役に立たないことが多い気が・・。

スポンサーリンク