条件判断を行う
 
指定した条件に合う場合と合わない場合の処理を記述する
     構文
  If 条件式 Then
     条件を満たす場合の処理
  ElseIf 次の条件式 Then
     次の条件を満たす場合の処理
  Else
     すべての条件を満たさなかった場合の処理
  End If
     条件式終了
   例1.条件が1つの場合
   Private Sub Text1_KeyPress(KeyAscii As Integer)
     If KeyAscii = 13 Then
       KeyAscii = 0
       Text2.SetFocus
     End If
   End Sub

Text1でEnterキーが押されたらフォーカスをText2へ移す。
   例2.条件が複数の場合
   If Option1(0) = True Then
     strRetu = "A"
   ElseIf Option1(1) = True Then
     strRetu = "B"
   ElseIf Option1(2) = True Then
     strRetu = "C"
   End If

  どのオプションボタンが押されたか調べ、それにより変数strRetuに代入している
   例3.その他の使用例
   If intKen=0 Then Exit Sub
   データ件数(intKen)が0件ならプロシージャを抜ける

   If ret=>"1" And ret=<"9" Then
      ret="0" & ret
   End If
  月等の入力チェックで1桁の入力なら 01 のように修正している
  例4.ちょっと綺麗なIf文の使い方

1.次のようなコードの場合
  If X <> 0 Or y <> 0 Then

 次のように簡略化できる
  If X Or y Then


2.次のようなコードの場合
  If X = 0 And y = 0 Then

 次のように簡略化できる
  If (X Or y) = 0 Then


3.次のようなコードの場合
  If (X = 0 And y = 0) Or (X <> 0 And y <> 0) Then

 次のように簡略化できる
  If (X = 0) Xor (y <> 0) Then


4.次のようなコードの場合
  If X > 0 Then
    y = 1
  Else
    y = 0
  End If

 次のように簡略化できる
  y = -(X > 0)


5.何でも簡略化すればいいものでもない。たとえば次の場合
  If x > 0 And Tan(x) < 1 Then y = 1

 次のように別々のIFブロックに分割すると
  If x > 0 Then
    If Tan(x) < 1 Then y = 1
  End If
 最初のIFがFalseの場合は次のIF文が実行されないのでその分、実行速度が速くなります。


6. IF文が連続して使用される場合は最初に頻繁に現れる値を処理する条件文を書くようにする(上記の理由と同じ)
 但し、一部コードが解りづらくなったりしますので、変更する事で実行速度が高速になる場合に利用するようにして、効果が無いような場合は理解しやすいコードを使って下さい。
一見単純そうな If 文でもこれだけ書き方が色々あります。工夫次第で簡略化した書き方や高速化につながる書き方ができます。
繰り返し処理をするような場合等はプログラムの実行速度を計測しながらプログラムを組むようにすると、どのように書けば、どのような使い方をすれば効率的なプログラムになるかが自然と身に付くかと思います。


2006/02/23


VBレスキュー(花ちゃん)
Visual Basic6.0  VB6.