Excel VBAで、ブックにワークシートを新規作成する方法と、シート名を変更する方法を解説します。
Worksheets.Add メソッドについて
ブック内にシートを新規作成する場合は、「Worksheets.Add」メソッドを使用します。
Worksheets.Add メソッドを使用することで、新しいワークシートやグラフシート、マクロシートを作成することが可能です。
作成時、新しいワークシートがアクティブシートになります。
構文
Worksheets.Add メソッドの構文です。
Worksheets.Add(Before, After, Count, Type)
パラメーター
Worksheets.Add メソッドで使用出来るパラメーターです。
名前 | 省略 | 型 | 説明 |
---|---|---|---|
Before | 省略可能 | Variant | 指定したシートオブジェクトの前に、新しいシートを追加します。 |
After | 省略可能 | Variant | 指定したシートオブジェクトの後に、新しいシートを追加します。 |
Count | 省略可能 | Variant | 追加するシートの枚数を指定します。 既定値は「1」です。 |
Type | 省略可能 | Variant | ワークシートの種類を XlSheetType定数で指定します。 既定値は「xlWorksheet」です。 |
XlSheetType定数は、下記の値が使用出来ます。
定数名 | 値 | 説明 |
---|---|---|
xlChart | -4109 | Chart(グラフシート) |
xlExcel4IntlMacroSheet | 4 | Excel バージョン 4 International Macro シート |
xlExcel4MacroSheet | 3 | Excel バージョン 4 マクロ シート |
xlWorksheet | -4167 | ワークシート |
シートの新規作成
ワークシートを新規作成する方法を説明します。
下記がサンプルのソースコードです。
実行することで、ワークシートが新規作成されます。
その際のシート名は「Sheet4」などが自動的に設定されます。
Sub Sample()
Worksheets.Add
End Sub
シートを一括で作成する
一度に複数枚のシートを作成する方法を説明します。
「Count:=作成するシートの枚数」と記述することで、シートを一括で作成することが出来ます。
下記がサンプルコードです。例として、「3」枚のシートを作成しています。
Sub Sample()
Worksheets.Add Count:=3
End Sub
指定したシート名でシートを作成する
シート名を指定しつつ、シートを作成する方法を説明します。
下記がサンプルコードです。
実行すると、「シート名」という名前で新しいシートが作成されます。
Sub Sample()
Worksheets.Add.Name = "シート名"
End Sub
指定したシートの前に新規作成
指定したシートの前にワークシートを新規作成する方法を説明します。
例えば、シート名が「Sheet3」となっているシートの前に作成する場合は、下記のように記述します。
Sub Sample()
Worksheets.Add Before:=Worksheets("Sheet3")
End Sub
シートは番号で指定することも可能です。
例えば、下記のように記述した場合は、シートの3枚目の前、つまり、2枚目のシートとして作成されます。
Sub Sample()
Worksheets.Add Before:=Worksheets(3)
End Sub
指定したシートの後ろに新規作成
指定したシートの後ろにワークシートを新規作成する方法を説明します。
例えば、シート名が「Sheet3」となっているシートの後ろに作成する場合は、下記のように記述します。
Sub Sample()
Worksheets.Add After:=Worksheets("Sheet3")
End Sub
シートは番号で指定することも可能です。
例えば、下記のように記述した場合は、シートの3枚目の後ろ、つまり、4枚目のシートとして作成されます。
Sub Sample()
Worksheets.Add After:=Worksheets(3)
End Sub
シートを先頭に作成
一番前にシートを新規作成する方法を説明します。
下記のように、シートを番号「1」で指定することで、常に一番前にシートを作成することが可能です。
Sub Sample()
Worksheets.Add Before:=Worksheets(1)
End Sub
シートを末尾に作成
一番後ろにシートを新規作成する方法を説明します。
シートを一番後ろに作成する場合も、作成する位置を番号で指定しますが、
以下のように、少し工夫が必要です。
① 現在のシートの枚数を取得する
② 取得したシートの枚数を元にして、その後ろにシートを作成する
現在のシートの枚数を取得する
シートの枚数を取得するサンプルコードになります。
サンプルのように「Worksheets.Count」と記述することで、シートの枚数を取得することが可能です。
Sub Sample()
MsgBox (Worksheets.Count)
End Sub
シートを末尾に作成する
では、シートの枚数が取得出来たので、シートを末尾に作成する方法を見てみましょう。
前項で取得した現在のシートの枚数を使って、「After:=Worksheets(現在のシートの枚数)」と記述することで、常に一番後ろにシートを作成することが出来ます。
Sub Sample()
Worksheets.Add After:=Worksheets(Worksheets.Count)
End Sub
シート名の変更
新規作成したシートの名前を変更する方法を説明します。
実装例①
Worksheets.Addメソッドで作成されたシートは、アクティブシートになるという性質を利用した方法です。
下記がサンプルコードです。
サンプルでは「Sheet3」の後ろに、新しいシートを作成し、シート名を「シート名」に変更しています。
Sub Sample()
Worksheets.Add After:=Worksheets("Sheet3")
ActiveSheet.Name = "シート名"
End Sub
実装例②
Worksheetオブジェクトを使用した方法です。
下記がサンプルコードです。
サンプルでは「Sheet3」の後ろに、新しいシートを作成し、シート名を「シート名」に変更しています。
Sub Sample()
Dim ws As Worksheet
Set ws = Worksheets.Add(After:=Worksheets("Sheet3"))
ws.Name = "シート名"
End Sub
コメント