初心者オサムシがExcelのマクロと戦う戦闘ブログである
by オサムシ
タグ:Do Loop ( 1 ) タグの人気記事
Do Loop ステートメント/マクロ基礎

Do Loop ステートメント



Do Loop ステートメント は、指定した条件によって処理を繰り返す

1.繰り返し前で条件を判定する
Do 条件
処理
Loop
条件を満たさなかった場合、処理は1回も実行されない

2.繰り返しの後で条件を判定する
Do
処理
Loop 条件
条件を満たさなかった場合でも、1回処理が実行される
その後は繰り返さない

条件に対して2つの選択肢がある

1.真の時繰り返す While 条件
2.偽の時繰り返す Until 条件

言葉で書いたところでイマイチ意味がわかりにくいので、マクロを書いてみましょう
Sub sample1()
Dim a As Variant 'aの変数宣言
Dim n As Variant 'nの変数宣言
n = 1 '0からでは困るので1を代入
a = Cells(n, 1) 'aにセル値を代入
Do Until IsEmpty(a) 'aが空でなかったら処理を続ける
If vbOK = MsgBox(a, vbOKCancel) Then
Else: Exit Do 'OKが押されなかった場合Doから抜ける
End If
n = n + 1 '1つ下のセルへ
a = Cells(n, 1) 'aにセル値を代入
Loop 'Loopここまで
End Sub

実行してみよう
まず、シートのA1セルから下に1,2,3,4,5と入力
d0285354_047155.jpg

マクロを実行
d0285354_048457.jpg

d0285354_048841.jpg

d0285354_0481390.jpg

d0285354_0481721.jpg

d0285354_0482060.jpg

ここでA6セルはEmpty(空)の為、ループ処理が終わる
A列に値が入っている限り、延々と続いてしまうので、Ifにてキャンセルボタンを押した場合はLoopから抜ける手段を用意しておいた。

Do Loopもよく使いそうなステートメントだね、覚えておこう!osamushi

オサムシじゃーなる
[PR]
by 03musi | 2013-01-17 01:00 | マクロ 基礎