この記事では、VBAの繰り返し処理で用いる【For Next構文】を、指定回数で飛ばし飛ばしで実行する方法についてご紹介していきます。
通常のFor Next構文にたったの一文加えるだけで実行できます。
初心者向けに事例を交えてご紹介していきますので、ぜひ最後までご覧ください。
それでは早速やっていきます!
飛ばし無しのFor Next文のおさらい
まず始めに、飛ばし処理なしのFor Next文についておさらいしておきましょう。
◆単純なFor Next構文の例
Sub step_sample0()
Dim i As Integer
For i = 1 To 100
Cells(i + 2, 2) = i
Next
End Sub
上のVBAコードを実行すると、以下の画像のようにi という変数を1つずつ値を増やしながら切り替えし記入していくことが可能です。
※画像は都合上17までしか表示されていませんが、100まで数字が続いてきます。
ここからはこの処理を5つ飛ばしで実行する方法を2ご紹介します。
(上の画像のC列、D列にそれぞれ実行していきます。)
For Nextを指定回数で飛ばしながら実行する方法
飛ばしありでFor Nextを使う方法は以下の通りです。
For i = 開始値 to 終了値 Step 飛ばし値
例えば
For i = 1 to 100 Step 5
としておけば、i は
1, 6, 11, 16・・・というように処理が行われていきます。
とはいえ、これだけではイメージが付かないと思うので 先ほど紹介した繰り返し処理なしの事例を飛ばしありで実行していく事例をご紹介します。
For Next構文(飛ばしあり)の実行例
とはいえ、これだけではイメージが付かないと思うので 先ほど紹介した繰り返し処理なしの事例を飛ばしありで実行していく事例をご紹介します。
◆飛ばしありでのFor Next 構文の例1
Sub step_sample1()
Dim i As Integer
For i = 1 To 100 Step 5
Cells(i + 2, 3) = i
Next
End Sub
上のコードを実行すると以下の画像のようになります。
しっかり5つ飛ばしで処理が実行されていますね。
とはいえ、このようにせっかく処理を飛ばしたにも関わらず、出力したデータが飛び飛びになってしまっていますね。
これではデータが見ずらいので、次はこの間の空欄セルが出てこないように出力する方法をご紹介します。
◆飛ばしありでのFor Next 構文の例2
Sub step_sample2()
Dim i As Integer
For i = 1 To 100 Step 5
Cells((i + 2) \ 5 + 3, 4) = i
Next
End Sub
上のコードを実行すると以下の画像のようになります。
(i+2)¥5という記述があると思いますが、このように出力されるセルの場所も飛ばし値で割ってあげることで、出力先のセルに空欄が出てこなくなります。
※【 / 】ではなく【 ¥ 】を用いることで小数点無の答え部分のみを取り出すことが出来ます。
これで飛ばし飛ばしのデータが見やすくなりましたね。
この処理は以下のように変数を用いて行うこともできますので、このようなやり方もぜひ覚えておきましょう。
実行した結果はD列の結果とまったく同じになります。
Sub step_sample3()
Dim i As Integer
Dim num_step As Integer
step_num = 5
For i = 1 To 100 Step step_num
Cells((i + 2) \ step_num + 3, 5) = i
Next
End Sub
おわりに
というわけで今回はVBAのFor Next処理を指定した回数で飛ばし飛ばしで実行する方法についてご紹介しました。
データを間引く際などに活用できますのでぜひご活用ください。
このように私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
・日々の残業時間を減らしたい。
・業務をもっと効率的にこなしたい。
・もっと勉強する時間を作りたい。
こんな思いを持っている人は、ぜひ他の記事も見てみてくださいね。
この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント