新しいワークブックを開始するときは、各ワークシートに異なる曜日の名前を付けるのが一般的です。これをかなり行うと、各ワークシートの名前を個別に必要な名前に変更するのが面倒になる可能性があることがわかります。

次のマクロは、これらの状況で役立つように開発されました。ワークブック内のワークシートの名前をチェックし、「シート」の文字で始まる場合は月の日に名前を変更します。ワークブックに十分なシートがない場合は、必要に応じて、その月の各日にシートが追加されます。

Sub DoDays()

Dim J As Integer     Dim K As Integer     Dim sDay As String     Dim sTemp As String     Dim iTarget As Integer     Dim dBasis As Date

iTarget = 13     While (iTarget < 1) Or (iTarget > 12)

iTarget = Val(InputBox("Numeric month?"))

If iTarget = 0 Then Exit Sub     Wend

Application.ScreenUpdating = False     sTemp = Str(iTarget) & "/1/" & Year(Now())

dBasis = CDate(sTemp)

For J = 1 To 31         sDay = Format((dBasis + J - 1), "dddd mm-dd-yyyy")

If Month(dBasis + J - 1) = iTarget Then

If J <= Sheets.Count Then                 If Left(Sheets(J).Name, 5) = "Sheet" Then                     Sheets(J).Name = sDay                 Else                     Sheets.Add.Move after:=Sheets(Sheets.Count)

ActiveSheet.Name = sDay                 End If             Else                 Sheets.Add.Move after:=Sheets(Sheets.Count)

ActiveSheet.Name = sDay             End If         End If     Next J

For J = 1 To (Sheets.Count - 1)

For K = J + 1 To Sheets.Count             If Right(Sheets(J).Name, 10) > _               Right(Sheets(K).Name, 10) Then                 Sheets(K).Move Before:=Sheets(J)

End If         Next K     Next J

Sheets(1).Activate     Application.ScreenUpdating = True End Sub

マクロは、ワークシートが必要な月が現在の年であることを前提としていることに注意してください。そうでない場合は、1つの小さな変更を加える必要があります。マクロの先頭近くにある次の行に注意してください。

sTemp = Str(iTarget) & "/1/" & Year(Now())

なんらかの理由で、実際に2015年の月にしたいとします。行を次のように変更するだけです:

sTemp = Str(iTarget) & "/1/2015"

マクロは、「2020年3月28日水曜日」のように、各タブ名を曜日とそれに続く実際の日付に等しく設定します。毎日のタブの名前の付け方を変更したい場合は、マクロでのsDay変数の作成方法を変更するだけです。

マクロの最後のステップは、月の日に基づいて、ワークシートを適切な順序で配置することです。その結果、ワークブックに他のワークシートが残っている場合(つまり、「シート」の文字で始まらないワークシートがある場合、それらのワークシートはワークブックの最後、それぞれのシートの後になります。

Note:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

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

このヒント(11523)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。古いバージョンのこのヒントのバージョンを見つけることができます。 Excelのメニューインターフェイスはこちら: