2008年01月12日

第26回複数条件のIf文の説明

今回は前回作成したマクロの説明をします。

前回作成したマクロは1行A列の値を判定し、
判定結果を1行B列に設定します。

判定方法と1行B列の設定値は以下の8パターンです。

@未入力またはブランク "未入力エラー"
A文字列混入時 "文字列混入エラー"
B少数混入時 "少数混入エラー"
C80〜100の整数値 "優"
D60〜79の整数値 "良"
E30〜59の整数値 "可"
F0〜29の整数値 "不可"
G0〜100ではない整数値 "範囲外エラー"

この様に複数の条件で処理が分岐する場合、
ElseIfを用いたIf文を使用します。

処理の流れとしては、
@から順番に判定していき、
条件に当てはまったら、1行B列に値を
設定してIf文を終了します。

Gの条件はElseを使っていますので、
@〜Fまですべて満たされなければ、
必ずGの処理が行われます。

以下にこのIf文の補足事項を示します。

まず、Bでは、
少数が混入しているかチェックする為に
InStr関数を使っています。

InStr(1, work, ".", vbTextCompare)

InStr関数に上記の様な四つの引数を設定した場合、
変数workの1文字目から少数点を検索し、
見つかった場合は検索位置を返します。

例えば、workの値が0.5であれば、
少数点は左から2文字目なので、2を返します。

見つからなかった場合は、0を返します。

1行1列の値が整数なら、少数点が見つからず、
InStr関数は0を返します。

その為、下記ElseIf文を満たさず、Cの判定に
進みます。

ElseIf 0 <> InStr(1, work, ".", vbTextCompare) Then

1行1列の値が少数なら、変数work内で
少数点が見つかり、InStr関数は0以外を返します。
その為、ElseIfの条件を満たし、
1行B列に"少数混入エラー"を設定し、
If文を終了します。

InStr関数の詳細な説明はヘルプファイル等を
参照してみて下さい。

次にC〜Fの判定ですが、ここでは
AND演算子を使っています。

AND演算子はAND演算子の前後の条件を
満たした場合のみ、
条件を満たした事になります。

下記はCの判定処理ですが、
ANDを使っている為、
変数workが80以上かつ100以下という
二つの条件を満たす必要があります。

ElseIf 80 <= work And work <= 100 Then

AND演算子に対し、OR演算子があり、
こちらは、二つの条件のうちどちらか
一つでも満たせば、条件を満たした
事になります。

AND演算子、OR演算子についても、
ヘルプファイル等で調べてみてください。

ではまた・・・
posted by ぷろぐらまー at 13:48| Comment(0) | TrackBack(0) | 入門偏 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/77992494
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
Google
 
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。