条件分岐(select case)

ページ名:select-case

1.使い方

2.Select Case とは?

3.コード説明

4.練習問題 

 

1. 使い方

If~Thenステートメントでは条件を処理することができますね。ですが、If~Thenステートメントの数が多くなると1つ1つコードを書くのは大変です。そんなとき、Select~Caseステートメントを使用すると簡単かつ時間短縮することができます。

ではSelect~Caseステートメントとはどういうものなのか見てみましょう。

2.Select Case とは?

Select~Caseステートメントは複数の条件を処理する際に使用します。

各Caseの条件を上から順番に処理します。

(例)変数=値1がTrueの際は、処理1を実行。条件がTrueではい場合は、次の条件を実行します。どの条件にも当てはまらない際は、Case Else以下の処理を実行します。

3.コード説明

条件分岐(select case)

Select Case 変数
   Case 値1
    処理1
   Case 値2
    処理2
   Case Else
    処理3
End Select

処理は様々な方法があります。例えば以下のようにメッセージボックスを表示することができます。

 

Select Case x
   Case 0 to 5
     MsgBox “5 以下です”
   Case 6 to 10
     MsgBox “10以下です”
   Case else
     MsgBox “10以上です”
End Select

4を挿入した場合下のメッセージボックスが表示されます



 

比較演算を使用する場合はCase Isを使用します。この場合は、Case Is の後ろに比較条件を記入します。

Select Case 変数
   Case is 比較条件1
    処理1
   Case is 比較条件2
     処理2
    Case Else
     処理3
End Select

下のコードの場合、95点を挿入すると下のメッセージボックスが表示されます

Select Case 成績
   Case Is >= 90
     MsgBox “秀”
    Case 80 To 89
      MsgBox “優”
    Case 70 To 79
      MsgBox “良”
   Case 60 To 69
      MsgBox “可”
    Case Else
     MsgBox “不可”
End Select

 

4.練習問題 

1)95を挿入した場合、メッセージボックスはなんと表示されるでしょう?

 

Select Case x
   Case 0 to 59
      MsgBox “ 残念”
    Case 51 to 90
     MsgBox “よくできました”
    Case else
      MsgBox “大変よくできました”
End Select

 

2)  以下のコードの間違いはどこでしょう

Select Case 成績
   Case >= 90
    MsgBox “秀”
    Case 80 To 89
     MsgBox “優”
    Case 70 To 79
    MsgBox “良”
    Case 60 To 69
     MsgBox “可”
   Case Else
    MsgBox “不可”
End Select

3) If~ThenステートメントとSelect Caseステートメントの違いは何でしょう?

 

4) メッセージボックスが表示されるためにはどんなコードを書きますか?

 

4)   年齢を記入して、下のような文章をメッセージボックスに表示するにはどうしたら良いですか?

・ 未成年→ 「未成年です」
・ 20歳以上~65歳未満→ 「成人です」
・ 65歳以上→ 「高齢者です」

5)最初のCase条件に当てはまらない場合、どのような処理がされますか?

 模範解答

1)95は90以上なので、Case Elseが実行されます。よって、メッセージボックスは"大変よくできました"

2)一番上のCaseは”>=90”という比較条件を使用しているため、”Case Is >= 90”になります。

3)If~Thenステートメントの数が多くなると1つ1つコードを書くのは大変ですが、Select~Caseステートメントを使用すると簡単かつ時間短縮することができます。

4)

Select case age
   Case is <20
     MsgBox "未成年です”
   Case 20 to 64
     MsgBox "成人です”
   Case is >= 65
     MsgBox "高齢者です"
End Select case



5)変数=値1がTrueの際は、処理1を実行。条件がTrueではい場合は、次の条件を実行します。どの条件にも当てはまらない際は、Case Else以下の処理を実行します。

 

シェアボタン: このページをSNSに投稿するのに便利です。

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する
yuri

良い点:文字の大きさ、色等のバランスがよくまとまりがある。
改善点:いくつか画像が表示されていないものがあるのでそこが改善されたらより良いなと思いました。

返信
2018-10-23 13:15:33

kakeru

良い点
コードだけを書くのではなく、図を用いて説明していることによって、
実際に動かした場合どういう風になるか理解しやすいところ。
改善点
ところどころ図が表示されていないのがあること。

返信
2018-10-23 13:10:36

naoki

よかった点
全体を通して説明がまとまっており、読みやすい点は非常によいと感じました。
また、練習問題がバラエティに富んでおりよいと思った。
改善点
画像表示されていない画像がいくつかありそこは改善してほしい。

返信
2018-10-23 13:06:36

ンゴ

練習問題1の「大変よく」は「大変よくできました」の誤植ですね

返信
2018-10-23 00:18:35

ンゴ

改善点
練習問題の「 4) メッセージボックスが表示されるためにはのどんなコードを書きますか?」というのは、Select Caseには直接関係ないですね。

例えば、年齢を入力して、

・ 未成年→ 「未成年です」
・ 20歳以上~65歳未満→ 「成人です」
・ 65歳以上→ 「高齢者です」

のような文章をメッセージボックスに表示するにはどうしたら良いですか?、といった練習問題に変えてはどうでしょうか?

上のような問題にすれば、Select Caseと メッセージボックスを同時に練習できます。

返信
2018-10-16 18:39:20

ンゴ

良い点
レイアウトがわかりやすい。コードの部分の色を変えているのはとても良いですね。

返信
2018-10-16 18:39:07

gemba

良い点
アウトラインがあって、内容がわかりやすい点。
文字だけだとわかりにくいが、画像にすることで理解しやすい点
練習問題が多い点

改善できる点
何枚か画像が適切に表示されていない点(私だけかもしれない)

返信
2018-10-16 17:06:33

haruna

良い点
模範解答に詳しく解説が載っているところ。
図を多く用いて、わかりやすいように工夫されているところ。
改善できる点
それぞれの図に、もう少し説明が多いとなおいいと思う。

返信
2018-10-16 14:27:41

NG表示方式

NGID一覧