この宣言により、VBA でオーバーフローが発生します。
Const OVERFLOWS As Long = 10 * 60 * 60
一方、値を直接設定しても問題ありません。
Const COMPILES_OK As Long = 36000
リテラル整数を long として扱うように VBA を説得するにはどうすればよいですか?
ありがとう
少なくとも 1 つの数字にlong
サフィックスを追加します。&
Const OVERFLOWS As Long = 10& * 60 * 60
CLNG
関数を使用して値を変換しても機能しないことに注意してくださいlong
。VBA では関数の戻り値を定数に割り当てることができないためです。
& 記号が少し難解な場合は、別の方法として、数値を long に変換する CLNG 関数を使用します。
Const OVERFLOWS As Long = CLNG(10) * 60 * 60
次に、 Single 定数に対して同様のことを行うことができます
Const OVERFLOWS As Single = CSNG(10) * 60 * 60
http://support.microsoft.com/kb/191713は、VBA / VB4-6 で使用できる型宣言文字の概要です。
型文字はリテラルに追加することもできます: Const OVERFLOWS As Long = (10& * 60 * 60) (VBA エンジンが式を評価する方法のため、実際には 1 つで十分です)。