繰り返し処理をするFor~Next(2)
For~Nextステートメント マクロ講座23回-2
繰り返し処理をするFor~Nextステートメント
23回の続きです。記録のマクロでセルを同じ色に塗るという操作を10回繰り返しましたが、
それをFor~Nextステートメントを使って書き換えます。
(サンプルファイルは、こちらから マクロ講座23回サンプルデータ)
For~Nextステートメント解説
繰り返し命令は非常に重要です。
繰り返し命令が、できるからこそマクロを作る価値があるといっても過言ではないでしょう。
For~Nextステートメントは、最も代表的なものです。
For~Next ステートメントは
と記述するものす。
For と Next の直後に記される変数名(この例ではカウンタ変数)はと繰り返し回数までの処理で使われる変数名は同じものでなければなりません。
この命令の意味は、
「カウンタ変数を開始値から終了値まで変化させ、Next文まで の間に記された『繰り返し回数までの処理(命令)』を繰り返しなさい。」です。
For~Next をサンプルマクロに当てはめる
これをサンプルのセルの背景色をA1からA10まで赤く塗る記録マクロに適用すると
For カウンタ変数 = 1 To 10 Range("A" & カウンタ変数).Interior.ColorIndex = 3 ' 繰り返し回数までの処理 Nextのようになるのです。 この例の場合は For 文と Next 文の間に記された命令が カウンタ変数が10になるまで10回繰り返されることになります。
For ~Nextは、次のように使います。
カウンタに使う変数は、宣言しないといけません。
それから変数の型も指定しないといけませんね。
変数は、ローマ字でkとかiとか書いてもいいのですが、
変数を先程は、カウンタ変数としましたが、こんどは「行は変数」という名前にします。
それから変数の型も指定しないといけませんね。
変数は、ローマ字でkとかiとか書いてもいいのですが、
変数を先程は、カウンタ変数としましたが、こんどは「行は変数」という名前にします。
Sub 背景を塗るColorIndexで() Dim 行は変数 As Integer For 行は変数 = 1 To 10 Range("A" & 行は変数).Interior.ColorIndex = 3 Next End Sub
Sub 背景を塗るColorプロパティで() Dim 行は変数 As Integer For 行は変数 = 1 To 10 Range("A" & 行は変数).Interior.Color = RGB(255,0,0) Next End Sub
それから、セルの範囲は、Range("A1")という指定方法のほかに、
Cells(1 , 1)という指定方法もあります。
列番号はA,B,Cを1,2,3と読み替えるだけです。
マクロの時は、Cells(行番号,列番号)のほうが、扱いやすいですね。
Cells(1 , 1)という指定方法もあります。
列番号はA,B,Cを1,2,3と読み替えるだけです。
マクロの時は、Cells(行番号,列番号)のほうが、扱いやすいですね。
セルを斜めに赤く塗りつぶすマクロは、Cells(行番号,列番号)と、
For~Nextを使って、次のようになります。
For~Nextを使って、次のようになります。
Sub セル斜めに色を塗る() Dim 行は変数 As Integer For 行は変数 = 1 To 10 Cells(行は変数,行は変数).Interior.ColorIndex = 3 Next End Sub
For~Next の変数をColorIndexの番号に利用する
せっかく変数があるので、それをColorIndexに利用します。
Sub kurikaesi3() Dim 変数 As Long For 変数 = 2 To 21 Cells(変数, 変数).Interior.ColorIndex = 変数 Next End Sub
コードを実行すると、このようになります。セルの変数とColorIndexの変数が同じです。
こちらは、変数を2つ使っています。
Sub kurikaesi4() Dim hensuu1 As Long, hensuu2 As Long hensuu1 = 21 For hensuu2 = 1 To 21 Cells(hensuu1, hensuu2).Interior.ColorIndex = hensuu2 hensuu1 = hensuu1 - 1 Next End Sub
コードを実行すると、このようになります。Cellsの変数hensuu2とColorIndexのhensuu2が同じです。
For~Nextステートメントについては、まだまだ例題を紹介していきますよ。
今日の講義は以上です。お疲れ様でした。
今日の講義は以上です。お疲れ様でした。