Excel-VBA プログラミング

【VBA】オートフィルタでソートしたデータのみ取得しよう!

 

悩むサラリーマン1

VBAでフィルターされている状態のデータを取得したい抜き取りたい!でも、どうやって取得するんだろう?

 

本章では、VBAでフィルター(オートフィルター)が掛かっているソートした状態のデータを取得する構文を学習していきましょう。

 

 

オートフィルターがかかっている状態

下記のようにオートフィルターがあり、ソートかかっている状態です。

 

この状態から必要項目の情報のデータを「抜き取る、抽出する対処法です。

まずオートフィルターがかかっている状態とは、どんな状態なのか?その画面イメージは下記をイメージしましょう。

 

 

このような状態の途中データを抜き取りたい場合には、当サイトのコーディングで対応できるかと思います。

 

 

VBAでオートフィルターが掛かっている状態のデータを取得する構文

 

VBAでオートフィルターが掛かっている状態のデータを取得する構文は、下記の構文でデータ取得することが可能です。

 

 

まずは、まるまるコピーをして、実際にマクロをのデータのフィルターをかけるようになっています。最大行を取得を自動で行う場合には、末端行を取得する構文を頭に入れてとるようにするとよいでしょう。

「Dim FilterRow As Range」は必要な変数宣言です。ここで行の情報を変数に取得しますので、必ず宣言が必要になります。

 

続いて「.AutoFilter Filed:=1, Criteria1:="●"」では、フィルター条件を指定しています。

「For Each FilterRow In ActiveSheet.Range("A5").CurrentRegion.Resize(,1).SpecialCells(xlVisible))」では、A列の5行目を起点にフィルターが掛かっている列までの範囲でFor分で一つずつデータを確認していきます。

「 If FilterRow.Row > 5 then 」には、フィルター行が入っていますので、そこのデータより前の行までは、データを読まないように制御をかけています。

「strData = ActiveSheet.Range("B" & FilterRow.Row).Value」では、B列の可視化セルのデータをstrDataの変数に情報を取得・抽出するようになっています。

これで、データ取得・抽出は完成です。

それでは、実際に自分が取得したいファイルと調整しながら、プログラムの子修正を行っていきましょう。

 

まとめ

このように、オートフィルターをかけている状態のデータを取得したり、変更したり、データ抽出する際には、上記構文をコピーしてプログラムを作成してみましょう。

フィルター位置やフィルター条件などを調整しながら、プログラムを作ってみてください。

 

合わせて読む
ハピタス登録&ITトレンドの投稿で1万Pを手軽に2重取りしよう!

続きを見る

 

 


→当ブログをフォローして頂けると励みになります。 


大人気自宅飲み放題!多彩なビールをご自宅で楽しめる【DREAM BEER】

楽天おすすめ商品はこちら

  • この記事を書いた人
  • 最新記事

みやさん

【サイト運営者・著者】みやさん 【実績】ライター歴7年 ブログ歴3年⇒2万PV推移中 【実務】現役プログラマー|【発信内容】▶副業やブログの始め方 ▶ライターとしてのノウハウ ▶生活の有益情報を発信しています。皆様の生活改善にご利用ください。

Copyright© 副業ケアネット , 2022 All Rights Reserved Powered by AFFINGER5.