「VBA入門!」マクロで業務効率を上げる その4~if文~

VBA
スポンサーリンク

この記事で分かることは

  • 条件分岐:if文の使い方

もし、こういう条件だったら、こういう処理をして、違う条件なら、こっちの処理をしたい・・・

ということは頻繁にありますよね。そんな時に使うのが「if文」です。

本記事は、業務効率を改善するためにエクセルでの作業を自動化したいけど、何からしていいかわからないという方に対し、「If文」を体験していただきながらスッキリと理解できるように解説していきます。

1.「if文」を使ってみる

まずは、体験してみて動作を確認してみましょう。

セルA1に好きな数値を書いてから、以下のコードを実行してください。

Sub test()

If Range("A1").Value >= 10 Then
    Range("A3").Value = "10以上です"
Else    
    Range("A3").Value = "10以下です"
End If
End Sub

セルA1に記載した数値が10より大きいか小さいかを判断するコードです。 

「If文」の文法は、

If 条件1 Then

    条件1に合った場合の処理をするコード

Else

   条件1に該当しない場合を処理するコード

End If

となります。

解説をします。

実は、このコードには問題点があります

それは、最初の条件分岐で「10以上」に該当しな場合は、すべて「10以下です」と表示されてしまうことです。もしセルA1に何も入力していない場合でも、「10以下です」と表示されてしまいます。

では、条件分岐の数を増やして、

もしセルA1に何も記載されていない場合は「未記入です」

と表示させるようにしてみましょう。

補足:「Range(“A3”).Value」の解説は、以下の記事で行っておりますので、参考にしてください。

2.条件分岐が3つ以上ある場合

条件分岐が3つ以上ある場合は「Else if」を使用します。

「1.「if文」を使ってみる」でご紹介したコードを改造して、セルA1が未記入の場合に「未記入です。」と表示させるコードを作りました。

Sub test()

If Range("A1").Value = "" Then

    Range("A3").Value = "未記入です"

ElseIf Range("A1").Value >= 10 Then

    Range("A3").Value = "10以上です"
    
Else

    Range("A3").Value = "10以下です"

End If

End Sub

これで、空欄の場合「未記入です」と表示されるようになりました。

補足:「= “”」で空欄を指定することができます。

文法は、以下の通りとなります。

If 条件1 Then

    条件1に合った場合の処理をするコード

ElseIf 条件2 Then
    
    条件2に合った場合の処理をするコード

・
・
・

ElseIf 条件X Then

   条件Xに合った場合の処理をするコード

Else

   条件1~Xのどれにも該当しない場合を処理するコード

End If

「ElseIf」は、いくつあっても大丈夫です。

また、最後に「Else」が無く「ElseIf」になっていても大丈夫です。

3.終わりに

ここまで記事を読んでいただきありがとうございました。

「If文」はエクセルの作業を自動化する上で本当によく使用する文法ですので、今後も是非チャレンジしていただきたいです。

もし、不明点や理解しにくい点がありましたら、コメント欄にコメントをお願い致します

コメント

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