干支は年に紐付く

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

干支は「子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥」の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関数の使い方です。

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

実行結果
戌
午