構文
Workbook_NewSheet(ByVal Sh As Object)
Sh・・・ 追加された新規ワークシートオブジェクト
新規ワークシートを作成時に実行されるイベントです。
Workbook_NewSheetイベントのサンプルコード
標準モジュールではなく、Workbookモジュール(Microsoft_Excel_Objects_ThisWorkbook)に記載します。
Private Sub Workbook_NewSheet(ByVal Sh As Object)
MsgBox "ワークシート名" & Sh.Name & "が追加されました"
End Sub
Workbook_NewSheetをよく使う形
業務日報を作成する際に、毎度新規シートを追加します。
その際に、当日日付のシート名に変更したい。
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'■既に当日ファイルを作成済みならシート削除(エラー回避)
Dim ws As Worksheet
For Each ws In Worksheets
If ws.Name = Format(Date, "yyyymmdd") Then
Application.DisplayAlerts = False
Sh.Delete
Application.DisplayAlerts = True
Exit Sub
End If
Next ws
'■シート名を当日日付にリネームする
Sh.Name = Format(Date, "yyyymmdd")
End Sub
発注書をエクセルで作成しています。毎度新規シートを追加します。
その際に、所定のフォーマットに揃えたい。
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'■コピー元のフォーマットシート(テンプレート)
Dim ws As Worksheet
Set ws = Worksheets("フォーマットシート")
'■wsからSh(新規追加シート)に書式をコピペ
ws.Cells.Copy
Sh.Cells.PasteSpecial (xlPasteFormats)
End Sub



コメント