EXCEL VBA 元号・年号の表示方法(テクニック)西暦・和暦変換

EXCEL VBA テクニック 元号・年号の表示方法(テクニック)西暦・和暦変換「明治・大正・昭和・平成・令和」

 

 

EXCEL VBA元号。年号の表示方法(西暦・和暦変換)①

 

●プログラム説明
プログラムの説明ですが、A列にランダムに日付が入力されています。この日付を元に、該当する元号をB列に割り当てます。A列の日付データについては、明治~令和までの範囲内の日付を想定しています。今回のプログラムについては、Select Caseを使って元号を割り当てます。

 

Sub Meiji_Reiwa()

    Dim X_day As Date
    Dim I, Nen As Integer
    Dim Nengo As String
    
    For I = 2 To Cells(Rows.Count, "A").End(xlUp).Row  'A列の最終行取得(データ)
    
    X_day = Cells(I, "A")  'A列の日付をX_Dayに代入
    
        Select Case X_day
                
                Case #1/25/1868# To #7/29/1912#
                 Nengo = "明治"
        
                Case #7/30/1912# To #12/25/1926#
                 Nengo = "大正"
                 
                Case #12/26/1926# To #1/7/1989#
                 Nengo = "昭和"
                 
                Case #1/8/1989# To #4/30/2019#
                 Nengo = "平成"
                
                Case #5/1/2019# To #1/1/2099#
                 Nengo = "令和"
                 
        End Select
        
        Cells(I, "B") = Nengo '年号を代入
    
    Next I
    
End Sub

 

●実行結果
実行後、A列の日付を元に、元号が表示されました。

 

実行前 ※元号が表示されていません。(クリックして拡大)

 

実行後 ※A列の日付を元に、元号が表示されました。(クリックして拡大)

 

元号。年号の表示方法(西暦・和暦変換)②

 

●プログラム説明
●次のプログラムの説明ですが、A列にランダムに日付が入力されています。この日付を元に、該当する元号をB列に割り当てます。ここまでは、①のプログラムと同じですが、今回のプログラムは、元号(年号)の表をシート状に作成して、その元号の表を参照して該当する年号と年月日を表示します。今回は、年号プラス年月日も表示させます。なお、元年の表示も対応させています。元年を表示させるには、VBAを使うとで表現する事ができます。下記のプログラムは、安政から令和まで対応していますが、元号の表を追加する事で複数の元号に対応出来る様に作成しています。※元号の西暦(開始)・西暦(終了)については、サンプルとして西暦を入力していますので、異なる年月日を入力していますので、ご了承下さい。

 

Sub Ansei_Reiwa()

    Dim X_day As Date
    Dim I, L, Nen As Integer
    Dim Nengo As String
    
    For I = 2 To Cells(Rows.Count, "A").End(xlUp).Row  'A列の最終行取得(データ)
    
    X_day = Cells(I, "A")
    
        For L = 2 To Cells(Rows.Count, "E").End(xlUp).Row  'E列の最終行取得(年号データ)
        
            If X_day >= Cells(L, "F") And X_day <= Cells(L, "G") Then  '該当する和暦の範囲を調べる
                    Nen = Year(X_day) - Year(Cells(L, "F"))  '和暦の年数計算
                    If Nen = 0 Then
                            Nengo = Cells(L, "E") & "元年" & Month(X_day) & "月" & Day(X_day) & "日"  '元年の場合
                        Else
                            Nengo = Cells(L, "E") & Nen + 1 & "年" & Month(X_day) & "月" & Day(X_day) & "日"  '元年以外
                    End If
                    
                    Cells(I, "B") = Nengo '和暦の日付で代入
                    Exit For
            End If
        Next L
    
    Next I
    

End Sub

 

●実行結果
実行後、A列の日付を元に、B列に元号と年月日が表示されました。

 

●実行前 ※元号と年月日が表示されていません。(クリックして拡大)

 

●実行後 ※A列の日付を元に、元号と年月日が表示されました。(クリックして拡大)

 

最後まで、ご覧いただきまして誠に有難うございました。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。
AKIRA