Excel

【Excel】VBAマクロで空白なら何もしないで次へ、空白なら終了する方法(条件分岐)【If…Then…Else, Loop】

当サイトでは記事内に広告を含みます
いつも記事を読んでいただきありがとうございます!!! これからもお役に立てる各情報を発信していきますので、今後ともよろしくお願いします(^^)/

この記事では、ExcelのVBAマクロを利用して空白セルに遭遇した際の条件分岐処理について解説していきます。

ポイントとしては「If…Then…Else」構文と「Loop」を使用することです。

なお、下記の解説では完全な初心者でもわかりやすいように変数名を少々変わった名称にしております。

ご活用の際には適切な変数名に変更してくださいね。

それでは詳しく見ていきましょう!

VBAマクロで空白ならスキップで次へ(順々に)とする方法【If…Then…Else, Loop】

それではまず、空白ならスキップで次へとする方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub KuuhakuSkipShori()
    Dim sikiichi As Integer
    Dim hensuu As Variant

    ' 開始行を設定
    sikiichi = 2

    ' ループでA列のデータを確認し、空白なら次へ
    Do While Cells(sikiichi, 1) <> ""
        ' A列が空白ならスキップ
        If Cells(sikiichi, 1) = "" Then
            sikiichi = sikiichi + 1
            GoTo NextSikiichi
        End If
        
        ' A列のデータをB列にコピー
        hensuu = Cells(sikiichi, 1)
        Cells(sikiichi, 2) = hensuu
        
NextSikiichi:
        ' 次の行へ
        sikiichi = sikiichi + 1
    Loop
End Sub

コードのAlt+F8を押し、マクロ選択画面でKuuhakuSkipShori関数を実行します。

このマクロはA列のデータを確認し、空白セルに遭遇したらそのセルをスキップして次のセルへ進む処理を行います。こうすることで、空白セルを無視してデータのコピーを行うことができます。

VBAマクロで空白なら終了とする方法【If…Then…Else, Loop】

続いては、空白なら終了とする方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub KuuhakuShuuryouShori()
    Dim sikiichi As Integer
    Dim hensuu As Variant

    ' 開始行を設定
    sikiichi = 2

    ' ループでA列のデータを確認し、空白ならマクロ終了
    Do While Cells(sikiichi, 1) <> ""
        ' A列が空白ならマクロ終了
        If Cells(sikiichi, 1) = "" Then
            Exit Sub
        End If
        
        ' A列のデータをB列にコピー
        hensuu = Cells(sikiichi, 1)
        Cells(sikiichi, 2) = hensuu
        
        ' 次の行へ
        sikiichi = sikiichi + 1
    Loop
End Sub

コードのAlt+F8を押し、マクロ選択画面でKuuhakuShuuryouShori関数を実行します。

このマクロはA列のデータを確認し、空白セルに遭遇したらその地点でマクロを終了する処理を行います。これにより、空白セルまでのデータのみを処理し、それ以降のデータは無視することができます。

まとめ

以上で、ExcelのVBAマクロを使用して空白セルの処理を分岐する方法の解説を終えます。

If…Then…Else構文とLoopをうまく組み合わせることで、様々な条件下でのデータ処理を行うことが可能になります。

初心者の方でも理解しやすいように、変数名をわかりやすくしていますので、ぜひ参考にしてください。

それでは、実際に手を動かして、VBAマクロの力を体感してみてくださいね。

あなたのExcel作業効率が大幅にアップすることを祈っています!