関数・メソッド

新しいワークシートを追加する【Addメソッド】【ExcelVBA】

構文

Sheets.Add (Before, After, Count, Type)

Before・・・指定したシートの直前にシートを追加。【省略可能】
After   ・・・指定したシートの直後にシートを追加。【省略可能】
Count・・・追加するシートの枚数を指定。【省略可能】規定値は1
Type ・・・追加するシートの種類を指定。【省略可能】規定値は xlworksheet ※下記参照

Addメソッドは指定した Sheets オブジェクトに対して、 Before もしくは After で指定した位置に新しいシートを追加します。

Typeで指定する定数一覧(XlSheetTypeクラス)
通常使用するのはxlworksheet でしょう。

名前説明
xlchart-4109グラフシート(chart)
xl/sheet-4116ダイアログ シート
xlExcel4IntlMacroSheet4Excel バージョン 4 International Macro シート
xlExcel4MacroSheet3Excel バージョン 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】

コメント

タイトルとURLをコピーしました