バージョン4.5.1までの場合、これは仕様で、例えば「2010/02/30」は「2010/03/02」として扱われます。
実在する日付かどうかをチェックするには、次の方法があります。
※ここでは日付文字列のフォーマットは「yyyy/MM/dd」とします。
- StrToDate関数でDateTime型に変換する。
- FormatDate関数で「yyyy/MM/dd」形式に変換する。
- 元の日付文字列と2で出力される日付文字列を比較する。
上記の3で、値が同じであれば実在するということがわかります。
※バージョン4.6以降ではエラーになるように仕様変更されました。
※バージョン1812からはStrToDate関数が非推奨となります。
FAQ「バージョン1812からStrToDate関数が非推奨になったようですが?」も参照してください。