みなさん、こんにちは。今回はExcelマクロVBA入門の7回目です。
前回は、繰り返し処理と最終行数の取得について紹介しました。

10日で習得!VBA入門⑥繰り返し処理と最終行数取得
今回は繰り返し処理と最終行数の取得について紹介します。 記事を読み進めていくことで、マクロVBAを使って同一シート内のデータ処理を自動化するために必要なVBAスキルを習得できます。VBA初学者が添付のレジュメを使って一緒に手を動かしながらVBAコードを記述していくことで、自分のペースでじっくり確実に習得することができます。
今回は、If Thenステートメントについて紹介します。
学習用Excelファイルのダウンロードはこちらから↓

マクロVBA入門講座|情報サービス鳥取
「ブログ記事とオリジナル無料教材を使ってマクロVBAの基礎を学ぼう!!」ということで、ブログにてVBA基礎の習得を目指した記事をアップしていきます。最終目標は”私がVBA習得のきっかけとなった”YouTubeチャンネル:Mr.ラビットのにょきにょきパソコン講座にて題材となってパズルを作成することです!!このパズルを理解...
If Thenステートメント
ワークシート関数のIF関数は論理式を使って、条件を満たす場合の処理、満たさない場合の処理を分けることができました。
VBAにおいても、If Thenステートメントを使って同じことが可能になります。
条件を満たすかによって実行する操作を分けます。下記のように記述します。
IF 条件式 Then
操作A ’条件を満たす場合に行う操作
Else
操作B ’条件を満たさない場合に行う操作
End If
IFの後に条件を指定して、条件を満たす場合は「操作A」、条件を満たさない場合は「操作B」を実行します。
条件を満たさない場合に何も実行しない場合は、「Else」と「操作B」は省略
IF 条件式 Then
操作 ’条件を満たした場合の操作
End If
条件式に使われる比較演算子
条件式には比較演算子を使います。
比較演算子とは、2つの値を比較した結果を「True」または「False」で返します。
比較演算子 | 意味 | 例文 |
= | 等しい | Range(“A1”).Value = 1 (A1セルが「1」の場合はTrue,そうでない場合はFalse) |
> | より大きい | Range(“A1”).Value > 1 (A1セルが「1」より大きい場合はTrue,そうでない場合はFalse) |
>= | 以上 | Range(“A1”).Value >= 1 (A1セルが「1」以上の場合はTrue,そうでない場合はFalse) |
< | より小さい | Range(“A1”).Value < 1 (A1セルが「1」より小さい場合はTrue,そうでない場合はFalse) |
<= | 以下 | Range(“A1”).Value <= 1 (A1セルが「1」以下の場合はTrue,そうでない場合はFalse) |
<> | 等しくない | Range(“A1”).Value <> 1 (A1セルが「1」でない場合はTrue,そうでない場合はFalse) |
演習問題(If Then)
レジュメ:「11.演習_IF」シート使用
演習①:「数学」が60点以上は合格、それ以外は不合格を「判定」の列に入れます。

Sub 条件分岐()
Dim i As Long
For i = 7 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 2) >= 60 Then
Cells(i, 3) = "合格"
Else
Cells(i, 3) = "不合格"
End If
Next
End Sub
ElseIfを使った複数条件分岐
複数の条件を設定したい場合は、ElseIf文を使用します。
ElseIf文を使用することによって3つ以上の処理を分岐させることが可能になります。
下記のように記述します。
IF 条件式1 Then
操作A ’条件1を満たす場合に行う操作
ElseIf 条件式2 Then
操作B ’条件1は満たさず、条件2を満たす場合に行う操作
Else
操作C ’条件1と2を満たさない場合に行う操作
End If
条件1を満たす場合は「操作A」
条件1を満たさず、条件2を満たす場合は「操作B」
条件1と2を満たさない場合は「操作C」を実行します。
演習問題(ElseIf)
レジュメ:「11.演習_IF」シート使用
演習②:「数学」が80点以上は◎、60点以上は〇、それ以外は×を「判定」の列に入れます。

Sub 条件分岐_2()
Dim i As Long
For i = 23 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 2) >= 80 Then
Cells(i, 3) = "◎"
ElseIf Cells(i, 2) >= 60 Then
Cells(i, 3) = "○"
Else
Cells(i, 3) = "×"
End If
Next
End Sub
まとめ
If Thenステートメントについて紹介しました。
次回は、いよいよパズルを使った演習問題に入っていきます。
コメント