○入出力(InputBox()関数とLabel.Textプロパティ)

プログラムをより実践的にするためには、入出力(実行時におけるユーザからの入力指示、ユーザへの提示)が必要となる。
ここでは、ラベル(Label)コントロールへの出力、InputBox関数を利用した入力についてを説明する。

⇒ラベルへの出力 | ⇒InputBox関数による入力 | ⇒(参考)TextBoxでの入出力

*出力:ラベルのTextプロパティを利用する方法

計算した結果など、利用者に対してシステム(プログラム)がなんらかの情報を提示すべき状況が多々有ります。画面(モニタ)に表示したり、音で表現したり、プリンターから印刷物として提示したりする場合などがありますが、プログラムにおいてこのようなものを「出力」と呼びます。ここではまずモニタ画面内に数値やメッセージなどを表示することを勉強しましょう。

プログラム内で計算させた結果などは通常何らかの変数に代入させておくのが一般的であり、たとえば年齢を求めるプログラムを作成する場合、計算した結果である年齢を「a」という変数に代入しておくとする。しかし、変数はあくまでもコンピュータ内部のもので、利用者からは全くどうなっているのかわからない。
そこで、たとえばこの変数「a」の中身を提示してユーザに知らせる必要がある。

VBにおける出力は様々なものが用意されているが、ここではラベル・コントロール(オブジェクト)に対して表示・出力する方法をまず覚えて頂きたい。
#教科書などでは、テキストボックス(TextBox)が良く利用されており、ほぼ同様に出力可能である。

つまりまず表示用としてフォームにラベル(Label)コントロールを予め配置しておく必要がある。ラベルは最初にフォームに配置すると、Label1という名前のラベルとなる。これらコントロールは複数フォームに置くことができるが、二つ目のラベルはLabel2という名前になる。

詳細は省きますが、ここではオブジェクトの「プロパティ」というものを利用して表示する。
ラベル・コントロールは四角いオブジェクトで表題などを含めた何らかの文字情報を提示する際によく使われる。
ラベルにはたくさんのプロパティ(日本語では属性と呼ばれる)がありますが、その中で表示文字の属性を示すものが「Text」プロパティである。

具体的な例として、
Label1.Text = 1
とプログラムして、この命令が実行されると、フォームに置いてあるLabel1ラベルに「1」が表示される。「=」は御存知のとおり代入命令で、右側の結果を左側の変数に代入するという説明をしているが、左側はこのように変数ではなく、プロパティでもよい。プロパティも一種の変数のようなものとして使えると考えてよい。もちろん

  a = 2
  Label1.Text = a
  
という2行のプログラムは「a」という変数に代入済みの「2」がLablel1に表示されることになる。

 

*入力:InputBox()関数について

プログラム中に、特定の値を書いてしまうと、それ専用のプログラムになってします。
例えば、年齢の計算で、生まれた年を「2000」としてプログラムを作ると、2000年に生まれた人しか使えないプログラムになってしまう。

そこで、プログラム実行中に、プログラムの利用者、つまりユーザがその場で数値などを入力できた方がより幅の広いプログラムとなる。

VBでは様々な入力方法があり、教科書では、テキストボックス・コントロールを用いた入力を使用している。が、A班では主に、InputBox()関数を利用することにする。

InputBox()関数は、この関数が実行されると、その際に使っているユーザに対して入力を促し、ユーザが入力した値と置き換わる。

例えば、a = InputBox("message") の場合、下記の図のように「message」と表示された小さなダイアログボックスが表示され、その中の四角に入力できるようになる。

 

入力した上で「OK」ボタンを押すと、「InputBox()」全体が今入力した値と置き換わるような動作を行う。

よって、もし、ユーザがたまたま「999」という数字を入力したとすれば、「a = 999」と同じことになる。

なお、数字を入力してもらう場合は、a = Val( InputBox("messages"))」とVal( )関数を併用すべきである。

この「messages」部分については、日本語を含めて自由に書いてよく、InputBox関数によって表示されるウィンドウ内に単に表示されるだけである。

よって、例えば「a = Val( InputBox("生まれた年を西暦で入力してね"))」と書けば、実行時に「生まれた年を西暦で入力してね」と表示されたウィンドウが表示されることになる。

 

*テキストボックスを利用した入出力について

教科書などでは、出力方法及び入力方法に、テキストボックス(TextBox)コントロールを用いている例が多い。

この授業では当面、 テキストボックスは利用せず、入力にはInputBox関数、主力にはLabelコントロールのTextプロパティを利用することとする。
が、テキストボックスについても、知っておいてください。

テキストボックス(TextBox)を入力に利用する場合は、
例えば、「a = TextBox1.Text」のように利用する。これは、この文(命令)が実行された際に、TextBox1という名前のテキストボックスに、入力されている数値などを参照してきて、変数「a」に代入するという方法である。

このようなプログラムの場合、「実行」メニューから開始した後、テキストボックスに適切な数値を入力した上で、Buttonボタンをクリックする必要がある。つまり、テキストボックスを通して入力を得る場合は、その命令が実行された瞬間に指定されたテキストボックスに入力された値を得ることができるわけである。一方、InputBox()関数を利用した入力の場合、この関数が実行された際にユーザに入力を促すことになる。

参考書などの本やWEBなどで出てくる例題などにおいて、このテキストボックスを使った例題は、適宜InputBox()関数を利用するものと置き換えてください。

なお、詳細の説明は省きますが、「TextBox1.Text」は『TextBox1という名前のテキストボックス(コントロール)のテキスト・プロパティ』という意味です。

テキストボックス(TextBox)を出力に利用する場合は、
例えば、「TextBox1.Text = a」のように利用する。これは、この文(命令)が実行された際に、TextBox1という名前のテキストボックスに、変数「a」の中身を表示するというものである。

このように出力に関してはLabelコントロールと基本的に使い方は同じである。

・テキストボックス(TextBox)コントロールは、上記のように入力にも出力にも利用できる便利なコントロールである。一方で、プログラマーにとっては、入力と出力の両方に気を使ってプログラムしなければいけないし、ユーザにとっては、どこに入力してよいのかなどが分からなくなる可能性などもある。

 

参照対象キーワード:

その他の基本用法
・InputBoxによる入力取得


[「A班」プログラミング基礎のTopに戻る]