• ベストアンサー

VBAで初歩的な質問ですシートのコピーについて

Sub SheetCopy() For i=1 to 31 WorkSheets.Add.Move after:=WorkSheets(workSheets.Count) シート名=i ActiveSheet.Name=シート名 Next End Sub と、シートをコピーするプロシージャを作りました。本当は、シート名を7月1日から、7月31日の31枚を作りたいのですが、どのように書けばよいのでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 初歩的でも、やはり、月の日数は考慮したほうがよいでしょうね。 Sub SheetCopy2()   Dim mTotal As Integer   Dim j As Integer   Dim EoM As Date   j = 3 '初期シート枚数   Const mYear As Integer = 2007 '年   Const mMonth As Integer = 7 '月     EoM = DateSerial(mYear, mMonth + 1, 0) '月の終わりの日   mTotal = Day(EoM) 'シート枚数      Worksheets.Add After:=Worksheets(Worksheets.Count), Count:=mTotal     For i = 1 To mTotal     Worksheets(i + j).Name = Format$(EoM - mTotal + i, "M月d日")   Next End Sub

aki567
質問者

お礼

初心者で、すみませんでした。丁寧なご回答ありがとうございました。

その他の回答 (1)

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

シート名 = "7月" & i & "日"

aki567
質問者

お礼

ありがとうございました。やっぱりそうですね。やってみてエラーが出たので、たぶんタイプミスかなにかかと思います。