【Excel VBA】For文以外の繰り返し処理

当ページのリンクには広告が含まれている可能性があります。
For文以外の繰り返し

こんにちは、ユーキです。

今回は、For文以外の繰り返し処理を紹介します。

For文の書き方については【Excel VBA】For文いろいろ で書き方をまとめていますので、そちらを参照ください。

目次

Do~Loop

Do While 条件 処理 Loop

条件を満たす(Trueになっている)間だけ、実行されます。For文とあまり差はありません。

処理を途中で抜けるには、「Exit Do」を使います。

Dim i As Integer
i = 1
'条件を満たす間だけ、実行される
Do While i < 5
    Debug.Print i
    i = i + 1
    If i > 3 Then
	’ループを抜ける
        Exit Do
    End If
Loop

Do 処理 Loop While 条件

While 条件文がLoopの後ろにつくパターンです。このループの特徴は、最低1回は処理が行われるということです。ループを途中で抜ける場合、「Exit Do」を使うのは先ほどと同様です。

Dim i As Integer
i = 10
'条件を満たす間だけ、実行される
Do
    Debug.Print i
    i = i + 1
    If i > 3 Then
	’ループを抜ける
        Exit Do
    End If
Loop While i < 5

Do Until 条件 処理 Loop

While部分をUntilにする書き方もあります。条件判定の考え方が逆になり、「条件に到達したら」処理終了となります。

Dim i As Integer
i = 1
'条件に到達したら処理を抜ける
Do Until i >= 5
    Debug.Print i
    i = i + 1
    If i > 3 Then
    'ループを抜ける
        Exit Do
    End If
Loop

Do 処理 Loop Until 条件

条件判定をループの最後にくる書き方も、Untilは指定できます。こちらも先ほどと同様、最低1回は処理が実行されます。

Dim i As Integer
i = 10
'条件に到達したら処理を抜ける
Do 
    Debug.Print i
    i = i + 1
    If i > 3 Then
    'ループを抜ける
        Exit Do
    End If
Loop Until i >= 5

While~Wend

「Do While 条件 処理 Loop」と同じです。条件を満たす間だけ、繰り返し処理を行います。

「Do While 条件 処理 Loop」と異なるのは、処理を途中で抜けることができない点です。もし、処理を中断したい場合は、Goto文を使うしかありません。

Dim i As Integer
i = 1
While i < 5
    Debug.Print i
    i = i + 1
Wend

まとめ

今回は、For文以外の繰り返し処理を紹介しました。

Point
  • ループの種類は、Do ~ Loop 4種類 + While~Wendの計5種類ある
  • Do 処理 Loop While/Until 条件 はどんな条件でも最低1回は動く
  • While~Wendは、処理中断できない

少しでもお役に立てば、幸いです。

スポンサーリンク
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

旅好き職業プログラマ。文系大学卒業後、ITソフトウエア開発会社に勤務してプログラミング言語を学ぶ。現在は転職し、プロジェクトマネージャ的ポジションで生産管理システムの開発にあたる。
得意言語は、VB、VB.NET、C#.NET、Java、SQLなど。

目次