シートとブック

シートの追加と削除の方法

 Worksheetsコレクションを対象に、シートを新たに追加する方法、および指定したシートを削除する方法をVBAでどう表していくかを解説します。

シートを追加する

 新たにシートを追加するには「Addメソッド」を使って追加し、追加したシートをアクティブにします。

 また引数を指定することにより、シートの挿入する位置や枚数の指定ができます。

引数を省略した場合は、アクティブシートの前にシートが一つ追加されます。


Sheet1~Sheet3 の 3個のシートがあり、現在 Sheet1 がアクティブ状態になっています。

Sub WS追加()
  Worksheets.Add ‘①
  ‘②
  MsgBox “追加シート名:” & ActiveSheet.Name
End Sub

① 「Addメソッド」でシートを追加

② 新しいシート名をメッセージ表示

Sheet1 がアクティブ状態で新規シートを追加したので、 Sheet1 の前に Sheet4 が追加され、同時にこの Sheet4 がアクティブ状態になりました。

次に更にシートを追加します。

Sub WS追加2()
  ‘①
  Worksheets.Add _
  After:=Worksheets(Worksheets.Count), _
  Count:=3

  ‘②
  MsgBox “追加シート名:” & ActiveSheet.Name

End Sub

① 現在シートの最後尾に続いて3つのシートを追加します。
  「Worksheets.Count」は、最後尾のワークシートのことです。

② 追加されたシート名をメッセージ表示します。

あくまで最後尾のシートは「Sheet3」です。

これに次々と3つのシートが追加されます。

よって、最終的には上図のように、Sheet3 の次には最後の Sheet7 が表示されアクティブシートになります。

この例の場合は、Addメソッドに続き、「After」と「Count」の二つの引数があることに注意してください。

利用できる引数は次の通りです。

引数動作内容省略
Before指定したシートの前に挿入される
After指定したシートの後ろに挿入される
Count挿入するシートの数

続いて Sheet1 を指定した場合

Sub WS追加3()

  Worksheets.Add _

  After:=Worksheets(“Sheet1”)

End Sub

引数 After で Sheet1 と入れたら Sheet1 の後ろに新たなシートが追加されます。

この時、引数 Count が省略されているので、追加されるシートは一つということになります。


さらに Before を使った場合

Sub WS追加4()

  Worksheets.Add _
  Before:=Worksheets(“Sheet3”)

End Sub


さらに Sheet9 がアクティブのまま

Sub WS追加5()

  Worksheets.Add _
before:=ActiveSheet

End Sub

アクティブシートの前に Sheet10 が追加されます。

シートを削除する

シートを削除するには「Deleteメソッド」を使います。

Deleteメソッドで削除する場合は、削除の前に警告メッセージが表示されます。

Sub WS削除()

  Worksheets(“Sheet5”).Delete

End Sub

「削除」を選択して

さらに続けて

Sub WS削除2()

  Worksheets(3).Delete

End Sub

Worksheets(3)の「3」は左から数えて3番目のシートを意味します。

Sheet3 ではありませんので注意してください。



警告メッセージの非表示

 削除するコードの前に下記のような「警告非表示」のコードを入れると、警告メッセージの表示を出さないようにすることができます。

Sub WS削除()

  Application.DisplayAlerts = False ‘①

  Worksheets(3).Delete

  Application.DisplayAlerts = True ‘②

End Sub

① 警告メッセージを非表示にします。

このプロシージャが終了すると、自動的にTrueに戻り後に影響することはありません。

しかし念のため②でデフォルト状態にしておくことがよいでしょう。

シートの参照と選択の方法  一つのブックに一つあるいは複数のシートが存在します。シートはいわば「大きなキャンバス」みたいなものという人もいます。  そして...
シートのコピーと移動・非表示の方法  Excel のシートをコピーするには「Worksheetオブジェクト.Copy」を、移動するには「Worksheetオブジェクト.M...