VBA でシートを追加する場合は、Add メソッドを使用します。
Add メソッドの構文:
Worksheets.Add(Before, After, Count)
使い方の見本:
Worksheets.Add After := Worksheets("Sheet1"), Count := 2
例)先頭に追加する場合:
Worksheets.Add Before := Worksheets(1)
例)シートを末尾に追加する場合:
Worksheets().Add After := Worksheets(Worksheets.Count)
新規ワークシートの追加
Worksheets.Add(After:=ActiveSheet).Name = ActiveSheet.Name & "_" & VBA.Format(Now(), "h時mm分ss秒")
新規ワークシートの 最後に追加
Worksheets.Add After:=Worksheets(Worksheets.Count)
新規ワークシートの 最初に追加
Worksheets.Add Before :=Worksheets(Worksheets.count)
シート作成_別ウィンドウ
Sub シート作成_別ウィンドウ()
Worksheets.Add(After:=ActiveSheet).Name = "カウント" & "_" & VBA.Format(Now(), "h時mm分ss秒")
With ActiveWorkbook
.NewWindow
Windows.Arrange ArrangeStyle:=xlArrangeStyleCascade
ActiveWindow.WindowState = xlNormal
ActiveWindow.Width = 300
ActiveWindow.Height = 500
ActiveWindow.EnableResize = False
End With
ThisWorkbook.ActiveSheet.Range("A2") = "A"
ThisWorkbook.ActiveSheet.Range("A3") = "B"
ThisWorkbook.ActiveSheet.Range("A4") = "C"
MsgBox "完了"
End Sub
解説
- 重ねて表示:Windows.Arrange ArrangeStyle:=xlArrangeStyleCascade
- 通常表示に設定:ActiveWindow.WindowState = xlNormal
- ウィンドウ幅を300に設定:ActiveWindow.Width = 300
- ウィンドウの高さを500に設定:ActiveWindow.Height = 500
- ウィンドウサイズを固定:ActiveWindow.EnableResize = False
シート名を指定して追加
Sub シートの作成()
Dim newname As String
newname = "カウント"
Dim flg As Boolean
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name = newname Then
flg = True
Exit For
End If
Next
If flg = False Then
Worksheets.Add
ActiveSheet.Name = newname
End If
MsgBox "完了"
End Sub
追加したシートをアクティブにしない方法
Dim sheet As Worksheet
Set sheet = ActiveSheet
Worksheets.Add(After:=ActiveSheet).Name = ActiveSheet.Name & "_" & VBA.Format(Now(), "h時mm分ss秒")
sheet.Activate 'シートをアクティブ
コメント