第2講 変数を理解しよう!

第4話 長整数型変数

今回は、長整数型変数に挑戦しましょう。
Integer型は、扱える範囲が-32,768〜32,767です。
これより大きい整数を扱うには、長整数型変数を使います。
長整数型変数は、次のように宣言します。
Dim a As Long
長整数型は、-2,147,483,648〜2,147,483,647の範囲です。
ではファイル『浮動小数点型変数の練習』を開き、
名前を付けて保存を使い『長整数型変数の練習』
としましょう。そして、シートを次のように変更してください。
c01
B5からB7には、少し大きめの整数を入れましょう。
ただし、123456789などの大きすぎる整数を入れると
a×b×cがありますので、オーバーフローします。
オーバーフローとは、限界を超えることをいいます。
答えが、-2,147,483,648〜2,147,483,647の範囲内に収まるような整数にしてください。
といってもわからないでしょうから、適当に入れて実験をしてください。
もし、c02となったら終了を選んで実験し直してください。
実行コードはどのようになるでしょうか。
解答例は、例によって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
実行画面例
c03
-2,147,483,648〜2,147,483,647の範囲であっても、a×b×cがあるので、意外に簡単にオーバーフローすることがわかります。

整数型変数と今回の長整数型変数において、割り算を入れてありませんが、入れたらどうなるでしょうか。

シートを次のように変更して、実行コードもそれに対応するようにしましょう。
c04
コード例は、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
実行画面例
c05
というわけで割り算を入れても問題ありません。
C言語あたりでは、整数型変数で
(a - b) / cを計算させると整数に丸められて、0になってしまいますが、
VBAでは、ちゃんと計算してくれます。





第3話へ 第5話へ

004


vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ

数学研究室に戻る