サイトについて      連絡先   検索

VBA シートを追加する

はじめに

Excel VBA マクロのシートを追加する方法を紹介します。

Sheets.Add メソッドまたは Worksheets.Add メソッドでシートを追加できます。

シートの位置や数や種類、ワークブックなどを指定できます。

  • 目次
    • シートを追加する
    • 追加したシートを編集する

シートを追加する

sheet1

シートを追加するにはSheets.AddまたはWorksheets.Addを入力します。


Dim ws As Worksheet
Set ws = Sheets.Add     ' ワークシートを追加
Set ws = Worksheets.Add ' ワークシートを追加
Debug.Print(ws.Name)
3

アクティブなシートの左側に追加され、アクティブになります。

追加する位置や数を引数で指定できます。


Call Sheets.Add(Before:=Sheets(2)) ' 指定したシートの前に追加
Call Sheets.Add(After:=Sheets(2))  ' 指定したシートの後ろに追加
Call Sheets.Add(Count:=2)          ' 指定した数のシートを追加
Call Sheets.Add(Type:=xlWorksheet) ' シートのタイプを指定して追加

引数には次のものがあり、すべて省略できます。

引数「Before」指定したシートの前に追加します。引数「After」と一緒に指定できません。
引数「After」指定したシートの後ろに追加します。引数「Before」と一緒に指定できません。
引数「Count」追加するシートの数を指定します。
引数「Type」ワークシートの種類を指定します。

Type には次のものがあります。

定数名 説明
xlWorksheet (既定)-4167ワークシート
xlChart-4109グラフシート
xlDialogSheet-4116Excel5ダイアログシート
xlExcel4IntlMacroSheet4Excel4インターナショナルマクロシート
xlExcel4MacroSheet3Excel4マクロシート

Sheets と Worksheets の違いはワークシート以外を取得するかどうかです。

このため xlChart と xlDialogSheet を Worksheets.Add には指定できません。

1 番左や右に追加

シートを 1 番左に移動するには、引数にBefore:=Sheets(1)を入力します。

シートを 1 番右に移動するには、引数にAfter:=Sheets(Sheets.Count)を入力します。


Dim ws As Worksheet
Set ws = Sheets.Add(Before:=Sheets(1))           ' 1 番左に追加
Set ws = Sheets.Add(After:=Sheets(Sheets.Count)) ' 1 番右に追加
Debug.Print(ws.Name)

別のワークブックに追加

Workbooks の引数にインデックスかブック名を指定すると、そのブックに追加できます。

ブック名「Book2.xlsx」のブックを移動するにはWorkbooks("Book2.xlsx").SheetsまたはWorkbooks("Book2.xlsx").Worksheetsのように入力します。


' ブック「Book2.xlsx」に追加
Call Workbooks("Book2.xlsx").Sheets.Add

' 2 番目のブックの 2 番目のシートの後ろに移動
Call Workbooks(2).Worksheets.Add(After:=Workbooks(2).Sheets(2))

追加したシートを編集する

Add の戻り値から追加したシートを取得できます。


Dim ws As Worksheet
Set ws = Sheets.Add ' 戻り値に追加したシートが入っている

' そのシートに対して編集
ws.Name = "追加"
4
  • 目次
    • シートを追加する
    • 追加したシートを編集する