【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

西暦日付が入力されたセルを数値として扱いたく、
以下のようにしてみたのですが、

西暦 as date
日付 as long
西暦 = Cells(1, 1)
日付 = Format(西暦, "yyyymmdd")
Debug.Print "西暦" & 西暦
Debug.Print "日付" & 日付


1900/2/28を渡すと、以下のようになってしまいます。
西暦1900/02/27、日付19000227

1900/3/1を渡すと、期待したとおりなのですが。
西暦1900/03/01、日付19000301

なぜですかね