「みんな教えて! 選手権!!」開催のお知らせ

エクセル初心者で基本的な質問となります。
エクセルで複数のシートの「計」を含む行を削除したいです。

複数のシートは「データ1」「データ2」のように名前が決まっており20シート程度有ります。
データには小計や総計が含まれており、「計」を含む行をすべて削除できるマクロを作成したいです。

以下が「計」を含む行の削除で、マクロは問題なく動きましたが、シート名に「データ」を含むシートすべてに実行するためにはどうしたらよろしいでしょうか。

Dim i As Long


For i = 200 To 1 Step -1
If InStr(Cells(i, 2).Value, "計") >= 1 Then
Rows(i).Delete
End If
Next i

A 回答 (1件)

こんばんは



以下は、シート名に「データ」を含むシートをピックアップする例です。
考え方は、ご提示のコードとほとんど同じです。
「各セルに対してセルの値が検索値を含むか」と「各シートのシート名が検索値を含むか」なので、対象が少し違うだけですね。

以下では、該当シート名を表示しているだけですが、表示する代わりにそのシートでなさりたい処理を行えばよいでしょう。

Dim sh As Worksheet

For Each sh In Worksheets
 If InStr(sh.Name, "データ") > 0 Then
  '対象シート名を表示
  MsgBox sh.Name
 End If
Next sh
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A