例文を使って繰り返し業務を時短

【マクロ・VBA】シートを追加する

エクセル、マクロ、VBAでシートを追加する方法 VBA

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  'シートをアクティブ

コメント

タイトルとURLをコピーしました