干支は年に紐付く

「あなた、なにどし?」干支を聞く言葉ですね。

干支は「子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥」の12種類がありますが、これらはもちろん、年と紐付いています。

これを書いている2018年は戌年です。

このように、西暦さえ分かれば干支もわかるため、VBAでも生年月日や西暦から干支を求めることが可能です。


干支と年の関係

干支は12年周期です。

そのため、西暦年を12で割った余りの数が、各干支と紐づくことになります。

余りが0なら申、1なら酉、と言った具合です。

年を12で割った余り 干支
0
1
2
3
4
5
6
7
8
9
10
11

これを配列にするとVBAでのコードにすることが出来ます。


ソースコード

以下のコードは日付を渡すと干支を返す関数です。

コードの内容ですが、事前に干支を配列にしています。

配列のインデックスは年を12で割った余りになります。

引数の日付からyyyyの年部分を取得して、12で割った余りの値を干支の配列のインデックスとして返します。



使い方

上の干支を取得するGetEto関数の使い方です。

日付を引数に渡すと、対応する干支が返ってきます。

実行結果