Vbaを使用してシートを削除するにはどうすればよいですか?
VBA を使用してシートを削除するには、VBA の Delete メソッドを使用する必要があります。削除するシートを指定してこの方法を使用する必要があります。たとえば、「Sheet1」を削除したい場合は、sheet1 に言及し、ピリオド (.) を入力し、最後に「削除」と入力する必要があります。
このチュートリアルでは、VBA コードを使用してシートを削除するさまざまな方法を見ていきます。リボンに [開発] タブがあることを確認してください。ここからビジュアル ベース エディターにアクセスできます。
名前を使用してシートを削除する
各シートには名前があり、書き込みコードを使用すると、その名前を使用してシートを削除できます。したがって、「データ」ワークシートを削除したいとします。コードは次のようになります。
Sub vba_delete_sheet() Sheets("Data").Delete End Sub
警告なしでシートを削除する (プロンプト)
ワークシートを削除すると、削除するかキャンセルするかを確認するメッセージが Excel に表示されます。また、VBA コードを使用すると、この場合 Excel も同様に実行します。
この問題を解決するには、画面の更新を無効にしてシートを削除してから有効にします。
Application.DisplayAlerts = False Sheets("Data").Delete Application.DisplayAlerts = True
セルのシートの名前
ここで、セル値を使用してワークシート名を使用するとします。この場合、これを行うにはVBA 範囲オブジェクトを使用する必要があります。
シート番号を使用してシートを削除
それは正しい。シート番号を使用して削除できます。コードは次のとおりです。
Sub vba_delete_sheet() Sheets(1).Delete End Sub
アクティブシートを削除
アクティブシートを削除するには、シート名を使用してシートを指定する代わりに、「ActiveSheet」オブジェクトを使用できます。
ActiveSheet.Delete
先ほども述べたように、これによりアクティブなシートが削除されるので、削除する前にアクティブ化することができます。ただし、このチュートリアルの冒頭で説明したように、シートを参照して削除できるため、これを行う必要がないことは明らかです。
シートを削除する前にシートが存在するかどうかを確認してください
シートが存在するかどうかを確認して削除するようなコードを作成することもできます。
Sub check_sheet_delete() Dim ws As Worksheet Dim mySheet As Variant mySheet = InputBox("enter sheet name") Application.DisplayAlerts = False For Each ws In ThisWorkbook.Worksheets If mySheet = ws.Name Then ws.Delete End If Next ws Application.DisplayAlerts = True End Sub
このコードでは、 FOR EACHを使用してすべてのワークシートを反復処理します。次に、シート名が入力ボックスに入力した名前と等しい場合にシートを削除するIF ステートメント。
ワークブックからすべてのワークシートを削除します
このような疑問を念頭に置いていると思いますが、ブック内のすべてのワークシートを削除することは不可能だと思います。ワークシートが少なくとも 1 枚残っています。
しかし、私はこの問題の解決策を見つけました。新しい空白のシートを挿入し、そこにある既存のシートをすべて削除できます。
コードは次のとおりです。このコードは、新しいシートを追加し、他のすべてのシートを削除します。
Sub vba_delete_all_worksheets() Dim ws As Worksheet Dim mySheet As String mySheet = "BlankSheet-" & Format(Now, "SS") Sheets.Add.Name = mySheet Application.DisplayAlerts = False For Each ws In ThisWorkbook.Worksheets If ws.Name <> mySheet Then ws.Delete End If Next ws Application.DisplayAlerts = True End Sub
関連するチュートリアル
- Excel で VBA を使用してシート全体を消去する
- VBA を使用して Excel でシートをコピーおよび移動する
- Excel で VBA を使用した COUNT シート
- Excel で VBA を使用してシートを非表示および表示する
- Excel で VBA を使用してシートを保護および保護解除する