プログラムに入力を与える
コンテンツ
InputBox メソッド
今までのプログラミングでは,変数へ代入する値はソースコードに直接書いてきましたが,今度は,プログラムの実行後に,その利用者の方から入力を与えることを考えます.ここでは,
InputBox メソッドを使用していきます.
メソッドという言葉を初めて聞いたかもしれませんが,詳細に関しては第一回の「
ソースコードの構成要素」を参考にしてください.簡単に言うと,特定の
ステートメント(命令)をまとめたブロックの塊のことを意味しています.メソッドには,それぞれ名前が割り当てられていて,その処理を使用したい場所で呼び出してあげると,使用することが出来ます.
では,InputBox メソッドがどのようなステートメントを呼び出してくれるかというと,「メッセージ付きで入力用のダイヤログを表示させる」処理を実行できるようになります.
まずは,以下のような,プログラムを書いてみましょう.ここでは,Button コントロールとLabel コントロールを配置して,ボタンがクリックされたときのイベント処理としてプログラムを書いていきます.
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim a As Integer
a = Val(InputBox("整数を入力してください"))
'文字列を表現したいときにはダブルクオーテーションの括弧を使います
'Valというメソッドで囲っていますが,これはTextBoxの中の値を数値に変換するという意味.
Label1.Text = a
End Sub
End Class
プログラムの内容としては,"整数を入力してください" というメッセージを表示したダイヤログを表示させ,利用者から何か入力が行われると,それを Label コントロールに表示するという処理になっています.
実際に実行すると,以下のような Form が立ち上がると思います.
以下のような,処理を行ってみてください.
① ボタンを押す
② 入力ダイヤログがポップアップで表示される
③ 入力を記入する
④ 「OK」ボタンを押す
すると,ラベルに入力された数字がそのまま表示されたと思います.
このように,InputBox メソッドは,ソースコード上でメッセージを記述することで,プログラム実行後にダイヤログで値の入力を利用者に求め,さらに与えられた値を変数に代入することできるステートメントとして使用することができます.
TextBox コントロール
利用者側からの入力を与える方法は,InputBox メソッドだけではありません.今度は,
TextBox コントロールを使用してみます.
TextBox コントロールは,Button コントロールやLabel コントロールと同様に「ツールボックス」の中から選択し,フォーム上に配置します.以下の図のようなアイコンをツールボックスの中から見つけてください.ツールボックスが見つけられない人は,第一回の「
フォームとコントロール(Button,Label)」を参考にしてください.
では,まず以下のようなフォームを作成してみましょう.
次に,ソースコードを書いていきます.TextBox コントロールでは,InputBox メソッドのように「ポップアップでメッセージを表示する」ような処理はありません.また,「利用者側がOKボタンを押したときに代入される」という処理もありません.単に,「TextBox コントロールに入力されている文字・数字を取得する」という処理を行います.ここでは,ボタンが押されたときに,TextBox コントロールに入力されている整数を取得し,その整数をラベルに表示するという処理を書いてみます.
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim a As Integer
a = Val(TextBox1.Text)
Label1.Text = a
End Sub
End Class
プログラムを実行してみてください.TextBox コントロールに整数が,ボタンを押すと,そのままラベルに表示されたと思います.ちなみに,整数以外のデータ(文字など)を与えるとプログラムが停止し,出力が 0 になってしまいます.それは,Val メソッドが数値以外の入力が与えられたときに 0 を出力するようにプログラムされているからです.