Longの概要
整数型(Long) VBAの予約語 | ||
Long 概要 Long 型は、VBAで使用される整数型のデータ型の一つで、より大きな数値を扱うことができます(-2,147,483,648 から 2,147,483,647 まで)。 わかりやすく説明 Long は、「すごく大きな数を扱える整数型」と考えればOKです。通常の |
||
|
Longの基本的な使い方
Long 型の変数を宣言して、数値を代入する基本的な例です。
Sub UseLong()
Dim num As Long
num = 2000000 ' 200万を代入
MsgBox "Long型の値: " & num, vbInformation, "Longの例"
End Sub
解説:
Dim num As Long
でLong型の変数を宣言。- Integer型(-32,768 から 32,767)では扱えない 200万 という大きな値を代入可能。
- メッセージボックスで変数の値を表示。
ExcelでのLongの活用例
Excelの行番号は 1 から 1,048,576 まであるため、行番号を扱う場合は Long 型を使用するのが適切です。
Sub FillColumnWithLong()
Dim i As Long
' 1列目に1~50000までの数値を入力
For i = 1 To 50000
Cells(i, 1).Value = i
Next i
End Sub
解説:
- ループ変数
i
をLong
にすることで、大きな値を処理可能。 - 1列目(A列)に1~50,000の数値を入力。
- Integer型(最大32,767)ではループが途中でエラーになるため、Longを使用するのが安全。
LongとIntegerの違い
VBAの Integer
型は範囲が狭いため、大きな値を扱う場合には Long
を使用するのが適切です。
データ型 | 範囲 | メモリ使用量 |
---|---|---|
Integer | -32,768 ~ 32,767 | 2バイト |
Long | -2,147,483,648 ~ 2,147,483,647 | 4バイト |
数値計算でLongを使用
大きな数の計算を行う際にも Long は有効です。
Sub CalculateLargeNumbers()
Dim a As Long, b As Long, result As Long
a = 100000
b = 50000
result = a * b
MsgBox "計算結果: " & result, vbInformation, "Longの計算"
End Sub
解説:
Integer
ではオーバーフローする可能性があるが、Long
なら問題なく計算できる。- 100,000 × 50,000 の結果(5,000,000,000)は
Long
の範囲内。
エラーを回避する方法
数値が Long
の範囲を超えるとオーバーフローエラーが発生するため、エラーハンドリングを適用します。
Sub SafeLongCalculation()
Dim x As Long, y As Long, result As Double
x = 2000000000
y = 2
On Error Resume Next
result = x * y
If Err.Number <> 0 Then
MsgBox "オーバーフローエラー発生!", vbExclamation, "エラー"
Err.Clear
Else
MsgBox "計算結果: " & result
End If
End Sub
解説:
- 2,000,000,000 × 2 は Long の範囲(2,147,483,647)を超えるため、オーバーフローエラーが発生。
- オーバーフローを防ぐために、変数を
Double
に変更するのも有効。
Longの注意事項
- Longの範囲を超えるとオーバーフローエラー: 最大値(2,147,483,647)を超えないように注意。
- 計算結果が範囲を超えそうな場合は Double を使う: 大きな数値計算には
Double
を活用。 - Excelの行番号を扱う場合は Long が必須: 行番号は最大 1,048,576 なので、Integer では足りない。
よくある質問
- Q: Long と Integer はどちらを使うべきですか?
- A: 小さい数(32,767 以下)なら Integer、大きな数(それ以上)なら Long を使います。Excelの行操作には Long を推奨します。
- Q: Long を使うと処理速度は遅くなりますか?
- A: ほぼ変わりません。VBAでは内部的に Integer も Long に変換されるため、Long を使用するのが一般的です。
- Q: Long の代わりに Double を使うべきですか?
- A: 整数の計算には Long、少数や非常に大きな数を扱う場合は Double を使いましょう。
まとめ
- Long 型は、大きな整数を扱うためのデータ型。
- 範囲は -2,147,483,648 ~ 2,147,483,647。
- Excelの行番号を扱う場合に適している。
- オーバーフローを防ぐため、必要に応じて Double を使用する。