• ベストアンサー

Excel VBAでの同一マクロの指定回数実行

「行の編集」というマクロがあるとします。 「行の編集」を100回実行したい時もあれば、 1000回実行したい時もあります。 駄目元でしたが、 行の編集 * 100 では駄目でした。 そういった時にALT+F8で、 何回も実行するのがすごく面倒です。 実行回数を任意で指定できれば、よりいいのですが、 回数を任意で出来ないにしても固定回数でもいいので、 VBAの記述の仕方など教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

プログラムの基本の「ループ文」を使います。 Sub 繰返し() Dim i As Integer Dim x As Integer On Error Resume Next x = InputBox("繰返し回数", "数字を入れてね。") For i = 1 To x Call 行の編集 Next End Sub

hikari_tai
質問者

お礼

No.1さん申し訳ございません。 参考にさせていただいたのは、No.2さんのアドバイスでした。 ありがとうございました。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

マクロの記録も良いが、それを骨格として支えているVBの知識を勉強してください。For Nextのような繰り返しはマクロの記録で出てきませんので、意識しなかったのでしょうが、勉強が逆さです。 (1)VBの基本(2)エクセルVBAのメソッド・プロパティ その(2)はマクロの記録で実用や勉強に役立ちます。しかしそれを少し変えて応用しなければならない場面はすぐ現れます。そのときつないでゆくのは、制御構造やその他の面です。 そのほかに、ロジック(やアルゴリズム)というものが、プログラムを組む上で大切です。

hikari_tai
質問者

お礼

そうですね。VBAをより深く理解する上でVB自体の基本を学ぶ必要はあると思います。 今後、VBAをより友好的に活用できるように、時間を見つけてVBを学びたいと思います。

noname#22222
noname#22222
回答No.4

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

noname#22222
noname#22222
回答No.3

コマンドボタンでも貼り付けて[行の編集の実行]というマクロを実行させるとか... 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

hikari_tai
質問者

お礼

アドバイスとしては、No.1~No.4さんのアドバイスすべてを参考にさせていただきました。 しかし、最終的にはNo.2さんのアドバイスを使わせていただきましたので、 20ptはNo.2さんに入れさせいていただきます。

noname#123709
noname#123709
回答No.1

単純で申し訳ないですが、これなら100回実行します。 For i = 1 To 100 Call 行の編集 Next i

hikari_tai
質問者

お礼

アドバイスを頂きありがとうございました。 お礼をするのをずっと忘れていました。 アドバイスとしてはシンプルですが、No.1さんのアドバイスを参考にさせていただきました。 ありがとうございました。

関連するQ&A