• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:AccessVBAからExcelシート名を操作)

AccessVBAからExcelシート名を操作

このQ&Aのポイント
  • AccessVBAを使用して、Excelのシート名を操作する方法について教えてください。
  • 特定の日付のシートをコピーし、翌日のシートにデータを流し込む方法を知りたいです。
  • シート名を変更せずにコピーするか、元のシート名をリネームする方法を教えてください。

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

  • ベストアンサー
noname#231195
noname#231195
回答No.2

#1です。 >元シート名(当日)に(2)が残ってしまいます。 ってあるから、残っちゃいけないのかと思いました。 シートをコピーした後は、そのコピーした先のシートがアクティヴになっていますから、そこでシートの名前を変えればいいです。 つまり xlSheet.Copy , xlBook.Worksheets(stSheetName1) のあとで、 xlApp.activesheet.Name = "複製シートの新しい名前" をとします。

ZAlpLw
質問者

お礼

ありがとうございます! 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の一連の流れで可能でしょうか?

その他の回答 (1)

noname#231195
noname#231195
回答No.1

xlSheet.Copy , xlBook.Worksheets(stSheetName1) の行をなくせばいいです。 >新たなシートを翌日にリネームするところまではできていますが、 新たなシートをリネームしていません。 xlSheetは元のシートstSheetName1ですから、 xlSheet.Name = DatePart("d", [Forms]![日報]![対象日]) '対象日(明日) は元のシートの名前を変えています。 それでコピーしたシートが不要なら、そもそもコピーする必要はないです。

ZAlpLw
質問者

お礼

ご回答、ありがとうございます。 おっしゃる通り、新たなシートのリネームではないのですが、結果的にその動きをしています。 元シートは残す必要があるので、どうしてもコピーしなければなりません。 いただいたお話で少し整理できました。 もう少し考えてみます。ありがとうございました。

関連するQ&A

専門家に質問してみよう