第2講 変数の学習
第5話 文字型変数
第3話では整数型変数=Integer型を扱いましたので、
第5話では文字型変数を扱います。
第3話で作ったファイルのコードを次のように変更しましょう。
(もし、保存せずに閉じてしまった場合には、参考ダウンロード添付ファイル
添付ファイルを開いてから変更してください。)

Private Sub CommandButton1_Click()
  Dim a As
String
  a =
"プログラミング入門"
  Range("B4") = a
End Sub
Private Sub CommandButton2_Click()
  Range("B4").Select
  Selection.ClearContents
  Range("A1").Select
End Sub
参考ダウンロード添付ファイル
そして、実行ボタンを押すと、
001
となります。
消去ボタンを押せば元の白紙に戻ります。

今回用意した
  Dim a As String
変数が、文字型変数です。
文字を入れるときには""で囲む必要があります。



さらに、コードを次のように変更するとどうなるでしょうか。
Private Sub CommandButton1_Click()
  Dim a As String
  a = "プログラミング入門"
  Range("B4") = a

  
a = "VBAは楽しい"
  Range("B5") = a
End Sub
Private Sub CommandButton2_Click()
  
Range("B4:B5").Select
  Selection.ClearContents
  Range("A1").Select
End Sub
変数とは、数値や文字を入れる箱でした。
011
すでに箱にはプログラミング入門が入っています。
  a = "VBAは楽しい"
によって、
012
となってしまうのでしょうか。
そうすると、
  Range("B5") = a
によって、B5のセルの内容は、
VBAは楽しいプログラミング入門
または
プログラミング入門VBAは楽しい
となってしまうのでしょうか。
ところが実行ボタンを押すと、
013
です。
これはどういうことでしょうか。
実は、変数はデータ(数値または文字)を入れる箱ですが、
常に1つのデータしか入れられないのです。
ですから、新しいデータを入れると、
014
箱からはじき飛ばされてしまい、
消滅の運命を辿ります。
なぜなら、データ(数値や文字)は箱の中でしか生きられないからです。
015

箱=変数の中にはデータは1個しか入らないということは、
すべての変数型で共通です。
ですから、
コードを次のように変更して、
Private Sub CommandButton1_Click()
  Dim a As
Integer
  a =
1
  Range("B4") = a
  a =
2
  Range("B5") = a
End Sub
Private Sub CommandButton2_Click()
  Range("B4:B5").Select
  Selection.ClearContents
  Range("A1").Select
End Sub
実行ボタンを押すと、
031
となるのです。

尚、
  Range("B4:B5").Select
について説明しませんでした、
これはB4からB5までを選択することを示します。
複数のセルを選択する方法については、
第2講第10話でまとめます。


ところで、今回のプログラムなら、
Private Sub CommandButton1_Click()
  Range("B4") = "プログラミング入門"
  Range("B5") = "VBAは楽しい"
End Sub
Private Sub CommandButton2_Click()
  Range("B4:B5").Select
  Selection.ClearContents
  Range("A1").Select
End Sub
でも同じ結果を導くことが出来ますし、
コードの行数も少なくなるのに、
なぜわざわざ変数を使ったのでしょうか。
次話では変数を使う意義を考えましょう。





第4話へ 第6話へ

トップへ