自分方位研究所

日々の活動記録

Excel VBA オーバーフローしました

Excel VBA
オーバーフローしました。

以下のコードを実行すると

Sub test()

 Dim a As Long '(長整数型を指定)

'↓いきなり ここでオーバーフローエラー。
 a = 3600 * 12  '→43200 (長整数型の範囲内)

End Sub

何でエラーになるか判らず、調べてみたところ
3600 は整数
12も整数
なので
計算結果も整数にならないとオーバーフローするのだそう。
このエラーを回避するには
a = 3600# * 12
とすればよい。#はこの数値は、長整数型として扱うよという印。
単精度浮動小数点型にするなら、3600! にすればよい。