ヒント:他の言語はGoogle翻訳されています。 訪問することができます English このリンクのバージョン。
ログイン
x
or
x
x
会員登録
x

or

Excelのセル値に基づいてワークシートを削除する方法

私がワークブック内に複数のワークシートを持っているとすると、セルの値に基づいてシートを削除したいと考えています。 例えば、特定のセルA1がテキスト "KTE"を含む場合、セルA1がこのテキストを有する全てのシートを一度に削除する必要がある。 この記事は、Excelでこのタスクを処理するのに役立ちます。

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

OfficeタブOfficeでタブ付き編集とブラウジングを有効にし、作業をより簡単にします...
Kutools for Excelは、ほとんどの問題を解決し、生産性を80%向上させます
  • 何でも再利用: 最も使用されている式や複雑な式、チャート、その他をお気に入りに追加し、将来的にすぐに再利用できます。
  • 20以上のテキスト機能: テキスト文字列から数値を抽出します。 テキストの一部を抽出または削除します。 数字と通貨を英語の単語に変換...
  • マージツール:複数のワークブックとシートを1つに; データを失うことなく複数のセル/行/列を結合します。 重複する行と合計をマージ...
  • 分割ツール:値に基づいてデータを複数のシートに分割します。 1つのワークブックから複数のExcel、PDF、またはCSVファイル。 1列から複数列...
  • 貼り付けスキップ 非表示/フィルターされた行。 カウントアンドサム 背景色別; メーリングリストを作成し、 セルの価値でメールを送信する...
  • スーパーフィルター: 高度なフィルタースキームを作成し、任意のシートに適用します。 ソート 週、日、頻度などにより; フィルタ 太字、式、コメントで...
  • 300の強力な機能以上。 Office 2007-2019および365で動作します。 すべての言語をサポートしています。 企業または組織に簡単に展開できます。

矢印青い右の泡 VBAコードでセル値に基づいてワークシートを削除する

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

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

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

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

Sub deletesheetbycell()
'Updateby Extendoffice 20161008
    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 キーを押してこのコードを実行し、プロンプトボックスがポップアップして、シートを削除する特定の値を入力するように促します。スクリーンショットを参照してください。

docセルによるシートの削除1

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

docセルによるシートの削除2


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

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

OfficeタブはOfficeにタブ付きインターフェイスを提供し、作業をより簡単にします

  • Word、Excel、PowerPointでタブ付き編集と読み取りを有効にする、出版社、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を50%向上させ、毎日数百回のマウスクリックを削減します。
オフィシタブ底
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Ankur Shah · 3 months ago
    quick question, the above code works for me for deleting worksheets which contain the value which is entered, but what if i want to delete worksheets which do not contain value entered. I tried replacing the "=" operator with the <>" operator, but it does not work. Thanks!
    • To post as a guest, your comment is unpublished.
      skyyang · 2 months ago
      Ankur,
      As you said, you just need to change the "=" to " <>" as below code:

      Sub deletesheetbycell()
      Dim shName As String
      Dim xName As String
      Dim xWs As Worksheet
      Dim cnt As Integer
      shName = Application.InputBox("Input the text not 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

      Please try, hope it can help you!