【VBA】ワークシートの追加と削除

 今回は VBA を使って ワークシートを追加または削除する方法 を解説します。

【VBA】ワークシートの追加

 まずは一番シンプルなプロシージャを書いてみます。
 Add メソッド で新しいシートを追加しますよ。

'[VBA] 新しいシートを追加するマクロ
Sub Add_Sheet_1()
  Worksheets.Add.Name = "NewSheet"
End Sub

 Add_Sheet_1() を実行すると NewSheet という名前の付いたシートが追加されます。このマクロでは挿入位置を何も指定していないので、今開いているシート(アクティブシート)の後ろに追加されますが、位置を指定したい場合は、Before もしくは After 引数を指定します。たとえば、次のプロシージャは Sheet1 の前に新しいシートを追加します。

'[VBA] Sheet1の前に新しいシートを追加するマクロ
Sub Add_Sheet_2()
  Worksheets.Add(Before:=Worksheets("Sheet1")).Name = "NewSheet"
End Sub

 Sheet1 の後ろに新しいシートが追加したい場合は以下のように記述します。

'[VBA] Sheet1の後に新しいシートを追加するマクロ
Sub Add_Sheet_3()
  Worksheets.Add(After:=Worksheets("Sheet1")).Name = "NewSheet"
End Sub

 複数のシートをまとめて追加したいときは Count 引数を指定します。たとえば、Sheet1 の前に 2 枚のシートが追加するには次のようなコードを書きます。

'[VBA] Sheet1の前に2枚のシートを追加するマクロ
Sub Add_Sheet_4()
  Worksheets.Add Before:=Worksheets("Sheet1"), Count:=2
End Sub

【VBA】ワークシートの削除

 シートを削除するマクロはとっても簡単だけど、特に何も書かないと、手動でシートを消すときときと同じように「シートを削除すると元に戻せません」みたいなメッセージが表示されます。それが煩わしい場合は、DisplayAlerts を False にしておきましょう。

'[VBA] Sheet1を警告メッセージなしで削除するマクロ

Sub Delete_Sheet()

  '警告メッセージをオフにします
  Application.DisplayAlerts = False

  Worksheets("Sheet1").Delete

End Sub

 Delete_Sheet() を実行すると警告なしで Sheet1 が消えます。でもワンクリックでぱっと消えちゃうようなマクロだと「ぎゃああ! 間違えましたよー! このシートは消しちゃいかんやつですよー!」みたいなことになってしまうかもしれないので、ユーザーさんに本当に消すのかどうか確認するメッセージを出すようにしておいたほうがいいかもしれません。

コメント

タイトルとURLをコピーしました