【VBA】繰り返し処理を指定回数で飛ばしながら実行!ForNext演習!

f:id:yshgs_elec:20201213223708j:plain

この記事では、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まで数字が続いてきます。

通常のForNext文を実行した結果

 

ここからはこの処理を5つ飛ばしで実行する方法を2ご紹介します。

(上の画像のC列、D列にそれぞれ実行していきます。)

 

スポンサーリンク

For Nextを指定回数で飛ばしながら実行する方法

飛ばしありで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

上のコードを実行すると以下の画像のようになります。

ForNextを5つ飛ばしで実行した結果

しっかり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という記述があると思いますが、このように出力されるセルの場所も飛ばし値で割ってあげることで、出力先のセルに空欄が出てこなくなります。

※【 / 】ではなく【 ¥ 】を用いることで小数点無の答え部分のみを取り出すことが出来ます。

ForNextを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処理を指定した回数で飛ばし飛ばしで実行する方法についてご紹介しました。

 

データを間引く際などに活用できますのでぜひご活用ください。

 

このように私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。

・日々の残業時間を減らしたい。

・業務をもっと効率的にこなしたい。

・もっと勉強する時間を作りたい。

こんな思いを持っている人は、ぜひ他の記事も見てみてくださいね。

この記事が役に立ったという方は、ぜひ応援よろしくお願いします。

↓ 応援ボタン

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

それではまた!

コメント

タイトルとURLをコピーしました