VBA WorkSheet ワークシートの追加

VBAを利用して、新しいワークシートを作成する方法を紹介していきます。

ワークシート WorkSheet 新規作成

ワークシートを新規に作成する場合は、Addメソッドを利用しましょう。

Worksheets.Add Before ,After ,Count

Before:指定したシートの前にシートを追加
After:指定したシートの後にシートを追加
Count:指定した数値のシートを追加する

これらの引数は省略することができます。

それでは早速使い方を見てみましょう。
まずは、一番シンプルな記載方法を紹介します。

Private Sub cmdNewSheet_Click()
    Worksheets.Add
End Sub

 

結果

Sheet2が追加されていることが確認できました。
WorkSheets.Addと記載するだけでシートの追加ができます。

 

指定したシートの前に新しいシートを追加

続いて指定したシートの前にシートを追加してみましょう。
Beforeを使用することで、指定したシートの前に作成することができます。

例を見てみましょう。
Sheet2、Sheet1が存在するエクセルファイルがあり、そのSheet1の前にSheet3を作成してみましょう。

Private Sub cmdNewSheet_Click()
    Worksheets.Add Before:=Worksheets("Sheet1")
End Sub

結果

Sheet1の前にSheet3が作成されました。
このように、Beforeを利用することで指定したシートの前に、新しいシートを作成することができます。

 

一番前にシートを作成する方法

Beforeを利用することで、指定したシートの前にシートを作成することができました。
続いて、Beforeを利用し、複数シートの一番前にシートを作成する方法を紹介します。

例を見てみましょう。
Sheet3,Sheet2,Sheet1の順にシートが並んでいるブックの先頭にシートを作成しましょう。

Private Sub cmdNewSheet_Click()
    Worksheets.Add Before:=Worksheets(1)
End Sub

結果

WorkSheets("Sheet3")ではなく、WorkSheets(1)のようにシートのインデックスで指定することができます。
この機能を利用することで、先頭にシートを作成することができます。

 

指定したシートの後にシートを追加

先ほどのBeforeは指定したシートの前でしたが、今度は指定したシートの後に作成してみましょう。
指定したシートの後にシートを作成するには、Afterを利用しましょう。

例を見ていきます。
Sheet2、Sheet1が存在するエクセルファイルがあり、そのSheet1の後にSheet3を作成してみましょう。

Private Sub cmdNewSheet_Click()
    Worksheets.Add After:=Worksheets("Sheet1")
End Sub

結果

Sheet1の後ろにSheet3が作成されていることが確認できました。

 

一番後ろにシートを作成する方法

Afterを利用することで、指定したシートの後ろにシートを作成することができました。
続いて、Afterを利用し、複数シートの一番後ろにシートを作成する方法を紹介します。

例を見てみましょう。
Sheet3,Sheet2,Sheet1の順にシートが並んでいるブックの最後にシートを作成しましょう。

Private Sub cmdNewSheet_Click()
    Worksheets.Add After:=Worksheets(Worksheets.Count)
End Sub

結果

AfterもBefore同様にシートのインデックスを指定することができます。
Worksheets.Countでシートの数を取得できるので、WorkSheets(Worksheets.Count)で最後のシートの後ろに作成することができます。

 

追加するシートの枚数を指定する

今までシートを追加する位置についての指定をしてきましたが、今回は追加するシートの枚数を指定する方法を紹介していきます。
AddメソッドのCount引数のに値を指定することで枚数を指定できます。

例を見てみましょう。Sheet1のみのエクセルに3シート追加します。

Private Sub cmdNewSheet_Click()
    Worksheets.Add Count:=3
End Sub

結果

Sheet2~4まで追加されました。

 

またBeforeとCount、AfterとCountは組み合わせることが可能です。

Private Sub cmdNewSheet_Click()
    Worksheets.Add After:=Worksheets(Worksheets.Count), Count:=3
End Sub

このように、複数の条件を組み合わせることで、好きな位置に複数のシートを追加することができます。

 

まとめ

今回は、シートを追加する方法を紹介してきました。

シートを追加する位置や枚数をAddメソッドのパラメータで指定することで自由に追加することができます。

シートの追加はよく使用するので是非参考にしてみてください。

 

EXCEL VBAの記事一覧

おすすめの記事