エクセルの自動化を実現するために欠かせないVBAですが、その中でも、条件分岐を行うIFステートメントは特に重要な構文です。IFを使えば複雑な条件に応じた処理を簡単にできるようになります。
本記事では、VBAのIF文の基本から実務で役立つ使い方、さらには覚えておきたい演算子まで解説していきます。VBAを使った自動化に興味のある方は、ぜひ最後までチェックしてみてください。
VBAとは
VBA(Visual Basic for Applications)とは、Microsoft Office製品の機能拡張や自動化ができるプログラミング言語です。
プログラムを書くだけで、日常的に繰り返し行う作業を自動化できるため、データ入力や集計作業の時間を大幅に削減可能です。
そのため、多くの企業でVBAを使った業務の効率化が求められています。
さらに、VBAはプログラミング初心者でも比較的学びやすい言語として知られているため、学習のハードルが低いのも特徴です。
以下の記事では、VBAの基本的な書き方や使用するメリット、VBAを使ってできることなどについて解説しています。VBAについてより詳しく知りたい方は、以下の記事も参考にしてみてください。
VBAのIFとは
VBAのIFは、条件に応じた処理を実行するためのステートメントです。プログラムの中で特定の条件を設定し、その条件が満たされた場合にのみ処理を実行できます。
例えば、「数値が一定以上であればAの処理を行う」「文字列が特定の値であればBの処理を実行する」といった具合に、状況に応じた動作を制御できます。
条件分岐によって処理を分けたいケースは多くあるので、IFはVBAをマスターするうえでしっかり押さえておくことが必要です。
また、VBAを学習するならスクールで学ぶのが効率的です。スクールなら、VBAの知識を体系的に学べます。以下の記事では、VBAを学習できるおすすめのスクールを厳選して紹介しています。効率的な学習を求めている方は、ぜひこちらもあわせてご覧ください。
VBAのIFで使う演算子
VBAでIFを使用する際、条件を指定するためには演算子を利用します。演算子とは、比較や計算を行うための記号で、IF文内で条件を表現するために欠かせません。
IFで使える代表的な演算子には、以下のようなものがあります。
種類 | 書き方 | 説明 |
比較演算子 | = | 等しい |
<> | 等しくない | |
< | 小さい | |
> | 大きい | |
<= | 以下 | |
>= | 以上 | |
論理演算子 | OR | いずれかの条件が成立すれば真となる |
AND | すべての条件が成立する場合に真となる | |
NOT | 通常の条件が真であれば偽となり、偽であれば真となる |
これらの演算子を適切に活用することで、IF文をより柔軟に構築でき、複雑な条件分岐も簡単に実現できるようになります。
VBAでIFを使う方法
VBAでIFを使う際の基本的な構文は以下のとおりです。
’ 処理
End If
この構文では、条件が成立した場合にのみ指定した処理を実行できます。例えば、セルA1の値が80以上であれば「合格」と表示するコードは次のようになります。
MsgBox “合格”
End If
さらに、以下のようにして条件に当てはまらない場合の処理をElseの中で指定することもできます。
MsgBox “合格”
Else
“不合格”
End If
また、VBAを使用すればエクセルの自動化を実現できますが、多用することによってエクセルファイルの処理速度低下を招く原因となります。そのため、効率的にエクセル業務を行うなら、業務プロセスや構造の見直しが必須です。
以下の資料では、エクセルで行う定型作業の自動化やファイル管理のクラウド化など、エクセルの効率化につながるノウハウを紹介しています。気になる方は、ぜひ以下のリンクから無料ダウンロードしてみてください。
VBAでElseIfを使う方法
IF文は単純な条件分岐だけでなく、複数の条件を扱うこともできます。これを実現できるのがElseIfステートメントです。例えば、ElseIfを使えば以下のような成績に応じた評価を行うプログラムも作成できます。
MsgBox “評価:優”
ElseIf Range(“A1”).Value >= 60 Then
MsgBox “評価:可”
Else
MsgBox “評価:不”
End If
上記のコードは、80点以上なら「評価:優」、60点以上なら「評価:可」、それ以下なら「評価:不」を出力します。このように、ElseIfを使うことで複数の条件を段階的にチェックし、それぞれに応じた処理を指定できます。
論理演算子を使った実例
論理演算子を組み合わせると、さらに複雑な条件分岐を効率的に行えます。
例えば、ある数値が特定の範囲内にあるかどうかを確認し、その結果に応じたメッセージを表示するプログラムを作成したいとします。
score1 = Range(“A1”).Value
score2 = Range(“B1”).ValueIf score1 >= 80 And score2 >= 80 Then
MsgBox “評価:優”
ElseIf (score1 >= 60 And score2 >= 60) Or (score1 >= 80 Or score2 >= 80) Then
MsgBox “評価:可”
Else
MsgBox “評価:不”
End If
上記のコードでは、A1とB1が80以上なら「評価:優」をA1とB1が60以上、もしくはA1とB1のいずれかが80以上で「評価:可」を、上記の条件に当てはまらない場合は「評価:不」が出力されます。
このように、論理演算子を使えばより複雑な条件分岐も実現できます。
GoToステートメントでの条件分岐
VBAでは、GoToステートメントを使ってプログラムの流れを変更する処理も記述できます。
score1 = Range(“A1”).Value
score2 = Range(“B1”).ValueIf score1 < 0 Or score1 > 100 Or score2 < 0 Or score2 > 100 Then
GoTo InvalidScore
End IfIf score1 >= 80 And score2 >= 80 Then
MsgBox “評価:優”
ElseIf (score1 >= 60 And score2 >= 60) Or (score1 >= 80 Or score2 >= 80) Then
MsgBox “評価:可”
Else
MsgBox “評価:不”
End IfInvalidScore:
MsgBox “エラー:スコアは0~100の範囲で入力してください。”
上記は、スコアに0〜100以外の数値が入力されていた場合、処理を止めてエラーメッセージを表示するコードです。上記の例のように、GoToステートメントはエラー処理でもよく使われます。
If Likeでの条件分岐
VBAのIf Likeを使用することで、文字列のパターンに基づく条件分岐を行えます。これは、指定したパターンに一致するかどうかを確認し、条件を満たした場合のみ処理を実行する方法です。
If Likeの基本構文は以下のとおりです。
’ 条件に一致する場合の処理
End If
以下の例では、ユーザーが入力した名前に「山田」が当てはまる場合のみメッセージを表示します。
userName = Range(“A1”).ValueIf userName Like “山田*” Then
MsgBox “こんにちは山田さん”
Else
MsgBox “こんにちは”
End If
「If userName Like “山田*” Then」の1行でA1に入力された文字列に山田が含まれているかを確認しており、それ以降の指定で条件に当てはまる場合と、そうでない場合の処理を行っています。
エクセル業務の効率化を進めるなら
エクセルを使用している企業において、データ量の増加は避けられない課題です。特に、関数やマクロ・VBAを多用した複雑なシートは、読み込みや保存に時間がかかり、再計算によって操作が重くなることが少なくありません。
このような問題が発生すると作業効率は低下し、業務全体のパフォーマンスにも悪影響を及ぼします。さらに、複数人での同時編集が難しいことも、スピードと連携性を損なう一因です。
こうした状況に対応するため、DXの導入が重要視されています。以下の資料では、エクセル定型作業やワークフローの自動化など、エクセルを効率化するためのノウハウが詰まっています。
エクセル業務の効率化を進めたい方は、ぜひ以下のリンクから無料ダウンロードしてみてください。
VBAを学べるおすすめの講座
VBAはプログラミングの知識が必要になるため、0の状態から独学で習得するのは難易度が高めです。そこでおすすめなのが、Excelマクロ・VBAセミナーです。
Excelマクロ・VBAセミナーは、エクセルで使うマクロやVBAの使い方を学べるセミナーで、主に以下の内容を学習できます。
- マクロとVBAの基礎知識
- 表記の統一と転記の自動化
- 表とグラフの一括作成
- 請求書の自動作成
また、受講形態は複数から選択でき、かつ短期間で修了するため、仕事や育児をしながら学びたい方でも安心です。
特に、エクセル作業を自動化して業務の生産性を上げたいと考えている方は、ぜひExcelマクロ・VBAセミナーの詳細をチェックしてみてください。
セミナー名 | Excelマクロ・VBAセミナー |
---|---|
運営元 | ProSkilll(プロスキル) |
価格(税込) | 27,500円〜 |
開催期間 | 2日間 |
受講形式 | 対面(東京・名古屋・大阪)・ライブウェビナー・eラーニング |
VBAのIFについてのまとめ
今回は、VBAにおけるIFステートメントの基本的な使い方や、関連する演算子について解説しました。IFは条件に応じた処理を実行するための構文であり、VBAでのデータ処理を効率化するうえで欠かせません。
VBAのIFをマスターすることで、条件に応じた柔軟なデータ処理ができるようになり、エクセルでの業務効率を大幅に向上させられます。
VBAをこれから学びたい方は、書籍や講座を利用して実践的にスキルを磨いていくとよいでしょう。
