- ベストアンサー
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枚を作りたいのですが、どのように書けばよいのでしょうか? よろしくお願いします。
- みんなの回答 (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
その他の回答 (1)
- toshi_2000
- ベストアンサー率30% (306/1002)
シート名 = "7月" & i & "日"
お礼
ありがとうございました。やっぱりそうですね。やってみてエラーが出たので、たぶんタイプミスかなにかかと思います。
お礼
初心者で、すみませんでした。丁寧なご回答ありがとうございました。