質問

この宣言により、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つで十分です。)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top