ie-excel

エクセル・マクロでie操作

ワークシートを追加する

2016/10/30

Worksheets.Add

Worksheets.Addを使用します・
いくつかオプションが用意されてますが、オプションの指定がなくても利用可能ですので、例示とともに使用方法を見ていきます。

(使用例)単純なシート追加

シートを追加する一番単純な方法です。
Worksheets.Add
を記述すれば、アクティブシートの左にシートが追加されます。
シート名は自動的に割り振られます。
追加されたシートはアクティブになっています。

Sub シート追加()
'シート追加
  Worksheets.Add
End Sub

(使用例)単純なシート追加(その2)

上記を少しプログラムっぽく記述する方式です。
上記同様、アクティブシートの左にシートが追加され、シート名は自動的に割り振られます

Sub シート追加()
'シート追加
  Dim Add_Sheet As Worksheet
  Set Add_Sheet = Worksheets.Add()
End Sub

(使用例)シート追加し、シート名を指定する

上記に加え、シート名を指定する方法です。
まずシートを追加して、その後にシート名を変更します。
「新しいシート」という名前のシートがアクティブシートの左に追加されます

Sub シート追加()
'シート追加
  Dim Add_Sheet As Worksheet
  Set Add_Sheet = Worksheets.Add()
'シート名変更
  Add_Sheet.Name = "新しいシート"
End Sub

(使用例)新しいシートを一番右に挿入

Addメソッドは追加されるシートの位置を指定することが可能です。

Sub シート追加()
'シート追加
  Dim Add_Sheet As Worksheet
  Set Add_Sheet = Worksheets.Add(after:=Worksheets(Worksheets.Count))
End Sub

(使用例)新しいワークシートをシートの一番右に3シート挿入する方法

Addメソッドは追加されるシートの数も指定することが可能です。

Sub シート追加()
'シート追加
  Worksheets.Add after:=Worksheets(Worksheets.Count), Count=3
End Sub

(使用例)簡単な使用例

「Sheet1」の列1の値を追加したシートにコピーするという例示です

Sub シート追加()
'シート追加
  Dim Add_Sheet As Worksheet
  Set Add_Sheet = Worksheets.Add()
'Sheet1の列1を上から順に読み込み、未入力となるまで列1をSheet1から新規追加したシートにコピーする
  Do While Worksheets("Sheet1").Cells(i + 1, 1).Value <> ""
     Add_Sheet.Cells(i, 1).Value = Worksheets("Sheet1").Value
      i = i + 1
  Loop'シート追加

(使用例)追加したシートを一番左側に配置する

複数あるワークシートの一番左側にシートを追加する例示です
ワークシート名に数字を指定すると、左側から数えたシートとなるため、一番左のシートである「1」を指定
その前にシートを作成するというやり方です

Sub シート追加()
  Worksheets.Add Before:=Worksheets(1)
End Sub

まとめ

Worksheets.Addには3つのオプションがあります
before 指定したワークシートの左側に新しいシートを追加します
after 指定したワークシートの右側に新しいシートを追加します
Count 挿入するシートの枚数を指定します(省略時は1シート追加)

-VBA