【VBA】全てのシートを完全一致で抽出する方法
手作業で大量のデータから特定のシートを抽出するのは大変です。この記事では、VBAを使用して簡単に全てのシートから完全一致するデータのみを抽出する方法を紹介します。
サンプルコード
VBA
Option Explicit
Sub ExtractSheets()
Dim ws As Worksheet, targetWs As Worksheet
Dim lastRow As Long, i As Long
Dim searchStr As String
' 検索文字列の設定
searchStr = "完全一致する文字列"
' 新しいワークシートを作成して結果を格納
Set targetWs = ThisWorkbook.Worksheets.Add
targetWs.Name = "抽出結果"
Application.ScreenUpdating = False
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> targetWs.Name Then
lastRow = targetWs.Cells(targetWs.Rows.Count, 1).End(xlUp).Row + 1
' 各シートのデータを検索し、完全一致する行を抽出
For i = 1 To ws.UsedRange.Rows.Count
If ws.Cells(i, 1).Value = searchStr Then
targetWs.Cells(lastRow, 1).Value = ws.Cells(i, 1).Value
lastRow = lastRow + 1
End If
Next i
End If
Next ws
Application.ScreenUpdating = True
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
シート名や列番号が正しいか確認してください。