10

この宣言により、VBA でオーバーフローが発生します。

Const OVERFLOWS As Long = 10 * 60 * 60

一方、値を直接設定しても問題ありません。

Const COMPILES_OK As Long = 36000

リテラル整数を long として扱うように VBA を説得するにはどうすればよいですか?

ありがとう

4

4 に答える 4

14

少なくとも 1 つの数字にlongサフィックスを追加します。&

Const OVERFLOWS As Long = 10& * 60 * 60

CLNG関数を使用して値を変換しても機能しないことに注意してくださいlong。VBA では関数の戻り値を定数に割り当てることができないためです。

于 2008-11-04T11:48:54.100 に答える
4

& 記号が少し難解な場合は、別の方法として、数値を long に変換する CLNG 関数を使用します。

Const OVERFLOWS As Long = CLNG(10) * 60 * 60

次に、 Single 定数に対して同様のことを行うことができます

Const OVERFLOWS As Single = CSNG(10) * 60 * 60
于 2008-11-04T12:12:59.057 に答える
4

http://support.microsoft.com/kb/191713は、VBA / VB4-6 で使用できる型宣言文字の概要です。

于 2008-11-04T12:02:20.203 に答える
3

型文字はリテラルに追加することもできます: Const OVERFLOWS As Long = (10& * 60 * 60) (VBA エンジンが式を評価する方法のため、実際には 1 つで十分です)。

于 2008-11-04T11:52:32.687 に答える