- ベストアンサー
VBA 100億になると#が自動で付く
下記のコードを見てください。 Option Explicit Sub test1() Dim i As Long i = 1000000000 End Sub Sub test2() Dim i As Long i = 10000000000# End Sub test2の#は私が付けたものではありません。 test1より一つ多く0を付けたら勝手に付きました。 どうしてなのでしょう? 不思議です。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 i = 10000000000# '←リテラル値には、Double 型のマークが付きます。 i = 2147483647 '←Long型の最上値 i = 2147483648# '←Double型 i が、Long 型ですと、オーバーフローの実行時エラーが発生します。 型宣言文字は、このようなものがあります。 % ... Integer, ! .... Single, & ... Long, # ... Double, @ ... Currency ですから、2147483647 より以上は、Double 型かCurrency 型が、VBAの範疇のデータ型になります。 Sub test3() Dim i As Variant i = 10000000000@ End Sub として、ステップモード(F8)で動かしてみると、i の変数は、Variant/Currency になっているはずです。
お礼
ありがとうございました。数字なら何でも良い訳ではなさそうですね。