VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

リンク元へ戻ります。 数学・算法・基本コード関係のメニュー
1.人に聞けないこんな事(主要プロパティについて)
2.条件判断・条件分け処理関係
3.繰り返し処理関係
4.プログラムの最適化(高速化)について
5.ちょっと便利な小技集
6.10進←→16進相互変換
7.ソート法色々
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.


2.条件判断・条件分け処理関係
1.条件判断を行う If〜Then〜Else
2.ちょっと綺麗なIf文の使い方
3.条件分け処理を実施 Select Case
4. 
5. 
6. 

 下記プログラムコードに関する補足・注意事項 
動作確認:Windows Vista・Windows 7 (32bit) / VB6.0(SP6)
Option :[Option Explicit]
参照設定:追加なし
使用 API:
なし
その他 :
    :
このページのトップへ移動します。 1.条件判断を行う If〜Then〜Else

構文
  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 のように修正している

このページのトップへ移動します。 2.ちょっと綺麗な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 文でもこれだけ書き方が色々あり、工夫次第で簡略化した書き方や高速化につながる書き方ができます。
 繰り返し処理をするような場合等はプログラムの実行速度を計測しながらプログラムを組むようにすると、どのように書けば、どのような使い方をすれば効率的なプログラムになるかが自然と身に付くかと思います。
このページのトップへ移動します。 3.条件分け処理を実施 Select Case

構文
  Select Case 条件判定に利用する式
   Case 条件判定の式の値
      条件を満たす場合の処理を記入
   Case Else
      すべての条件を満たさなかった場合の処理
  End Select


使用例
  Private Sub Command1_Click()
    Dim intNumber As Integer
    intNumber = CInt(Text1.Text)
    Select Case intNumber ' intNumber を評価します。
      Case 1 To 5    ' intNumber の値が 1 〜 5 の場合。
        Label1.Caption = "1 から 5 の間"
      Case 6, 7, 8    ' intNumber の値が 6 〜 8 の場合。
        Label1.Caption = "6 から 8 の間"
      Case Else     ' その他の値の場合。
       Label1.Caption = "1 から 8 以外の数値"
    End Select
  End Sub

テキストボックスに入っている数字に、Label に結果をプリントしている。
又、比較演算子を使用することもできますし、該当が重複しているような場合は、行の先頭から処理されますので、その後の比較には該当しなくなります。
ご自分で色々設定を変更して試して見るのが理解する上で一番の早道かと思いますので、ぜひ試して見て下さい。

このページのトップへ移動します。 4.


このページのトップへ移動します。 5.


このページのトップへ移動します。 6.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)
フロー制御ステートメント 条件式 条件分け 条件分岐 IF文 if then else select case 複数条件  きれいなIF文の書き方 上手なIF文の書き方 簡単なIF文の書き方
比較 演算子 比較演算子



このページのトップへ移動します。