以前、【基礎課題1-9】で、下のようなフォームのプログラムを作りました。
このプログラムでは、
という2つの部分が必要です。
今回、このプログラムに、2. の機能をつけ加えてみましょう。
1. については、今回は考えません。項目の数は自分で数えることにします。
このプログラムを新しい名前で保存してから、下のようなフォームのプログラムに作り替えて下さい。
主なコンポーネントのオブジェクト名は、次のようにして下さい。
コンポーネント | オブジェクト名 |
---|---|
コマンドボタン「診断」 | CommandShindan |
テキストボックス「項目数」 | TextKomokusu |
チェックボックス「6-10」 | CheckHigh |
チェックボックス「0-5」 | CheckLow |
下のテキストボックス | TextMessage |
「チェック項目数」を入力してから「診断」ボタンを押したとき、
ようなプログラムを作りましょう。
ある条件が成り立っているか成り立っていないかによって行う内容が変わる場合には、「If文」を用いて表します。
「診断」ボタンをクリックしたときのイベントハンドラを、次のように書いて下さい。
Private Sub CommandShindan_Click() If TextKomokusu.Text >= 6 Then CheckHigh.Value = 1 TextMessage.Text = "少しストレスがたまっています。気分転換を。" Else CheckLow.Value = 1 TextMessage.Text = "ストレスの兆候がありますが、心配は不要。" End If End Sub
注意 面倒でも、半角スペース2字分ずつの「字下げ」を必ず行って下さい。構造が見やすくなります。
この命令は、下のような構造になっています。
Private Sub CommandShindan_Click() If 条件:「チェック項目数」が6以上 Then 条件が成り立っているときの処理1; 条件が成り立っているときの処理2; 条件が成り立っているときの処理3; ・ ・ ・ Else 条件が成り立っていないときの処理1; 条件が成り立っていないときの処理2; 条件が成り立っていないときの処理3; ・ ・ ・ End If (← If文の終わりを表す) End Sub
If 文は、条件が成り立っているか成り立っていないかによって、プログラムの流れを分岐させます。
条件は、
のどちらかしかありません。したがって、プログラムは、
のどちらかひとつを必ず実行し、かつ、いずれかひとつしか実行しません。
※ VisualBasic での不等号記号の書き方は下表の通りです。
数学表記 | 意味 | VisualBasic での表記 |
---|---|---|
A>B | AはBより大きい | A > B |
A≧B | AはB以上 | A >= B |
A=B | AはBに等しい | A = B |
A≦B | AはB以下 | A <= B |
A<B | AはBより小さい | A < B |
A≠B | AはBに等しくない | A <> B |
次のようなフォームを持つプログラムを作って下さい。
主なコンポーネントのオブジェクト名は、次のようにして下さい。
コンポーネント | オブジェクト名 |
---|---|
上のテキストボックス | TextNenrei |
「入力完了」コマンドボタン | CommandKanryo |
中のテキストボックス | Text1 |
下のテキストボックス | Text2 |
年齢を入力してから「入力完了」ボタンを押すと、 | 2つのメッセージが表示される。 |
![]() |
![]() |
年齢とメッセージの対応は、次の表にしたがってください。
年齢 | メッセージ |
---|---|
20歳以上 | あなたは成年ですね。あなたには選挙権があります。 |
19歳以下 | あなたは未成年ですね。あなたには選挙権がありません。 |
下の下線部を埋めて、プログラムを完成させて下さい。
Private Sub CommandKanryo_Click() If TextNenrei.Text ________ Then ________________________________________________ ________________________________________________ Else ________________________________________________ ________________________________________________ End If End Sub
新しいコンポーネント「オプションボタン」の使い方を覚えましょう。
コンポーネントパレットからオプションボタンのアイコンを選んで、フォーム上に3つ貼って下さい。
このままの状態でプログラムを実行して、オプションボタンをクリックして下さい。
オプションボタンはどういうはたらきをするコンポーネントか、下に書いて下さい。
プロパティウィンドウから3つあるオプションボタンのうちのいずれかを選んで、その Value プロパティの値を True や False に変えてみましょう。何が起こりますか?
次のようなフォームを持つプログラムを作って下さい。
上の「ようこそいらっしゃいました。」と「性別をチェックして下さい。」は、 2つのラベルを用いて表現しています。
プログラムの動作内容は以下の通りです。
実行してから性別をチェックしてボタンを押すと、 | 下のように2つのメッセージが表示される。 |
![]() |
![]() |
チェック項目とメッセージの対応は、次の表にしたがって下さい。
チェック項目 | メッセージ |
---|---|
女性 | あなたは女性ですね。右側の階段をお上り下さい。 |
男性 | あなたは男性ですね。左側の階段をお上り下さい。 |
次のようなフォームを持つプログラムを作って下さい。
主なコンポーネントのオブジェクト名は、次のようにして下さい。
コンポーネント | オブジェクト名 |
---|---|
オプションボタン「女性」 | OptionF |
オプションボタン「男性」 | OptionM |
コマンドボタン「OK」 | CommandOK |
チェックボックス「20歳以上」 | CheckSeinen |
注意 「秘密倶楽部」は架空の団体ですが、もしかすると実在するかもしれません。
プログラムの動作内容は次の通りです。
性別と年齢をチェックしてから「OK」ボタンを押すと、 | 2つのメッセージが表示される。 |
![]() |
![]() |
性別・年齢の条件とメッセージの対応は、次の表にしたがってください。
性別・年齢 | メッセージ |
---|---|
女性で、かつ、20歳以上 | あなたは入会資格があります。どうぞお入り下さい。 |
それ以外 | あなたは入会資格がありません。残念ですがお帰り下さい。 |
注意 「女性で、かつ、20歳以上」つまり、「OptionF がチェックされていて、かつ、CheckSeinen がチェックされている」ことを、
(OptionF.Value = True) And (CheckSeinen.Value = 1)
のように And を用いて表します。
And の前後の条件式には、 ( ) をつけておく方が見やすくなり、後に余計な間違いも起こしにくくなります。
下の枠内を埋めて、プログラムを完成させて下さい。
注意 「かつ」ではなく「または」を表したいときは、 or を使います。
例 「女性、または、20歳以上」のとき
(OptionF.Value = True) Or (CheckSeinen.Value = 1)
次のようなフォームを持つプログラムを作って下さい。
主なコンポーネントのオブジェクト名は、次のようにして下さい。
コンポーネント | オブジェクト名 |
---|---|
テキストボックス | TextNumber |
ここで、プログラムを実行し、数を入力してからOKボタンを押したとき、
ようなプログラムを作って下さい。
注意 スピンテキストボックスに入力された値が4以上7以下であることを表すのに、
4 <= TextNumber.Value <= 7
と書きたくなると思います。しかし、VisualBasicは、2つの不等号が同時に出てくる文を理解することができません。ですから、
(4 <= TextNumber.Text) And (TextNumber.Text <= 7)
のように、条件を()でふたつの部分に分けてから And でつなげて書く必要があります。