[[20150223162844]] 『特定文字を含む行削除のマクロ』(taro) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『特定文字を含む行削除のマクロ』(taro)

特定文字を含む行削除のマクロという過去の質問に、このような
マクロがあるのですが、(少し変えてあります)

これですとセルの文字列が"サンプルA"だと行削除が適用されるのですが、
これを、
"サンプルA"という文字列を含む行を削除適用できるようにしたいのです。
どなたかご教授お願いします。

 Sub 行削除2()

    Dim i As Long
    Dim j As Long
    Dim sh As Worksheet
    Dim lRow As Long

    For i = 1 To Worksheets.Count
        With Worksheets(i)
            lRow = .Cells(Rows.Count, 1).End(xlUp).Row

            For j = lRow To 1 Step -1
                If .Cells(j, 1) = "サンプルA" Then
                    .Cells(j, 1).EntireRow.Delete
                ElseIf .Cells(j, 1) = "サンプルB" Then
                    .Cells(j, 10).EntireRow.Delete
                ElseIf .Cells(j, 1) = "サンプルC" Then
                    .Cells(j, 1).EntireRow.Delete
                End If
            Next j
        End With
    Next i

 End Sub

< 使用 Excel:Excel2013、使用 OS:Windows7 >


 >.Cells(j, 1) = "サンプルA"
 ここを
 .Cells(j, 1) Like "*サンプルA*"
 でどうですか?
(稲葉) 2015/02/23(月) 16:39

稲葉さんありがとうございました
出来ました。

投稿する前に同じようなもので試したんですがどこかエラーがあったみたいですね。

ありがとうございました。
(taro) 2015/02/23(月) 16:48


 今は3つですけど、もしもっとたくさん消したいものがあるんだーということであれば
 こんなやり方もあります。
    Sub 行削除3()
        Dim r    As Long      '行番号
        Dim rng  As Range     '評価対象のセルを一時的に入れる
        Dim str1 As String    '評価される文字列を入れる
        Dim str2 As Variant   '評価する文字列を入れる器
        Dim sh   As Worksheet '対象のシート

        For Each sh In Sheets
            With sh
                For r = .Cells(Rows.Count, "A").End(xlUp).Row To 1 Step -1
                    Set rng = .Cells(r, "A")
                    str1 = rng '.Value
                    For Each str2 In Array("サンプルA", "サンプルB", "サンプルC")
                        If InStr(1, str1, str2, vbBinaryCompare) > 0 Then
                            rng.EntireRow.Delete xlUp
                            Exit For
                        End If
                    Next str2
                Next r
            End With
        Next sh
    End Sub
(稲葉) 2015/02/23(月) 17:35

 それ本番のデータなのかな?
   If .Cells(j, 1) Like "*サンプル[A-C]*" Then
 で行けると思うけど?
(seiya) 2015/02/23(月) 18:18

稲葉さん
elseifをコピペして追加していましたがこれは便利ですね。
ありがとうございます。

seiyaさん
本番です、出来ました。
ありがとうございます。
(taro) 2015/02/24(火) 08:57


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.