F105 年の干支(えと)十干十二支(じゅかんじゅうにし)を求める関数

EXCEL自作関数

Excel自作 VBA 関数 

年の干支(えと)十干十二支(じゅかんじゅうにし)を求める関数関数 です。
カレンダーを作成するときなどにお使いください。


VBEの標準モジュールに下のコードを登録して「Excelマクロ有効フォーム」で保存してください。
関数の登録方法は⇒♯000 ユーザー定義関数を登録する方法

登録されたら、シート上からユーザー関数「 EtoY」が使用できます。
使い方は 
ワークシート上で = EtoY(日付,[表示形式])の関数として使用することで、 年の干支(えと)十干十二支(じゅかんじゅうにし) を計算できます。

EtoY(日付,[表示形式])
2019年 (令和元年)10月1日以降に対応する消費税額を計算する関数
項目[軽減税率]は省略及び 0で軽減税率なし、1で 2019年 ( 令和元年)10月以降日付の場合の減免税率8%で計算
項目[日付]は省略すると、令和元年10月以降の消費税率で計算、入力すると入力日の消費税率で計算
[例]
EtoY(2020) → 子
EtoY(2020,4) → ねずみ
EtoY(2020,5) → 庚
EtoY(2020,11) → かのえね
[ 表示形式]
1 十二支 漢字 子
2 十二支 音読 し
3 十二支 訓読 ね
4 十二支 意味 ねずみ
5 十干  漢字 甲
6 十干  音読 こう
7 十干  訓読 きのえ
8 十干  意味 木の兄
9 十干十二支 漢字 甲子
10 十干十二支 音読 こうし
11 十干十二支 訓読 きのえね
12 十干十二支 意味 木の兄ねずみ
※項目[表示形式]を省略した場合は、表示形式1となる

Function EtoY(D As Date, Optional TypeE As Long = 1) As String

'年の干支(えと)十干十二支(じゅっかんじゅうにし)を計算する関数
'EtoY(日付,[表示形式])
' 表示形式
'1  十二支 漢字 子
'2  十二支 音読 し
'3  十二支 訓読 ね
'4  十二支 意味 ねずみ
'5  十干  漢字 甲
'6  十干  音読 こう
'7  十干  訓読 きのえ
'8  十干  意味 木の兄
'9  十干十二支 漢字 甲子
'10 十干十二支 音読 こうし
'11 十干十二支 訓読 きのえね
'12 十干十二支 意味 木の兄ねずみ

'項目[表示形式]を省略した場合は、表示形式1となる
'EtoY(2020)   → 子
'EtoY(2020,4) → ねずみ
'EtoY(2020,5) → 庚
'EtoY(2020,11) → かのえね

On Error GoTo EXITFUN

Dim Jyukan1 As Variant
Dim Jyukan2 As Variant
Dim Jyukan3 As Variant
Dim Jyukan4 As Variant

Dim Jyunishi1 As Variant
Dim Jyunishi2 As Variant
Dim Jyunishi3 As Variant
Dim Jyunishi4 As Variant

Dim JyukanN As Long
Dim JyunishiN As Long

JyukanN = (Year(D) - 4) Mod 10
JyunishiN = (Year(D) - 4) Mod 12

Jyukan1 = Split("甲,乙,丙,丁,戊,己,庚,辛,壬,癸", ",")
Jyukan2 = Split("こう,おつ,へい,てい,ぼ,き,こう,しん,じん,き", ",")
Jyukan3 = Split("きのえ,きのと,ひのえ,ひのと,つちのえ,つちのと,かのえ,かのと,みずのえ,みずのと", ",")
Jyukan4 = Split("木の兄,木の弟,火の兄,火の弟,土の兄,土の弟,金の兄,金の弟,水の兄,水の弟", ",")

Jyunishi1 = Split("子,丑,寅,卯,辰,巳,午,未,申,酉,戌,亥", ",")
Jyunishi2 = Split("し,ちゅう,いん,ぼう,しん,し,ご,び,しん,ゆう,じゅつ,がい", ",")
Jyunishi3 = Split("ね,うし,とら,う,たつ,み,うま,ひつじ,さる,とり,いぬ,い", ",")
Jyunishi4 = Split("ねずみ,うし,とら,うさぎ,たつ,へび,うま,ひつじ,さる,にわとり,いぬ,いのしし", ",")

Select Case TypeE
Case 1
EtoY = Jyunishi1(JyunishiN)
Case 2
EtoY = Jyunishi2(JyunishiN)
Case 3
EtoY = Jyunishi3(JyunishiN)
Case 4
EtoY = Jyunishi4(JyunishiN)
Case 5
EtoY = Jyukan1(JyukanN)
Case 6
EtoY = Jyukan2(JyukanN)
Case 7
EtoY = Jyukan3(JyukanN)
Case 8
EtoY = Jyukan4(JyukanN)
Case 9
EtoY = Jyukan1(JyukanN) & Jyunishi1(JyunishiN)
Case 10
EtoY = Jyukan2(JyukanN) & Jyunishi2(JyunishiN)
Case 11
EtoY = Jyukan3(JyukanN) & Jyunishi3(JyunishiN)
Case 12
EtoY = Jyukan4(JyukanN) & Jyunishi4(JyunishiN)
End Select

EXITFUN:
End Function

ここで紹介したコード使用による損害に対しては一切責任は負えません。