質問: #1899-12-29 12:00:00# If x < y Then MsgBox "OK" Else MsgBox "NG" ' こちらが表示される End If ``` なぜですか?
回答: 「VBSでのDate同士の加算の仕様を教えてください」の回答にあるように、内部表現によって大小が比較されるからです。 OKが表示される例は、内部表現が`0.0`になる日付(1899/12/30)以降のため、内部表現の大小と日付の大小が一致します。 しかし、NGが表示される例は、内部表現が`0.0`になる日付より前の日付のため、内部表現の大小と日付の大小が一致しなくなります。 そのため、直観に反した挙動を示すことになります。