*当ブログではアフェリエイト広告を利用しています。

VBA

【VBA】VBAで繰り返し処理を実装する。ループの基礎から応用まで!

momeq
モー
モー

今回は、VBAでForやWhileを使ってループさせる方法を学んでいきます。

プログラミングの世界では、単純な操作を何度も繰り返すことは当たり前です。しかし、それを手作業で行うのは時間の無駄ですし、ヒューマンエラーの可能性も高まります。

そこで活躍するのが「ループ」です。ループは一連の指示を何度も実行することを可能にし、複雑な処理をシンプルに、効率的に実現します。

この記事では、VBAのループ処理の基本から応用までを解説します。ループの理解と使いこなせる技術を身につけることで、あなたのプログラミングスキルは新たなレベルへと飛躍します。

それでは、一緒に見ていきましょう!

VBAでの基本的なループ構造

VBAではいくつかのループ構造が提供されています。最も基本的なものはFor...NextDo...Loopです。

For…Next

For...Nextループは、決まった回数だけ繰り返し処理を行う際に使用します。以下は基本的な使い方です。

上記コードを実行することで、1から10までの数字を出力されます。

Do…Loop

一方、Do...Loop条件に応じてループを続ける、または終了するために使用します。

i = 1
Do While i <= 10
    Debug.Print i
    i = i + 1
Loop

このコードも1から10までの数字を出力しますが、ループの終了条件はDo Whileの後の式によって決定されます。

ループの中断とスキップ

ループの中断

Exit ForまたはExit Doを使うと、ループの途中でループを終了させることができます。

例えば、次のコードは1から10までの数値を表示しますが、5に達した時点でループを終了します。

For i = 1 To 10
    If i = 5 Then Exit For
    Debug.Print i
Next i

Do…Loopの場合はExit Doを使います。

ループのスキップ

VBAには他言語のContinueなどのスキップ機能を持った構文はありませんが、GoToステートメントとラベルを組み合わせることで同じ効果を得ることができます。

次のコードは1から10までの数値を表示しますが、5のときだけ出力をスキップします。

For i = 1 To 10
    If i = 5 Then GoTo Skip
    Debug.Print i
Skip:
Next i

3. VBAにおける高度なループの利用

ループ処理は、Excelシート内のセルを走査したり、配列の要素を操作したりする際に特に便利です。

また、ループ内で条件分岐を使用することで、より複雑な処理を行うことも可能です。

Dim rng As Range
Dim cell As Range

Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1:A10")

For Each cell In rng
    If cell.Value > 5 Then
        cell.Interior.Color = RGB(255, 0, 0)  ' 赤色にする
    End If
Next cell

このコードは、Sheet1のA1からA10までのセルを走査し、セルの値が5より大きい場合にセルの背景色を赤色に変更します。

これらはVBAのループに関する基本的な知識ですが、練習と試行錯誤を重ねることで、より複雑で効率的なコードを書くことができるようになります。どんな作業も自動化することが可能なので、是非ともチャレンジしてみてください。

モー
モー

VBAを体系的に学びたい場合、本で学ぶことをお勧めしています。

kindle unlimited(キンドルアンリミテッド)であれば、いくつかのVBA関係の本を無料で読むこともできますよ。

Kindle Unlimited

記事URLをコピーしました