Ifのサンプル
VBでIfを使用した条件判断のサンプルを紹介します。
1.単純な例
以下の例では変数Xの値が5のときだけメッセージを表示する。
If X = 5 Then
MsgBox("Xは5です。")
End If
■リスト1:以下の例ではButton1.EnabledがTrueのときだけメッセージを表示する。
If Button1.Enabled Then
MsgBox("Button1は使用可能です。")
End If
■リスト2:メモ:この例ではButton1.Enabled自体がTrueまたはFalseを表しているのでIf Button1.Enabled = True Thenのように記述する必要はありません。このように記述しても同じように動作しますが冗長です。
2.「その他の場合」を表現する例 (Elseの用例)
以下の例では変数Xが5のときと、それ以外の場合とで別のメッセージを表示する。
If X > 5 Then
MsgBox("Xは5より大きいです。")
Else
MsgBox("Xは5以下です。")
End If
■リスト3:3.複数の条件を表現する例 (ElseIfの用例)
以下の例では変数Xが5の場合、そうではなくて変数Yが8である場合、それ以外の場合とで別々のメッセージを表示する。
If X = 5 Then
MsgBox("Xは5です。")
ElseIf Y = 8 Then
MsgBox("Yは8です。")
Else
MsgBox("Xは5ではないし、Yは8ではありません。")
End If
■リスト4:4.「…ではない」を判断する例
以下の例では変数Xが5ではない場合にメッセージを表示する。
If X <> 5 Then
MsgBox("Xは5で はありません。")
End If
■リスト5:以下の例も同様。
If Not (X = 5) Then
MsgBox("Xは5で はありません。")
End If
■リスト6:以下の例ではButton1.EnabledがFalseの場合にメッセージを表示する。
If Not Button1.Enabled Then
MsgBox("Button1は使用不可です。")
End If
■リスト7:メモ:この例ではButton1.Enabled自体がTrueまたはFalseを表しているのでIf Not Button1.Enabled = True Thenのように記述する必要はありません。このように記述しても同じように動作しますが冗長です。なお、NotはTrueをFalseに、FalseをTrueに反転させます。
5.「かつ」、「であると同時に」を判断する例 (AndAlsoの用例)
以下の例では変数Xが5であると同時に変数Yが8のときにメッセージを表示する。
If X = 5 AndAlso Y = 8 Then
MsgBox("Xは5でYは8です。")
End If
■リスト8:メモ:この例ではAndAlsoの代わりにAndを使うこともできますが、短絡評価にならないため、特別な事情のない限り条件判断にはAndは使用しないようにして下さい。
6.「または」を判断する例 (OrElseの用例)
以下の例では変数Xが5であるか、または変数Yが8のときにメッセージを表示する。X=5であると同時にY=8である場合にもメッセージは表示される。
If X = 5 OrElse Y = 8 Then
MsgBox("Xが5であるかYが8であるか、もしくはその両方です。")
End If
■リスト9:メモ:この例ではOrElseの代わりにOrを使うこともできますが、短絡評価にならないため、特別な事情のない限り条件判断にはOrを使用しないようにして下さい。
7.変数の型を判断する例
TypeOfを使うと型を判断できます。
変数 o がString型であるかを判断する例
If TypeOf o Is String Then
MsgBox("oはString型です。")
End If
■リスト10:Object型の変数senderがButton型であるかどうか判断する例
Private Sub AnyControl_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Enter, Button2.Enter, TextBox1.Enter
If TypeOf sender Is Button Then
MsgBox("senderはButtonです。")
Else
MsgBox("senderはButtonではありません。")
End If
End Sub
■リスト11:8.Ifの簡略的な用法
If演算子は簡略的なIf文のような使い方ができます。
次の例はMe.EnabledがTrueの場合、valueには「有効」が代入されます。そうでない場合「無効」が代入されます。
例
Dim value As String
value = If(Me.Enabled, "有効", "無効")
MsgBox(value)
■リスト12:似たような使い方ができるIIf関数がありますが、こちらは短絡評価にならないため使用しないでください。
9.参考:いろいろな例
テキストボックスに何か入力されているか判断する例
If Len(TextBox1.Text) = 0 Then
MsgBox("TextBox1には何も入力されていません。")
Else
MsgBox("TextBox1には「" & TextBox1.Text & "」と入力されています。")
End If
■リスト13:文字列中に「 , 」(カンマ)が含まれているか判断する例
Dim St As String
St = TextBox1.Text
If St.Contains(",") Then
MsgBox("カンマが含まれています。")
Else
MsgBox("カンマは含まれていません。")
End If
■リスト14:変数Xの値を変数Yで割り切れるか判断する例
Dim X As Integer = 221
Dim Y As Integer = 13
If X Mod Y = 0 Then
MsgBox(X & "は" & Y & "で割り切れます。")
Else
MsgBox(X & "を" & Y & "で割ると、余りは" & X Mod Y & "です。")
End If
■リスト15:Object型の変数senderがButton1であるかどうか判断する例
Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click
If sender Is Button1 Then
MsgBox("Button1です。")
Else
MsgBox("Button1ではないです。")
End If
End Sub
■リスト16:参考