ブックに新しいシートを追加した時に発生するイベントプロシージャは「Workbook_NewSheet」を使います。
構文
構文は以下の通りです。
' 実行したいコードをここに記述します
End Sub
解説
Workbook_NewSheetイベントプロシージャは、新しいシートがブックに追加されるたびに自動的に実行されるプロシージャです。ByVal Sh As Objectは、イベントプロシージャに渡される引数です。Shは新しいシートを表すオブジェクトです。
使い方
Workbook_NewSheetイベントプロシージャの使い方について解説します。
手順
1.Excelを開き、VBAエディタを起動します。VBAエディタは「Alt + F11」キーでアクセスできます。
2.プロジェクトエクスプローラーウィンドウから、目的のブックを選択します。
3.ブック内のモジュールを右クリックし、「挿入」→「クラスモジュール」を選択します。
4.クラスモジュールが作成されたら、コードウィンドウを開きます。
5.コードウィンドウ内に、以下のコードを記述します。
Private WithEvents App As Application
Private Sub Workbook_Open()
Set App = Application
End Sub
' 実行したいコードをここに記述します
End Sub
解説
・Private WithEvents App As Application:Applicationオブジェクトを宣言し、WithEventsキーワードでAppという名前の変数と関連付けます。これにより、Excelアプリケーションのイベントにアクセスできるようになります。
・Private Sub Workbook_Open():ブックが開かれたときに実行されるイベントプロシージャです。App変数にApplicationオブジェクトを設定することで、イベントを受け取るための準備をします。
・Private Sub App_NewSheet(ByVal Sh As Object):新しいシートが追加されたときに実行されるイベントプロシージャです。Sh変数は新しいシートを表すオブジェクトです。このプロシージャ内に処理したいコードを記述します。
プログラミング例
以下に、Workbook_NewSheetイベントプロシージャのプログラミング例を示します。
Private WithEvents App As Application
Private Sub Workbook_Open()
Set App = Application
End Sub
MsgBox "新しいシート「" & Sh.Name & "」が追加されました!"
End Sub
上記の例では、新しいシートが追加されるたびにメッセージボックスが表示されます。表示されるメッセージには、新しいシートの名前が含まれます。
まとめ
Workbook_NewSheetイベントプロシージャは、新しいシートがブックに追加されるときに実行されるプロシージャです。ブック内のクラスモジュールにコードを記述し、App_NewSheetイベントプロシージャを使用します。App_NewSheet内には、新しいシートに対する処理を記述します。