「そうか、実際のコードを見た方がわかりやすいかな」
八木くんが、カタカタとVBEにコードを打ち込みます。
Sub Sample()
Dim Namae
Namae = InputBox("名前を入力してください")
MsgBox Namae & "さんようこそ、" & Namae & "さんが入室されました"
End Sub
「このコードの2行目にある"Dim"というのは、Dimステートメントといって変数を"宣言"するための命令なんだ。
つまり、ここで"Namae"という変数(メモ)を用意しているんだ。
3行目にある"InputBox"はInputBox関数といって、ユーザーにデータを入力させるためのダイアログボックスを表示する関数だよ。ちょっとこれを実行してみよう」
「あ、何か出たね」
「うん、InputBox関数が表示したダイアログボックスだよ。星、ここにおまえの名前を入力してみろよ」
星くんが名前を入力し、[OK]ボタンをクリックします。
「あ、メッセージが出た!さっき入力した名前が出ているね」
「うん。順を追って説明すると、まず2行目でNamaeという変数を作った。
次に3行目でユーザーの入力した値を変数Namaeに代入した。
そして4行目で変数Namaeに格納されている値、さっきの場合は"星"という文字列をメッセージで表示したんだ」
「これ、さっきのダイアログボックスに"八木"と入力したら、"八木さんようこそ…"って表示されるのかい?」
「うん、そのとおり。変数はただのメモだから、格納した値がその変数の値になるんだ。
もっと長い名前を入力することもできるし、名前以外の文字列を入力することもできるよ」
「これ、変数を使わないとどうなるんだい?」
「その場合、名前の値が必要な箇所でその都度ユーザーに名前を入力してもらわないといけない。
でも一度入力した値を、何度も入力させるなんてナンセンスだろ?
変数に一度格納してしまえば、そのあとプロシージャ内のどこでも、何度でも、その値を利用できるんだ」
星くんがなるほど、という顔をします。
「確かにこれは便利そうだね」
「だろ?このコードをこんなふうに書き換えてみるよ」