- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:AccessVBAからExcelシート名を操作)
AccessVBAからExcelシート名を操作
このQ&Aのポイント
- AccessVBAを使用して、Excelのシート名を操作する方法について教えてください。
- 特定の日付のシートをコピーし、翌日のシートにデータを流し込む方法を知りたいです。
- シート名を変更せずにコピーするか、元のシート名をリネームする方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#231195
回答No.2
#1です。 >元シート名(当日)に(2)が残ってしまいます。 ってあるから、残っちゃいけないのかと思いました。 シートをコピーした後は、そのコピーした先のシートがアクティヴになっていますから、そこでシートの名前を変えればいいです。 つまり xlSheet.Copy , xlBook.Worksheets(stSheetName1) のあとで、 xlApp.activesheet.Name = "複製シートの新しい名前" をとします。
その他の回答 (1)
noname#231195
回答No.1
xlSheet.Copy , xlBook.Worksheets(stSheetName1) の行をなくせばいいです。 >新たなシートを翌日にリネームするところまではできていますが、 新たなシートをリネームしていません。 xlSheetは元のシートstSheetName1ですから、 xlSheet.Name = DatePart("d", [Forms]![日報]![対象日]) '対象日(明日) は元のシートの名前を変えています。 それでコピーしたシートが不要なら、そもそもコピーする必要はないです。
質問者
お礼
ご回答、ありがとうございます。 おっしゃる通り、新たなシートのリネームではないのですが、結果的にその動きをしています。 元シートは残す必要があるので、どうしてもコピーしなければなりません。 いただいたお話で少し整理できました。 もう少し考えてみます。ありがとうございました。
お礼
ありがとうございます! xlApp.activesheet.Name で、翌日のシートが無事できました。 そこで、次なる問題が発生してしまいました。 複製したシートを一番左にもって行きたいのですが、可能でしょうか? 具体例(Excelシート名と見立てて) 元は、 27 27(4) 27(3) 27(2) とシートが並んでいます。 教えていただき、28のシートが作成できました。 これを、 28 27 27(4) 27(3) 27(2) と並べたいのですが。 教えていただいた記述では 27 28 27(4) 27(3) 27(2) と並んでしまいます。 VBAの一連の流れで可能でしょうか?