「VBAの繰り返し処理について勉強したい」
この記事は、こんな人のためのものです。
これからVBAを勉強する人に向けて、初心者によりそった解説をしていきますので、ぜひ最後までごらんください。
それではさっそくやっていきます!
はじめに
繰り返し処理はVBAに限らず、プログラミングにおける基本中の基本です。
どんなに複雑そうな処理コードだとしても、やっていることは、シンプルな繰り返し処理を連続して行っているだけだったりします。
逆に言えば、この繰り返し処理をしっかりとマスターできていれば、難しい処理も簡単に記述できるようになるはずです。
VBAで繰り返し処理を行う方法はいくつかありますが、この記事では、【For Next】という繰り返し処理方法について説明していきます。
ぜひ一緒にエクセルを開き、スキルをマスターしていきましょう。
【For Next】の使い方説明
基本的な使いかたとしては以下のとおりです。
実行したい処理
Next
【変数】:この変数をひとつづつカウントしていくことで処理が進行します。使用する変数はなんでもOKです。 i や j などの適当な文字を宣言しておけば問題ありません。
【開始時の変数】:処理を行うときの最初のカウント数を指定します。
⇒この数字から処理が始めると思えばOKです。
【終了時の変数】:処理を行うときの最後のカウント数を指定します。
⇒この数字になったら処理が終わると思えばOKです。
とはいえ、この説明だけではよくわからないと思いますので、実際の使用例を見ていきましょう。
【For Next】の実際の使用例
ここからは実際の使用例を画像付きで説明していきます。
一重繰り返し処理方法
まずはシンプルな一重の繰り返し処理について説明します。
今回はA1セルからA9セルまでに順番にtest1,test2,test3,…test9という文字を入力していく処理を行ってみます。
やっていることはシンプルですが、繰り返し処理の基本はしっかりと理解できるはずです。
以下がその処理を行うVBAコードです。
Sub for_next1()
Dim i As Integer
For i = 1 To 9
Cells(i, 1) = "test" & i
Next
End Sub
このコードの実行結果は以下のようになります。
先ほど紹介した使い方と見比べてみましょう。
〇ForNext文の使い方
For 【変数】 = 【開始時の数字】 to 【終了時の数字】
実行したい処理
Next
〇実際のコードの一部
For i = 1 To 9
Cells(i, 1) = “test” & i
Next
全く同じ形で記述されていることがわかると思います。
※cells(*,*)の意味がわからないという人は以下の記事を参考にしてください。
実際の業務に適用していく場合、このcells( i , 1 ) = “test” & i の部分をあなたがやりたい処理に書き換えるだけです。
※ちなみにFor Nextを抜けたとき、変数は最後の処理から1プラスされています。もし、変数を引き続き使用する場合は注意しましょう。
というわけで、For Next処理の使い方を理解いただけたのではないでしょうか。
二重繰り返し処理方法
次はこの処理を二重にした場合にどのようになるかをご紹介していきます。
行列の処理などを行う場合には、頻繁に使用するスキルですので、よく理解しておきましょう。
さっそくですが、For Nextを二重で使っているVBAコードを紹介します。
Sub for_next2()
Dim i As Integer
Dim j As Integer
For i = 1 To 9
For j = 1 To 9
Cells(i, j) = "test" & i & j
Next
Next
End Sub
このコードを実行すると以下の画像のようになります。
内容を解説していきます。
このコードではFor と Nextがふたつずつ記述されていますが、組み合わせとしては
一つ目のFor と二つ目のNextがセット
二つ目のFot と一つ目のNextがセット
になっています。
For Nextのループは内側のセットの回っていくと覚えておきましょう。
図で表すと以下のような感じですね。
内側にあるjのループは、iのループが1進むごとに1~9まで回っています。
つまりjのループは合計9回繰り返されているということです。
さきほどのエクセルシートでループを説明すると、以下のようになります。
ざっくりと二重のFor Nextの使い方についても理解いただけたのではないでしょうか?
基本的には、内側のFor とNextから、順番に挟んでいくというふうに考えておけば、ループが何重になっても混乱せずに対応できるはずです。
おわりに
というわけで、今回は繰り返し処理の基本的あるFor Next処理の使い方についてご紹介しました。
自動化処理を行ううえで、避けては通れないスキルですので、ぜひマスターしておきましょう。
このように、このブログでは、エクセル(VBA)を中心に、様々な業務効率化スキルを紹介しています。
■業務の生産性を上げたい。
■早く帰って子供と遊びたい。
こんな人はぜひ他の記事も読んでみてください。
最後に・・・
このブログを応援してあげても良いよ、という方は以下のボタンをポチっていただけると嬉しいです。
Twitterもやっていますので、興味があれば覗いてみてください。
それではまた!!
コメント