『IF文』とは“条件を設定して「満たしている」と「満たしていない」ときに処理を分岐する”ためのステートメントです。
少し実用性のあるシステムを作ろうと思えば、必ずここで紹介するIF文を使うことになります。
なので、ぜひ、IF文を覚えていってください。
IF文の記述方法
ここでは「IF文の記述の仕方」「ざっくりとした参考コード」について解説していきます。
IF文の書式
IF文の記述の仕方は下のとおりです。
IF文は上のように条件を満たすかどうかで処理を分岐します。
条件はboolean型なので、『条件』部分には「True(条件を満たす)」「False(条件を満たさない)」の2つが戻り値になる数式などを記載する必要があります。
そして、条件を満した場合は上でいうところの『処理1』、条件を満たさない場合は『処理2』の片方の処理を行うという流れになります。
IF文の参考コード
たぶん、上の『IF文の書式』だけでは理解できない方もいるかと思います。
なので、下に実際にIF文を使った簡単なコードを貼るので確認してみてください。
1 2 3 4 5 6 7 8 9 10 11 12 |
Sub sample1() Dim i As Integer i = 3 If i >= 2 Then Debug.Print "変数iは2以上です" Else Debug.Print "変数iは2未満です" End If End Sub |
上のコードの結果は「”変数iは2以上です”」が表示されます。
次にざっくり上のコードの説明は下のようになります。
4行目:変数iに3を代入
6行目:「変数iが2以上かどうか」を条件に指定
7行目:「変数が2以上」だった場合に、イミディエイトに”変数iは2以上です”と表示する処理
9行目:「変数が2以上」でなかった場合に、イミディエイトに”変数iは2未満です”と表示する処理
IF文はFOR文と組み合わせて使うことが多い
また、IF文はFOR文と組み合わせて使用されることが多いです。
例えば、上のコードにFOR文を組み込むとしたら下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Sub Sample2() Dim i As Integer For i = 1 To 3 If i >= 2 Then Debug.Print "変数iは2以上です" Else Debug.Print "変数iは2未満です" End If Next i End Sub |
上のコードではFOR文で変数iを1~3に変動させています。
その変動させた変数iの値が2以上かどうかによって処理を分岐させています。
上のコードを実行した結果が下のようになります。
変数iは1回目は”1”なので、条件である「2以上かどうか」を満たさないので、”変数iは2未満です”と表示されます。
ですが、2回目以降は変数iが”2以上”になるので、”変数iは2以上です”がイミディエイトに表示されます。
IF文の実践コード
では、IF文を実際のエクセルシート内のセルに使ってみます。
例えば、下の表に対して試してみます。
上の表では一人ひとりに点数を設定しています。
そして、「点数が80以上の場合は”A”、80未満の場合は”B”を列Eに表示する」というコードを書いてみます。
1 2 3 4 5 6 7 8 9 |
Sub sample3() If Cells(3, 4) >= 80 Then Cells(3, 5) = "A" Else Cells(3, 5) = "B" End If End Sub |
3行目:「3行目の4列目(D3)の値が80以上かどうか」という条件を設定
4行目:条件を満たした場合は、3行目の5列目(E3)に”A”を表示
6行目:条件を満たしていない場合は、3行目の5列目(E3)に”B”を表示
そして、上のコードを実行すると下のようになります。
判定対象であるセルD3の値が80以上だったので、評価列であるセルE3には”A”が表示されました。
FOR文を組み合わせた場合
上の表のE列全てを埋めるためにFOR文と組み合わせると下のようなコードになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Sub Sample4() Dim i As Integer For i = 3 To 7 If Cells(i, 4) >= 80 Then Cells(i, 5) = "A" Else Cells(i, 5) = "B" End If Next i End Sub |
そして、上のコードを実行すると下のような結果になります。
今回のコードではFOR文で変数iを3から7まで繰り返すようにしました。
これにより、3行目から7行目まで処理を繰り返し、同時にIF文の条件分岐も行えています。
ちなみにIF文について、より深く理解したい方は下の記事も目を通してみてください。
![](https://bokulog.org/wp-content/uploads/2021/01/vba-if-nest-1-160x90.png)
![](https://bokulog.org/wp-content/uploads/2021/01/vba-if-and-or-1-160x90.png)
1位 | 2位 | 3位 |
---|---|---|
Excel VBA 脱初心者のための集中講座 | パーフェクトExcel VBA | ExcelVBA 実戦のための技術 |
初心者~中級者 | 中級者 | 初心者~中級者 |
【初心者が手に取るべき参考書】 ・「書籍+動画」で圧倒的に理解しやすい入門書になっている。 ・丁寧で詳しい解説でボリューム感がある。 | 【より深い理解をしたい方にお勧めな参考書】 ・テーマに対して丁寧な解説・適度な深さで解説されている。 ・幅広くテーマを扱っていることから、基礎知識をあらかた網羅できる。 | 【入門書と一緒に買うべき参考書】 ・1つ1つのテーマを経験豊富なエンジニア視点で解説してくれている。 ・実践的で効果的なコードの書き方が理解できる。 |
【読んでみた一言】 正直、入門書はコレ一冊でいいかも。あとは中級者用の参考書に進むべし。 | 【読んでみた一言】 深く書かれているが、少々専門的に書かれていることから、読む前に数冊の入門書を読破したほうが良い。 | 【読んでみた一言】 基礎知識を持っている人が次のレベルに達するきっかけを与えてくれる参考書である。 |
スポンサーリンク