データの分析、グラフ作成、および通信のためのツールを備えた Microsoft 表計算ソフトウェアのファミリ。
今一つわかりにくいですが、参考になりそうな記事です。
通貨データ型(Currency) | Microsoft Learn
Range.Value2 プロパティ (Excel) | Microsoft Learn
Range.Value2 プロパティの記事の注釈にあるように
セルには倍精度浮動小数点型として格納されます。
つまり、丸められます。
Value プロパティに代入した場合も Variant(Double)となりますが、丸め方が違うようです。
(有効数字15桁に丸めてから格納している?)
具体的には下記のようになります。(末尾の@はCurrency型を示します)
.Value2 = 100000000000000.4999@
.Value2 → Currency型の変数へ代入した場合、100000000000000.5 となります。
.Value = 100000000000000.4999@
.Value → Currency型の変数へ代入した場合、100000000000000 となります。
これはバグではなく、仕様のようです。
ご参考までに
追記)
Currency型でなくDouble型でもValue2 プロパティに格納した場合は同じようになります。
.Value2 = 100000000000000# + 0.4999
失礼しました。