処理を条件分岐させる[If文]|CATIAマクロの作成方法

今回はマクロ作成には必須の構文『If文(条件分岐文)』についての内容です。
VBAで条件分岐する際に使われる代表的な構文が「If文」です。
今回はそんな「If文」の書き方をサンプルコードと合わせて解説していきます。

非常に重要かつ使用頻度の高い構文なのでここでしっかりと押さえておきましょう。
今回学べる内容は以下のとおりです。

 条件分岐文とは
 If文の書き方(Else ElseIfも含む)

※サンプルコードでInputBox関数を使用しているので、InputBox関数が何ものか理解していない方は下記ページを先に読んでおくことをオススメします。

 

If文(条件分岐文)

条件分岐文とは文字のとおり、ある条件によって実行する処理の内容を分岐させるための文のことです。簡単に言えば「もし××の場合、〇〇をする」というようなイメージです。

処理を条件分岐させるには「If」を使って以下のように書きます。

icon-code If文 

If 条件① Then
  処理①
End If

上記のコードの場合、「もし条件①を満たしていたら、処理①を行う」という動作を行います。
このとき、条件①を満たしていない場合は処理①は実行されないままマクロの処理が進みます。
 

サンプルコード

上記の構文を使ったサンプルです。
InputBox関数で受け取った数字が5より大きい場合のみメッセージが表示されます。
5以下の数字が入力された場合、数字以外が入力された場合は何も処理が行われません。

 

If Else文

上記のIf文ではある条件をみたしているときに処理を行うだけで、満たしていない場合には何も処理を行うことができません。

条件を満たしていない場合に何か処理を行いたい場合は「Else」を使い以下のように書きます。

icon-code If Else文 

If 条件① Then
  処理①
Else
  処理②
End If

上記の場合、「もし条件①を満たしていたら処理①を、満たしていなければ処理②を行う」という動作を行います。
 

サンプルコード

上記の構文を使ったサンプルです。
InputBox関数で受け取った数字が5より大きい場合「入力された数字は5より大きいです。」、5以下の数字が入力された場合/数字以外が入力された場合は「5より大きい数字を入力して下さい。」とそれぞれメッセージが表示されます。

 

If ElseIf文

「If文」「If Else文」はともに条件を1つしか指定することができませんでした。

複数の条件別に処理を割り振るには「ElseIf」を使い以下のように書きます。

icon-code If ElseIf文 

If 条件① Then
  処理①
ElseIf 条件② Then
  処理②
ElseIf 条件③ Then
  処理③
End If

上記の場合、「条件①を満たす場合は処理①を、条件②を満たす場合は処理②を、条件③を満たす場合は処理③を実行する」という動作を行います。
 

サンプル

上記の構文を使ったサンプルです。
InputBox関数で受け取った数字が5より大きい場合「入力された数字は5より大きいです。」、5以下の数字が入力された場合は「入力された数字は5以下です。」、数字以外が入力された場合は「入力値が無効です。」とそれぞれメッセージが表示されます。

 

条件の設定

これまでに出てきたサンプルを見ればある程度理解できると思いますが、条件の部分には計算式のような形で”条件式”を入力します。

icon-code If文 

If 条件① Then ’←この部分
  処理①
End If

条件式に使用できる比較演算子(式)は以下のとおりです。

比較演算子 意味
A > B AはBより大きい
A >= B AはB以上
A < B AはBより小さい
A <= B AはB以下
A = B AとBは等しい
A <> B AとBは等しくない

たとえば「変数Xが10以上の場合」という条件にしたい場合は「If X >= 10 Then」と書きます。
ブール型の変数の場合は「If Y = True Then」「If Y = False Then」というように「True」「False」を使って条件分岐をすることも可能です。
 

条件文として「条件①と条件②どちらも満たす場合」や「条件①と条件②のどちらかを満たす場合」といった複数の条件を判定したい場合は、以下のいずれかの論理演算子を使います。

論理演算子 意味
A And B AかつB
A Or B AまたはB
Not A Aではない

たとえば「変数Xが10以上の場合」かつ「変数YがTrueの場合」という2つの条件を満たしている場合を条件式として表したいときは、「If X >= 10 And  Y = False Then」というように論理演算子を使い2つの条件式をくっつけて使用することができます。
 

サンプルコード

上記の構文を使ったサンプルです。
InputBox関数で受け取った2つの数字のうちどちらか片方が5より大きい数字の場合のみ「入力した数字のいずれかは5より大きいです。」とメッセージが表示されます。

 

まとめ

今回はIf文(条件分岐文)についての内容でした。
条件分岐文として「Select Case文」というものもありますが、初心者のうちは今回やった内容さえ理解できていれば条件分岐で困ることはありません。

条件分岐はどのプログラミング言語でも重要な内容です。
これができないとユーザーが何も決めることのできない決められた動作しかできないマクロしか作成することができません。

使用頻度はかなり高い(ほぼどのマクロでも使用します)ので「If文」「If Else文」「If ElseIf文」は必ず理解しておきましょう。

参考:VBA開発元のMicrosoft社のIf文の説明ページ
検索結果 ウェブ検索結果 If…Then…Else ステートメント (VBA) | Microsoft Docs

 
目次へ戻る
 

icon-book CATIAマクロを本気で勉強するなら

 

 

CATIA, CATIAマクロ

Posted by Lic