『Excel』 VBAでちょっと便利!?(その6)
Excelでのプログラミング6回目です。
前回に引き続き、処理を繰り返し行う方法を紹介します。
前回の「for ~ to ~ next」では、繰り返す回数を指定して行いましたが、今回は回数ではなく繰り返す条件を指定するものになります。
■繰り返し(その2)
DO ~ LOOP
【構文(書き方)】
①
Do [While 条件式]
<処理>
Loop
または
②
Do [Until 条件式]
<処理>
Loop
①は条件式が真(True)の間、つまり条件を満たす間(While)繰り返し<処理>を行います。
②は条件式が真(True)になるまで、つまり条件が満たされるまで(Until)繰り返し<処理>を行います。
【条件式】
◇比較演算子(大小を比べる式)を使った条件式◇
X = 10 (10と等しい)
X <> 10 (10と等しくない)
X > 10 (10より大きい)
X >= 10 (10以上)
X < 10 (10より小さい)
X <= 10 (10以下)
◇論理演算子(真為値/値が正しいか正しくないかを判断する式)を使った条件式◇
比較演算子と併せて使われます。
よく使われるのは、AND(かつ) と OR(あるいは) です。
X > 10 AND X <= 20 (Xが10より大きく、かつ、20以下)
X <= 10 OR X > 20 (Xが10以下、あるいは、20より大きい)
では実際にプログラムを入力して試してみましょう。
「開発」タブから「Visual Basic」を選択し、VBEを開いてください。
「挿入」-「標準モジュール」を選択し、プログラムを入力します。
※コメント欄「’~」は入力しなくても大丈夫です。
(説明のために付けてあります。)
Option Explicit '------------------------------ 'セルのA1~A10に1~10を入力する '------------------------------
Sub test1() Dim i As Integer '変数「i」を単精度整数として宣言 i = 1 '「i」に初期値1を代入 Do While i < 11 '「i」の値が11より小さい間、 'Do~Loopを繰り返す '11になったらLoopの次の行へ Sheets("Sheet1").Cells(i, 1).Value = i 'セル(i行1列)に「i」の値を入力 i = i + 1 '「i」の値を1増やす Loop '繰り返しここまで End Sub '------------------------------ 'セルのA1~A10に1~10を入力する '------------------------------ Sub test2() Dim i As Integer '変数「i」を単精度整数として宣言 i = 1 '「i」に初期値1を代入 Do Until i = 11 '「i」の値が11になるまで、 'Do~Loopを繰り返す '11になったらLoopの次の行へ Sheets("Sheet1").Cells(i, 2).Value = i 'セル(i行2列)に「i」の値を入力 i = i + 1 '「i」の値を1増やす Loop '繰り返しここまで End Sub
入力したら、Sub test1()~End Subの間にカーソルがある状態で実行ボタンを押します。
続けて、Sub test2()~End Subの間にカーソルがある状態で実行ボタンを押します。
結果は同じです。
状況に合わせて適宜使い分けてください。
次回は条件判断による処理の分岐(条件によって別な処理を行う)について説明します。