InputBox とは
プログラムは1ステップずつ順に実行される。このことはすでに学習した。しかし、原理は理解しても、感覚的には理解できていないと思う。そこで、InputBoxを使ってプログラムを作ってみよう。InputBoxを使うと、プログラムの動作をもっとよく理解できる。
TextBoxというものをすでに学んだ。TextBoxを使うと文字や数字を入力することができた。InputBoxでも、文字や数字を入力することができる。ただし、InputBoxとTextBoxは動作の仕方がことなる。
簡単な例を試してみる
まずInputBoxをつかった簡単なプログラムの動作を見てみよう
例: (フォームとプログラム) |
---|
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim x, y x = Val(InputBox("数を入力してください")) y = Val(InputBox("もう一つ数を入力してください")) Label1.Text = x & "+" & y & "は" & x + y & "です" End Sub |
実行してみる
このプログラムを実行してみよう。
最初に以下のような画面が表示される。
Buttonをクリックすると、以下の新しいウインドウが表示される。(Form1はそのまま残っている)
1000を入力してOKをクリックすると、このウインドウはいったん閉じて、次の新しいウインドウが表示される。(Form1はやはりそのままだ)。
123と入力してOKをクリックする。すると、Form1に以下のように表示される。
ここで1000+123というのは途中で入力した数値だったことを確認しよう。
動作を考えてみる
プログラムの動作を考えてみよう。
x = Val(InputBox("数を入力してください"))
という行があるが、この行を実行すると、
という画面が表示される。このウインドウで数を入力するとその数はxに代入される。しかし、2番目の数字を入力してOkを押すまでは、Form1の画面は変化しなかった。つまり、
y = Val(InputBox("もう一つ数を入力してください"))
という代入は、2つめの数字を入力し、Okを押すまでは実行されない。
以上のことをふまえてInputBoxの動作を細かく検討してみよう。
x = Val(InputBox("数を入力してください"))
という関数が実行されると以下のようなことがおこった。
(1) 新しいウインドウが開いた
(2) InputBoxの括弧の中に書かれた文字列"数を入力してください"が新しいウインドウに表示された
(3) 新しいウインドウに数値を入力することができた。
(4) 入力した文字列を数値にしたものがxに代入された
(5) プログラムはスタートしていたが、OKを押すまでは、Form1の画面に変化はなかった。
このように、InputBoxを実行すると新しいウインドウが表示される。そして入力した文字を変数などに代入することができるが、プログラムがスタートしているにもかかわらず、Okを押すまではInputBoxの行の後の命令は実行されない。つまり、プログラムの実行はInputBoxのところでいったん中断する。
InputBoxはこのように、「そこっでいったんプログラムの実行がとまる」というところが大きな特徴だ。
InputBoxとTextBoxの比較
InputBoxとTextBoxの実行方法を比較してみよう。
TextBox | InputBox | |
入力欄の表示 | 最初からフォーム上にある | InputBoxが実行された時に表示されるウインドウ |
入力のタイミング | いつ入力してもいい | InputBoxのウインドウが表示されたときに入力する |
プログラムの実行 | 入力と関係なくプログラムの実行はとまることなく続く | InputBoxが実行されると、いったんプログラムの実行がとまり、Okを押すとプログラムの続きが実行される。 |