Peterは、「インデックス」という名前のワークシートを除く、ブック内のすべてのワークシートを削除するマクロを開発しました。このマクロは正常に機能します。ただし、マクロを実行した後、新しいワークシートを追加すると、デフォルトで「Sheet1」という名前になると予想されますが、実際には「Sheet3」や「Sheet4」などの新しい番号が付けられます。 Peterは、シートの番号を予想されるデフォルトにリセットするために何が必要か疑問に思います。

シート番号をリセットする最も簡単な方法は、ブックを閉じてから再度開くことです。ただし、これには手動の手順が含まれます。マクロを介して新しいワークシートを追加する場合は、ブックを手動で閉じてから再度開くことはおそらく望ましくありません。

必要に応じて、閉じて再度開くプロセスを実行するための単純なマクロを作成できます。これは、マクロが閉じているブックではなく、パーソナルマクロブックに保存されている限り機能します。

Sub Reopen()

Dim wb As Excel.Workbook     Dim sPath As String

Set wb = ThisWorkbook     sPath = wb.FullName

Application.OnTime Now + TimeValue("00:00:01"), _       Application.Workbooks.Open(sPth)

wb.Close (True)

End Sub

マクロは現在のブックの名前を決定し、1秒後にブックを開くようにOnTimeイベントを設定します。ただし、その1秒間はブックが閉じられて保存されるため、ブックを正常に再度開くことができます。

必要に応じて、マクロを介して新しいワークシートを追加することもできます。

次の短いマクロはワークシートを追加し、すぐに目的の名前に名前を変更します。

Sub AddWs()

Worksheets.Add after:=Sheets(Sheets.Count)

Sheets(Sheets.Count).Name = "Sheet" & Sheets.Count - 1 End Sub

特にソリューションを既存のマクロと統合したい場合は、これらのソリューションを試して、ニーズに最適なソリューションを見つけてください。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(6103)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。