Excel 変数 For Next構文
前回、前々回と登場したマクロVBAのコード内に登場していた「i」や「lngRw」という謎の文字があったかと思います。これは変数と呼ばれるものです。
はじめの黄色い枠
Dim lngRw As Long・・・変数lngRwを宣言
Dim lngCl As Long・・・変数lngClを宣言
Dim i As Long・・・変数iを宣言
Dim=変数の宣言
As Long=整数型、数値、値が代入されることを意味します。
DimとAsLongの間は、自分で任意の文字列を決めることが出来ます。
次の黄色い枠
lngRw = Range(“A100000”).End(xlUp).Row =lngRwという変数にデータが入っている最後の行番号の値を入れる。
lngCl = Range(“XFD1”).End(xlToLeft).Column =lngClという変数にデータが入っている最終の列番号の値を入れる。
毎回、決まった行、列までにデータが入力されていれば良いのですが、大概は入力してある行や列は毎回異なります。なので、どこまでデータが入力しているかを把握するためにデータが入っている最終の行番号の値と最終の列番号の値を変数に入れています。
例えば、Range(Cells(1, 1), Cells(lngRw, lngCl)).Selectとコードを記述した場合、データの入っている範囲を指定することが出来ます。
このように常に固定された値ではなく、値などが変動する場合には、変数を使います。
For Next構文
For 変数 = 初期値 To 終了値 Step 値
処理
Next
ForとNextの間に書かれた処理を繰り返します。繰り返す回数は、初期値と終了値で決定します。
For i = lngRw To 2 Step -1 =データが入っている最終の行から2行目まで処理を繰り返します。
変数iには、処理が繰り返される度に最終行の値が-1づつ減っていきます。最終的にiの値が2になると繰り返しは終了します。
Next =Forに戻る、iの値が2の場合は、Forに戻らずに繰り返し処理が終了する。
For Next構文の繰り返しとIF Then構文の条件分岐がわかると作業の効率化に役立つマクロVBAを組むことが出来るようになってきます。手作業ならどのような手順になるか書き出してみたり、マクロの記録を使ったりすると作業の効率化ができる部分が見えてくるかもしれません。
コメントを投稿するにはログインしてください。