- ベストアンサー
Excel VBAでの同一マクロの指定回数実行
「行の編集」というマクロがあるとします。 「行の編集」を100回実行したい時もあれば、 1000回実行したい時もあります。 駄目元でしたが、 行の編集 * 100 では駄目でした。 そういった時にALT+F8で、 何回も実行するのがすごく面倒です。 実行回数を任意で指定できれば、よりいいのですが、 回数を任意で出来ないにしても固定回数でもいいので、 VBAの記述の仕方など教えて下さい。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
プログラムの基本の「ループ文」を使います。 Sub 繰返し() Dim i As Integer Dim x As Integer On Error Resume Next x = InputBox("繰返し回数", "数字を入れてね。") For i = 1 To x Call 行の編集 Next End Sub
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
マクロの記録も良いが、それを骨格として支えているVBの知識を勉強してください。For Nextのような繰り返しはマクロの記録で出てきませんので、意識しなかったのでしょうが、勉強が逆さです。 (1)VBの基本(2)エクセルVBAのメソッド・プロパティ その(2)はマクロの記録で実用や勉強に役立ちます。しかしそれを少し変えて応用しなければならない場面はすぐ現れます。そのときつないでゆくのは、制御構造やその他の面です。 そのほかに、ロジック(やアルゴリズム)というものが、プログラムを組む上で大切です。
お礼
そうですね。VBAをより深く理解する上でVB自体の基本を学ぶ必要はあると思います。 今後、VBAをより友好的に活用できるように、時間を見つけてVBを学びたいと思います。
s_husky です。 エラートラップが必要みたいですね! Public Sub 行の編集の実行() On Error Goto Err_行の編集の実行 Dim I As Integer Dim N As Integer N = InputBox("[行の編集]を何回実行しますか?", "問い") For I = 1 To N 行の編集 Next I MsgBox N & " 回、[行の編集]を実行しました。" Exit_行の編集の実行: Exit Sub Err_行の編集の実行: Resume Exit_行の編集の実行 End Sub
コマンドボタンでも貼り付けて[行の編集の実行]というマクロを実行させるとか... Option Explicit Private Sub CommandButton1_Click() 行の編集の実行 End Sub Option Explicit Sub 行の編集() Worksheets(1).Cells(1, 1) = 100 End Sub Public Sub 行の編集の実行() Dim I As Integer Dim N As Integer N = InputBox("[行の編集]を何回実行しますか?", "問い") For I = 1 To N 行の編集 Next I MsgBox N & " 回、[行の編集]を実行しました。" End Sub
お礼
アドバイスとしては、No.1~No.4さんのアドバイスすべてを参考にさせていただきました。 しかし、最終的にはNo.2さんのアドバイスを使わせていただきましたので、 20ptはNo.2さんに入れさせいていただきます。
単純で申し訳ないですが、これなら100回実行します。 For i = 1 To 100 Call 行の編集 Next i
お礼
アドバイスを頂きありがとうございました。 お礼をするのをずっと忘れていました。 アドバイスとしてはシンプルですが、No.1さんのアドバイスを参考にさせていただきました。 ありがとうございました。
お礼
No.1さん申し訳ございません。 参考にさせていただいたのは、No.2さんのアドバイスでした。 ありがとうございました。