変数について知ろう
今回は変数について解説いたします。
VBAに限りませんが、プログラム言語において変数は必ず存在しています。
変数とは、ざっくり行ってしまえばデータの「入れ物」です。
以下のソースコードを解説しながら、変数について説明いたします。
Sub test4()
'整数型「Integer」で変数宣言
Dim Hensu1 As Integer
'文字列型「String」で変数宣言
Dim Hensu2 As String
'変数「Hensu1」に整数「1」を代入
Hensu1 = 1
'変数「Hensu2」に文字列「bbb」を代入
Hensu2 = "bbb"
MsgBox (Hensu1)
MsgBox (Hensu2)
End Sub
いきなり 新しい記述やら用語やらが出てきましたが大丈夫です。
1つずつ解説していきます。
これまでのおさらい
まずこれまでのおさらいです。
「test4()」は関数です。
そしてコメントアウトは「’」シングルクォーテーションが行の先頭に付いています。
そして「MsgBox」はメッセージを表示させるための標準関数です。
ここまでは問題ないでしょう。
次は新しく出てきた事を解説いたします。
変数宣言について
'整数型「Integer」で変数宣言
Dim Hensu1 As Integer
'文字列型「String」で変数宣言
Dim Hensu2 As String
「Dim」とはVBAにおける変数を宣言するための記述です。
よくこのような決り文句を「おまじない」と解説される書籍などがありますが、そのように受け取っていただいても構いません。
そして次の「Hensu1」ですが、これが変数です。
この変数は「Hensu1」という名前です。
変数名は何でも構いません。
変数名に使えない文字や、使えない名前がありますが、大抵は問題ないと思いますので、ここでは詳しく解説しません。
使えなかった場合は、プログラム実行時にエラーが出て分かりますので修正しましょう。
この「Hensu1」には、プログラムにおけるデータが入ります。
変数は箱のようにイメージしていただいて構いません。
変数のデータ型について
その次の「As Integer」ですが、これは変数のデータ型を指定しています。
この型とは、特定のデータのみを指します。
例えば「Hensu1」の場合は「Integer型(インテジャー)」になります。
VBAでは、「Integer型」は「-32,768~32,767の整数」の範囲の整数になります。
つまり、「Hensu1」はInteger型なので、文字を入れる事ができませんし、数字も「32,768以上と-32,769以下」は入れる事ができません。
入れてもエラーになります。
「Hensu2」の場合は「As String」で「String型(ストリング)」になります。
String型は(任意の長さの)文字列になり、文字列を入れる事ができます。
なぜ変数にはこのような型があるのでしょうか?
これからプログラムを学ぶにあたり分かってきますので、今は変数には代入できる型がある事だけ覚えておきましょう。
ちなみに肩のしていは「AS <型名>」で指定します。
型名の一覧は以下のページに一覧があります。
変数の代入について
変数の宣言と型について解説した所で、今度は変数の代入について説明したします。
'変数「Hensu1」に整数「1」を代入
Hensu1 = 1
'変数「Hensu2」に文字列「bbb」を代入
Hensu2 = "bbb"
このソースコードでは、実際に変数に値を代入しています。
「Hensu1」はInteger型なので、整数を代入しています。
「Hensu2」はString型なので、文字列を代入しています。
それぞれ「<変数名> =」と書き、「=」イコールを使って代入しています。
代入方法が型によって異なっているのが分かるでしょうか?
「Hensu2」のString型には「=」の後に「”」ダブルクオーテーションで囲われています。
このダブルクオーテーションが必ず必要です。
一方、「Hensu1」はダブルクオーテーションは必要ありませんが、ダブルクオーテーションを付けても動作します。
どちらでも良いですし、できればダブルクオーテーションを付けて統一した方が覚えやすいでしょう。
しかし、整数型などの数値の型は、基本的にダブルクオーテーションを使えたとしても、使わない方が良いです。
その理由は、ダブルクオーテーションがなければ、見ただけで数値の型である事が分かるため、多くのプログラム言語やプログラマーがそのように記述しているからです。
VBA以外の言語を学ぶためにも、これは徹底しておいたほうが良いでしょう。
実際にプログラムを動かしてみよう
それでは、この「test4関数」を実行してみましょう。
MsgBox関数はメッセージを表示します。
変数に入れられた「Hensu1」と「Hensu2」のメッセージを表示しました。
変数は基本中の基本ですが、重要な部分ですのでキッチリ抑えておきましょう!