ある年の恵方がどの方角かを調べる関数を紹介します。
ソースコード
Function Get恵方(年 As Long) As String Select Case Right(年, 1) Case 0, 5 Get恵方 = "西南西" Case 1, 3, 6, 8 Get恵方 = "南南東" Case 2, 7 Get恵方 = "北北西" Case 4, 9 Get恵方 = "東北東" End Select End Function
実行例
Debug.Print Get恵方(2026) ' ← 南南東が表示されます
解説
恵方は実は4種類しかなく、しかも周期が10になっているため、
西暦年の下1桁「Right(年,1)」を判定するだけで求めることが出来ます。
24年周期だったり、その他条件があったりした方が面白かったのですが、
10進数のためMod演算子の紹介すらできない関数になってしまいました。
一応、Select Case のお手本としてはいいコードになっており、
ElseIf で作るよりはるかに綺麗なコードで書くことが出来ています。
分岐構文に If~Else~End If ステートメントしか使ったことがなかった方は、
この機会にSelect Caseステートメントを試してみてください。
また、Select Caseステートメントを使う際のポイントとして、
1行に複数のコードを書く「: (マルチステートメント)」と相性が良いです。
例えば今回のコードをこのように書くこともできます。
Function Get恵方(年 As Long) As String Select Case Right(年, 1) Case 0, 5: Get恵方 = "西南西" Case 1, 3, 6, 8: Get恵方 = "南南東" Case 2, 7: Get恵方 = "北北西" Case 4, 9: Get恵方 = "東北東" End Select End Function
コードによってはかなり読みやすくなることも多いので、
この書き方もぜひ覚えておきましょう。