オートフィルタで抽出した
データを…
別シートへコピーできます!
VBAコード
ここでは例として、
・シート「コピー元」のセル「B2」から続く一連の範囲の表の
・列「名前(1列目)」を「佐藤」で抽出して
・抽出したデータをシート「抽出」へコピー
します。
※コピー後、シート「抽出」の列幅を自動調整します。
Option Explicit
Sub sample()
Dim srcSheet As Worksheet
Dim destSheet As Worksheet
Dim startRange As String
'コピー元シート
Set srcSheet = Worksheets("コピー元")
'コピー先シート
Set destSheet = Worksheets("抽出")
'表の開始セル
startRange = "B2"
With srcSheet.Range(startRange).CurrentRegion
'コピー元シートの表にオートフィルタを設定してデータを抽出
.AutoFilter 1, "佐藤"
'抽出した結果をコピー先シートへコピー
.Copy destSheet.Range(startRange)
'コピー元シートの表のオートフィルタを解除
.AutoFilter
End With
'コピー先シートの列幅を自動調整
destSheet.Range(startRange).CurrentRegion.Columns.AutoFit
End Sub
実行結果
オートフィルタで抽出したデータを、別シートへコピーできました。
参考①
上記のVBAコードは以下の記事を参考にして作成しました。
●オートフィルタの設定/解除をする
参考②
上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。
●「Rangオブジェクト」の「CurrentRegion」プロパティ