![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
EXCELマクロ ループする方法についてです。
お世話になります。
教えてください。
EXCELのマクロについてです。
Sheet1のB4から下方に30程度の名前が並んでいます。
名前は毎回変わり、人数も変わります。
他に「原本」というSheetがあります。
行いたいことは、原本のシートをコピーしてシートの名前を
Sheet1のB4から下に順番に変更していきたいのです。
当初、B4からの順番に新しいSheetを作りSheetの名前を変更して
原本からコピー(書式、数式、列幅、値等)しようと試みましたが
数式や値はコピーできましたが列幅などがコピーできません。
そこで原本を「シートのコピー」で新しいコピーした
Sheetを作り名前をB4に変更する。
それをB列が空欄になるまでループさせる。という方法を
考えましたが、「空欄になるまで」という
記述がわかりません。
教えていただければ助かります。
よろしくお願いします。
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
No.1
- 回答日時:
一例ですが
>それをB列が空欄になるまでループさせる。という方法を
>考えましたが、「空欄になるまで」という
そのままをコードにすれば
Range("B4").Activate
Do While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Activate
'ここでにご希望の処理
Loop
こういった形になります。
B4セルをアクティブにして
ひとつづつ下方向へアクティブセルを移動
空白になったらLoopg終了
といった考え方です。
コードとしてはあまり紹介できない形ですが
参考になりますでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Excel(エクセル) シート名を簡単に書く方法があれば教えてください。 4 2023/08/24 12:40
- Visual Basic(VBA) excelにて、特定の列に数字入力してあれば、入力してある行コピーして 別ファイルに張り付ける 2 2022/08/11 05:33
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 11:55
- Visual Basic(VBA) VBA 最終行まで数式をコピーする 3 2023/01/03 15:44
- Visual Basic(VBA) 最終行の指定について教えてください。 複数シートを1シートへまとめる下記マクロでは各シートの6行目を 1 2022/10/04 18:37
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBScriptでExcel(2019)上のデー...
-
VBAアクティブセル行で列範囲選択
-
ローマ字→カタカナへ変換(エク...
-
エクセルVBAでセルに入力したパ...
-
EXCELのセルへ、デジタル時計を...
-
ShowAllDataのエラーを回避したい
-
Excel2000 データの並べ替えで...
-
Excel:コマンドボタンの移動
-
選択範囲の反転
-
Excel VBA のdebug(F8キー) が...
-
コマンドボタンを押すたびに大...
-
Excelを開いた時に表示さ...
-
エクセルVBAでOptionButtonのオ...
-
Excel VBA --- コマンドボタ...
-
excelに貼り付けた数値が勝手に...
-
コマンドボタンで「終了ボタン...
-
【エクセル】 キーを押すと、...
-
エクセルVBA
-
マクロ 実行ボタンを押さずに...
-
エラーになってないのにVBA...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBScriptでExcel(2019)上のデー...
-
python fbprophetについて
-
VBAアクティブセル行で列範囲選択
-
入力データをマクロで消去した...
-
VBA OLEObject テキストボック...
-
ローマ字→カタカナへ変換(エク...
-
エクセルVBAでセルに入力したパ...
-
Excel:コマンドボタンの移動
-
マクロ 実行ボタンを押さずに...
-
コマンドボタンを押すたびに大...
-
複数ファイルにある特定のシー...
-
Excel VBA のdebug(F8キー) が...
-
EXCELのセルへ、デジタル時計を...
-
スクロールしてもボタンを常に...
-
押したボタンの位置取得(共通の...
-
excelに貼り付けた数値が勝手に...
-
エラーになってないのにVBA...
-
【マクロ】シート名を取得する...
-
Excelを開いた時に表示さ...
-
コマンドボタンがあるかどうか...
おすすめ情報