シートを追加する(Addメソッド)|Excel VBA |
新しいシートを追加します。引数の指定により、追加する場所、枚数、追加するシートの種類を指定することが可能です。 ただし、Worksheetsコレクションオブジェクトが対象の場合には、グラフシートとExcel5ダイアログシートを追加することはできません。
構文 Object.Add(Before, After, Count, Type)
設定項目 | 内容 |
---|---|
Object | Worksheetsコレクション,Sheetsコレクション,Chartsコレクションオブジェクト |
Before | 指定したシートの直前に新しいシートを追加 [省略可能] |
After | 指定したシートの直後に新しいシートを追加 [省略可能] |
Count | 追加するシートの枚数を指定。既定値は1 [省略可能] |
Type | 追加するシートの種類(下記表参照) [省略可能] |
・引数Typeで指定する定数一覧(XlSheetTypeクラス)
定数 | 値 | 追加するシートの種類 | 使用可能なObject |
---|---|---|---|
xlWorksheet(既定値) | -4167 | ワークシート | Sheets,Worksheets |
xlChart | -4109 | グラフシート | Sheets |
xlDialogSheet | -4116 | Excel5ダイアログシート | Sheets |
xlExcel4IntlMacroSheet | 4 | Excel4インターナショナル マクロシート | Sheets,Worksheets |
xlExcel4MacroSheet | 3 | Excel4マクロシート | Sheets,Worksheets |
次のサンプルはアクティブブックの末尾(右端)に、シート名を指定して新規ワークシートを追加します。
Sub Sample1()
'---現在時刻をシート名とするワークシートを末尾(右端)に追加する
Worksheets.Add(After:=Worksheets(Worksheets.Count)) _
.Name = Format(Now(), "h時mm分ss秒")
End Sub
複数のシートを追加する場合、2枚目以降のシートは直前に追加したシートの左側に配置されます。また、追加したシートをそのまま操作の対象とする場合、対象となるのは追加した全てのシートではなく、最後に追加された1つのシートだけです。
次のサンプルは、1番左のワークシートの右に3枚のワークシートを追加して、追加したシートの名前を変更しています。追加されたシートの並び方と、名前を変更されているのが3枚目に追加されたシートだけである点を確認してください。
Sub Sample2()
'---3枚のシートを追加し、名前を変更
Worksheets.Add(After:=Worksheets(1), Count:=3).Name = "追加"
End Sub