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

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

Sub DoMonths()

Dim J As Integer     Dim K As Integer

For J = 1 To 12         If J <= Sheets.Count Then             If Left(Sheets(J).Name, 5) = "Sheet" Then                 Sheets(J).Name = MonthName(J)

Else                 Sheets.Add.Move after:=Sheets(Sheets.Count)

ActiveSheet.Name = MonthName(J)

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

ActiveSheet.Name = MonthName(J)

End If     Next J

For J = 1 To 12         If Sheets(J).Name <> MonthName(J) Then             For K = J + 1 To Sheets.Count                 If Sheets(K).Name = MonthName(J) Then                     Sheets(K).Move Before:=Sheets(J)

End If             Next K         End If     Next J

Sheets(1).Activate End Sub

マクロの最後のステップは、1か月から12か月の間、ワークシートを適切な順序で配置することです。その結果、ワークブックに他のワークシートが残っている場合(つまり、で始まっていないワークシートがあった場合) 「Sheet」という文字の場合、これらのワークシートは12か月後にブックの最後に表示されます。

マクロはVBAに組み込まれているMonthName関数を利用していることに注意してください。番号(1から12)で参照される月のフルネームが渡されます(その範囲外の番号で使用しようとすると、エラーが返されます。)

_注: _

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

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

このヒント(11148)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。