30.条件分岐(5) 複数回の分岐 - 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.30 条件分岐(5) 複数回の分岐

ifを2回使う

今までのifではelseとあわせても2とおりにしか場合わけできませんでした。
しかしこんな例を考えて見ましょう。
今回は「朝」「昼」「夜」のどれかを表示させるプログラムを作るとします。
ここでは便宜上、0時から8時までを「朝」、9時から16時までを「昼」、17時から23時までを「夜」とします。
今回は3通りで少し工夫が必要ですね、ifを2回使うことにより書くことができます。
まずはそれを書いてみます。
例:

nowh = hour(now)
if nowh <= 8 then
  msgbox "朝です。"
else
  if nowh <= 16 then
    msgbox "昼です。"
  else
    msgbox "夜です。"
  end if
end if

これも2段組で結構醜いですね。
そんなときに使うのが「elseif」というものです。
これは「前の条件が違ってこの条件が満たされるならば」という意味です。
なんかわかりにくいですね。プログラムを見て見ましょう。
例:

nowh = hour(now)
if nowh <= 8 then
  msgbox "朝です。"
elseif nowh <= 16 then
  msgbox "昼です。"
else
  msgbox "夜です。"
end if

こちらのほうがきれいですっきりしますね。
ちなみにelseifは何度も使えます。

まとめ

elseifの使い方

if (比較条件式1) then
  (比較条件式1を満たした場合の動作)
elseif (比較条件式1以外の場合の比較条件式2) then
  (比較条件式2を満たす場合の動作)
elseif .......
  ......
else
  (どれにも該当しない場合)
end if

練習

現在の時が0時から6時までのとき、「おはようございます。」と表示させ、
7時から12時までのとき「間もなく昼御飯です。」と表示させ、
13時から18時までのとき「もう夕食の時間です。」と表示させ、
19時から23時までのとき「もう寝る時間です。」と表示させよ。


解答

Dim nowh
nowh = hour(now)
if nowh <= 6 then
  msgbox "おはようございます。"
elseif nowh <= 12 then
  msgbox "間もなく昼御飯です。"
elseif nowh <= 18 then
  msgbox "もう夕食の時間です。"
else
  msgbox "もう寝る時間です。"
end if

△ 先頭へ