第2講 変数の学習
第6話 変数を使う意義
例えば、実行ボタンを押すと、
となり、消去ボタンを押すと白紙に戻るプログラムは、
変数を使わないと、
Private Sub CommandButton1_Click()
Range("B4") = "プログラミング入門"
Range("B5") = "プログラミング入門"
Range("B6") = "プログラミング入門"
Range("B7") = "プログラミング入門"
Range("B8") = "プログラミング入門"
Range("B9") = "プログラミング入門"
Range("B10") = "プログラミング入門"
Range("B11") = "プログラミング入門"
End Sub
Private Sub CommandButton2_Click()
Range("B4:B11").Select
Selection.ClearContents
Range("A1").Select
End Sub
となりますが、
変数を使うと、
Private Sub CommandButton1_Click()
Dim a As String
a = "プログラミング入門"
Range("B4") = a
Range("B5") = a
Range("B6") = a
Range("B7") = a
Range("B8") = a
Range("B9") = a
Range("B10") = a
Range("B11") = a
End Sub
Private Sub CommandButton2_Click()
Range("B4:B11").Select
Selection.ClearContents
Range("A1").Select
End Sub
参考ダウンロード添付ファイル
となります。
2つを比べればコード量は明らかに、
変数を使う方が少ないですね。
変数を使う1つの意義はデータを再利用できることです。
それから、データは箱の中でしか生きられないので、
変数に入れておくとデータの保管(保存)が出来ることが、
2番目の意義ですが、
実はもっと大きな意義があります。
それは、データの演算(足し算)が可能であると言うことです。
どういうことか具体例で説明しましょう。
Private Sub CommandButton1_Click()
Dim a As String, b As String, c As String, d As String
a = "太郎は"
b = "明るい"
c = "性格"
d = "です。"
Range("B4") = a + b + c + d
End Sub
Private Sub CommandButton2_Click()
Range("B4").Select
Selection.ClearContents
Range("A1").Select
End Sub
参考ダウンロード添付ファイル
というコードを組んだとします。
実行結果を予想してください。
少し下に示します。
これがデータの足し算が出来るという意味です。
さらに、もう1つ加工が出来るという意義がありますが、
加工の関連質問で、今回と同じ足し算をたった1つの変数で
実行することが可能でしょうか。
尚、複数の変数の宣言を行う際には、
Dim a As String, b As String, c As String, d As String
のようにします。
C言語ならもっと簡単で
int a,b,c,d;
です。これで整数型の変数が4つ用意できます。
ですが、VBやVBAでは、
Dim a As Integer,b As Integer,c As Integer,d As Integer
としなければならないのです。
面倒ですね。
VBAでも
Dim a ,b,c,d As Integer
のような簡略表現が出来るようにしてほしいと思っています。
ですが、実はVBAは他の言語にないとっても素晴らしい長所を持っています。
例えば、
Dim 整数1 As Integer
などと変数名に漢字を使うことが出来るのです。
変数名が単にaでは何の変数かわかりませんが、
整数1なら整数型の変数の1番目だなとわかりますよね。
それどころか、プロシージャ名にも漢字が使えるのです。
とっても素晴らしいと思っています。
ですから、皆さんも漢字を使うことをお勧めしますが、
将来C言語やJavaに進みたいと考えている方は、
半角のアルファベットで表記する習慣を身につけた方が良いでしょう。
全角(漢字は全角ですよ)の変数名や関数名が許されているのは、
私が知る範囲ではVBAだけだからです。
第5話へ 第7話へ