構文
Sheets.Add (Before, After, Count, Type)
Before・・・指定したシートの直前にシートを追加。【省略可能】
After ・・・指定したシートの直後にシートを追加。【省略可能】
Count ・・・追加するシートの枚数を指定。【省略可能】規定値は1
Type ・・・追加するシートの種類を指定。【省略可能】規定値は xlworksheet ※下記参照
After ・・・指定したシートの直後にシートを追加。【省略可能】
Count ・・・追加するシートの枚数を指定。【省略可能】規定値は1
Type ・・・追加するシートの種類を指定。【省略可能】規定値は xlworksheet ※下記参照
Addメソッドは指定した Sheets オブジェクトに対して、 Before もしくは After で指定した位置に新しいシートを追加します。
Typeで指定する定数一覧(XlSheetTypeクラス)
通常使用するのはxlworksheet でしょう。
名前 | 値 | 説明 |
xlchart | -4109 | グラフシート(chart) |
xl/sheet | -4116 | ダイアログ シート |
xlExcel4IntlMacroSheet | 4 | Excel バージョン 4 International Macro シート |
xlExcel4MacroSheet | 3 | Excel バージョン 4 マクロ シート |
xlworksheet | -4167 | ワークシート(規定値) |
Addメソッドのコードサンプル
Public Sub sample() '■引数省略すると、表示しているシートの直前の位置に新しいシートを追加 Worksheets.Add '■最後尾のシートに新しいシートを追加 Worksheets.Add After:=Worksheets(Worksheets.Count) '■最後尾の一つ前に新しいシートを追加し、シート名を「sample」にする Worksheets.Add(before:=Worksheets(Worksheets.Count)).Name = "sample" '■シート追加する前のシートをアクティブにする(シートを追加するとアクティブシートが変更になるのを防ぐ) Dim wsold As Worksheet Set wsold = ActiveSheet Worksheets.Add wsold.Activate '■先頭のシートの前に3つシートを追加する Worksheets.Add before:=Worksheets(1), Count:=3 End Sub
注意点
- Before と After は、基本的にはどちらか一方だけを指定します。
もし両方のパラメータを指定した場合、その位置が矛盾しているとAddメソッドは実行エラーになります。
‘実行時エラー1004 アプリケーション定義またはオブジェクト定義のエラーです
関連記事
「目次シート(各シートへのリンク)を作成する」処理をパーツ化する【ExcelVBA】
ExcelVBAマクロ「指定名のシートが存在すればActivate/なければシート作成する」処理をパーツ化する
新しいワークシートを作成時、処理を行う【NewSheet】【ExcelVBA】
コメント