Sample Site

分岐処理関係

プログラムの流れ(フロー)の3つの基本的な処理は、「順次処理」「分岐処理」「反復処理」ですが そのうちの一つである「分岐処理」について考えます。 vbaでの分岐処理は、いろんな方法がありそれぞれ特徴があるので、サンプルを例にして考えます。

vbaでの代表的な分岐処理には以下があります。
●If Then Else文(ステートメント)
(記述例)
If a>b then
  処理1
  else
  処理2
End if

If文は、プログラムを作る上で超定番で、たいていのプログラムに使われます。このように超定番のIf文ですが、分岐が多段階で複雑になると、コードが俗に言う「スパゲッティコード」と呼ばれる、見るからにごちゃついたものになってしまう場合があります。
複雑になりがちな、複数階層のIfをいかにわかりやすくするのが腕の見せ所かもしれません。

●Select Case文(ステートメント)
(記述例)
Select Case 比較対象
case a
 処理1
case b
 処理2
case c
 処理3
Case Else
 処理4

Select Case文は比較対象が原則一つで、分岐階層の深い複雑な分岐処理には基本的に向いていませんが、if文に比べコードがシンプルでわかりやすい特徴があります。


以下に、実際のサンプルを示しますのでその違いがわかると思います。 サンプルの処理としては、DATAシートにある数値を、あらかじめ設定した数値と比較してその該当するセルに条件に対応した色を付けるといったものです。
If文3種類、Select Case文5種類あります。

(1) If Then Else(単純比較:1階層)
操作側(共通)処理されたデータ

この処理は、DATAシートの3列目のデータを対象に、基準値と比較して基準値より大きい場合と、同じか小さい場合の2つの条件で、セルに色を付けます。 2種類の着色

If Then Else(単純分岐:1階層)


(2) If Then Else(複数分岐1:2階層)
操作側(共通)処理されたデータ

この処理は、DATAシートの5列目のデータを対象に、基準値と比較して基準値より大きい場合と、同じの場合、小さい場合の3つの条件で、セルに色を付けます。 3種類の着色

If Then Else(複数分岐1)


(3) If Then ElseIf(複数分岐2:2階層)
操作側(共通)処理されたデータ

この処理は、DATAシートの7列目のデータを対象に、基準値と比較して基準値より大きい場合と、同じの場合、小さい場合の3つの条件で、セルに色を付けます。 3種類の着色(分岐にElseIfを使用)

If Then ElseIf(複数分岐2)


(4) Select Case(複数個の単純分岐:1階層)
操作側(共通)処理されたデータ

この処理は、DATAシートの3列目のデータを対象に、基準値と比較して基準値より大きい場合と、同じの場合、小さい場合の3つの条件で、セルに色を付けます。 3種類の着色
(記述例 Case Is > 基準値)

Select Case(複数個の単純分岐)


(5) Select Case(OR比較)
操作側(共通)処理されたデータ

この処理は、DATAシートの5列目のデータを対象に、基準値と比較して基準値より大きい場合と、同じの場合、小さい場合の3つの条件で、セルに色を付けます。 3種類の着色
(記述例 Case 基準値1,基準値2,基準値3 (カンマで区切る))

Select Case(OR比較)


(6) Select Case(範囲指定)
操作側(共通)処理されたデータ

この処理は、DATAシートの7列目のデータを対象に、2つの基準値の範囲と比較して基準値の範囲内の場合と、その範囲外の場合の3つの条件で、セルに色を付けます。 3種類の着色
(記述例 Case 基準値1 to 基準値2)

Select Case(範囲指定)


(7) Select Case(変数での比較)
操作側(共通)処理されたデータ

この処理は、DATAシートの11列目のデータを対象に、基準値の変数と対象値の変数を比較して、3つの場合で、セルに色を付けます。 3種類の着色
(記述例 Case echr > svalue )

Select Case(変数での比較)


(8) Select Case(ワイルドカードによる比較)
操作側(共通)処理されたデータ

この処理は、DATAシートの2行目のデータを対象に基準文字列を含むか、それ以外かの2通りの場合で色分けします。 2種類の着色
(記述例 Case 対象値 like 基準値 )

Select Case(ワイルドカードによる比較)


分岐処理のまとめ(総まとめ)


以上のTIPSをまとめたファイルです。お時間の無い方におまとめ編です。
本ページの1~8の様々な分岐が含まれるており、実際に動きを試せるファイルです。



Sample Site