私はそのような整数値を設定しようとしています:
Dim intID as integer
intID = x * 10000
x
が3以下の場合、これは問題なく機能します。しかし、x
が4のとき、これは私にエラーを与えます:
実行時エラー6オーバーフロー
これがなぜなのか分かりません。 intID
を問題なく直接40000に設定できるため、明らかに大きな数値を格納できます。
* 16ビットの数値であるため、vb6整数を40000に設定できません。したがって、+ 32767が最大です。
Long
は32ビット型です。
ただし、警告として、次のことを行う場合:
_Dim lngID As Long
lngID = 4 * 10000
_
_&
_を使用して長さ1を入力するか、CLng()
を使用して長さ1をキャストすると、リテラル番号のデフォルトが整数であるため、オーバーフローが発生します。
_Dim lngID As Long
lngID = 4 * 10000&
lngID = 4 * CLng(10000)
_
更新:
vB6では、整数型は-32768〜32767の範囲の整数です。
ここでLong
タイプを使用するのが最適です。
In VB整数変数の範囲は-32,768〜32,767です。プログラムで変数の値がこの範囲を超える場合、整数ではなくデータ型Longを宣言する必要があります。
Dim intID as integer
intID = x * 10000
Dim lngID AS Long
lngID = x * CLng(10000)
' if 10000
' whatever you want to be