ワークシートの追加

初級VBA

はじめに

 ワークシートを追加(挿入)したい場合は、Worksheetsコレクションの Add メソッドを使用します。
ワークシートをコピーして追加したい場合は、以下のページを参照してください。
 ・ワークシートのコピー

 Add メソッドの構文は以下のようになっています。

 Worksheets.Add ( Before, After, Count, Type)

それぞれの引数は以下の通りです。

 引数説 明
Before指定したシートの前方に追加
After指定したシートの後方に追加
Count追加するシート数
Type追加するシートのタイプ

 Before After はどちらかを指定します。Type はグラフシートなどを指定できます。全ての引数は省略可能です。
 尚、シートを追加した直後は、追加したシートがアクティブシートになります。

ワークシートの追加

 引数を指定しないで追加する場合、現在アクティブなシートの前に追加されます。

Sub macro1()
    Worksheets.Add
End Sub

 Sheet1だけの状態で上のコードを実行すると以下のようになります。

 追加されたシート(Sheet2)はアクティブになります。

あるシートの後ろに追加する

 上記の状態で、Sheet2の後ろにシートを追加したい場合は、次のようにAfterで指定します。

Sub macro2()
    Worksheets.Add after:=Worksheets("Sheet2")
End Sub

 ワークシート(Sheet2)を指定して、その後ろに新しいシートが追加されました。ワークシートは、Worksheets(1) のように数値で指定しても構いません。

最後にシートを追加する

 一番最後にワークシートを追加したい場合は、After と Worksheets.Count を使って追加します。

Sub macro3()
    Worksheets.Add after:=Worksheets(Worksheets.Count)
End Sub

ワークシートを追加して名前を付ける

 ワークシートを追加した直後は、追加したワークシートがアクティブになっていますので、アクティブシートのNameプロパティに名前を設定すれば良いでしょう。

Sub macro4()
    Worksheets.Add before:=Worksheets(1)
    ActiveSheet.Name = "data"
End Sub

 このコードでは、先頭にシートを追加して、シート名を data としています。

 ワークシートの変数を用意して、追加したシートを代入して名前を付ける方法もあります。

Sub macro5()
    Dim sh As Worksheet
    Set sh = Worksheets.Add(before:=Worksheets(1))
    sh.Name = "data"
End Sub

 Worksheets.Addの引数の指定は、括弧書きになる点に注意してください。これは、変数に値を代入するためです。また、Worksheet変数(オブジェクト)への代入は、Set が必要になりますのでこの点にも注意しましょう。

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