HOME > 即効テクニック > Excel VBA > シート操作関連のテクニック > シートを追加する(Addメソッド)

シートを追加する(Addメソッド)|Excel VBA

シート操作関連のテクニック

シートを追加する(Addメソッド)

(Excel 2000/2002/2003/2007/2010/2013/2016)

新しいシートを追加します。引数の指定により、追加する場所、枚数、追加するシートの種類を指定することが可能です。 ただし、Worksheetsコレクションオブジェクトが対象の場合には、グラフシートとExcel5ダイアログシートを追加することはできません。

構文 Object.Add(Before, After, Count, Type)

設定項目 内容
ObjectWorksheetsコレクション,Sheetsコレクション,Chartsコレクションオブジェクト
Before指定したシートの直前に新しいシートを追加 [省略可能]
After指定したシートの直後に新しいシートを追加 [省略可能]
Count追加するシートの枚数を指定。既定値は1 [省略可能]
Type追加するシートの種類(下記表参照) [省略可能]

・引数Typeで指定する定数一覧(XlSheetTypeクラス)

定数 追加するシートの種類 使用可能なObject
xlWorksheet(既定値) -4167ワークシートSheets,Worksheets
xlChart-4109グラフシートSheets
xlDialogSheet-4116Excel5ダイアログシートSheets
xlExcel4IntlMacroSheet4Excel4インターナショナル
マクロシート
Sheets,Worksheets
xlExcel4MacroSheet3Excel4マクロシートSheets,Worksheets

■シートの位置、シート名を指定して追加する

次のサンプルはアクティブブックの末尾(右端)に、シート名を指定して新規ワークシートを追加します。

●サンプル1●

Sub Sample1()
    '---現在時刻をシート名とするワークシートを末尾(右端)に追加する
    Worksheets.Add(After:=Worksheets(Worksheets.Count)) _
        .Name = Format(Now(), "h時mm分ss秒")
End Sub

■複数のシートを追加する

複数のシートを追加する場合、2枚目以降のシートは直前に追加したシートの左側に配置されます。また、追加したシートをそのまま操作の対象とする場合、対象となるのは追加した全てのシートではなく、最後に追加された1つのシートだけです。

次のサンプルは、1番左のワークシートの右に3枚のワークシートを追加して、追加したシートの名前を変更しています。追加されたシートの並び方と、名前を変更されているのが3枚目に追加されたシートだけである点を確認してください。

●サンプル2●

Sub Sample2()
    '---3枚のシートを追加し、名前を変更
    Worksheets.Add(After:=Worksheets(1), Count:=3).Name = "追加"
End Sub