重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

『リスト』シートのC列に社員の氏名をずらーっと入力してます。
※C1には氏名とタイトルがあり、C2から実際の氏名を記入してます。
『原本』シートを複製して、シート名をリストのC列の社員の名前に変更したいです。
調べて下記コードを実行したら、C1のタイトルのシートまで出来てしまいます・・・
そして出来るシートの順番が下からの順番になってしまいます・・・
▶Dim maxRow As Long: maxRow = listSheet.Cells(Rows.Count, 3).End(xlUp).Row
この辺りを編集すればいいと思うのですが、知恵が足りず進めません、、、orz
お知恵を拝借出来れば幸いです!!

使用したコード↓
Sub createNewSheetFromListUsingTemplate()

'行数用の変数
Dim i As Long
'リストシート
Dim listSheet As Worksheet: Set listSheet = Worksheets("リスト")
'最終行を格納する変数
Dim maxRow As Long: maxRow = listSheet.Cells(Rows.Count, 3).End(xlUp).Row
'新しいシート名を格納する変数
Dim sheetName As String
'新しいシートを格納する変数
Dim newSheet As Worksheet
'ひな形となるシートを格納する変数
Dim templateSheet As Worksheet: Set templateSheet = Worksheets("原本")

For i = 1 To maxRow
sheetName = listSheet.Cells(i, 3).Value

templateSheet.Copy after:=templateSheet

Set newSheet = ActiveSheet

newSheet.Name = sheetName
Next i

End Sub

A 回答 (1件)

For i = 1 To maxRow



For i = maxRow To 2 step -1
にしてください。
こちらで、動作確認はしていませんので、
バックアップをとってから実行してください。
    • good
    • 1
この回答へのお礼

助かりました

すごいです!
躓いていたところ、二つとも解消できました!
ありがとうございます!!
時間ある際に、もう少し基礎から勉強しようと思います。
今回は本当にありがとうございましたm(>▽<)m

お礼日時:2022/03/10 17:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!