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

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

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

コード

 

解説

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

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

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

POINT

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

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

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

 

関連記事

VBAテクニック辞典
成果を出す5つのポイント
VBAテクニック辞典
えくとしょ | 初心者のためのエクセルとVBAの図書館
タイトルとURLをコピーしました