10.クイズゲームを作ってみよう(その2)-If文の設定
 

では、前回の続きです。

コンボボックスcboSelectに選択肢を設定します。
プロパティウインドウのItemsという欄を探して下さい。そこに「(コレクション)」と記載してあるので、そこをクリックします。すると「...」のボタンが現れるので、それをクリックします。選択肢入力ウインドウが現れたら、そこに選択肢を入力します。
選択肢は以下のように入力します。([]内は書かないで下さい。)
[1行目]Visual Basic
[2行目]Visual Band
[3行目]Vegetable Banana
ここで注意するのは1行につき選択肢1つ入力ということを守って下さい。
入力が終わったら「OK」ボタンを押してウインドウを閉じます。

続いてはコードの入力です。
今回は「答える」ボタンを押した時に判定をするコードを書く必要がありますので、ボタンbtnAnswerをダブルクリックしてコード画面を表示します。
するとbtnAnswer_Clickイベントが記載されています。ここに以下のような記述をします。

Private Sub btnAnswer_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAnswer.Click
 If cboSelect.SelectedIndex = 0 Then
  '正解の場合
  MessageBox.Show("あたり!")
 End If
End Sub

ここで注目してほしいのは、 If〜Then〜End Ifです。
If 条件式 Then
条件式の通りならば(条件式が真ならば)実行する処理
End If
という意味です。ちょっと表現が難しいですか?平たく言うと、「もし〜ならば」(If〜)「〜しなさい」(Then〜End If)という感じでしょうか。

では、このIf〜Then〜End Ifの中味を見ていきましょう。
まず、「もし〜ならば」の部分ですが今回は「cboSelect.SelectedIndex = 0」が入っています。cboSelectは前回作成したコンボボックスです。ピリオドで結ばれたSelectedIndexはコンボボックスのプロパティで、上からいくつ目の選択肢が選ばれたかを教えてくれます。その選ばれたのが0番目だったら……。
ん?おかしいですね?普通0行目なんて存在しないはずです。 でもいいんです。SelectedIndexの世界では0からスタートなんです。つまり、今回は3行選択肢を設定しているので、SelectedIndexは0〜2の値を返してくれる可能性があるということなんです。
というわけで、0、すなわち「Visual Basic」が選ばれたらということになります。
次に「〜しなさい」の部分は毎度おなじみMessageBox.Showを記載していますので、「あたり!」というメッセージウインドウを表示することになります。
「あたり」のメッセージウインドウ

これで基本的には完成なのですが、今の状態だと「Visual Basic」以外の答だと無反応で寂しい状態になります。
そこで、不正解の場合も作成しましょう。If〜Then〜Endを使ってSelecefdIndexプロパティが1(「Visaual Band」の場合)の時と、2(「Vegetable Banana」の場合)の時のパターンを作ってもよいのですが、要は0の「Visual Basic」以外はすべて不正解にすればよいわけなので、それを実現してみましょう。

実は、Then〜のあとにElse〜を入れて、If〜Then〜Else〜Endとします。これで「もし〜ならば〜しなさい、そうでなければ〜しなさい」となります。ですからElse〜のところに不正解の処理を書けばよいわけです。

Private Sub btnAnswer_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAnswer.Click
 If cboSelect.SelectedIndex = 0 Then
  '正解の場合
  MessageBox.Show("あたり!")
 Else
  '不正解の場合
  MessageBox.Show("はずれ!")
  End If
End Sub

これで、「Visual Basic」以外の答を選択すると以下のメッセージウインドウが表示されます。
「はずれ」のメッセージウインドウ

今回使った「If〜Then〜Else〜End」はプログラムをする際、必ず使用します。使いこなせるよう、よく理解しておいて下さいね。