SelectCase条件分岐

複数の条件で分岐する際に使用するSelectCaseステートメントの使い方

'複数の条件で分岐
Select Case ActiveCell
Case 10

'10の時の処理内容

Case 20

'20の時の処理内容

Case Else

'10と20ではない時の処理内容

End Select

SelectCase条件分岐は複数の条件を1つの対象に検証して分岐します
対象が1つのものに条件を立てていくので、条件比較がわかりやすい条件分岐です

ちなみに、条件式は上から順番に検証されるので同じ条件で当てはまる場合は上の処理が優先されるのでIf構文のように続く条件に下限値などの設定は必要ありません

「Case ~~」~~の部分に条件の数値や文字列などを入力します
このCaseは追加で増やしていくことが可能です

最終的にどれにも当てはまらない場合は、「Case Else」にある処理が実行されます

Caseの書き方

'数値の範囲指定
Case 0 To 5

数値の範囲指定には「To」を使用します
開始と終了の数値を入力することにより、その範囲の数値であれば真となります
例コードであれば対象が0~5の数値であれば真です

'検証対象との比較
Case Is <= 5

検証対象を条件式に使用する場合は「Is」を使用します
「Case ActiveCell <= 5」は間違いになります、赤字の部分はIsに書き換えます
最大や最小の数値が分からない時はこちらで対応します

'複数の条件を指定
Case Is <= 6, 8 To 9

複数の条件を指定する場合は「,」で区切って追加します
変則的な数値であったりする場合はここで追加入力していきます
また、この条件はOr検証なので条件のどれかが成り立ったら真となります

IF条件分岐(And、Or、Not)

条件分岐をより細かく行うために使用するAnd・Or・Notのそれぞれの解説

'And(両方成り立つとき)
If ActiveCell = 100 And ActiveCell = 200 Then
'Or(どちらかが成り立つとき)
If ActiveCell = 100 Or ActiveCell = 200 Then
'Not(条件に当てはまらないとき)
If Not ActiveCell = 100 Then

Andすべての条件式が真のときに真を返します
さらにAndを追加して条件式を1行に増やしていくことも可能です
もちろんそんなことをすれば、コードが読み取りづらくはなります

Orどれか1つでも条件式が真のときに真を返します
Andと同じく追加することが可能です

Notは条件式の結果を反転させます
この場合だと、アクティブセルが100でなければ真となります
ただこの例だとあえて使う必要性がまったくありません
等符号の場合は、向きや右左辺を入れ替えればいいだけなので
「Like」や「Is」などの向きの変更ができなかったりするときに使います
Notを使う場面は初心者では少ないかもしれません

またこれらのコードは全て組み合わせて使用することもできます
ネストでは対応できない場合に使用するようにして、なるべくコードの可読性を落とさないように注意して使用してください

IF多数条件分岐

2択の条件分岐を連続して行う場合のコード

'Ifによる処理分岐
If ActiveCell = 100 Then

'1つ目が真の時の処理内容

ElseIf ActiveCell = 200 Then

'2つ目が真の時の処理内容

Else

'どちらも偽の時の処理内容

End If

IF条件分岐の多数条件です

1つ目の条件は、「If ~~ Then」の「~~」に条件式を入力します

2つ目の条件は、「ElseIf ~~ Then」の「~~」に条件式を入力します
1つ目の書式にElseを頭に追加するだけです

今回の場合は、アクティブセルの値が100なら1つ目が真、200なら2つ目が真となります
それ以外の数値や文字列、空白もすべて偽になります
どちらの結果になって処理が実行されても、最後のEnd Ifまできてその後の処理につながります

またElseIfはさらに追加して入力していくことができます
ただそんなことをすると訳がわからなくなる可能性が非常に高いので、せいぜいElseIfは1つぐらいがいいと思います
そもそも多数条件の場合はSelect分岐の方が良いです

IF条件分岐

2択で処理を分岐させるIFステートメントの使用方法

'Ifによる処理分岐
If ActiveCell = 100 Then

'真の時の処理内容

Else

'偽の時の処理内容

End If

IF条件分岐は、条件式が成り立つかどうかで処理を分岐させるコードです

プログラミングの必須知識として重要な処理です
関数でもあるので、多少はやったことがあるかもしれません

If ~~ Then

コード中間の「~~」に条件式を入力します

例コードでは「ActiveCell = 100」の部分が条件式になります
アクティブセルが100かどうかを調べています
それ以外の数値や文字列、空白もすべて偽になります

条件が成り立った場合は、「Then」以降の次の行からElseの前まで実行されます
条件が成り立たなかった場合は、「Else」以降の次の行から処理が実行されます

どちらの結果になって処理が実行されても、最後の「End If」まできてその後の処理につながります

プログラムの入れ物を作る

モジュールの作成解説とSubプロシージャの空コード

'プログラムコードの入れ物
Sub プログラム名()

’↑この間にプログラムコードを入力する↓

End Sub

Subプロシージャという、VBAの最小プログラム単位の作成です。
このSub ~ End Subまでの間に実行するプログラムコードを入力します
VBAはこのプロシージャという単位でプログラムが実行されます
また、Subの隣の「プログラム名」は任意の名称に変更してください
日本語の使用が可能です

まずは、標準モジュールの作成を行います。この標準モジュールに通常はプロシージャの作成を行っていきます。
この標準モジュールは、メニューボタンから簡単に作成可能です。

標準モジュールの作成手順

ツールバーにある「新しい標準モジュール」をクリックすると、下のプロジェクト内に新しく「Module~」と作成されます
ツールバーにボタンが無い場合は、挿入タブから操作してください

Subプロシージャの作成手順

モジュールが作成されると、そのモジュールがアクティブになって右側のウィンドウにコードウィンドウが表示されますので、そこに例コードを貼り付けします。
これで、プログラムの入れ物が完成しましたので処理の作成を行っていきましょう