構文
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】



コメント