• ベストアンサー

このマクロの繰り返し?

VBA初心者です。 これを、繰り返し(入れ子)でもっと省略できますか? Sub test() Dim retu1 As Integer retu1 = 50 Do While retu1 >= 1 Cells(retu1, retu1 + 50).Interior.ColorIndex = 9 retu1 = retu1 - 1 Loop 'ココから先をもっと簡単にしたいです! retu1 = 50 Do While retu1 >= 1 Cells(retu1 + 1, retu1 + 50 - 1).Interior.ColorIndex = 9 retu1 = retu1 - 1 Loop retu1 = 50 Do While retu1 >= 1 Cells(retu1 + 2, retu1 + 50 - 2).Interior.ColorIndex = 9 retu1 = retu1 - 1 Loop End Sub どなたか、お願いします。

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

  • ベストアンサー
  • toshi_2000
  • ベストアンサー率30% (306/1002)
回答No.1

for i=0 to 2 retu1 = 50 Do While retu1 >= 1 Cells(retu1 + i, retu1 + 50 - i).Interior.ColorIndex = 9 retu1 = retu1 - 1 Loop next これでループ3回が1回ですみます。

nanakokko
質問者

お礼

すばらしい回答!!! こんな回答を求めていました!! さすが専門家サマサマです(泣)・・・ ほんとうにありがとうございました!!

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

'単に1つにまとめるといいと思います。 Sub test() Dim retu1 As Integer retu1 = 50 Do While retu1 >= 1 Cells(retu1, retu1 + 50).Interior.ColorIndex = 9 Cells(retu1 + 1, retu1 + 50 - 1).Interior.ColorIndex = 9 Cells(retu1 + 2, retu1 + 50 - 2).Interior.ColorIndex = 9 retu1 = retu1 - 1 Loop End Sub

nanakokko
質問者

お礼

ありがとうございます!! 誠に失礼なのですが、もうちょっと、短く出来ないかなあ・・・

関連するQ&A