前提・実現したいこと
excel vbaにてシートの数だけ処理を繰り返し、シートの名前が"雛形"になると
処理を抜けるコードを書き、処理が終了したシートを削除するマクロを組もうと
しています。
※処理:セルの値のコピペ
-追記-
前提・実現したいことに致命的な部分が抜けておりました。
雛形(A)に値を代入後、代入完了した雛形(A)をコピーで増やし、増やした雛形(B)の名前を、代入元シートのセル値を充てております。
発生している問題・エラーメッセージ
2回目以降の繰り返しが上手くいかず、値の代入先がずれてしまいます。
該当のソースコード
VBA
1 Dim i As Variant 2 For i = Worksheets.Count To 1 Step -1 3 Sheets("雛形").Range("A4") = Worksheets(i).Range("B2") 4 Sheets("雛形").Range("B1") = Worksheets(i).Range("B3") 5 Sheets("雛形").Range("B2") = Worksheets(i).Range("B4") 6 7 Sheets("雛形").Range("V13") = Worksheets(i).Range("B8") 8 Sheets("雛形").Range("Z13") = Worksheets(i).Range("B9") 9 10 Range("A4,B1,B2,V13,Z13").VerticalAlignment = xlCenter 11 12 Sheets("雛形").Range("AA1:AE1").Merge 13 Sheets("雛形").Range("V13:X14").Merge 14 Sheets("雛形").Range("Z13:AA14").Merge 15 16 Worksheets("雛形").Copy after:=Worksheets("雛形") 17 18 Sheets("雛形 (2)").Name = Range("A4") 19 20 Sheets("雛形").Range("AA1:AE1").UnMerge 21 Sheets("雛形").Range("V13:X14").UnMerge 22 Sheets("雛形").Range("Z13:AA14").UnMerge 23 24 Worksheets("雛形").Range("A4,B1,B2").Clear 25 Worksheets("雛形").Range("AA1,B29,V13,Z13").ClearContents 26 Sheets(2).Select 27 Application.DisplayAlerts = False 28 Worksheets(Worksheets.Count).Delete 29 Application.DisplayAlerts = True 30 31 Next 32
試したこと
シート削除のコードがfor worksheets.countを邪魔しているのかと思い、
コメントアウトしたものの結果は変わりませんでした。
補足情報(FW/ツールのバージョンなど)
excel2010
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/10/29 07:17
退会済みユーザー
2020/10/29 07:51