• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCELマクロ ループする方法について)

EXCELマクロ ループする方法について

このQ&Aのポイント
  • EXCELのマクロを使用して、Sheet1のB4から下に順番に名前を変更したシートを作成する方法について教えてください。
  • 行いたいことは、原本のシートをコピーしてシートの名前を変更し、Sheet1のB4から下に順番に変更していくことです。
  • 試みた方法は、B4から順番に新しいSheetを作りシートの名前を変更し、原本からコピーしましたが、列幅などがコピーできませんでした。空欄になるまでループさせる方法を教えてください。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

定石の一つとして憶えておいてください。 sub macro1()  dim h as range  worksheets("Sheet1").activate  for each h in range("B4:B" & range("B65536").end(xlup).row)   worksheets("原本").copy after:=worksheets(worksheets.count)   activesheet.name = h  next end sub #バリエーション sub macro2()  dim r as long, h as range  r = worksheets("Sheet1").range("B65536").end(xlup).row  for each h in range("B4:B" & r)  :  以下同じ #バリエーション sub macro3()  dim r as long, i as long  r = worksheets("Sheet1").range("B65536").end(xlup).row  for i = 4 to r   worksheets("原本").copy after:=worksheets(worksheets.count)   activesheet.name = worksheets("Sheet1").cells(i, "B")  next i end sub

100303
質問者

お礼

ご回答ありがとうございました。 最終行を見つけるとは考えませんでした。 大変 勉強になりました。 ありがとうございました!

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

一例ですが >それをB列が空欄になるまでループさせる。という方法を >考えましたが、「空欄になるまで」という そのままをコードにすれば Range("B4").Activate Do While ActiveCell.Value <> "" ActiveCell.Offset(1, 0).Activate 'ここでにご希望の処理 Loop こういった形になります。 B4セルをアクティブにして ひとつづつ下方向へアクティブセルを移動 空白になったらLoopg終了 といった考え方です。 コードとしてはあまり紹介できない形ですが 参考になりますでしょうか。

100303
質問者

お礼

ご回答ありがとうございます。 大変参考になりました。

すると、全ての回答が全文表示されます。

関連するQ&A