- 開発技術
【Excel VBA入門】If/Then/Elseで条件分岐する方法
- その他
開発タブを追加
【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc. 詳細はこちらから>
Excelが起動されたら、リボン(上部のアイコンがいっぱいある所)に開発タブを追加します。
一番左側にある【ファイル】を選択します。
「Excelのオプション」ダイアログボックスが表示されますので、①【リボンのユーザー設定】を選択し、②【開発にチェック】し、③【OK】ボタンを押します。
新たに「開発タブ」が表示されました。
If~Then~Elseを使った条件分岐
構文
1 2 3 4 5 |
If 条件式 Then 条件式が成立した場合に実行する処理 Else 条件式が成立しなかった場合に実行する処理 End If |
条件式を判定し、条件を満たしている場合は、Then以降の処理を実行します。条件式を満たさない場合は、Else以降の処理を実行します。
比較演算子
A > B |
AはBよりも大きい |
A >= B |
AはB以上 |
A < B |
AはBよりも小さい |
A <= B |
AはB以下 |
A = B |
AはBと等しい |
A <> B |
AとBは等しくない |
論理演算子
A And B |
AかつB(AとBの両方を満たす) |
A Or B |
AまたはB(AかBのいずれか1つを満たす) |
Not A |
Aではない |
使用例
上図は名前ごとに点数の結果が入力されています。B2セルが70点以上だったらC2セルに「合格」、そうでなければ「不合格」とVBAで書いてみましょう。
1 2 3 4 5 6 7 |
Sub sample() If Cells(2, 2) >= 70 Then Cells(2, 3) = "合格" Else Cells(2, 3) = "不合格" End If End Sub |
VBAで「If~Then~Else」を使ったサンプルになります。
-
2行目:「Cells(2, 2) >= 70」が条件式です。B2セルが70点以上かどうかを判定します。
-
3行目:B2セルが70点以上の場合、C2セルに「合格」を入力します。
-
5行目:B2セルが70点以上でない場合、C2セルに「不合格」を入力します。
VBAのコードを記述するためにVBE(Visual Basic Editor)を起動します。①リボンから【開発】タブを選択し、②【Visual Basic】を押します。
Visual Basic Editorが起動したら①対象のシートを【ダブルクリック】し、②ソースコードを記述して③【▶】ボタンを押します。
論理演算子Orを使って複数条件(または)を設定する方法
1 2 3 4 5 |
If 条件式1 Or 条件式2 Then 条件式1か条件式2のどちらかが成立した場合に実行する処理 Else 条件式1と条件式2の両方とも成立しない場合に実行する処理 End If |
条件式1、条件式2をそれぞれ判定し、1つでも条件を満たしている場合は、Then以降の処理を実行します。条件式1と条件式2のどちらも満たさない場合は、Else以降の処理を実行します。
図は名前ごとに「国語」「数学」「英語」の結果が入力されています。B2、C2、D2セルのいずれかが80点以上だったらE2セルに「合格」、それ以外だったら「不合格」とVBAで書いてみましょう。
1 2 3 4 5 6 7 |
Sub sample() If Cells(2, 2) >= 80 Or Cells(2, 3) >= 80 Or Cells(2, 4) >= 80 Then Cells(2, 5) = "合格" Else Cells(2, 5) = "不合格" End If End Sub |
VBAで「Or」を使ったサンプルになります。
-
2行目:「Cells(2, 2) >= 80」「Cells(2, 3) >= 80」「Cells(2, 4) >= 80」をOrでつなげています。いずれかが80点以上かどうかを判定します。
-
3行目:B2、C2、D2セルがいずれか80点以上の場合、E2セルに「合格」を入力します。
-
5行目:B2、C2、D2セルのすべて80点以上でない場合、E2セルに「不合格」を入力します。
まとめ
VBAはExcelの操作を自動化するマクロ機能で使われているプログラミング言語です。Excelにある「マクロ機能」の中身が、プログラミング言語である「VBA」で記述されている、条件分岐と繰り返しはマクロの記録ができません。
【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>