• ベストアンサー

ExcelVBAのマクロを特定条件まで繰り返し。

初めて質問させていただきます。 ExcelVBAで特定マクロを特定回数あるいは隣のセルが空欄になるまで実行させたいのですが、VBAの知識が乏しく判りません。例えば、セルB1~D1を選択してマクロAを実行し、セルA2が空欄で無ければ改行、セルB2~D2を選択してマクロAを実行、、、とセルAが「空欄」になるまで繰り返します。この作業を約1000行程度行わせるため、手作業では途方も無い時間を費やすことになります。 ご指導いただければ助かります。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

こういう感じでしょうか? アクティブなシートに対して行なっています。ちがうのであれば、With ActiveSheetのところを変えてください。 Sub test01() i = 1 With ActiveSheet Do Until .Cells(i, 1).Value = "" .Range(.Cells(i, "B"), .Cells(i, "D")).Select Call マクロA i = i + 1 Loop End With End Sub

steinbach
質問者

お礼

ご返答、ありがとうございました! 最初はエラーが出たのですが、 「Call マクロA」を「Application.Run "マクロA"」に 変更するのみで思い通りの作業が出来るようになりました。 おかげさまで年内に片付けられます。

その他の回答 (1)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

#1の回答者merlionXXです。 うまくいってよかったですね。 ところで一つだけ教えてください。 Call マクロA ではエラーに成り、 Application.Run "マクロA" でOK になるとはマクロAはどのようなマクロなのでしょうか? ひょっとして対象とするBOOKではなく他のBOOKに書いてあるマクロですか?

steinbach
質問者

補足

"マクロA"は、指定したセルB~Dに記載されているデータを結合させるマクロです。 ご指導いただいた方法の実行時、同一Bookには書いてなかったかも知れません。(年始の出社時に試してみます)

関連するQ&A