31.相当数分岐 - VBSの家

.

.

VBSEditor

VBSの編集にはVBSEditorを利用しよう。
VBSの編集に便利な機能が搭載されているよ。
詳しくはVBSEditorのページで確認してね。

広告

VBSEditor
http://vbsh.hokt.net/editor/
HPサービス
http://vbsh.hokt.net/service/
hoktnet
http://hokt.net/
ほくとのぶろぐ
http://blog.hokt.net/

Lesson.31 相当数分岐

elseifの連続

今回は条件分岐ですがifを使わないまた違った方法を見ていきます。 elseifを連続してたくさんの分岐処理をしたい時がありますよね。
そんな時いちいちelseifを使って書いていては疲れますよね。
たとえば、次の例を考えます。
好きな動物を打ってもらい、その動物によってそれぞれ違った言葉を表示させます。
では、今までの方法、elseifを使って書いてみましょう。
例:

Dim animal
animal = inputbox("好きな動物を入力してね。")
if animal = "いぬ" then
  msgbox "いぬは格好良いですね。"
elseif animal = "ねこ" then
  msgbox "かわいいですね。"
elseif animal = "ひよこ" then
  msgbox "ちっちゃいですね。"
elseif animal = "ぺんぎん" then
  msgbox "寒い所に住んでいます。"
else
  msgbox animal & "はどんな動物かわかりません。"
end if

この場合、全部animalについて比較しているのに
何度もanimalと打つのはめんどうですよね。

Select Case

比較対象が同じで、「<」や「>」の比較ではなく「=」での比較のときは
Select Case」を使うことによって楽にプログラミングすることができます。
では前の例を書き換えてみましょう。
例:

Dim animal
animal = inputbox("好きな動物を入力してね。")
select case animal
  case "いぬ"
    msgbox "犬は格好良いですね。"
  case "ねこ"
    msgbox "かわいいですね。"
  case "ひよこ"
    msgbox "ちっちゃいですね。"
  case "ぺんぎん"
    msgbox "寒い所に住んでいます。"
  case else
    msgbox animal & "はどんな動物かわかりません。"
end select

この場合、前回のように毎回animalと入力する必要がなくなりました。
そして見た目もすっきりして分かりやすいですよね。
また、今回は文字列で比較しましたが、数字でも大丈夫です。
ただし、この判定は「=」のときだけ、「<」などを使いたいときはいつも通りifを使用してください。
では使い方をまとめて練習問題に進みましょう。

まとめ

Select Case 比較元
  Case 比較対象1
    比較元と比較対象1が一致したときの動作
  Case 比較対象2
    比較元と比較対象2が一致したときの動作
  Case .....(何回でもCaseを使うことができます。)
    ....
  Case Else
    いずれの場合にもあてはまらない場合の動作
End Select

練習

好きな果物を入力させ、りんご、ばなな、めろん、いちごの場合それぞれ言葉を表示させ(表示させる言葉は自由)、その他の場合は「他の果物を指定してね。」と表示させよ。


解答

Dim fruit
fruit = inputbox("好きな果物を入力してね。")
select case fruit
  case "りんご"
    msgbox "しゃきしゃきしていますね。"
  case "ばなな"
    msgbox "ふぃりぴんでよくとれます。"
  case "めろん"
    msgbox "夕張めろんは最高ですね。"
  case "いちご"
    msgbox "つぶつぶしていますね。"
  case else
    msgbox "他の果物を指定してね。"
end select

△ 先頭へ