エクセルで自動サイトを作る講座3回目です。今回は「変数」(へんすう)と「配列」(はいれつ)についてです。変数というのはその漢字からもわかるように「変わる数」のことです。配列は変数が入った「箱」のようなものです。これだけの説明ではまったくわからないと思うので、以下に例を示しながら解説したいと思います。
■変数について
変数を理解するにはまず実際に簡単なプログラムを書いてみるのがわかりやすいと思いますので、以下の文を見てください。
Sub 変数()
a = 1
MsgBox (a)
End Sub
上の文は「a」という文字に1を代入し、それをメッセージボックスで表示するプログラムです。この「a」が変数というわけです。上の式を実行してもらえばわかりますが、表示されるのは「a」ではなく「1」になっています。これはaという変数の中に1という数字が入っているからです。代入する数字を2や3に変えればそのとおり2や3が表示されます。
このように代入する数によって値がかわるものを「変数」というわけです。
上の式では数字を入れていますが、もちろん中に文字をいれることも可能です。以下がそのサンプルです。
Sub 文字の変数()
a ="あ"
MsgBox (a)
End Sub
上の文を実行すると「あ」という文字が表示されると思います。文字を代入するので前後を「"」で囲むのは前回やったのと同じです。この文字を変えればその変えた文字が表示されますのでお試しください。
■変数の宣言
変数は最初に変数を宣言します。別に宣言しなくても上で示したサンプルのように使えるんですが、まあ宣言するのが基本なので宣言するようにしてください。やり方は以下のとおりです。
Sub 変数()
Dim Hensu
Hensu = "変数を表示します"
MsgBox (Hensu)
End Sub
上の Dim Hensu というのが変数の宣言で、「Hensu」という変数を宣言しています。一応変数はこんな感じで読んでわかるような文字列を使うのが普通です。「a」のような変数では後から見たときになにを表しているのかわからなくなってしまうので、ちょっと長くなっても自分にわかりやすい文字を使うのが重要です。
あと変数を宣言するとき、先頭の文字はわざと大文字を使っておいたほうが後々便利です。こうしておくと後で変数を使ったとき、変数の文字があってれば最初の文字だけ大文字に勝手に直してくれるからです。この機能を使うことで変数の文字が間違ってるかどうかがわかりやすくなります。まあこの辺はやっていくうちに後でわかってくるものなので、今は単純に先頭は大文字にしておこうくらいで覚えて置いてください。
あと、上のサンプルでは変数の「型」を宣言していませんので数字や文字などどれでも変数の中に入れることもできますが、普通は型まで宣言します。やり方は
Dim Hensu as String
と言った感じで変数の後に「as 〜」と言うのを足すことです。型はいくつかあって文字をいれる文字列型「String」、整数をいれる整数型「Integer」、なんでも入れられる「Variant」などが代表的なものです。型を宣言しない場合は「Variant」型になります。今は型まで宣言しないでいいと思いますが、後でプログラムに熟練してきたら型まで宣言したほうが効率的ということだけ覚えておいてください。
■配列について
配列は変数がたくさん詰まった箱のようなものなんですが、それだけじゃわからないと思うので、以下のサンプルで説明します。
Sub 配列()
Dim Hairetu(2)
Hairetu(0) = 1
Hairetu(1) = 2
Hairetu(2) = 3
MsgBox (Hairetu(0))
MsgBox (Hairetu(1))
MsgBox (Hairetu(2))
End Sub
非常に面倒なサンプルで恐縮ですが、上の文が配列を示したプログラムです。はず最初にDim Hairetu(2)で配列の宣言をします。名前は変数と同じように自分でわかりやすいものであれば何でもOKです。一見、変数と同じように見えますが後ろについている(2)というのが配列ならではの数字です。
この(2)というのは配列の数をあらわしています。プログラムは0から数字がスタートしますので、配列の箱を3つ作ったことになります。それが後にでてくるHairetu(0)、Hairetu(1)、Hairetu(2)になります。この数字を増やすことでいくつでも配列の数を確保することができます。
そして順番に配列の中に数字を入れています。そしてそれぞれの配列の数字を表示しています。実行してみると面倒なことに1,2,3という数字が順番に表示されるかと思います。
■配列と変数を組み合わせる
上の例で箱の番号をあらわす数字を(0)とか実際に数字を入れていましたが、これを変数にすることもできます。以下がサンプルです。
Sub 配列と変数()
Dim Hairetu(2)
Dim Hensu
Hairetu(0) = "あ"
Hairetu(1) = "い"
Hairetu(2) = "う"
Hensu = 1
MsgBox (Hairetu(Hensu))
End Sub
上の文ではまず配列と変数を宣言し、それぞれに数字を入れています。そしてメッセージを表示する命令で、「Hensu」の中に入れた「1」という数字の番号の配列の中身、つまり「い」を表示します。もし変数の中身が0であれば「あ」、中身が2であれば「う」を表示しますので実際にプログラムを動かして確かめてみてください。
以上が、非常に簡単ですが、変数と配列についての基礎的なところです。変数と配列はプログラムには欠かせない知識なのでしっかりと覚えておいてください。
次回は「判定文」と「ループ文」についてです。