教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA ブック操作】ブックに新しいシートを追加した時に発生するイベントプロシージャを作成するにはどうすればいいの?教えて!

構文

構文は以下の通りです。

Private Sub Workbook_NewSheet(ByVal Sh As Object)
    ' 実行したいコードをここに記述します
End Sub

解説

Workbook_NewSheetイベントプロシージャは、新しいシートがブックに追加されるたびに自動的に実行されます。引数は以下の内容となります。

引数 内容
Sh 新しいシートを表すオブジェクトです。

プログラミング例

以下に、Workbook_NewSheetイベントプロシージャのプログラミング例を示します。

Private WithEvents App As Application

Private Sub Workbook_Open()
    Set App = Application
End Sub

Private Sub App_NewSheet(ByVal Sh As Object)
    MsgBox "新しいシート「" & Sh.Name & "」が追加されました!"
End Sub

上記の例では、新しいシートが追加されるたびにメッセージボックスが表示されます。表示されるメッセージには、新しいシートの名前が含まれます。

まとめ

Workbook_NewSheetイベントプロシージャは、新しいシートがブックに追加されるときに実行されるプロシージャです。ブック内のクラスモジュールにコードを記述し、App_NewSheetイベントプロシージャを使用します。App_NewSheet内には、新しいシートに対する処理を記述します。