新しいワークブックを開始するとき、1つの一般的なシナリオでは、1年分のワークシートを1年の各週に1つずつ作成する必要があります。つまり、特定の年の週数に応じて、ワークブックに52または53のワークシートが含まれる可能性があります。

このようなワークブックを作成する必要がある場合は、すべてのワークシートを個別に作成して名前を付けるのは非常に面倒な場合があることをご存知でしょう。ここでマクロが役に立ちます。次のマクロは、適切な数のワークシートを追加し、週番号(01から52)に従ってすべてのワークシートの名前を変更します。

Sub YearWorkbook1()

Dim iWeek As Integer     Dim sht As Variant     Application.ScreenUpdating = False     Worksheets.Add After:=Worksheets(Worksheets.Count), _       Count:=(52 - Worksheets.Count)

iWeek = 1     For Each sht In Worksheets         sht.Name = "Week " & Format(iWeek, "00")

iWeek = iWeek + 1     Next sht     Application.ScreenUpdating = True End Sub

代わりに、1年間の各週の終了日を示すワークシートを作成する方法が必要な場合は、別のマクロが必要です。

Sub YearWorkbook2()

Dim iWeek As Integer     Dim sht As Variant     Dim sTemp As String     Dim dSDate As Date

sTemp = InputBox("Date for the first worksheet:", "End of Week?")

dSDate = CDate(sTemp)

Application.ScreenUpdating = False     Worksheets.Add After:=Worksheets(Worksheets.Count), _       Count:=(52 - Worksheets.Count)

For Each sht In Worksheets         sht.Name = Format(dSDate, "dd-mmm-yyyy")

dSDate = dSDate + 7     Next sht     Application.ScreenUpdating = True End Sub

このバージョンのマクロでは、開始日を尋ねられます。次に、その日付を使用して、ブック内のさまざまなワークシートに名前を付け始めます。日付に変換できない値を入力すると、マクロはエラーを生成します。

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

このヒント(2018)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。