Note: The other languages of the website are Google-translated. Back to English

Excelのセル値に基づいてワークシートを削除するにはどうすればよいですか?

ブック内に複数のワークシートがあるとすると、セルの値に基づいてシートを削除したいとします。 たとえば、特定のセルA1に「KTE」というテキストが含まれている場合、セルA1にこのテキストが含まれているすべてのシートを一度に削除する必要があります。 この記事は、Excelでこのタスクを処理するのに役立つ場合があります。

VBAコードを使用してセル値に基づいてワークシートを削除する


矢印青い右バブル VBAコードを使用してセル値に基づいてワークシートを削除する

ここでは、特定のセルが特定の値を持つすべてのシートを削除するためのコードを紹介します。次のようにしてください。

1. 押したまま Alt + F11 キーを押して アプリケーション向け Microsoft Visual Basic 窓。

2に設定します。 OK をクリックします。 インセット > モジュール、次のコードをに貼り付けます モジュール 窓。

VBAコード:セル値に基づいてワークシートを削除します:

Sub deletesheetbycell()
'Updateby Extendoffice
    Dim shName As String
    Dim xName As String
    Dim xWs As Worksheet
    Dim cnt As Integer
    shName = Application.InputBox("Input the text to delete the sheets based on:", "Kutools for Excel", _
                                    "", , , , , 2)
    Application.DisplayAlerts = False
    cnt = 0
    For Each xWs In ThisWorkbook.Sheets
        If xWs.Range("A1").Value = shName Then
            xWs.delete
            cnt = cnt + 1
        End If
    Next xWs
    Application.DisplayAlerts = True
    MsgBox "Have deleted" & cnt & "worksheets", vbInformation, "Kutools for Excel"
End Sub

注意:上記のコードでは、 A1 は、シートの削除に基づく特定のテキストを含む特定のセルです。

3. 次に、 F5 このコードを実行するためのキーを押すと、シートを削除する特定の値を入力するように促すプロンプトボックスが表示されます。スクリーンショットを参照してください。

セル1によるドキュメント削除シート

4。 そして、 OK ボタンをクリックすると、セルA1にテキストKTEが含まれるすべてのシートが一度に削除されます。 スクリーンショットを参照してください:

セル2によるドキュメント削除シート


最高のオフィス生産性ツール

Kutools for Excelはほとんどの問題を解決し、生産性を80%向上させます

  • 再利用: すばやく挿入 複雑な数式、チャート および以前に使用したものすべて。 セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
  • スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
  • セル/行/列をマージする データを失うことなく; 分割セルコンテンツ; 重複する行/列を組み合わせる...重複セルを防止します。 範囲を比較する...
  • [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
  • 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
  • テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
  • スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
  • ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
  • 300 以上の強力な機能. Office / Excel 2007-2021 および 365 をサポートします。すべての言語をサポートします。 企業や組織に簡単に導入できます。 フル機能の 30 日間無料トライアル。 60日間の返金保証。
kteタブ201905

Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
officetab下部
コメントを並べ替える
コメント (4)
まだ評価はありません。 最初に評価してください!
このコメントは、サイトのモデレーターによって最小化されました
簡単な質問ですが、上記のコードは、入力された値を含むワークシートを削除するために機能しますが、入力された値を含まないワークシートを削除したい場合はどうなりますか。 「=」演算子を「<>」演算子に置き換えてみましたが、機能しません。ありがとうございます。
このコメントは、サイトのモデレーターによって最小化されました
アンクル、
あなたが言ったように、あなたはただ以下のコードのように「=」を「<>」に変更する必要があります:

Sub deletesheetbycell()
文字列としての薄暗いshName
Dim xName As String
ワークシートとしての薄暗いxW
Dim cnt As Integer
shName = Application.InputBox( "テキストを入力して、シートを削除しないでください:"、 "Kutools for Excel"、_
"" 、、、、、、 2)
Application.DisplayAlerts = False
cnt = 0
ThisWorkbook.Sheetsの各xWについて
If xWs.Range( "A1")。Value <> shName Then
xWs.Delete
cnt = cnt + 1
終了する場合
次のxW
Application.DisplayAlerts = True
MsgBox「削除しました」&cnt&「ワークシート」、vbInformation、「KutoolsforExcel」
End Subの

ぜひお試しください。お役に立てば幸いです。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、
シートの削除を求められたときに自動的に「はい」と応答する方法があるかどうか教えてください。 どうもありがとうございます。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、私の最後の質問を気にしないでください。 Delete行の前後に次を追加しました:Application.DisplayAlerts = False
Application.DisplayAlerts = True

ここにはまだコメントが投稿されていません
あなたのコメントを残す
ゲストとして投稿
×
この投稿を評価:
0   文字
推奨される場所

フォローする

著作権©の2009 - WWW。extendoffice.com。 | | 全著作権所有。 搭載 ExtendOffice。 | サイトマップ
MicrosoftおよびOfficeのロゴは、米国MicrosoftCorporationの米国およびその他の国における商標または登録商標です。
SectigoSSLで保護