27日目 もういくつ寝るとお正月【30日間1日1本マクロ生活】

30日間1日1本マクロ生活、27日目です。

マクロを書く準備は、0日目に記事を書きました。

お正月

もういくつ寝るとお正月。

お正月には年賀状をいただきます。

年賀状に必ず書いてあるのが、干支です。

来年2018年は戌年ですね。息子2号が年男です。

西暦の年を入れれば、干支が返ってくる関数を作ってみました。

とりあえずコードを


Function eto(n)
    If n <= 0 Then
        ans = False
    Else
    Select Case n Mod 12
        Case 4
            ans = "子"
        Case 5
            ans = "丑"
        Case 6
            ans = "寅"
        Case 7
            ans = "卯"
        Case 8
            ans = "辰"
        Case 9
            ans = "巳"
        Case 10
            ans = "午"
        Case 11
            ans = "未"
        Case 0
            ans = "申"
        Case 1
            ans = "酉"
        Case 2
            ans = "戌"
        Case 3
            ans = "亥"
    End Select
    End If
    eto = ans
End Function

やっていることは単純です。

干支は12種類。12年で一回りしますから、年を12で割った余りで決定します。

12で割って4余る年が子年。そこから一つずつずらしていけば完成です。

実行結果

ワークシートのA列に並んでいる西暦の年。

その横のセルに今回の関数「eto」を入れて下までコピーです。

完璧ですな。

Excelは便利

悔しいですが、Excelは便利です。

Microsoftにお金を払うのは癪でしょうがないんですが、Excelばかりは仕方がない。

マクロを書くようになると、Excelからは離れられないですね。

30日間、残り3日です。頑張ります。