VB6 を使用して、Excel スプレッドシートの最後のワークシートを置き換えようとしています。最後のワークシートを削除することは許可されていないため、一時的なワークシートを追加し、不要なものを削除し、古いワークシートを置き換えてから、次のように一時的なワークシートを削除しようとしました:-
Set temporary_sheet = mwbkBook.Worksheets.Add
temporary_sheet.Name = "NameThatIsUnlikelyToExist" ' Error Here.
For Each lSheet In mwbkBook.Worksheets
Select Case lSheet.Name
Case "SheetToReplace"
Application.DisplayAlerts = False
lSheet.Delete
End Select
Next lSheet
Set mwshSheet = mwbkBook.Worksheets.Add
mwshSheet.Name = "SheetToReplace"
' Fill in mwshSheet
For Each lSheet In mwbkBook.Worksheets
Select Case lSheet.Name
Case "Sheet1", "Sheet2", "Sheet3", "NameThatIsUnlikelyToExist"
Application.DisplayAlerts = False
lSheet.Delete
End Select
Next lSheet
このコードを最初に呼び出すと、1 つのワークシートを含むスプレッドシートが"SheetToReplace"
表示されます。スプレッドシートを表示して確認します。
2 回目の呼び出しでは、次の行でエラーが発生します。
Cannot rename a sheet to the same name as another sheet, a referenced object library or a workbook referenced by Visual Basic.
(番号1004)。
この目に見えないワークシートを取り除く方法、または目的の結果を達成するためのより良い方法を知っている人はいますか?