Home » いちばんやさしいExcel VBAの教本 » VBAにはWhile~Wendというループ文もある

Excel VBA入門書である拙著『いちばんやさしいExcel VBAの教本』は、初学者向けに学習項目を減らすために、あえて書かなかった項目がたくさんあります。

本書で扱っていない項目を省略した理由と学習するタイミング

普通の変数(値型・基本型)、制御構文はIf文とFor~Next文だけを解説し、本書で扱っていない学習項目については、どの順序で学習すべきか等をLesson 78「本書で扱っていない項目を省略した理由と学習するタイミング」でお伝えしています。

実は、Lesson 78にも書いていないループの構文が、VBAには存在しています。
While~Wendというループ文です。

While~Wend文を使ったサンプルマクロ

簡単なサンプルを見ましょう。
以下のSubプロシージャを実行すると、B1:B5セルに「合格」と入力されます。

Sub sample()
 Dim i As Long

 i = 1
 While i <= 5
  Range("B" & i).Value = "合格"
  i = i + 1
 Wend
End Sub

Whileの行とWendの行がセットになっており、Whileの直後にループ処理し続ける条件を指定します。

上記のSubプロシージャは、「i <= 5」(変数iが5以下の間)、WhileとWendの間に書かれている、
  Range("B" & i).Value = "合格"
  i = i + 1
が繰り返し実行されます。

While~Wend文はDo While~Loop文と同じ

上記のWhile~Wend文は、Do~Loop文の一種Do While~Loopと同じ挙動をします。

Sub sample2()
 Dim i As Long

 i = 1
 Do While i <= 5 ' While i <= 5
  Range("B" & i).Value = "合格"
  i = i + 1
 Loop ' Wend
End Sub

Do Loop文のほうが、ループを抜ける条件や回し続ける条件を柔軟に指定できるのに対し、While~Wend文はWhileの直後にループ処理を続ける条件指定しかできません。

While~Wend文を使ったコードは、ほとんどないのではないかと思いますけれど、万一見かけたときは、上記のとおりDo While~Loopと同じだと思って読んでください。

将来読む人の負荷を下げる書き方をしましょう

ちなみに、このようなあまり見かけないコードを見たときに、自分でテストしてみることは、とてもいいことです。

ですが、実際に使うコードの中に、残すべきではありません。

実務で使うプログラムは、(未来の自分を含む)将来そのコードを読む人の負荷を少しでも下げることを考え、読むときに苦労しないような書き方をしましょう。

[スポンサードリンク]

Home » いちばんやさしいExcel VBAの教本 » VBAにはWhile~Wendというループ文もある

「いちばんやさしいExcel VBAの教本」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.