即効テクニック

日付・時刻関連のテクニック

十干十二支を取得する

(Excel 97/2000)
サンプルマクロは、インプットボックスに年を入力することで、その年の十干十二支をメッセージボックスで表示します。
Sub Sample()

    Dim strYear As String, intYear As Integer
    Dim varJikkan As Variant, varJunishi As Variant
    Dim myJikkan As String, myJunishi As String

    varJikkan = Array("甲", "乙", "丙", "丁", "戊", _
        "己", "庚", "辛", "壬", "癸")
    varJunishi = Array("子", "丑", "寅", "卯", "辰", "巳", _
        "午", "未", "申", "酉", "戌", "亥")
    On Error Resume Next
    Do
        Err.Clear
        strYear = InputBox("干支を調べる年を入力してください。")
        If strYear = vbNullString Then Exit Sub
        If Right(strYear, 1) = "年" Then _
            strYear = Left(strYear, Len(strYear) - 1)
        intYear = Year(strYear & "/1/1")
    Loop Until Err.Number = 0
    On Error GoTo 0
    
    myJikkan = varJikkan((intYear + 6) Mod 10)
    myJunishi = varJunishi((intYear + 8) Mod 12)

    MsgBox strYear & "年の十干は『" & myJikkan & "』、十二支は『" _
        & myJunishi & "』です。"

End Sub