【Excel VBA入門】If/Then/Elseで条件分岐する方法

この記事を書いたチーム:frontier

開発タブを追加

【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc.  詳細はこちらから>

Excelが起動されたら、リボン(上部のアイコンがいっぱいある所)に開発タブを追加します。

一番左側にある【ファイル】を選択します。

Backstageビューが開かれますので【オプション】を選択します。

「Excelのオプション」ダイアログボックスが表示されますので、①【リボンのユーザー設定】を選択し、②【開発にチェック】し、③【OK】ボタンを押します。

新たに「開発タブ」が表示されました。

If~Then~Elseを使った条件分岐

構文

 

条件式を判定し、条件を満たしている場合は、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で書いてみましょう。

 

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をそれぞれ判定し、1つでも条件を満たしている場合は、Then以降の処理を実行します。条件式1と条件式2のどちらも満たさない場合は、Else以降の処理を実行します。

図は名前ごとに「国語」「数学」「英語」の結果が入力されています。B2、C2、D2セルのいずれかが80点以上だったらE2セルに「合格」、それ以外だったら「不合格」とVBAで書いてみましょう。

 

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. 詳細はこちらから>

Smallitのサービス