第2講 変数の学習
第4話 各コードの意味の説明
Private Sub CommandButton1_Click()
Dim a As Integer
a = 5
Range("B4") = a
End Sub
Private Sub CommandButton2_Click()
Range("B4").Select
Selection.ClearContents
Range("A1").Select
End Sub
ピンクだけは前話で解説しましたが、
残りはまったく触れていませんので、
ここで残りをすべて説明しましょう。
Private Sub CommandButton1_Click()
・・・
End Sub
Private Sub CommandButton2_Click()
・・・
End Sub
はプログラミングにおける単位で細胞に相当するものです。
第1講などで部品=パーツと呼んできたものです。
C言語ではこの細胞=部品のことを関数と呼び、
VBやVBAでは、プロシージャと言います。
プロシージャには2つの種類があり、
1つがサブプロシージャでもう一つがファンクションプロシージャですが、
今回の2つはいずれもサブプロシージャです。
Subが付いているからわかりますよね。
ファンクションプロシージャの場合にはFuntionが付きます。
プロシージャについては後に独立の講を2つ設けて詳しく説明します。
今は、プログラムを構成する単位=細胞をプロシージャというのだと言うことだけを押さえていただけば、
十二分です。
学習においては一気に理解しようとはしないで、
小刻みに理解していくという姿勢が重要です。
a = 5
は変数への代入と言われる操作です。
変数にしても代入にしてもさらに=にしても数学の変数・代入・=とはそれぞれ意味が違います。
代入とはあくまで箱にデータを入れる作業です。
ですから、aと5が等しいという意味ではなく、
むしろa ← 5とイメージした方がよいのです。
Range("B4") = a
のRange("B4")はエクセルシートB4というセルです。
ですから、
Range("B4") = a
B4というセルにaの中身である5を入れるという意味になります。
a = 5
Range("B4") = a
は同じでaでありながら、左辺にあるときと右辺にあるときでは意味が異なります。
左辺にあるときは箱そのもの(ビールの入っているビール瓶そのもの)であるに対して、
右辺にあるときは箱の中身の5(ビール瓶の中に入っているビール)を意味します。
箱の中身を使ったり見たりすることを参照と言います。
数学の=は等しいという意味で、
左辺と右辺に違いはありませんが、
プログラミングでは左辺と右辺では意味が異なっているのだと言うことに注意してください。
Range("B4").Select
はセルB4を選択しなさいという意味です。
そして、
Selection.ClearContents
選択したセルの中身を空にしなさいです。
空にするとは、クリアすることです。
削除するときには、
Selection.Delete
です。
削除するときには、
という画面が出てきて選んだものによってセルがその方向にずれてしまいます。
上方向にシフトであれば上方向にずれてしまうわけです。
実際に、
Selection.Delete
と変更して、シートの方を
としておいて消去ボタンを押すと、
と1個上にずれていますね。
ですから、本講義の以降ではDeleteは使わずに、
ClearContentsを使います。
それでボタン名も削除から消去に変更したわけです。
最後の1行
Range("A1").Select
なくてもよいのですが、
これを削ると、消去ボタンを押したときに、
B4が選択状態になります。
もし消したものがB2000なら、2000行目辺りが選択され、
実行や消去のボタンが見えなくなってしまいますので、
入れているだけです。
第3話へ 第5話へ