【VBA】For-Next文の繰り返し処理を逆順で実行する方法!

この記事では、VBAでFor文を逆順に実行する方法をご紹介していきます。

普段はFor i = 1 to 10 とかにして1から10まで繰り返していると思いますが、これを10から1までという形で行うイメージですね。

 

あなたのやりたいことと一致していればぜひ続きをご覧ください。

 

それではさっそくやっていきましょう!

 

スポンサーリンク

逆順での【For-Next】を実行する方法

さっそくですが、やり方のご紹介です。

 

逆順でFor Nextを実行するには以下のようにコードを記述します。

※10から1までの場合

For i = 10 to 1 step -1
・・・・
Next

 

要は終了値 to 開始値という形にして 最後に step -1 をつけるだけですね。

これはstep -2 とかにすれば、1つ飛ばしで逆順実行できます。

 

実際の使用例を見てみましょう。

スポンサーリンク

逆順での【For-Next】実行例

以下がFor Nextを逆順で実行した際のサンプルコードです。

Sub test_for_next()
    Dim i As Integer, c As Integer
    c = 0
    For i = 10 To 1 Step -1
        c = c + 1
        Cells(i, 1) = c
    Next
End Sub

 

やっていることは以下の通りです。

①For Nextを逆順で実行

②For Nextの内部で繰り返し回数をカウント

③Cells(i,1)に繰り返し回数を記述

(②がないとわけがわからなくなるのであえてこんなことをしています。)

こいつを実行すると以下のような結果が得られました。

VBAでFor文を逆実行した結果

セル内に書かれている数値は、何回目の繰り返し処理かを表しているので、A10セルへの記述が1回目の処理、A9セルへの記述が2回目の処理、という形で実行されているというわけです。

⇒きちんと逆順で実行できていそうですね。

 

ついでに先ほどちょろっと紹介した飛ばし飛ばしでも実行してみましょう。

以下のコードを実行してみます。

Sub test_for_next()
    Dim i As Integer, c As Integer
    c = 0
    For i = 10 To 1 Step -3
        c = c + 1
        Cells(i, 1) = c
    Next
End Sub

こいつを実行すると以下のような結果が得られました。
VBAでFor文を逆実行した結果(ステップあり)こちらも問題なく実行できました。

 

ひとつ飛ばしの方法については以下で詳しく解説しています。

興味があればこちらもご覧ください。

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

 

スポンサーリンク

おわりに

というわけで今回はFor Nextでの繰り返し処理を逆順で実行する方法をご紹介しました。

シート上を下から上に処理したい場合などに活躍スキルです。

 

ぜひやり方を覚えておきましょう。

 

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

過去記事一覧

 

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。

⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

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

↓ 応援ボタン

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

それではまた!

コメント

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