インプットボックスに西暦か和暦で年数を入れて、 西暦→和暦、和暦→西暦に変換し、表示します。

【実行画面】






和暦の頭の部分については、次のキーワードが使えます。
年号使えるキーワード
明治m,M(半角), m,M(全角), 明治
大正t,T(半角), t,T(全角), 大正
昭和s,S(半角), s,S(全角), 昭和
平成h,H(半角), h,H(全角), 平成

 数字は、半角も全角も使えます。

 数字二桁のみを入力した場合、私のパソコンでは、次のように なりました。
< VBScript >

'//////////////////////////////////////////////////////////
'//
'//     西暦 <--> 和暦 変換
'//
Option Explicit
Dim reki, myDate

Do
    reki = InputBox("西暦か和暦で年数を入力して下さい。" &_
        vbCr & vbCr & "(例)" & vbCr &_
        "2000" & vbCr & "h15" & vbCr & "昭和50",_
        "西暦 <--> 和暦 変換")
    If reki = "" Then
        WScript.Quit
    End If
    
    myDate = reki & "/01/01"  '仮の日付
    '//入力値のチェック
    '//     正しければ、西暦、和暦変換処理
    '//     正しくなければ、入力し直し
    If IsDate(myDate) = False Then
        MsgBox "入力した値が正しくありません。",48,_
            "入力値の不正"
    ElseIf Year(myDate) < 1867 Then
        MsgBox "今のところ、1867年以前には対応していません。",48,_
            "年数の未対応"
    Else
        If Left(reki,1) = "m" Or Left(reki,1) = "M" Or _
                Left(reki,1) = "m" Or Left(reki,1) = "M" Then
            Call ToSei("明治",2)
        ElseIf Left(reki,1) = "t" Or Left(reki,1) = "T" Or _
                Left(reki,1) = "t" Or Left(reki,1) = "T" Then
            Call ToSei("大正",2)
        ElseIf Left(reki,1) = "s" Or Left(reki,1) = "S" Or _
                Left(reki,1) = "s" Or Left(reki,1) = "S" Then
            Call ToSei("昭和",2)
        ElseIf Left(reki,1) = "h" Or Left(reki,1) = "H" Or _
                Left(reki,1) = "h" Or Left(reki,1) = "H" Then
            Call ToSei("平成",2)
        ElseIf Left(reki,2) = "明治" Then
            Call ToSei("明治",3)
        ElseIf Left(reki,2) = "大正" Then
            Call ToSei("大正",3)
        ElseIf Left(reki,2) = "昭和" Then
            Call ToSei("昭和",3)
        ElseIf Left(reki,2) = "平成" Then
            Call ToSei("平成",3)
        Else
            Call ToWa()
        End If
    End If
Loop


'//////////////////////////////////////
'//     和暦 --> 西暦 変換処理
Sub ToSei(strWa,x)
    MsgBox strWa & CInt(Mid(reki,x)) & "年は、西暦" &_
        Year(myDate) & "年です。",64,"和暦 --> 西暦 変換"
End Sub


'//////////////////////////////////////
'//     西暦 --> 和暦 変換処理
Sub ToWa()
    If Year(myDate) < 1912 Then
        MsgBox "西暦" & Year(myDate) & "年は、明治" &_
            Year(myDate) - 1867 & "です。",64,"西暦 --> 和暦 変換"
    ElseIf Year(myDate) = 1912 Then
        MsgBox "西暦" & Year(myDate) &_
            "年は、大正元(明治45)年です。",64,"西暦 --> 和暦 変換"
    ElseIf Year(myDate) > 1912 And Year(myDate) < 1926 Then
        MsgBox "西暦" & Year(myDate) & "年は、大正" &_
            Year(myDate) - 1911 & "です。",64,"西暦 --> 和暦 変換"
    ElseIf Year(myDate) = 1926 Then
        MsgBox "西暦" & Year(myDate) &_
            "年は、昭和元(大正15)年です。",64,"西暦 --> 和暦 変換"
    ElseIf Year(myDate) > 1926 And Year(myDate) < 1989 Then
        MsgBox "西暦" & Year(myDate) & "年は、昭和" &_
            Year(myDate) - 1925 & "です。",64,"西暦 --> 和暦 変換"
    ElseIf Year(myDate) = 1989 Then
        MsgBox "西暦" & Year(myDate) &_
            "年は、平成元(昭和64)年です。",64,"西暦 --> 和暦 変換"
    ElseIf Year(myDate) > 1989 Then
        MsgBox "西暦" & Year(myDate) & "年は、平成" &_
            Year(myDate) - 1988 & "です。",64,"西暦 --> 和暦 変換"
    End If
End Sub




戻る