シートの挿入は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 |