第2講 変数を理解しよう!
第4話 長整数型変数
今回は、長整数型変数に挑戦しましょう。
Integer型は、扱える範囲が-32,768〜32,767です。
これより大きい整数を扱うには、長整数型変数を使います。
長整数型変数は、次のように宣言します。
Dim a As Long
長整数型は、-2,147,483,648〜2,147,483,647の範囲です。
ではファイル『浮動小数点型変数の練習』を開き、
名前を付けて保存を使い『長整数型変数の練習』
としましょう。そして、シートを次のように変更してください。
B5からB7には、少し大きめの整数を入れましょう。
ただし、123456789などの大きすぎる整数を入れると
a×b×cがありますので、オーバーフローします。
オーバーフローとは、限界を超えることをいいます。
答えが、-2,147,483,648〜2,147,483,647の範囲内に収まるような整数にしてください。
といってもわからないでしょうから、適当に入れて実験をしてください。
もし、となったら終了を選んで実験し直してください。
実行コードはどのようになるでしょうか。
解答例は、例によって30行下。
コード例
Private Sub CommandButton1_Click()
Dim a As Long, b As Long, c As Long
a = Cells(5, 2)
b = Cells(6, 2)
c = Cells(7, 2)
Cells(8, 2) = a + b + c
Cells(9, 2) = a * b * c
Cells(10, 2) = a * (b + c)
Cells(11, 2) = (a - b) * c
End Sub
実行画面例
-2,147,483,648〜2,147,483,647の範囲であっても、a×b×cがあるので、意外に簡単にオーバーフローすることがわかります。
整数型変数と今回の長整数型変数において、割り算を入れてありませんが、入れたらどうなるでしょうか。
シートを次のように変更して、実行コードもそれに対応するようにしましょう。
コード例は、30行下。
コード例
Private Sub CommandButton1_Click()
Dim a As Long, b As Long, c As Long
a = Cells(5, 2)
b = Cells(6, 2)
c = Cells(7, 2)
Cells(8, 2) = a + b + c
Cells(9, 2) = a * b * c
Cells(10, 2) = a * (b + c)
Cells(11, 2) = (a - b) * c
Cells(12, 2) = (a - b) / c
End Sub
実行画面例
というわけで割り算を入れても問題ありません。
C言語あたりでは、整数型変数で (a - b) / cを計算させると整数に丸められて、0になってしまいますが、
VBAでは、ちゃんと計算してくれます。
第3話へ 第5話へ
vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
数学研究室に戻る