オートフィルタ後の「抽出データのみ」を集計・転記するVBAテクニック

【業務効率化】VBA
スポンサーリンク

「……えっ、どうして? フィルタで非表示にしたはずのデータまで貼り付けられている……(泣)」

こんな経験はありませんか?

特定の顧客データだけを画面に表示させて、いつも通りにコピー&ペースト。しかし、貼り付け先確認すると、非表示だったはずの他社のデータまでずらりと並んでいる……。これはExcel初心者あるあるですよね。

実は、VBA(マクロ)を使えば、この「見えているセルだけ(可視セル)」を扱う操作は、たった1行のコードを追加するだけで解決できます。今回は、そのテクニックを紹介します。

【業務効率化】VBAの記事を見る 

なぜ「見えている範囲だけ」をコピーできないのか?

通常のVBAで Range(“A1:B10”).Copy と書くと、Excelは「指定された範囲内にあるセルは、非表示かどうかにかかわらず、すべてコピーする」と解釈してしまいます。

これを「画面に表示されているセルだけを対象にしてほしい」と指示するために使用するのが、SpecialCells(スペシャルセルズ)という指示になります。

【例え話で解説】お米を分ける「ふるい」のイメージ

少しイメージしてみてください。砂が混じってしまったお米から、お米だけをきれいに取り出したいとき、私たちは「ふるい」を使いますよね。

「非表示」という不要な砂を下に落とし、「可視(表示されている)」という美味しいお米だけをきれいに残してくれるのです。

コピペで使える!可視セルのみを操作するコード

では、実際に現場でそのまま使えるコードをご紹介します。

1.フィルタで抽出されたデータだけを別シートにコピーする

このコードは、オートフィルタでデータが抽出された状態で実行することで、画面に見えているデータだけを別シートへと正確に転記します。

Sub CopyVisibleCellsOnly()
    ' 変数の宣言
    Dim wsSource As Worksheet
    Dim wsTarget As Worksheet
   
    Set wsSource = ThisWorkbook.Worksheets("データ")
    Set wsTarget = ThisWorkbook.Worksheets("抽出結果")
   
    ' 万が一フィルタがかかっていなかった時のためにエラー回避
    On Error Resume Next
   
    ' A1から始まる表全体のうち、「見えているセル(xlCellTypeVisible)」だけをコピー
    wsSource.Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _
        Destination:=wsTarget.Range("A1")
   
    ' エラー処理を元に戻す
    On Error GoTo 0
   
    MsgBox "抽出データの転記が完了しました!"
End Sub

2.フィルタで抽出されたデータの合計値だけを算出する

「画面に表示されている金額だけを合計して、変数に格納したい」という場面では、VBAでWorksheetFunction.Subtotalを活用するのが最適です。

Sub SumVisibleCells()
    Dim targetRange As Range
    Dim totalSum As Double
   
    ' 金額が入っているB列の範囲(見出しを除く)を指定
    Set targetRange = Range("B2:B100")
   
    ' WorksheetFunctionのSUBTOTAL関数を使います
    ' 「109」は、非表示の行を無視して合計する(SUM)という指示です
    totalSum = Application.WorksheetFunction.Subtotal(109, targetRange)
   
    MsgBox "現在表示されている金額の合計は " & Format(totalSum, "#,##0") & " 円です。"
End Sub


おわりに

今回ご紹介した SpecialCells(xlCellTypeVisible) というコードを知っているだけでも、実務においては非常に強力な武器になります。それほど実践的で価値のあるテクニックです。

大切なのは、小さな成功体験を積み重ねて「自動化の圧倒的な便利さ」を体感することです。ぜひ今回紹介したコードを試してみてください!

【業務効率化】VBAの記事を見る 


VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でも、年間100万円以上の節約・資産管理・スキルアップで新NISAで年間360万円投資し、iDeCoもフル活用しています。日商簿記3級持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、稼ぐ力を高めるITスキルについて発信しています。

生活を豊かにしたくて、高配当株投資で年間配当金60万円をめざしています。現在は年間配当金25万円以上達成!

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【業務効率化】VBAITスキル
スポンサーリンク
ぐーをフォローする

コメント

タイトルとURLをコピーしました