【VBA】アクティブシート以外のシートをすべて削除する

スポンサーリンク

ループ処理でアクティブシート名と比較し削除

繰り返し処理の中で、1つずつ「ワークシートの名前」と「アクティブシートの名前」を比較し、名前が違う(=アクティブシートではない)時に削除処理をおこないます。

コード

 

解説

今回の例では、変数jogaiSheetNmに、アクティブシート名を保存しています。

アクティブシートはユーザのクリックなどが原因で、他のシートに変化する可能性があります。
なので、一度変数にアクティブシート名を保存することで、アクティブシートが変化しても影響を受けないようにしています。

繰り返し処理(For Each)の中で、targetSheet.Name(処理しているシートの名前)とjogaiSheetNm(アクティブシートの名前)を比較して、異なる時そのシートを削除しています。

POINT
アクティブシートを扱う時は、変数に保存しよう。

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

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

関連記事

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