DateSerial / Day

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

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

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

図●実行結果
図●実行結果
[画像のクリックで拡大表示]