◆◆◆◆◆条件分岐
◆◆◆ If 文
If 条件 Then
...
ElseIf 条件 Then
...
Else 条件 Then '//全てに当てはまらないとき
...
End If
・ If 文では「=True」は冗長。ただし変数名をHasErrorなどのように工夫した上での話。可読性が落ちるようなら「=True」を書く。
・ Select Case でも If のような条件判定が可能(後述)。
・ショートサーキットは If ではできないが Select Case なら可能。
◆よく利用される Boolean 型の変数名
・Is+形容詞 例:IsEnabled
・Has+過去分詞 例:HasSent
・Can+動詞原型 例:CanGet
・三単現動詞 例:Exists
・三単現動詞+名詞 例:ExistsError、HasError
・Should+動詞原型 例:ShouldCollect
◆◆◆ Select Case
Select Case 式
Case "バナナ"
...
Case "リンゴ"
...
Case Else '//どのケースにも当てはまらないとき
...
End Select
・条件判定が大小などの場合、Isで記述(ただしVBEではオートコンプリートされる)
Select Case X
Case Is > 80
...
Case Is > 60
...
Case Else
...
End Select
・範囲指定できるものはToが使える。(アルファベットなど)
Case "B" To "K"
・Select Case のメリットは If の条件判定相当部分を1度の記述で済ませられること。(Ifだと「If 条件 If 条件・・・」と何度も書くことになる。)
・Caseの後にカンマで条件を列挙するとOR判定になる。
・Select Case にはショートサーキットが使える。ただしORの時。
If True Or (x > 1) Then '//これはショートサーキットされない
Case True, x > 1 '//これはショートサーキットされる
・Select Caseで柔軟な条件判定をさせたい⇒Trueを使う
Select Case True
Case s = "リンゴ"
MsgBox "sはリンゴ"
Case s Like "リンゴ*"
MsgBox "sはリンゴで始まる"
Case Else
MsgBox "どの条件にも当てはまらない"
End Select
(各Caseの後にいろんな記述ができる)
・例その他:
Select Case wsAL.Cells(i, 部名の列).Value
Case "○○部"
Fax番号 = FAX○○部
Case "△△部"
Fax番号 = FAX△△部
Case "□□部"
Fax番号 = FAX□□部
End Select
◆ Not を使ったスイッチ
・ Not を使えばオン/オフのスイッチ的なものが作れる
With Columns("D")
.Hidden = Not .Hidden
End With
(もともと.Hiddenに入っていたbool値をNotで反転させて再代入)