VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。
基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。
Update 2018/11/18
< Prev Tips
Next Tips>
ある変数の値と複数の値を比較して、一致した値べつに異なる処理を行わせたいような場合はSelect Case文を使用します。
例えば、曜日を表す変数 weekdayがあるとします。この変数には 0:日曜日〜6:土曜日 のいずれかが入っている場合に、曜日別で処理したいような場合に使用します。
ここでは、以下について説明しま
Select Case文の書式を以下に示します
「Select Case」の右には、比較元の値が入っている変数を置きます。
比較対象の値は「Case 値」のように記述し、いくつでも書くことができます。
どの「Case 値」にも一致しない場合に何かしらの処理をさせたい場合は「Case Else」を書き、その下に実行させたい処理を書きます。
Select Case 変数 Case 値1 変数が値1と一致した場合の処理 Case 値2 変数が値2と一致した場合の処理 : Case 値n 変数が値nと一致した場合の処理 Case Else いずれのCaseの値にも一致しなかった場合 End Select
以下は Select Case文 の例です
変数 weekday の値を0から6までの値と比較し、一致した「Case 値」の箇所に書かれているメッセージを表示します。
weekdayには2が入っていますので、「火曜日です」が表示されます。
Option Explicit
Sub SelectCase文の例()
Dim weekday As Integer
Dim msg As String
weekday = 2
Select Case weekday
Case 0
msg = "日曜日"
Case 1
msg = "月曜日"
Case 2
msg = "火曜日"
Case 3
msg = "水曜日"
Case 4
msg = "木曜日"
Case 5
msg = "金曜日"
Case 6
msg = "土曜日"
Case 2
msg = "不正な値"
End Select
MsgBox msg + "です"
End Sub
Caseには、カンマで区切って複数の値を書き、比較することができます。
いずれかの値と一致した時に処理を実行することができます。
Case 値1, 値2, 値3, ... 値n
以下は、変数 weekday が0, 1, 2, 3の場合に「週の前半」、4, 5, 6の場合に「週の後半」というメッセージを表示する例です。
Option Explicit
Sub SelectCase文の例2()
Dim weekday As Integer
Dim msg As String
weekday = 2
Select Case weekday
Case 0, 1, 2, 3
msg = "週の前半"
Case 4, 5, 6
msg = "週の後半"
End Select
MsgBox msg + "です"
End Sub
CaseでToを使用すると、変数を範囲で比較することができます。
Case 範囲の開始値 To 範囲の終了値
以下は、変数 weekday が0, 1, 2, 3の場合に「週の前半」、4, 5, 6の場合に「週の後半」というメッセージを表示する例です。
Option Explicit
Sub SelectCase文の例3()
Dim weekday As Integer
Dim msg As String
weekday = 2
Select Case weekday
Case 0 To 3
msg = "週の前半"
Case 4 To 6
msg = "週の後半"
End Select
MsgBox msg + "です"
End Sub
CaseでIsを使用すると、変数を条件式で比較することができます。
Case Is 条件式
以下は、変数 weekday が3以下の場合に「週の前半」、4以上の場合に「週の後半」というメッセージを表示する例です。
Option Explicit
Sub SelectCase文の例4()
Dim weekday As Integer
Dim msg As String
weekday = 2
Select Case weekday
Case Is <= 3
msg = "週の前半"
Case Is >= 4
msg = "週の後半"
End Select
MsgBox msg + "です"
End Sub