変数の取り扱いと四則演算

今回はどんなプログラミングにおいても欠かせない「変数」について学ぶ。

ページの前半で変数を用いるための文法について解説する。
ページの最後にて、実際に Excel 上でプログラムを記述し、変数の使い方を習得してもらう。

変数の宣言と利用

まず変数とは何かというものについて解説する。まず、以下の式を考える。

x = 2

数学では上の式は「x は 2 に等しい」という意味を表す。
それにやや似ているのだが、プログラミングでは上の式を「変数 x に 2 を代入する」の意味で用いる。
この式の後では x は 2 という数字が格納されたものとして取り扱うことができる。

ただし、VBA で変数 x を使うには宣言が必要である。

Dim x As Integer  ' この行が変数 x の宣言
    x = 2         ' x に 2 を代入

なお、上の例で「' (アポストロフィ)」以下はコメント文として無視されることに注意しよう。

なお、上の例では数学流に「x」と一文字で変数を表したが、 「hensuu=5」などのように長い変数名でも構わない。
Visual Basic における変数名には以下の制約がある。 また、次のように複数の変数を宣言して使うことができる

Dim x As Integer  ' 変数 x の宣言
Dim y As Integer  ' 変数 y の宣言
    x = 2         ' x に 2 を代入
    y = x + 3     ' y に x+3 、すなわち 2+3=5 を代入

ここで、「Integer」という英語は「整数」の意味であるが、変数の型 (type) を指定している。 変数の型には他に以下のようなものがある。 実数型 Double と 文字列型 String の利用例は以下のようになる。

Dim x As Double       ' 実数変数 x の宣言
Dim s As String       ' 文字列変数 s の宣言
    x = 5.5           ' x に 5.5 を代入
    s = "こんにちは"  ' s に文字列「こんにちは」を代入

さらにもう一つの例を見ておこう。以下の例は、「プログラミングでの = は代入を表す」という事実に慣れていないと
奇異に写るかも知れない。

Dim x As Integer  ' 変数 x の宣言
    x = 2         ' x に 2 を代入
    x = x + 3     ' x に x+3 、すなわち 2+3=5 を代入

「x=x+3」という式は数学では意味をなさないが、プログラミングでは 「x に x+3 を代入する」という意味をもつ。
もともと x は 2 であったから、「x=x+3」によって x の値は 5 となる。


変数の表示

このように変数を宣言して利用できるのであるが、慣れないうちは 変数にどのような値が格納されているか頻繁に確認したくなるであろう。

そのような時は、前回同様に MsgBox 関数で変数 x の値を確認すると良い。 使用例をいくつか示す。

Dim x As Integer  ' 変数 x の宣言
    x = 2         ' x に 2 を代入
    MsgBox x      '「2」と書かれたダイアログが現れる

Dim s As String       ' 変数 s の宣言
    s = "こんにちは"  ' s に文字列 "こんにちは" を代入
    MsgBox s          '「こんにちは」と書かれたダイアログが現れる

Dim x As Integer  ' 変数 x の宣言
    x = 2         ' x に 2 を代入
    MsgBox "xの値は" & x  '「xの値は2」と書かれたダイアログが現れる

最後の例のみ解説が必要だろう。
「"xの値は" & x」という式は、「"xの値は"という文字列」「x (の値)」を連結して一つの文字列「"xの値は2"」を作成している。

さらに末尾に「"です"」を加えたければ などとすれば良い。


四則演算

本ページの最後に、VBA における数値の四則演算に用いる演算子についてまとめておこう。
+ 加算
- 減算
* 乗算
/ 実数の除算
\ 整数の除算 (左の記号は環境によって「¥」か「\」かのどちらかに見える)
Mod 整数の除算における余り

加算/減算/乗算については問題ないだろうが、除算は少々注意を要する。

' 実数の場合
Dim x As Double
Dim y As Double
Dim z As Double
    x = 5
    y = 3
    z = x / y  ' 実数 z には 1.666...が格納される

' 整数の場合
Dim x As Integer
Dim y As Integer
Dim z As Integer
Dim v As Integer
    x = 5
    y = 3
    z = x \ y    ' 整数 z には除算の商である 1 が格納される
    v = x Mod y  ' 整数 v には除算の余り 2 が格納される

さて、本ページのまとめとして 実際に Visual Basic Editor でプログラムを記述してみよう。

Excel を立ち上げたら、まず Visual Basic Editor ボタンを押し…



現れた Visual Basic Editor で「挿入」→「標準モジュール」を選択するのであった。

この手順は今後瀕出するのでしっかりと覚えておこう。



さて、現れたエディタで以下のプログラムを記述して、動作を確認してみよう。
(記述が終わったら再生ボタンで実行するのだった)



上記のプログラムには、このページで学んだ を含んでいる。しっかりとマスターして欲しい。

上記のプログラムが正しく動作したら、プログラムに以下の変更を施してみよ。

[変更すべき点]
  • x、y の数値をいろいろ変えて試してみよ

  • 整数の乗算・除算・余りも同様に出力させてみよ

  • 「和は8です」のように、末尾に「です」を出力するように変更してみよ

  • 「和は8で差は2です」のように2つの結果を1つのダイアログにまとめて出力してみよ。必要なら下の「おまけ」を参照してダイアログ内で改行させても良い


(おまけ)
MsgBox の出力を、1つのダイアログ内で改行するには、以下のように 「Chr(10)」を連結すると良い。

MsgBox "1行目です" & Chr(10) & "2行目です"





←[応用] ボタンからのプログラムの起動キーボードからの入力→

Excel / OpenOffice で学ぶ Visual Basic for Applications (VBA)に戻る