Excel自作 VBA 関数
指定した年の二十四節気の日付を求める関数です。
その年の二十四節気の日付を知りたい場合等にご使用ください。
VBEの標準モジュールに下のコードを登録して「Excelマクロ有効フォーム」で保存してください。
関数の登録方法は⇒♯000 ユーザー定義関数を登録する方法
登録されたら、シート上からユーザー関数「Sekki」が使用できます。
使い方は
ワークシート上で = Sekki(日付,二十四節気のコード) の関数として使用することで、 市区町村を を取得できます。
【例】
指定した年の二十四節気を求める関数。
日付の二十四節気を求める関数。
Sekki(2021/1/1,9)→ 2021/5/5 2021年立夏は2021年5月5日から
Sekki(2021/1/1,21)→2021/11/7 2021年立冬は2021年11月7日から
Function Sekki(D As Date, T As Long) As Date
'指定した年の二十四節気を求める関数。
'Sekki(日付,二十四節気のコード)
'Sekki(2021/1/1,9)→ 2021/5/5
'Sekki(2021/1/1,21)→2021/11/7
'1 小寒
'2 大寒
'3 立春
'4 雨水
'5 啓蟄
'6 春分
'7 清明
'8 穀雨
'9 立夏
'10小満
'11芒種
'12夏至
'13小暑
'14大暑
'15立秋
'16処暑
'17白露
'18秋分
'19寒露
'20霜降
'21立冬
'22小雪
'23大雪
'24冬至
On Error GoTo EXITFUN
Dim Y As Long
Dim SekkiC(1 To 24, 1 To 2) As Variant
Y = Year(D)
SekkiC(1, 1) = DateSerial(Y, 1, Int(6.3811 + (0.242778 * ((Y - 1) - 1900)) - Int(((Y - 1) - 1900) / 4)))
SekkiC(2, 1) = DateSerial(Y, 1, Int(21.1046 + (0.242765 * ((Y - 1) - 1900)) - Int(((Y - 1) - 1900) / 4)))
SekkiC(3, 1) = DateSerial(Y, 2, Int(4.8693 + (0.242713 * ((Y - 1) - 1900)) - Int(((Y - 1) - 1900) / 4)))
SekkiC(4, 1) = DateSerial(Y, 2, Int(19.7062 + (0.242627 * ((Y - 1) - 1900)) - Int(((Y - 1) - 1900) / 4)))
SekkiC(5, 1) = DateSerial(Y, 3, Int(6.3968 + (0.242512 * (Y - 1900)) - Int((Y - 1900) / 4)))
SekkiC(6, 1) = DateSerial(Y, 3, Int(21.4471 + (0.242377 * (Y - 1900)) - Int((Y - 1900) / 4)))
SekkiC(7, 1) = DateSerial(Y, 4, Int(5.628 + (0.242231 * (Y - 1900)) - Int((Y - 1900) / 4)))
SekkiC(8, 1) = DateSerial(Y, 4, Int(20.9375 + (0.242083 * (Y - 1900)) - Int((Y - 1900) / 4)))
SekkiC(9, 1) = DateSerial(Y, 5, Int(6.3771 + (0.241945 * (Y - 1900)) - Int((Y - 1900) / 4)))
SekkiC(10, 1) = DateSerial(Y, 5, Int(21.93 + (0.241825 * (Y - 1900)) - Int((Y - 1900) / 4)))
SekkiC(11, 1) = DateSerial(Y, 6, Int(6.5733 + (0.241731 * (Y - 1900)) - Int((Y - 1900) / 4)))
SekkiC(12, 1) = DateSerial(Y, 6, Int(22.2747 + (0.241669 * (Y - 1900)) - Int((Y - 1900) / 4)))
SekkiC(13, 1) = DateSerial(Y, 7, Int(8.0091 + (0.241642 * (Y - 1900)) - Int((Y - 1900) / 4)))
SekkiC(14, 1) = DateSerial(Y, 7, Int(23.7317 + (0.241654 * (Y - 1900)) - Int((Y - 1900) / 4)))
SekkiC(15, 1) = DateSerial(Y, 8, Int(8.4102 + (0.241703 * (Y - 1900)) - Int((Y - 1900) / 4)))
SekkiC(16, 1) = DateSerial(Y, 8, Int(24.0125 + (0.241786 * (Y - 1900)) - Int((Y - 1900) / 4)))
SekkiC(17, 1) = DateSerial(Y, 9, Int(8.5186 + (0.241898 * (Y - 1900)) - Int((Y - 1900) / 4)))
SekkiC(18, 1) = DateSerial(Y, 9, Int(23.8896 + (0.242032 * (Y - 1900)) - Int((Y - 1900) / 4)))
SekkiC(19, 1) = DateSerial(Y, 10, Int(9.1414 + (0.242179 * (Y - 1900)) - Int((Y - 1900) / 4)))
SekkiC(20, 1) = DateSerial(Y, 10, Int(24.2487 + (0.242328 * (Y - 1900)) - Int((Y - 1900) / 4)))
SekkiC(21, 1) = DateSerial(Y, 11, Int(8.2396 + (0.242469 * (Y - 1900)) - Int((Y - 1900) / 4)))
SekkiC(22, 1) = DateSerial(Y, 11, Int(23.1189 + (0.242592 * (Y - 1900)) - Int((Y - 1900) / 4)))
SekkiC(23, 1) = DateSerial(Y, 12, Int(7.9152 + (0.242689 * (Y - 1900)) - Int((Y - 1900) / 4)))
SekkiC(24, 1) = DateSerial(Y, 12, Int(22.6587 + (0.242752 * (Y - 1900)) - Int((Y - 1900) / 4)))
SekkiC(1, 2) = "小寒"
SekkiC(2, 2) = "大寒"
SekkiC(3, 2) = "立春"
SekkiC(4, 2) = "雨水"
SekkiC(5, 2) = "啓蟄"
SekkiC(6, 2) = "春分"
SekkiC(7, 2) = "清明"
SekkiC(8, 2) = "穀雨"
SekkiC(9, 2) = "立夏"
SekkiC(10, 2) = "小満"
SekkiC(11, 2) = "芒種"
SekkiC(12, 2) = "夏至"
SekkiC(13, 2) = "小暑"
SekkiC(14, 2) = "大暑"
SekkiC(15, 2) = "立秋"
SekkiC(16, 2) = "処暑"
SekkiC(17, 2) = "白露"
SekkiC(18, 2) = "秋分"
SekkiC(19, 2) = "寒露"
SekkiC(20, 2) = "霜降"
SekkiC(21, 2) = "立冬"
SekkiC(22, 2) = "小雪"
SekkiC(23, 2) = "大雪"
SekkiC(24, 2) = "冬至"
Sekki = SekkiC(T, 1)
EXITFUN:
End Function
ここで紹介したコード使用による損害に対しては一切責任は負えません。