みなさんこんにちは、現役エンジニアのサメハックです
未経験からWebエンジニアに転職し、
現在正社員として5年働いたのちフリーランスとして独立しました。
1分で理解できるVBA講座シリーズです。
今回はについて学んでいきましょう!
駆け出しエンジニアや未経験の方、
また新入社員を指導する先輩社員にとっても
わかりやすいように解説していきます!
この記事を読むと・・・
- 1分で条件分岐が作れる
1分で理解できるVBA講座シリーズはじめっ!
前準備
マクロを有効にする
Excelファイルを開き、
ファイル→オプション→トラストセンター→トラストセンターの設定→マクロの設定
という順に進み、
VBAが有効な場合にExcel4.0のマクロを有効にする
という項目にチェックを入れてください。
VBEの起動
Excelファイルを開いた状態でAlt+F11を押してVBEを開いてください
モジュールの作成
挿入→標準モジュール
という順に操作すると自動的にモジュールが開くので、ここにコードを記述します。
条件分岐させよう
VBAで条件分岐させるには、
If文を使用します。
条件分岐の構文※Ifのみ
If 条件式 Then
条件式がTrueの場合の処理
End If
これは条件式がTrueの場合のみに処理を行って
Falseのときには何もしないという記述だよ!
Falseのときには何もしないという記述だよ!
条件分岐の構文※Ifのみ
If 条件式 Then
条件式がTrueの場合の処理
Else
条件式がFalseの場合の処理
End If
これはTrueの場合とFalseの場合で異なる処理をする、という記述だよ!
実際に動かしてみよう!
今回は各店舗の売上と目標が設定された表を用意しました。
この目標を達成しているか未達成かをE列に記入するマクロを作成します。
達成、未達成の計算式だよ!
売上 / 目標 >= 1
売上 / 目標 >= 1
If文の処理
Sub 条件分岐()
' Long型の変数iを宣言
Dim i As Long
' iに4~B行の最終セル番 を順番に代入
For i = 4 To Cells(Rows.Count, "B").End(xlUp).Row
'目標比が100%を超えているかを判定
If Cells(i, "C") / Cells(i, "D") > 1 Then
'条件を見たした場合、E列を更新
Cells(i, "E") = "目標達成"
End If
Next
End Sub
このマクロを実行すると、
渋谷店・大阪店・沖縄店のE列に”目標達成”
というテキストがはいります。
False処理はないので、他のセルは空欄のままだよ!
IF~Else文の処理
Sub 条件分岐Elseあり()
' Long型の変数iを宣言
Dim i As Long
' iに4~B行の最終セル番 を順番に代入
For i = 4 To Cells(Rows.Count, "B").End(xlUp).Row
'目標比が100%を超えているかを判定
If Cells(i, "C") / Cells(i, "D") > 1 Then
'条件を満たした場合の処理
Cells(i, "E") = "目標達成"
Else
'条件を満たさなかった場合の処理
Cells(i, "E") = "未達成"
Cells(i, "E").Interior.Color = vbRed
End If
Next
End Sub
このマクロを実行すると
渋谷店・大阪店・沖縄店のE列に”目標達成”
札幌店・名古屋店・宮崎店のE列に”未達成”
というテキストがはいります。
今回はFalseの際にも処理が実行されたよ!
まとめ
- VBAで条件分岐をするにはIF文を使う
- If 条件式 Then 処理 End If
- Falseの場合にも処理を実行したい際はElse文を記述
- 分岐を増やしたい場合はElse Ifを使う
満足いただけたら、1クリックなのでSNSフォローしてもらえると嬉しいです🦈