koook
@koook

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

エクセル複数シートにおける同時抽出&行削除処理について

解決したいこと

エクセルの集計業務においてVBAを使用しています。
特定の値のセルをもつ行について、複数シート同時に抽出し行削除する処理を行いたいです。
思うような結果が得られませんので解決方法をご教示願います。

ネット記事にて紹介されているコードを切り貼りして作成したものになります。
エクセルVBA初心です。よろしくお願いします。

macOS sonoma, office365

発生している問題・エラー

下記コードにおいて、
特定の値のセルをもつ行について、複数シート同時に抽出することはできるのですが、
行削除する処理が、選択しているシートのみに行われ、その他のシートは抽出された状態で処理が終了してしまいます。エラー表示はありません。

該当するソースコード

Sub MultiSheetFilter()
    Dim ws As Worksheet
    
    For Each ws In ThisWorkbook.Worksheets
    
    Dim targetRange As Range
    
        ws.Range("A1", "XFD1048576").AutoFilter Field:=2, Criteria1:="(特定の値)"
    
    With Range("A1").CurrentRegion

        Set targetRange = .Offset(1, 0).Resize(Rows.Count - 1).SpecialCells(xlCellTypeVisible)
        
        targetRange.Delete shift:=xlUp
    
    End With

    Next ws
End Sub

自分で試したこと

複数のネット記事を参考に、いろいろなコードで試した結果、なんとか現在の結果まで辿りつくことはできました。
あとどこを直せば期待する結果が得られるのか、ご教示いただけますと幸いです。

0

1Answer

MacOSの実行環境が今手元に無いので、推測ですが、

    With Range("A1").CurrentRegion

の行を

    With ws.Range("A1").CurrentRegion

としたら出来ないでしょうか?

1Like

Comments

  1. @koook

    Questioner

    ご助言の通り修正したらできました。ありがとうございます。

  2. 解決したのあれば、本問をクローズしましょう。

Your answer might help someone💌