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を押すとプログラムの続きが実行される。