この記事ではVBAマクロを使用してExcelのシートを効率的に削除する方法について解説していきます。
ポイントとしては☆Deleteメソッド☆、☆Worksheetsオブジェクト☆、☆Addメソッド☆を使用することです。
なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。
そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。
それでは詳しく見ていきましょう!
VBAマクロで指定以外のシート削除(複数で警告メッセージ無し、確認メッセージ無し)方法【条件、選択、アクティブ以外を消す】【Delete, Worksheets】
それではまず、VBAマクロで指定以外のシートを削除する方法について解説していきます。
アクティブシート以外を全て消したいケースは多いと思います^_^
なお、効率の観点より途中のシート削除時の警告・確認メッセージは無しにしています。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub SheetSakujoHokani()
' アプリケーションの警告をオフにする
Application.DisplayAlerts = False
Dim sheet As Worksheet
For Each sheet In ThisWorkbook.Worksheets
' アクティブシート以外を削除する
If sheet.Name <> ThisWorkbook.ActiveSheet.Name Then
sheet.Delete
End If
Next sheet
' アプリケーションの警告を元に戻す
Application.DisplayAlerts = True
End Sub
コードのAlt+F8を押し、マクロ選択画面でSheetSakujoHokani関数を実行します。
このコードはアクティブシート以外の全てのシートを削除します。Application.DisplayAlertsをFalseにすることで、削除の際の確認メッセージを非表示にしています。
—
VBAマクロで特定のシート以降を削除(複数、確認メッセージなし)方法【ダイヤログで特定シート指定】【InputBox, Worksheets】
続いては、VBAマクロで特定のシート以降を削除する方法について解説していきます。
特定シート名をダイヤログに入力すると、それ以降のシートが一括で全て消えるコードです!
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub SheetSakujoTokutei()
Dim shimeisho As String
' ダイヤログボックスで削除開始のシート名を入力
shimeisho = InputBox("削除を開始するシート名を入力してください", "シート名の入力")
Application.DisplayAlerts = False
Dim sheet As Worksheet
Dim sakujoFlag As Boolean
sakujoFlag = False
For Each sheet In ThisWorkbook.Worksheets
' 指定されたシート名以降のシートを削除する
If sakujoFlag Then
sheet.Delete
End If
If sheet.Name = shimeisho Then
sakujoFlag = True
End If
Next sheet
Application.DisplayAlerts = True
End Sub
コードのAlt+F8を押し、マクロ選択画面でSheetSakujoTokutei関数を実行します。
InputBox関数を使用して、削除を開始するシート名をユーザーに入力させる方式を取っています。その後、指定したシート名以降のシートを順に削除していきます。
—
VBAマクロですべてのシートを削除し1つ新規シートを作成する方法【Worksheets, Add】
最後に、VBAマクロですべてのシートを削除し、新しく1つのシートを作成する方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub ZenSheetSakujo()
Application.DisplayAlerts = False
Dim sheet As Worksheet
For Each sheet In ThisWorkbook.Worksheets
sheet.Delete
Next sheet
' 新しいシートを追加
ThisWorkbook.Worksheets.Add
Application.DisplayAlerts = True
End Sub
コードのAlt+F8を押し、マクロ選択画面でZenSheetSakujo関数を実行します。
このコードは全てのシートを一度削除し、その後新しく1つのシートを追加します。簡単で直感的な処理となっております。
まとめ
このように、VBAマクロを使うとExcelのシート操作を効率的に行うことができます。
初心者の方でも、上記のコードを参考にして、自身のニーズに合った処理コードを作ってみてください!