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

VBA シートを削除する

はじめに

Excel VBA のシートを削除する方法を紹介します。

Sheets.Delete メソッドか Worksheets.Delete メソッドでシートを削除できます。

ActiveWindow.SelectedSheets.Delete メソッドでシートをまとめて削除できます。

シートを削除する

Sheets の引数にインデックスかシート名を指定すると、そのシートを削除できます。

1 番目のシートを削除するには Sheets(1).Delete または Worksheets(1).Delete のように指定します。

Sheets(1).Delete        ' 1 番目のシートを削除
Sheets("Sheet1").Delete '「Sheet1」のシートを削除

Worksheets(1).Delete        ' 1 番目のシートを削除
Worksheets("Sheet1").Delete '「Sheet1」のシートを削除

シートを削除するときメッセージが表示されます。

1
2

これを表示させないようにするには Application.DisplayAlerts = False のように指定します。削除処理が終わったら True に戻します。

Application.DisplayAlerts = False
Sheets(1).Delete
Application.DisplayAlerts = True

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

シートをまとめて削除する

Sheets の引数にインデックスか名前の配列を指定すると、複数のシートを選択できます。

Sheets(Array(1, 2)).Select               ' 1 番目と 2 番目のシートを選択
Sheets(Array("Sheet1", "Sheet2")).Select ' 「Sheet1」と「Sheet2」のシートを選択

Worksheets(Array(1, 2)).Select               ' 1 番目と 2 番目のシートを選択
Worksheets(Array("Sheet1", "Sheet2")).Select ' 「Sheet1」と「Sheet2」のシートを選択

ActiveWindow.SelectedSheets で選択しているシートを全て取得できます。

シートをまとめて削除したいときは ActiveWindow.SelectedSheets.Delete のように指定します。

Sheets(Array(1, 2)).Select         ' 削除したいシートを選択
ActiveWindow.SelectedSheets.Delete ' 選択しているシートをまとめて削除
3

関連ページ