条件判断を行う |
指定した条件に合う場合と合わない場合の処理を記述する | |
構文 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 文でもこれだけ書き方が色々あります。工夫次第で簡略化した書き方や高速化につながる書き方ができます。 繰り返し処理をするような場合等はプログラムの実行速度を計測しながらプログラムを組むようにすると、どのように書けば、どのような使い方をすれば効率的なプログラムになるかが自然と身に付くかと思います。 |