マクロVBAには繰り返し処理の機能でFoe Next や Do Loopなどがありますが
繰り返し回数を指定できればとても便利ですよね。
例としてFor Nextでは繰り返し開始位置と終わる位置を設定します。
その数値をプログラム実行中に入力して変化させたい方は
とっても役立つ知識となります。
それでは見ていきましょう。
⬛︎使用する機能
まず使用する機能を紹介します。
繰り返し処理についてはFor Nextを使用して
開始行と終わる行の入力についてはInputBoxを使用します。
詳細について知りたい方は下記リンクをご参照ください。
【マクロVBA知識 7】FOR…NEXTで指定した数値で繰り返し・ループ動作をする。 ► 独学エクセル塾 (dokugakuexcel.com)
【マクロVBA㊱】実行中に入力画面を表示して文字・数値を活用、変数に格納する方法InputBox ► 独学エクセル塾 (dokugakuexcel.com)
⬛︎こんなことができるようになる!
本記事を理解していただくことで下図のような事ができるようになります。
①プログラム実行時にダイアログが表示され、繰り返し回数を入力する
②1で入力した回数分繰り返し処理を行う
⬛︎実践
では実際の内容に移りたいと思います。
今回はFor Nextでのパターンを紹介するのでプログラムを
コピーしていただいて、改造していくのが良いかもしれません。
・For Nextで入力した回数分、繰り返し処理を実行する。
見本で下図のようなシートを作成しました。
仕組みとしては基準値に数値①を○○回プラスするようにしてみます。
回数が決まっているのであれば下のようなプログラムになります。
見本で3回繰り返すようにしています。
Sub 基準値に数値①を○○回足す()
Dim N As Long
Cells(3, 5) = Cells(3, 2)
For N = 1 To 3
Cells(3, 5) = Cells(3, 5) + Cells(3, 3)
Next N
End Sub
実行した結果はこちらです。
結果は基準値の5に1を3回プラスするので8となってます。
今回はここの「To 3」を任意の数値に変えたいということになりますね。
その時に使用するのがInputBoxです。
InputBoxの構文は下記の通りです。
入力先・変数 = InputBox(prompt, [ title ], [ default ], [ xpos ], [ ypos ], [ helpfile, context ])
今回は表示メッセージの「prompt」以外省略して活用していきましょう。
表示するメッセージは「繰り返し回数を入力してください。」とします。
プログラムはこのようになります。
Cycle = InputBox(“繰り返し回数を入力してください。”)
これで入力した数値を変数Cycleに格納し、
「To Cycle」とすることで繰り返し回数を指定できることになります。
これを先ほどのプログラムと合わせるとこのようになります。
Sub 基準値に数値①を○○回足す()
Dim N As Long, Cycle As Long
Cycle = InputBox(“繰り返し回数を入力してください。”)
Cells(3, 5) = Cells(3, 2)
For N = 1 To Cycle
Cells(3, 5) = Cells(3, 5) + Cells(3, 3)
Next N
End Sub
それでは実行していきましょう。
結果はこのようになります。
実行するとダイアログが表示され、「繰り返し回数を入力してください。」というメッセージ
とともにダイアログボックスに数値を打ち込めるようになっています。
今回は見本で5を押してみましょう。
「OK」を押すと5回繰り返し処理を行います。
結果は基準値3に対し1を5回足したので結果は8になってます。
参考に数値①を2にして繰り返しを8回にした結果も見てみましょう。
結果はこのようになります。
これでプログラム実行時にダイアログで入力した数値分、繰り返し処理を行うことが
できるようになりました。
変則的な自動計算などが求められる時に使えますね。
■まとめ
いかがだったでしょうか。
InputBoxを使えばこのようなことができます。
開始位置も同様に設定が可能です。
是非参考にしてみてください。
それでは次回の記事でお会いしましょう。