今回は変数の扱い方をご説明したいと思います。
変数の使い方
文字列の変数
変数は宣言した直後には値がありません。 容器だけを用意している状態ですので、当然中身は空の状態となっています。
それでは変数に値を代入し、代入できているかを「MsgBox関数」で確認してみましょう。
Sub HensuMessage()
Dim str As String
str = "テスト用文字列"
MsgBox (str)
End Sub
例によって、プロシージャ名や変数名、及び変数に代入する文字列はお好きな文字列で結構です。 MsgBox関数は、直接文字列を指定することもできますが、このように変数を指定することもできます。

識別子とは
このように、変数に代入する時は「=」を使います。 「識別子」とは、プログラムを作る上で、前提として決まっている記号や文字列を指します。 クォーテーションマークもそうですし、MsgBox関数やDimステートメント等も同様に「識別子」となります。 プログラムを作る人が、宣言していないものは全て識別子という括りに入ります。
次の頁で識別子に関して、大きく取り上げたいと思います。 よろしければそちらも御覧ください。
変数の上書き
どの型の変数も、別の値を代入するごとに上書きされます。
Sub HensuMessage()
Dim str As String
str = "テスト用文字列" '変数に代入
str = "2つめ" '変数を上書き
MsgBox (str)
End Sub
このプログラムですと、「2つめ」のメッセージが表示されます。 このように変数は代入するごとに新しい値に書き換えられていきます。 次は、変数同士を繋げて変数に代入してみましょう。
2つの変数を繋げて代入する
それでは、今度は2つの変数を繋げたものをメッセージで表示してみましょう。
Sub HensuMessage()
Dim str1 As String
Dim str2 As String
str1 = "テスト用文字列"
str2 = "2回目"
str1 = str1 + str2 'str1の値とstr2の値を足したものをstr1に代入する
MsgBox (str1)
End Sub

このようにして2つの変数を繋げることもできます。 もちろん文字列の順序を変えることも可能ですし、同じ文字列を2回使うこともできます。
str1 = str2 + str1 + str2
とすれば、表示されるメッセージは下の画像のようになります。

整数型の変数
それでは次に、整数型の変数についてのご説明をします。
文字列と同様に、数値を表示してみます。
Sub SutiMessage()
Dim i As Integer
i = 3
MsgBox (i)
End Sub
このコードですと、普通に3の数字が表示されたことと思います。
では次に、簡単な足し算をしてから表示をしてみましょう。
Sub SutiMessage()
Dim i As Integer
Dim j As Integer
i = 3
j = 5
i = i + j + j
MsgBox (i)
End Sub
単純に(3+5+5)ですので、当然表示されるメッセージは13になります。 ですが文字列の場合は繋げる形になっていましたが、今回の整数型では足した結果が表示されましたよね? これは変数の型によって、「+」識別子の意味が変わっているということです。
変数の型による処理の変化
では実験として、文字列型の変数に数字を入力して、その上で表示させてみましょう。
Sub JikkenMessage()
Dim str1 As String
Dim str2 As String
str1 = 3
str2 = 5
str1 = str1 + str2
MsgBox (str1)
End Sub
今回は実験のため、文字列の変数に対してダブルクォーテーションで括っていません。 普段は文字列を扱う場合は、必ずダブルクォーテーションで括るようにしてください。
それではこのコードを実行してみます。

変数が文字列型ですので、当然文字を横並びにしただけになります。 文字列型の変数に格納された数字も、文字の1つとして扱われます。 このようにプログラムの中での用途によって、変数の型を変えることが必要です。
今回のまとめ
- 変数は値を代入して使う
- 変数は代入する毎に上書きされる
- 文字列同士を足すと繋げたものになる
- 数値同士は計算できる
次回は変数に代入するための「=」といった記号について、ご説明したいと思います。
コメント