やりたい事
1行目は項目行でズラズラ並んでます。2行目以降がデータです。
A列は商品名です。A列で検索をかけ、商品名1、商品名2、、、、、、商品名12までをA列から探し出し、該当する行全体を別シートにコピーします。現状ではFor Nextループ2重で検索し、とりあえず動作するようになってますが、filterを使った方が早くてすっきりしてると思い、変更したいのです。
ところが、autofilterの検索条件はcriteria1, criteria2と2個まで、3個以上必要な場合はadvancedfilterを使用すると、どこかで読みました。上記の例では12個ですが、実使用では数十個です。
advancedfilterの使い方がよく分りません。
MSDNより
式 .AdvancedFilter(Action, CriteriaRange, CopyToRange, Unique)
CriteriaRange(検索条件範囲)が不明です。おそらくここにcriteria1,2に相当することを書くのだろうと思いますが、具体的にどう書けばいいのでしょうか?
No.1ベストアンサー
- 回答日時:
こんばんは。
>A列で検索をかけ、商品名1、商品名2、、、、、、商品名12
おっしゃるとおりに、商品名1~商品名12(実際はランダムな名前)というのでしたから、Advancedfilterも良いのかもしれませんね。私の記憶では、この検索条件には、バージョンによって違いがあるといいます。記録マクロではうまくはいく可能性は、7割り程度だと思います。
サンプルとして、
列 A~Hまで、
1列目は項目名
データは、A2から、H16まで
検索条件:J列
出力範囲:A30:H30の列
'//
Sub TestMacro01()
Dim Rng As Range
Dim ArData As Variant
Set Rng = Range("A1").CurrentRegion 'データ範囲
Range("A30").CurrentRegion.ClearContents '抽出範囲の削除
Range("J1").CurrentRegion.ClearContents '検索条件の削除
'検索値
ArData = Split("商品名1,商品名2,商品名3,商品名4,商品名6", ",")
'J1は、通常は項目名を入れ、次から検索条件を書き出しますが、
'検索値の末尾に数字がある場合は、商品名1* と同じ意味になるので、
'検索値は、このような約束事の書き方になります。理由は不明、xl2002は、それを排除した。
'=A2="商品名1"
'Range("J1").Value = Range("A1").Value '
For i = 0 To UBound(ArData)
Cells(i + 2, "J").Formula = "=A2=""" & ArData(i) & """"
Next i
Rng.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Range("J1").Resize(i + 1), _
CopyToRange:=Range("A30").Resize(1, 8), _
Unique:=False
End Sub
'//
このAdvancedFiler は、MS-DOS時代の生き残りです。Version 2002の時に、正しく変更しようとしたきらいがありますが、大混乱をしてしまいました。
http://support.microsoft.com/kb/214070/ja
さて、ところで、もう少し工夫はできないか、と私は思いました。
//A列は商品名です。A列で検索をかけ、商品名1、商品名2、、、、、、商品名12までをA列から探し出し、該当する行全体を別シートにコピーします。現状ではFor Nextループ2重で検索し、とりあえず動作するようになってます……//
とのこと。これ自体は、加工すれば、よほどの大きさ出ない限りは、問題はないと思います。
以下は、AutoFilter を使った方法
Excelのバージョンで、2003等の下位バージョンでは無理だと思います。
'//
Sub TestAutoFiler()
With ActiveSheet
.AutoFilterMode = False
.Range("A1").CurrentRegion.AutoFilter _
Field:=1, _
Criteria1:=Array("商品名1", "商品名2", "商品名3", "商品名4"), Operator:=xlFilterValues
.Range("A1").CurrentRegion.Copy Range("A30")
''フィルタのコピーが、隠れている行までペーストしてしまった時
'.Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy Range("A30")
.AutoFilterMode = False 'AutoFilter を解除
End With
End Sub
'//
この書き込みは、「教えて!goo」の改編前にためておいたものです。なお、私は、もっぱら、「教えて!goo」を離れる気持ちにはなれないのは、掲示板スタイルのレイアウトが保たれているからです。
ありがとうございます。
再ログインまでに散々苦労しました。規約変更ったって、変更点が全然わからんし「近々終了するからデータを他所で活用するからな!の念押し」に一瞬見えました。
・この質問の回答が、gooとOKwaveで全然異なってる
・下の方にあった「Powered by OK Wave」が消えてる
これらから推測して、エンジンをNTTで内製化し、質問数が減って来たOKwaveと提携解消、ついてはOKwaveとの間に結んでた規約をgooとの間で新たに締結でしょうか?こんなもんいちいち推測せないかん事自体おかしいですが、アナウンス見落としたも知れません。
回答頂いた内容から判断して、AdvancedFilterは置いといてAutofilterを使うべきですね。Criteria1を配列にして複数検索出来るとは驚きです。
No.4
- 回答日時:
#1の回答者です。
ちょっとオフトピですみません。
>リニューアルには私も苦労させられました。この質問のOKwave側を試しに見て下さい。面白いことになってますよ。
私のマクロを少し改造して、Webブラウザで「教えて!gooを閲覧」したら、ボタンを押すと、同じ内容のOkWaveに飛び、もう一度ボタンを押すと、「教えて!gooを閲覧」に戻るように作りかえました。
実は、今回、このレスだけは、OkWave側に書こうと思いましたが、登録までとなると、新たなメアドも必要なので断念しました。(この件、問い合わせ中) このAdvancedFilterは、Excelの前のもので、それだけに思い入れが強いからです。これらのコマンドが生まれた訳というのも聞きました。
まあ、これからが本当の意味での出発点だと思います。OkWaveと教えて!goo、共にダメになるのか、どちらかが生き残るか、Excelなどの書き込みは、どうやら、OkWave側の人が多いようですが、なるほど、レイアウト的に、OkWaveは見にくいというか、教えて!goo は、ページをまたがなければ、一覧が見れますし、ログも、一覧をTextファイルとして取れます。その分だけ有利だとは思いますが。
No.3
- 回答日時:
No.2です!
投稿後気づきました。
No.1さんの後半部分と同じ回答になっていました。
確認せずに投稿してごめんなさいね。
※ gooがリニューアルしたようで、慣れるまで少し時間がかかりそうです。m(_ _)m
再度ありがとうございます。
リニューアルには私も苦労させられました。この質問のOKwave側を試しに見て下さい。面白いことになってますよ。
http://okwave.jp/qa/q8905197.html
No.2
- 回答日時:
こんばんは!
Excel2007以降のバージョンをお使いであれば、↓のような感じでも大丈夫だと思います。
Sub Sample1()
Range("A1").AutoFilter field:=1, Criteria1:= _
Array("商品1", "商品2", "商品3", "商品4", "商品5", "商品6", "商品7", "商品8", "商品9", "商品10", "商品11", "商品12"), _
Operator:=xlFilterValues
End Sub
※ Excel2003までの場合は使っていない列を作業列として、フラグをたて
その列でフィルタを掛ける方法もあります。m(_ _)m
ありがとうございます。
ちょうどリニューアルが間に入り、お礼が遅れました。AutoFilterで対応可能なようですね。Excel2010なので使用可能です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】指定した検索条件に一致したら別シートに転記したい 2 2022/03/23 16:14
- Excel(エクセル) エクセルでのVBA 2 2022/08/03 06:48
- Excel(エクセル) 【条件付き書式】countifsで複数条件を満たしたセルを赤くする方法 2 2023/02/09 23:53
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- その他(Microsoft Office) Excelで該当しない項目(#N/Aの商品名)を簡単に表示・抽出させる方法についてです 1 2022/08/25 22:12
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Excel(エクセル) 列を自動で追加したい 3 2022/07/11 12:58
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「商品名」と「製品名」の違い
-
Access レポートでiif関数で文...
-
アムウェイは破綻しないのですか?
-
amazonの送料無料は誰が負担し...
-
リシン吹きつけとジョリパット...
-
VBA Advancedfilterの使用法
-
アムウェイをやめさせたい
-
アムウェイについて。
-
ビニールパッケージの「紙の蓋...
-
「誰もが使いやすい。」という...
-
北海道からの送料が安い運送会社
-
家がAmwayだらけに…
-
日清のカップラーメンを多品種...
-
アムウェイの会員になっている...
-
機内食のパンの購入方法
-
【和風総本家】和風総本家でス...
-
姉が強制的に蛇口やらシャワー...
-
ニュルミグってどこに売ってる...
-
エクセル:一つのセルの中で、2...
-
ネットでお金を稼ぐには具体的...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「商品名」と「製品名」の違い
-
Access レポートでiif関数で文...
-
アムウェイのせいで、姉の家庭...
-
リシン吹きつけとジョリパット...
-
スチールラック、ルミナスとエ...
-
駄菓子の名前教えて下さい。
-
ナショナルのバリカン「カット...
-
アムウェイ
-
アムウェイを辞めさせる方法っ...
-
溶剤646
-
ビニールパッケージの「紙の蓋...
-
黄金一味を都内で売っているお店
-
オークションで、司会?をして...
-
ビニールハウス、ビニールを止...
-
■ アダルトグッズの副業は稼げ...
-
ベルセレージュ
-
オオサカ堂で商品を購入 したの...
-
ガチャガチャの転売について
-
彼女がアムウェイをはじめた。
-
昔好きだった”コーン味の駄菓子...
おすすめ情報