以下のコードを実行すると
Sub test()
Dim a As Long '(長整数型を指定)
'↓いきなり ここでオーバーフローエラー。
a = 3600 * 12 '→43200 (長整数型の範囲内)
End Sub
何でエラーになるか判らず、調べてみたところ
3600 は整数
12も整数
なので
計算結果も整数にならないとオーバーフローするのだそう。
このエラーを回避するには
a = 3600# * 12
とすればよい。#はこの数値は、長整数型として扱うよという印。
単精度浮動小数点型にするなら、3600! にすればよい。