【EXCEL VBA】西暦と和暦(令和、平成、昭和、大正、明治)を相互変換したい

VBAで西暦と和暦を変換する方法を紹介します。西暦から和暦への変換はFormatを使い、和暦から西暦への変換はDateValueを使います。非常に簡単なのでサンプルプログラムを確認してみてください。

Format関数に指定できる日付記号には以下の公式を参照してください。

サンプルプログラム

Sub sample()

    Dim str As String

    ' 西暦 ⇒ 和暦変換
    str = "2020/11/07"
    Debug.Print Format(str, "gggee年mm月dd日")  ' 令和02年11月07日
    Debug.Print Format(str, "ggge年mm月dd日")   ' 令和2年11月07日
    Debug.Print Format(str, "ggee年mm月dd日")   ' 令02年11月07日
    Debug.Print Format(str, "gee年mm月dd日")    ' R02年11月07日
    Debug.Print Format(str, "e年mm月dd日")      ' 2年11月07日

    ' 和暦 ⇒ 西暦変換
    Debug.Print DateValue("令和02年11月7日")    ' 2020/11/07
    Debug.Print DateValue("令和2年11月7日")     ' 2020/11/07
    Debug.Print DateValue("令02年11月7日")      ' 2020/11/07
    Debug.Print DateValue("R02年11月7日")       ' 2020/11/07
    Debug.Print DateValue("R02年11月")          ' 2020/11/01
    Debug.Print DateValue("令和02年")           ' エラー

End Sub