![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
Excel 2007 マクロ AdvancedFilterについて(再投稿)
先ほど同じ質問を投稿したのですが、画像を添付していませんでした。削除できないため再度投稿しました。
元データ(Sheet1)の表が4つあります。元データは画像に添付しました。
この表で製品名かぼちゃで「空白」と「-」以外の数値が入っている行をSheet3にコピーして貼り付けるマクロを作成しています。
<Sheet2>
製品名その他
かぼちゃ<>
かぼちゃ-
下記マクロを実行したところ、Sheet3にはA列の番号のみ表示されます。
Sub Test1()
Sheets("Sheet1").Range("A1:E34").AdvancedFilter xlFilterCopy, _
Sheets("Sheet2").Range("A1", Sheets("Sheet2").Cells.SpecialCells(xlCellTypeLastCell).Address), _
Sheets("Sheet3").Range("A1")
End Sub
<Sheet3>
A列は空白です。
B列からE列は表示されていません。
どのように修正すればよろしいでしょうか。
![「Excel 2007 マクロ Advan」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/5/346901_5497cdd57ef30/M.jpg)
No.2ベストアンサー
- 回答日時:
AdvancedFilter(2007ではフィルタの詳細設定,以前のエクセルでは「フィルタオプションの設定」)の機能については,マクロ以前にまず手動でエクセル画面上でフィルタの詳細設定を正しく使えるように,エクセルの勉強をしてください。
いま出来ないのは,9割方マクロの問題ではありません。
ポイントその1)
リスト範囲(シート1)のリストの先頭行
および
検索条件範囲(シート2)の先頭行
には,「見出し行」として各列を識別する言葉がそれぞれのセルに記入されていなければいけません。
いまのそのマクロでは
1行目:Sheets("Sheet1").Range("A1:E34").AdvancedFilter
リスト範囲としてシート1の1行目から取っています。
でも実際の1行目には<野菜>と書いてあるだけで,B列C列D列E列は空っぽのままなので,ここがマズ駄目です。
現在の表を生かすなら,最低でも
1行目:Sheets("Sheet1").Range("A2:E34").AdvancedFilter
として,2行目の「番号」「製品名」「外国産」「国産」「その他」の各セルを,タイトル行にします。
検索条件範囲についても同様です。
#ただしこのようにすると,1行目は検索条件範囲では無くなりますので,抽出先のシート3には1行目の「<野菜>」は書き出せません。この点はとりあえず後回しにして,後刻できるようになってから必要に応じて工夫してください。
ポイントその2)
いま具体的にシート2にどのように作成して絞り込ませようとしたのか,まず不明です。
で,回答してみようと思いましたが困ったことに
>製品名かぼちゃで「空白」と「-」以外の数値が入っている行を
いったい何を絞り込みたいのか判りません。
勿論製品名にかぼちゃと書いてある行をまず取り出したいぐらいは判りますが,あとの条件がさっぱりです。
このシート2(検索条件範囲・クライテリア領域)の記入,作成のやり方は,既出回答でアドバイスとして寄せられているページを始めとして,ネットで「フィルタオプションの設定」でちょっと検索してみてください。手順を丁寧に図解してあるページが多数ヒットしますので,それらを参考に「まず手でエクセルを操って,希望の抽出ができるクライテリア領域の作成」までちゃんと出来るようになってください。
これが出来れば,マクロも7割方上手く動きます。
ポイントその3)
検索条件範囲の与え方
2行目:Sheets("Sheet2").Range("A1", Sheets("Sheet2").Cells.SpecialCells(xlCellTypeLastCell).Address),
としていますが,間違った範囲を取り込むと正常な結果が得られません。
こちらもまず手動でフィルタオプションの設定が完全に使えるようになってから,正しくその範囲を取得できる方法を検討して,マクロに書き込んでください。
行き詰まったら,最低限「こう考えて,手でここまで作成しました」というシート2のワークシート上の各セルの記入状況を添えて,追加ご質問を投稿なさってみてください。
ご回答ありがとうございました。詳細にチェック項目を記載していただき、順を追って作業をしたいと思います。うまくいかない場合には、追加で質問させていただきます。
No.1
- 回答日時:
フィルタオプションはあまり知らないのとVBA2007を知らないですがわかる範囲になります
そもそもAdvancedFilterはエクセルのフィルタオプションです
なので表の作り方がまずいと思います
画像では、表がわかれているので、それぞれの表に対してフィルタを設定するのはわかるのですが
範囲指定が一括にされているようにみえます
エクセルの表の性質的にわかれているのはできるのかな?というのがまず疑問です
ヘッダーをひとつにして
空白などは削除してみてください
カテゴリーをわけたければさらに列にカテゴリーを追加するといいでしょう(野菜などです)
さらにSheet3に貼り付けをしたいと思うのですがコピーはしているけどペーストしていません
Sheets("Sheet3").Range("A1")
->
Sheets("Sheet3").select
Range("A1").Select
ActiveSheet.Paste
ここはもしかしたら2007では一括で
Sheets("Sheet3").Range("a1").Paste
とできるかもしれませんので試してみてください
おそらくこのURLにやりたいことはのっていると思いますhttp://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/v …
エクセルにはマクロの記録というのがあります
それをやってみて、ソースをいじったほうが簡単とは思います
やり方はここになります
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/v …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) ExcelVBAでDo Until loopのネスト、IF文を使って一致する物と一致しない物としたい 11 2022/12/24 17:46
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) Sheet2の日付をキーにオートフィルターで2023年1月のデータを抽出し、Sheet3へ書き出すた 2 2023/03/06 23:57
- Visual Basic(VBA) EXCELのVBAについて 2 2023/07/05 17:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで複数セル範囲をコピ...
-
テキストファイルのデータをエ...
-
エクセルマクロ
-
「ドゥ」の簡単なローマ字入力方法
-
googleカレンダーの予定を入力...
-
Google form グーグルフォーム...
-
1MBでドレくらいの文章を書くこ...
-
「ワード2007」で「血文字...
-
ワードにて スペースを全て改行...
-
エクセルでセル未入力時の初期...
-
テキストファイルで改行に置換...
-
PDF 入力途中で改行したい
-
4個の文字a,b,b,cから3個の文字...
-
濁点のつく字が入力出来ないと...
-
聖の王を壬の漢字変換を教えて...
-
一太郎で作成した文書をコピペ...
-
A4のレポート用紙1枚で2000文字...
-
一太郎のコピー、貼り付けにつ...
-
小さい「う」
-
一太郎をワードに変換
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数セル範囲をコピ...
-
エクセル 細かい条件での切り...
-
従事期間の重複チェック、表示
-
エクセルでのセルへ入力日の記...
-
エクセル マクロ 値のある行...
-
エクセルでのデータ蓄積
-
エクセルでの計量分析のやり方...
-
【エクセルとメモ帳を照合したい】
-
オートフィルターで抽出された...
-
エクセルで苦労してます
-
エクセルで空白の項目セルを削...
-
テキストファイルのデータをエ...
-
エクセルにて表に入力→一覧に自...
-
エクセルの行列方向での並び替え
-
画像のCSVデータをガントチャー...
-
マクロ初心者です。 日がすぎた...
-
マクロの自動実行について
-
エクセル関数について
-
Excel 2007 マクロ AdvancedFi...
-
Google form グーグルフォーム...
おすすめ情報