西暦年と和暦年の相互変換を行ないます。
『#VALUE!』
kt元号変換( 年号, 年 )
返却値 ‥‥‥ Variant 型 年 号 ‥‥‥ String 型 (M(明治), T(大正), S(昭和), H(平成), R(令和), Y(西暦)) :半角 年 ‥‥‥ Integer 型 (M, T, S, H, R :和暦年 Y:西暦年)
年号にM(明治), T(大正), S(昭和), H(平成), R(令和) を指定 ⇒ 西暦年に変換(Integer型)
年号にY(西暦) を指定 ⇒ 和暦年に変換(String型:"H13"等の形式)
年号が不正な場合は[#VALUE!]が返ります。
月日も考慮した変換が必要な場合は TEXT 関数/Format 関数 を使用して下さい。
(補)「明治改元の布告」の詔書に記されている日付は【明治元年九月八日】に
※改 元 (西暦変換) 明治:M1. 9. 8 〜 M45. 7.29(1868. 9. 8 〜 1912. 7.29)明治 + 1867明治:M1.10.23 〜 M45. 7.29 (1868.10.23 〜 1912. 7.29) 明治 + 1867 大正:T1. 7.30 〜 T15.12.24 (1912. 7.30 〜 1926.12.24) 大正 + 1911 昭和:S1.12.25 〜 S64. 1. 7 (1926.12.25 〜 1989. 1. 7) 昭和 + 1925 平成:H1. 1. 8 〜 H31. 4. 30 (1989. 1. 8 〜 2019. 4. 30) 平成 + 1988 令和:R1. 5. 1 〜 (2019. 5. 1 〜 ) 令和 + 2018
なっていますが、「改暦の布告」が発せられたのは【明治五年】です。
即ち、それ以前の日付は旧暦日付で記されている訳です。
明治元(1868)年九月八日を新暦に直すと【1868年10月23日】になります。
歴史について語るならば「明治元(1868)年九月八日」と表現するべきでしょうが、
コンピューター等において期間を計算する場合を考えれば、新暦の基準でその
まま遡った「1868年10月23日」を使わないと正しい期間は得られません。
Dim int西暦年 As Integer
int西暦年 = kt元号変換("H", 13)
⇒ [int西暦年]には[2001]が返ります。
Dim str和暦年 As String
Dim int和暦年 As Integer
str和暦年 = kt元号変換("Y", 2001)
int和暦年 = Val(Mid(str和暦年, 2))
⇒ [str和暦年]には["H13"]が返ります。