logologo
VBA初心者でもわかる!IFステートメントで条件分岐をマスターしよう
thumb_vbaif_01

VBA初心者でもわかる!IFステートメントで条件分岐をマスターしよう

アンドエンジニア編集部
2024.12.16
この記事でわかること
IFステートメントでの条件分岐について、条件に応じた処理の切り替え方法を学ぶ
VBAにおける基本的な構文の理解として、IF文の基本構文や使い方のポイントを解説
複数条件やSelect Caseの使い分け、ElseIfやSelect Caseでの条件分岐

VBAのIFステートメントとは?

img_vbaif_01

Excel上でVBAマクロを作成する際、IFステートメントはプログラムの実行中に、条件に基づいて処理を分岐させるための重要な機能です。IFステートメントでは、ある条件が真(True)か偽(False)かによって、実行する処理を切り替えることができます。

IFステートメントはExcelのマクロを作成する上で、非常に頻繁に利用される構文ですので、VBAを使うなら最初にマスターしておきましょう。また、『And』や『Or』などの論理演算子を使って複雑な条件を作成する方法や、『ElseIf』による複数条件の分岐も学ぶと理解が深まります。

この記事では、VBAのIFステートメントを中心に、VBAで条件分岐を実現するIF文の基本構造と使い方、効果的に使うためのポイントを紹介していきます。

【参考】:If...Then...Else ステートメントを使用する (VBA) | Microsoft Learn

そもそもVBAとは

VBA(Visual Basic for Applications)は、ExcelなどのMicrosoft Officeアプリケーションで使用できるプログラミング言語です。VBAを使用することで、データ処理の自動化や複雑な操作を効率的に行えます。

VBAはVB(Visual Basic) と呼ばれるWindows環境に特化したプログラミング言語がベースになっており、そこから派生してMicrosoft Officeに搭載されたものです。

VBAとは?基本的な知識やできること、マクロとの違い、メリットを解説!

VBとVBAの違い

VB(Visual Basic)とVBA(Visual Basic for Applications)は、どちらもマイクロソフトが開発したプログラミング言語で、文法は非常に似ています。しかし、その目的や実行環境に大きな違いがあります。違いを中心に、それぞれの特徴を見てみましょう。

■ VB(Visual Basic) VBは、WindowsアプリケーションやWebアプリケーションの開発など、スタンドアロンで動作するプログラムを作成できます。開発環境としては、Visual Studioのような専用の開発環境が必要となります。またVBは、GUIの作成、データベースアクセス、ネットワーク通信など、様々な機能を備えています。

【参考】:Visual Basic - はじめに| Microsoft

■ VBA(Visual Basic for Applications) VBAはExcel、Word、AccessなどのMicrosoft Office製品に組み込まれたプログラミング言語で、これらのアプリケーションを自動化するために使用されます。特別な開発環境を必要とせず、Officeアプリケーションの中で開発が行えます。

プログラミングは主にマクロの記録機能やVBE(Visual Basic Editor)を使って行います。また機能としては、Officeアプリケーションの機能を拡張する範囲が中心です。

【参考】:Office VBA の基礎知識 | Microsoft Learn

GUIとは?CUIとの違いやメリット・デメリットをエンジニア向けに解説!

VBAのコーディングと実行手順

img_vbaif_02

VBAでコードを作成する際の基本的な流れを確認しましょう。ここでは、ExcelにおけるVBAのコーディング例を交えて、VBAプログラム(マクロ)の実行までを解説します。

手順1:開発タブを表示する

Excelの「ファイル」メニューから「オプション」を開き、「リボンのユーザー設定」から「開発」タブにチェックを入れます。これで、メニューにデフォルトで「開発タブ」が表示され、VBAに関する操作が行えるようになります。

img_vbaif_03
【図】:Excelファイルメニュー>オプション>リボンのユーザー設定>開発

手順2:VBE(Visual Basic Editor)を開く

VBAのコード入力、実行の環境が整ったら、VBAに関わる操作が可能になります。最初に①「開発」タブをクリックしたら、続いて表示された②「Visual Basic」をクリックして、③VBAコードを記述するためのVBE(Visual Basic Editor)を開きます。

img_vbaif_04
【図】:Excel 開発タブ>「Visual Basic」> VBE(Visual Basic Editor)

手順3:モジュールを挿入する

「挿入」メニューから「標準モジュール」を選択し、コードを書くための新しいモジュールを追加します。ボックスの右側にコードを入力するための新たなモジュールが表示されます。

img_vbaif_05
【図】:VBA>挿入>新しいモジュール

手順4:コードを書く

モジュール内に今回の主題である、IFステートメントやマクロのコードを入力します。

ここでは「A1セルの値が10より大きいか否かを比較し、入力された数字に合致したメッセージを表示する」マクロを入力します。

Sub If文の例()
If Range("A1").Value > 10 Then
        MsgBox "A1の値は10より大きいです"
    Else
        MsgBox "A1の値は10以下です"
    End If
End Sub

img_vbaif_06
【図】:VBAモジュールにコードを入力する

手順5:コードを実行する

VBAモジュールにコードを入力したら、メニューから『実行』を選び、リストから実行したいSubプロシージャをクリックします。

img_vbaif_07
【図】:VBAモジュールを実行する

手順6:コードの実行結果を確認する

Excelの画面上で、VBAモジュールを実行した結果、次のメッセージボックスが表示されました。A1セルには12を入力しましたので、「A1の値は10より大きいです」という正しい結果が表示されました。

img_vbaif_08
【図】:VBAモジュールの実行結果を確認する

IFステートメントについて

img_vbaif_09

VBAの利用手順について、実際にIFステートメントを用いながら解説しました。ここでVBAでは最もよく利用する、IFステートメントについて、もう少し詳しく掘り下げてみましょう。

条件によって処理を分岐させる仕組み

IFステートメントは、特定の条件に基づいて処理の流れを変えるためのものです。例えば、セルの値が一定の基準を超えていれば特定の操作を実行する、といった場面で使われます。プログラミングにおける条件分岐は柔軟な自動化を可能にするために重要です。

VBAでのIFステートメントの書き方

VBAのIFステートメントは、様々な条件に応じて処理を分岐させるために非常に重要な構文です。まずは基本的な構文を確認しておきましょう。

■ 基本的な構文 VBAにおけるIFステートメントの基本的な構文は次の通りです。

If 条件式 Then
    ' 条件が真の場合に行う処理
Else
    ' 条件が偽の場合に行う処理
End If

If: 条件式の始まりを示します Then:条件が真の場合に実行する処理の開始を示します Else:条件が偽の場合に実行する処理の開始を示します End If: Ifブロックの終わりを示します

【コード例】

If Range("A1").Value > 60 Then
    MsgBox "合格点です"
Else
    MsgBox "不合格点です"
End If

このコードでは、セルA1の値が60より大きいかどうかを判定し、条件によって異なるメッセージを表示します。

■ 複数の条件を判定する ElseIf:複数の条件を判定したい場合に利用します。

【コード例】

Sub 評価チェック()
Dim score As Integer
    score = Range("A1").Value
    If score >= 90 Then
        MsgBox "優"
    ElseIf score >= 80 Then
        MsgBox "良"
    ElseIf score >= 70 Then
        MsgBox "可"
    Else
        MsgBox "不可"
    End If
End Sub

このコードではセルA1のscoreの値に応じて、 "優" 、 "良" 、 "可" 、 "不可" のいずれかのメッセージを表示します。「Dim score As Integer」で、セルA1の値を格納するための整数型変数scoreを宣言しています。

「score = Range("A1").Value」により、セルA1の値をscore変数に代入しています。実際にコードを書いて実行させてみましょう。

img_vbaif_10
【図】:VBA複数判定のVBAコード例

実行結果を見てみましょう。正しく結果が表示されています。セルA1に様々な点数を入力して、検証してみましょう。

img_vbaif_11
【図】:VBA複数判定の実行結果例

■ 1行で書く 処理を1行で書きたい場合には、次のように簡潔に書くことができます。

「If 条件式 Then 処理」

【コード例】

If Range("A1").Value > 10 Then MsgBox "A1の値は10より大きいです"

条件式

VBAのIFステートメントにおいて、条件式とは、ある条件が「真」か「偽」かを判定するための式です。この条件式の評価結果によって、実行される処理が分岐します。条件式で使えるものとしては、比較演算子・論理演算子・算術演算子・関数・セル参照「Range("A1")など」、変数があります。

・比較演算子: =, >, <, >=, <=, <> ・算術演算子:「+」「-」「*」「/」など ・論理演算子:And、Or、Not ・比較対象:値、文字列、セル参照など ・Nested If(入れ子のIf文):If文の中にさらにIf文を入れ子にし、より複雑な条件分岐を実現する手法 ・Select Case:複数の値と比較する場合に便利な構文

※Select Caseは1つの変数に対して複数の値を比較する場合に便利で、例えば成績の評価やカテゴリー分けの処理などに使います。以下はIF文と同様に条件分岐を行うためのSelect Case文の使用例です。

【Select Caseコード例】

Select Case セルの値
   Case 10
        MsgBox "値は10です"
    Case 20
        MsgBox "値は20です"
    Case Else
        MsgBox "それ以外の値です"
End Select

プログラミングで用いる変数とは?学んだその先のキャリアへの活用

■ 条件式の注意点 複数条件や複数処理など、AndとOrの組み合わせになったり、3つ以上の条件があったり、条件式が複雑になる場合には、次のように括弧で優先順位を明示すると良いでしょう。

【コード例】

If (条件1) And (条件2 Or 条件3) Then
    ' 条件1と条件2または条件3がTrueの場合の処理
End If

VBAのIFステートメントを利用してExcelを自動化しよう

img_vbaif_12

ここまでExcelの自動化を図る上で役立つ、VBAのIFステートメントについて解説しました。VBA入門者向けにVBAの基本から、IFステートメントの使い方までの一連の流れを理解することで、VBAマクロの活用範囲が一気に広がります。

Select CaseやNested Ifを駆使することで、業務の効率化や自動化に向けた様々なシーンで活用できるでしょう。ぜひVBAのIFステートメントを習得して、業務効率化に役立てましょう。

その他の関連記事

その他に関連する内容は、下記の記事でも紹介しています。ぜひ参考にしてください。

【参考】:Excelの表の作り方!基本から応用まで表の作成方法を図解

【参考】:Excelのマクロとは?初心者向けに概要からできること・作り方を解説

【参考】:Excelを読み取り専用にするには?解除できない場合の対処も解説

【参考】:Excelのプルダウンを作成するには?初心者向けに3ステップで解説

【参考】:Excelのチェックボックスを作るには?新機能と従来機能を解説

【参考】:Excelのセル内改行方法を解説!実務で使える活用テクニック

【参考】:Excelで日付から曜日を算出するには?基本からカスタマイズまで

【参考】:Excelの文字を縦書きにするには?基本操作と表示の調整を図解

【参考】:Excelで重複データを削除するには?確認と削除の仕方を図解

【参考】:Excelで掛け算をマスターしよう!初心者向けにやさしく解説

【参考】:Excelで文字列を結合するには?文字列演算子や関数の使い方

【参考】:Excelでのグラフの作り方とは?プレゼンテーションで効果的に活用

【参考】:ExcelのCOUNTIF関数の使い方は?基本操作から応用まで

気になる人のXをフォローしよう!
公式LINE
公式YouTube
マイナビITエージェント

編集部オススメコンテンツ

Sponsored
【年収±診断】6つの質問に答えて、真の市場価値をチェック!
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供

カテゴリー

編集部おすすめコンテンツ

Sponsored
【年収±診断】6つの質問に答えて、真の市場価値をチェック!
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

logologo
Powered by マイナビ AGENT