VBA For Next |
||||
| わずかな知識で VBA! |
VBA For Next |
|||
繰り返しのステートメント For NextFor Nextステートメント For Nextステートメントは、あらかじめ処理回数を指定する基本的なループ方法です。 Do Loopステートメントで書かれたサイコロゲームのサイコロの目を表示する部分を Dim i As IntegerDim i As Integer i = 0 Do Until i = 10 sainome = Int(6 * Rnd + 1) Range("C5").Value = sainome sainome = Int(6 * Rnd + 1) Range("C7").Value = sainome i = i + 1 Loop For Nextステートメントで書きなおすと For i = 1 To 10 sainome = Int(6 * Rnd + 1) Range("C5").Value = sainome sainome = Int(6 * Rnd + 1) Range("C7").Value = sainome Next i となります。 For Nextステートメントは、決められた数だけ繰り返しますが。 Do Loopステートメントは、ある条件が整うまで、繰り返します。 上記の例を言い換えると、For Nextステートメントは10回繰り返しますが、 Do Loopステートメントは、「i」が10になるまで繰り返します。 Do Loopステートメントでは、「i」に1を加えていかなければなりませんが、 For Nextステートメントにはその必要はありません。 また、Do Loopステートメントよりは、処理が早いと言われていますが、 サイコロゲーム程度では意識しなくてもいいでしょう。 |
わずかな知識で VBA! ![]() |
|||
Stepキーワードにより 増加値を変える Stepキーワードにより 増加値を2つとした例です。 For i = 1 To 100 Step 2 sainome = Int(6 * Rnd + 1) Range("C5").Value = sainome sainome = Int(6 * Rnd + 1) Range("C7").Value = sainome Next i この条件式に、整数型の変数を使用することができます。 Dim i As Integer Dim sheetsu As Integer sheetsu = Worksheets.Count For i = 1 To sheetsu Worksheets(i).Name = "計算書" & i Next i For Nextステートメントの中での条件分岐 Dim i As Integer Dim sheetsu As Integer sheetsu = Worksheets.Count For i = 1 To sheetsu Worksheets(i).Name = "計算書" & i If i = 5 then Exit For i が5ならFor Next から抜けて次の処理に進む Next i MsgBox i i がシート数になるか、5になればこれ以降の処理が実行されます。 |
||||
For Each Nextステートメント 前の例では、シート数を取得してから処理を行っていましたが、コレクションを対象にループする場合は、 コレクションに含まれるオブジェクトの数を知らなくても実行できる For Each Nextステートメントという便利なものがあります。 サイコロゲームでシート保護をかけるプロシージャがそれです。 Dim Wsheet As Worksheet オブジェクト変数の宣言 For Each Wsheet In Worksheets For Each (オブジェクト変数) In (コレクション) Wsheet.Unprotect Password:="sheet85" Next Wsheet Nextステートメントで次のオブジェクトに Next Wsheetの Wsheetは、省略可ですが、入れ子にした時に分かりずらくなります。 |
||||
わずかな知識でVBA! TOP マクロで何ができる? ユーザーインターフェース マクロの記録 マクロの登録 イベントについて マクロの編集とデバッグ ゲームで覚えるVBAプログラミング オブジェクトの操作 セルの操作 MsgBox関数・InputBox関数 変数の型 ヘルプの活用 イミディエイトウィンドウ Withステートメント Setステートメント 条件分岐のステートメント If Then Else,Select Case 繰り返しのステートメント Do Loop 繰り返しのステートメント For Next ダイアログボックスを作ってみよう1 ダイアログボックスを作ってみよう2 【実践編】 ActiveXコントロール 各コントロールのプロパティ 文字列の操作 Endプロパティ リンク・検索 相互リンク マイプロフィール YouTubeの部屋 |
||||
Copyright (C) わずかな知識でVBA! All Rights Reserved