VBA|条件によって処理を分岐する(If~Then 命令)

エクセルVBA VBAの基礎・入門



ここまでのVBAマクロでは、記述された順番に処理を実行していくものでした。

ですが、Excelでデータを分析したり計算したりする場合には、ある条件で処理を分岐させるなどの必要が出てきます。

このように処理を分岐するための命令として、「If~Then」ステートメントがあります。

その前に「ステートメント」という用語を解説します。



ステートメントとは

ステートメントとは、処理の最小単位のことです。

ちなみに、同じような用語に「関数」というものがあります。

ステートメントと関数は厳密には異なるものですが、今の時点ではそれを意識しなくても問題ないですので、ガシガシとコートを書いていきましょう(笑)

ちなみに、ステートメントの具体例なものは以下のものになります(ほんの一例です)

  • Dim : 変数を宣言し、メモリ領域を割り当てます。
  • If~Then : 条件によって処理を分岐します。
  • Open : ファイルを開いて、ファイルへ入出力できるようにします。

などがあります。ステートメントは何十個もありますので、今後少しずつ学習していけば大丈夫です。

If 条件式 Then 処理

「If~Then」ステートメントは、名前のとおり「もし~だったら、〇〇をする」というように、条件を満たしたときだけ処理を実行するものです。

記述方法は、

If 条件式 Then

  処理

End If

というように記述します。

「条件式」が「真」のと場合(つまり条件式を満たした場合)、「処理」が実行されます。

逆に言えば、条件式を満たさない場合には、「処理」が実行されません。

If~Thenの動作例

それでは、If~Thenの動作を確認してみましょう。

下の図のように、「佐藤太郎の得点が150点」と表示されています。

これを、「もし、佐藤太郎の得点が100点より大きければ、得点の文字色(つまりセルC3)を赤色にする」というIf~Thenのコードを記述してみます。

Sub 例()
    Dim Tokuten As Long
          
    Tokuten = Cells(3, 3).Value   '変数 Tokuten にセルC3の値を格納
    
    If Tokuten > 100 Then                'もし、Tokutenが100より大きければ、、、
        Cells(3, 3).Font.ColorIndex = 3  'セルC3の文字色を赤色に設定する
    End If                               'If~Then文の終わり
    
End Sub

これは、If~Thenの中で、

「セルC3の数値が100より大きければ、文字色を赤色にする」

という条件処理を指定しています。

実行すると、

得点が100点より大きいので、セルC3の文字色が赤になりました。

この「条件が満たされる」ことを、

「真(しん)」や「True(トゥルー)」

といいます。

それでは、もし得点が100より大きくなければどうなるのでしょうか。

実行してみると、If~Thenの条件式である「100点より大きい」を満たしていないので、If~Thenの処理は実行されないので、得点の色は赤色に変わりません。

この 「条件が満たされない」ことを、

「偽(ぎ)」や「False(フォルス)」

といいます。

If~Thenのまとめ

If~Thenは、「もし~だったら、〇〇をする」というように、条件を満たした場合に処理が実行されます。

逆に、条件を満たさない場合には処理が実行されません。




VBAの基礎・入門
ブイサバ【Excel VBAサバイバル】~とりあえずここに来れば解決できる~

コメント

  1. […] 参考: Excel VBA入門 その20:条件によって処理を分岐する(If~Then 命令) […]

  2. […] 参考:Excel VBA入門 その20:条件によって処理を分岐する(If~Then 命令) […]

  3. […] 参考:Excel VBA入門 その20:条件によって処理を分岐する(If~Then 命令) […]

  4. […] 参考: Excel VBA入門 その20:条件によって処理を分岐する(If~Then 命令) […]

タイトルとURLをコピーしました