シートの挿入はAddメソッド

ワークシートを挿入するときは、WorksheetsコレクションのAddメソッドを実行します。

次のコードは新しいワークシートを1枚挿入します。

Sub Sample03()
    Worksheets.Add
End Sub

Addメソッドの構文は次の通りです。

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

引数Beforeに”Sheet2″を指定すると、新しいシートは[Sheet2]の手前(Before)に挿入されます。

逆に、指定したシートの後ろ(After)に挿入したいときは、引数Afterにシート名を指定します。

引数Countは挿入するシートの枚数を指定します。

引数Typeは挿入するシートの種類を指定します。どちらの引数も、あまり使いません。この後で解説しますが、一般的にシートを挿入する場合、挿入したシートに対して何らかの処理を行います。そのとき、挿入されたシートを特定する方法がポイントになります。引数Countを指定して複数のシートを同時に挿入すると、挿入されたシートを特定することが面倒になるからです。複数のシートを挿入したいときは、Addメソッドを複数回実行する方が直感的です。引数Typeを使えばグラフシートやExcel 4.0のマクロシートなども挿入できます。

最もよくあるケースの1つとして、現在あるワークシートの最後尾に新しいワークシートを挿入するコードをご紹介します。

新しいシートを追加します。引数の指定により、追加する場所、枚数、追加するシートの種類を指定することが可能です。 ただし、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

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

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

●サンプル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

コメントを残す