dポイントプレゼントキャンペーン実施中!

「行の編集」というマクロがあるとします。
「行の編集」を100回実行したい時もあれば、
1000回実行したい時もあります。

駄目元でしたが、

行の編集 * 100

では駄目でした。

そういった時にALT+F8で、
何回も実行するのがすごく面倒です。

実行回数を任意で指定できれば、よりいいのですが、
回数を任意で出来ないにしても固定回数でもいいので、
VBAの記述の仕方など教えて下さい。

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/04/03 10:12

マクロの記録も良いが、それを骨格として支えているVBの知識を勉強してください。

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

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

お礼日時:2006/04/03 10:16

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
    • good
    • 0

コマンドボタンでも貼り付けて[行の編集の実行]というマクロを実行させるとか...



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
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/04/03 10:15

単純で申し訳ないですが、これなら100回実行します。


For i = 1 To 100
Call 行の編集
Next i
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/04/03 10:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!