質問
この宣言により、VBAでオーバーフローが発生します。
Const OVERFLOWS As Long = 10 * 60 * 60
値を直接設定するのは問題ありません:
Const COMPILES_OK As Long = 36000
リテラル整数をlongとして扱うようにVBAを説得するにはどうすればよいですか
ありがとう
解決
long
サフィックス&
を少なくとも1つの数字に追加します:
Const OVERFLOWS As Long = 10& * 60 * 60
VBAでは関数の戻り値を定数に割り当てることができないため、 CLNG
関数を使用して値を long
に変換することはできません。
他のヒント
http://support.microsoft.com/kb/191713 は素晴らしい要約です。 VBA / VB4-6で使用可能な型宣言文字の一覧。
&を見つけた人向けシンボルを少し難解ですが、代わりに数値をlongに変換するCLNG関数を使用することです
Const OVERFLOWS As Long = CLNG(10) * 60 * 60
単一の定数に対して同様のことを行うことができます
Const OVERFLOWS As Single = CSNG(10) * 60 * 60
リテラルにタイプ文字を追加することもできます:Const OVERFLOWS As Long =(10& * 60 * 60) (VBAエンジンが式を評価する方法のため、実際には1つで十分です。)
所属していません StackOverflow