【VBA】複数のワークシートをまとめて削除する

ワークシートの削除自体はDeleteメソッドを使いますが、削除するシートの指定方法がいくつかあります。

今回は、3つの方法を紹介しているので、使いやすい&理解しやすい方法を選んでください。

スポンサーリンク

シート名を配列で指定して削除

Worksheets(Array(“○○”,”○○”)).Deleteと書き、○○の部分に「シート名」を指定します。

POINT
シート名はダブルクォーテーションで囲みます。
削除するシートの数だけ、カンマ(,)でシート名をつなげていきます。

コード

 

解説

Sheet1, Sheet2, Sheet3が削除されます。

Array関数について

初めて使う人にはピンときにくい関数です。最初のうちは、「配列(複数の値)を渡す時は、Array関数を頭に付けて渡す」と割り切って、使いながら慣れていけばOKです。

 

インデックスを配列で指定して削除

Worksheets(Array(○○,○○)).Deleteと書き、○○の部分に「インデックス(何番目)」を指定します。

最初に紹介したシート名の指定とは違い、ダブルクォーテーションで囲まないので注意してください。

「シート名が決まっていない時」、「処理によってシート名が違う時」は、このインデックスによる指定になります。

POINT
インデックスはダブルクォーテーションで囲みません。
削除するシートの数だけ、カンマ(,)でインデックスをつなげていきます。

コード

 

解説

ブックの左から1、2、3番目のシートが削除されます。

 

選択状態の複数シートを削除

プログラムの処理などで選択状態になっているシートをすべて削除したい時は、ActiveWindow.SelectedSheets.Deleteで削除できます。

コード

 

解説

今回のプログラムでは、Worksheets(Array(1, 2, 3)).Selectで、左から1、2、3番目のシートが選択状態になっています。

そのため、ActiveWindow.SelectedSheets.Deleteでブックの左から1、2、3番目のシートが削除されます。

 

注意すること
ブックからすべてのシートを削除しようとすると、エラーになります。
ブックには、必ずシートが1つ以上ないといけないからです。

 
その他テクニックは、次の記事を参考にしてください。

【VBA】ワークシートの削除とテクニック
ワークシートを削除する時は、Deleteメソッドを使います。 削除するシートは、「シート名」や「インデックス(何番目)」で指定できます。 シート名で指定し削除 Worksheets("○○").Deleteと書き、○○の部...

関連記事

VBAテクニック辞典
VBAテクニック辞典
エクセルVBAおすすめ本|実際に読んだ本を目的別に紹介
エクセルVBAおすすめ本|実際に読んだ本を目的別に紹介
中途・未経験でプログラマーに転職する方法【30代前半までが勝負】
中途・未経験でプログラマーに転職する方法【30代前半までが勝負】
タイトルとURLをコピーしました