1. 変数の基本
変数(variable)とは、数字や文字列などを入れることができる「入れ物」のようなものです。変数は、プログラミングの基礎となる非常に重要な概念です。ぜひ押さえておきましょう。
以下に変数の使用例を示します。
Sub Hensuu()
Dim a '「a」という名前の変数を使用することを宣言する。
a = 10 '変数「a」の中に「10」という値を代入する。
Cells(1,1) = a
End Sub
【解説】
Dim 変数名
と書くことで、「変数名という名前の変数を使用する」ということを宣言できます。ここでは、「Dim a」と書いているため、 「aという名前の変数を使用する」ということを宣言しています。
その次の:
a = 10
とは、「aという変数の中に、『10』という値を入れてください」という意味です。Visual Basic for Excel (以下、VBE)では、
a = b
と書くと、「=の左側の変数に、右側の内容を代入する」という意味になります。
それでは、最後の:
Cells(1,1) = a
とはどういう意味でしょうか? これは、「Cells(1,1)の中に、変数aの内容を入れてください」という意味になります。
では、上の「Hensuu」というプログラムを実行してみましょう。上のプログラムを実行すると、A1セルに「10」という値が入ります。
2. 変数を利用することの利点
変数を利用することの利点の1つとして、プログラムの修正が容易になることがあげられます。例えば、税抜き価格を元に税込み価格を計算するコードを考えてみましょう。
Sub Tax()
Cells(1,2) = Cells(1,1) * 1.08
Cells(2,2) = Cells(2,1) * 1.08
Cells(3,2) = Cells(3,1) * 1.08
End Sub
上のプログラムを実行すると、A1, A2, A3セルに入っていた数字(税抜き価格)に、1.08をかけた値(税込み価格)がB1, B2, B3セルにそれぞれ出力されます。
ただ、将来的に消費税の額が10%になった場合は、どうすれば良いでしょうか? この場合は、以下のようにプログラムを書き変える必要があります。
Sub Tax()
Cells(1,2) = Cells(1,1) * 1.1
Cells(2,2) = Cells(2,1) * 1.1
Cells(3,2) = Cells(3,1) * 1.1
End Sub
上のように、「1.08」の部分を手動で「1.1」に変更する必要があります。手動で変更するとなると、それだけ手間がかかりますし、さらに間違いを犯してしまう確率も高くなります。
一方で、変数を使うとどうなるでしょうか? 変数を使うと、上のプログラムは以下のように表現できます。
Sub Tax()
Dim Tax
Tax = 1.08
Cells(1,2) = Cells(1,1) * Tax
Cells(2,2) = Cells(2,1) * Tax
Cells(3,2) = Cells(3,1) * Tax
End Sub
上のようなプログラムを書けば、「Tax = 1.08」の部分を「Tax = 1.1」に変更するだけで、消費税が10%に上がった場合にも対応できます。
このように、変数を使うとプログラミングの手間を削減し、さらに手作業によるミスを削減することができます。
3. Option Explicit
VBEでは、宣言しなくても変数を使用することは可能です。ただ、プロシージャのはじめに「Option Explicit」というコードを追加すると、宣言していない変数以外は使用不可になります。
試しに、以下のコードを実行してみましょう。
Option Explicit
Sub Hensuu2()
Dim Hensuu '「Hensuu」という名前の変数を使用することを宣言する。
Hensuu = 10 '「Hensuu」の中に「10」という値を代入する。
Cells(1,1) = Hensu
End Sub
上のコードを実行すると、「Cells(1,1) = Hensu」という行でエラーが起きます。なぜなら、「Hensu」という変数を宣言していないのに、使用しているためです。
プログラムを書く際には、「Option Explicit」を常に冒頭に書く癖をつけておくことをおすすめします。なぜなら、「Option Explicit」と書いておけば、変数名のスペリングを間違えた場合(例. HensuuとすべきところをHensuとしてしまった場合)、エラー・メッセージが表示されてスペリングの間違いに気づくことができるからです。
特に規模の大きなプログラムを書く際には、必ず冒頭に「Option Explicit」と書いておくと良いでしょう。
4. Publicで変数を宣言する
変数を宣言する際には、「Dim 変数名」とする方法に加えて、「Public 変数名」とする方法もあります。「Public 変数名」で宣言をすると、複数のプロシージャをまたいで同じ変数を使用することができます。
5. 練習問題
プログラムを作成する上で欠かせない変数に関して、理解できましたか? 以下の練習問題を解いて、定着度を確認してみましょう。
1. 以下のプログラムを実行した場合、Cells(1,1)には何が入りますか?
Dim A
A = 2
A = A + 2
Cells(1,1) = A
2. 以下のコードを実行すると、A, Bの値はどうなりますか?
Dim A, B
A = 3
B = 10
A = B
3. 以下のコードを実行すると、A, Bの値はどうなりますか?
Dim A, B
A = 3
B = 10
B = A + B
4. 変数を使用することの利点には何があげられますか?
5. 「Option Explicit」の意味は何ですか?
6. 「Dim A」と「Public A」の違いは何ですか?
答え
- 4
- A = 3, B = 13
- A = 10, B = 10
- プログラムの修正が容易になり、手作業によるミスが減る。
- 宣言した変数以外は使用できなくなる。
- 「Dim A」では宣言したプロシージャのみで、変数Aが使用できる。「Public A」では、宣言したプロシージャに加え、複数のプロシージャをまたいで変数Aが使用できる。
コメント
最新を表示する
わかりやすい例をつかった丁寧な説明で、非常に理解しやすくてすぐ学べます。
変数自体の説明を長文などで説明するのではなく、具体例が多かったり、インプットした後すぐにアウトプット(練習問題)ができたりするのがわかりやすかった。
良いと思った点
・忘れていた知識を確認できる
・式にそって解説がされている点
改善したほうが良いと思った点
特になし
わかりやすく解説されてあって理解しやすかったです。
説明のあとに実際にプログラミングを書いているのでわかりやすい。
プログラミングでも横に意味を補足しているので理解しやすくなっている。
また、最後に練習問題があるので、上で理解したことを本当にわかっているか確認できる。
例を用いての説明で、とても分かりやすいなと感じました。
最後に練習問題がついていることで逆説的に要点を知ることができるとともに、復習することができる点がよいと思いました。
(1)1つ1つ細かく説明がかいてあるので、とても理解しやすいです。
NG表示方式
NGID一覧