2-11.計算・データ処理:うるう年を判定するには?

DateSerial関数

DateSerial / Day

ある年がうるう年かどうかを判定するには、どうすればよいでしょう。うるう年のルールには「4年に1度」というだけでなく、いくつかの例外ルールがあり、計算で求めようとすると意外と厄介です。

 そこで、Excelのシリアル値の仕組みをうまく使って簡単に判定する方法を紹介しましょう。すなわち、その年の「3月1日」をまず求めて、その1日前=2月の末日を調べます。その日が29日だったら、うるう年というわけです。

 次のサンプルコードは、A1セルに入力した西暦年がうるう年かどうかを判定します。DateSerial関数でその年の3月1日を求め、そこから1を引いて2月の末日を取得。これをDay関数の引数に指定すれば、「日」の部分の数値だけを取り出せます。その結果が「29」かどうかをIf文で判定すればOKです。


指定した年がうるう年かどうかを判定

Sub Sample()

Dim y As Long

y = Range(“B3”).Value

If Day(DateSerial(y, 3, 1) – 1) = 29 Then

MsgBox y & “年はうるう年です。”

Else

MsgBox y & “年はうるう年ではありません。”

End If

End Sub

 

実行結果

 

このエントリーをはてなブックマークに追加

IT開発関連書とビジネス書が豊富な翔泳社の通販『SEshop』
dポイントがどんどんたまる【d払いポイントGETモール】
業界最安値宣言!高性能・低価格のパソコン通販は【UsedFun】
リラクゼーションをお得に体験!ご予約はEPARKで!
【じゃらん】国内25,000軒の宿をネットで予約OK!2%ポイント還元!
【早い者勝ち!】.com/.net/.jp ドメイン取るならお名前.com
2022年9月12日