Excel (VBA)

Excel VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(指定なし : Excel 2010)
シート内のリストの値をarrayの要素に取り込んだ後、オートフィルタの絞り込みに使いたい
投稿日時: 18/11/13 20:10:18
投稿者: mi_tan_nm

シート状に30,000件を超えるデータがあります
 
イメージ
A:カテゴリコード B:商品グループ C:商品ID 
  ↓         ↓        ↓      
300種類      140種類    200種類  
 
この中から、特定の商品グループをオートフィルタ―で絞り込むという作業ですが・・・
フィルタ―のリストから、手動でリストチェックをつけて絞り込みをしたいのです。
 
カテゴリーコードや商品グループ、商品IDに規則的な番号が使われておらず、
たとえば30,000件のデータのうち、300個をオートフィルタの一覧からチェックしています
 
ActiveSheet.Range("$B$1:$D$7").AutoFilter Field:=1, Criteria1:=Array( _
        "238795", "30284", "34532", "45656"), Operator:=xlFilterValues
太文字の部分が、300種類あるので、オートフィルターを手動で選ぶのが大変です
 
そこで、シート上に
A:カテゴリコード B:商品グループ C:商品IDのデータテーブルを作成しました
 
arrayなどで、コードを取り込み、その後オートフィルターの絞り込みにチェックをする方法は無いでしょうか?
 
 

回答
投稿日時: 18/11/13 20:21:37
投稿者: simple

フィルタオプション(詳細設定)を使用してはどうですか?
 
フィルタオプションについての参考となるサイト。
http://www.kenzo30.com/ex_kisotoku/ex_ks_tokubetu9_2.htm
http://www.kenzo30.com/ex_kisotoku/ex_ks_tokubetu9_3.htm
条件の設定方法
http://www.kenzo30.com/ex_kisotyu/ex_ks_tyukyuxb3_1.htm
 
もしくは、こちらのサイト。
http://www4.synapse.ne.jp/yone/excel2010/excel2010_filter21.html

回答
投稿日時: 18/11/13 22:27:51
投稿者: WinArrow
投稿者のウェブサイトに移動

>太文字の部分が、300種類あるので、オートフィルターを手動で選ぶのが大変です
 
大変なことは理解できますが、
300種類のカテゴリを配列変数に格納してから、
その中からいくつかを選択するわけですよね?
 
どのような形にすると
選択しやすくなると考えているのですか?

回答
投稿日時: 18/11/13 23:37:52
投稿者: WinArrow
投稿者のウェブサイトに移動

1つの提案
 
ユーザーフォームのリストボックスを使い、
マルチセレクトを設定すると、OR条件で取得可能です。
効率が良いかどうかは判断できませんが・・・・

投稿日時: 18/11/14 08:03:28
投稿者: mi_tan_nm

simpleさん
 
ありがとうございます
前後にも、処理があったので…
コードに組み込みたいと考えてましたが
 
取り急ぎフィルタオプションで対応します

回答
投稿日時: 18/11/14 09:06:14
投稿者: mattuwan44

シートにコピペして、
重複を削除
 
で、元のリストは作れますね。
そこはとりあえずは手動でやればいいと思います。
 
でも、300種類をリストから選ぶのは大変なのでもう少し、
ユーザーが使いやすい、仕組みを考える必要がありそうですね。
 
僕ならID番号なんて使わずに名前の一部で候補が出るようにするかもです。
 
ユーザーフォームのコンボボックスなら、
IDを頭から入れていくと検索してくれるかも知れないので、
試す価値はあるかとは思います。

回答
投稿日時: 18/11/14 23:06:49
投稿者: simple

引用:
前後にも、処理があったので…
コードに組み込みたいと考えてましたが
取り急ぎフィルタオプションで対応します

手作業を強要しているわけではないです。
それをマクロ記録すれば、簡単にマクロにできますよ。

トピックに返信