• ベストアンサー

検索・抽出・貼り付けのマクロ

シート1のデータをオートフィルターかけて検索し抽出したものを、A列、B列、D列、F列をシート2の、A列、B列、C列、D列に貼り付けるマクロを教えて頂けますでしょうか? 一週間位悩んでいます。

質問者が選んだベストアンサー

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

Sub Test()   Dim FR As Range   With Worksheets("Sheet1")     If Not .AutoFilterMode Then       MsgBox "Sheet1はAutoFilterModeになっていないです。"       Exit Sub     Else       Set FR = .AutoFilter.Range     End If   End With   With Worksheets("Sheet2")     FR.Range("A:B").Copy .Range("A1")     FR.Range("D:D,F:F").Copy .Range("C1")   End With End Sub

その他の回答 (1)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

エクセルには、フィルターオプションという機能があるので セルに抽出する条件を入れるだけで、別シートにデータが抽出できます。 この設定が出来たらマクロの記録でコードが得られますので、希望に合わせて 編集してみてください。 http://www.eurus.dti.ne.jp/yoneyama/Excel/vba/vba_advancedfilter.html などが参考に

関連するQ&A

  • マクロを使って抽出する

    マクロを使った抽出について教えてください。 A列  B列  C列  D列 番号  区分  氏名  年齢  *区分はA~Pが入ります。  *リスト範囲:A1:D200 セル[F1]に区分(A~P)を入力して実行すると35歳以上を抽出する。 オートフィルタの設定を使わずマクロで実行したいのですが、どのようなマクロを書けばよいのかわかりません。 マクロ初心者で申し訳ありませんが、よろしくご教授ください。

  • Excel2000マクロ

    お世話になっております。 マクロのことで教えてください(マクロ初心者です(^_^;)) A列・・日付 B列・・時刻 C列・・数値データ “時刻”が2秒おきのデータなので1分おきのデータを抽出したいので、D列にSECOND関数を使って秒だけを抜き出し、 オートフィルタで“0”だけを抽出し、これで1分おきのデータを抽出し、 B列がX軸でC列がY軸のグラフを作ります。 これをマクロで記録して自動的にやりたかったのです。 ですが、 「D列にSECOND関数を使って秒だけを抜き出し、 オートフィルタで“0”だけを抽出し、これで1分おきのデータを抽出し、・・」 のところは、うまくマクロで自動化できるのですが、 別シートに出来たグラフを見ると、一番最初に記録して作ったグラフがそのまんまできてしまいます。 次のデータでグラフをつくりたかったのですが。。 これはどうしてでしょう? グラフまではうまくできないのでしょうか?

  • マクロでのデータの抽出&貼り付けについて

    代理店ごとに伝票書類を作成するのに、マクロを組んでいます。 シート1のデータをオートフィルタで抽出して、シート2へ貼り付けますがうまくいかないので教えていただきたいです。 代理店は10社ほどあります。 代理店ごとの伝票(シート2以降)へはシート1の必要なデータのみ貼り付けたいです。 【シート1】 A B C D E 代理店名 合計 小計 消費税 注文No 代理店A ○○○ ・・・ ・・・ aaa 代理店B ××× ・・・ ・・・ bbb 代理店A  ●●● ・・・ ・・・ ccc 代理店C △△△ ・・・ ・・・ ddd 【シート2】「代理店A」 注文No 合計 aaa ○○○ ccc ●●● 下記のマクロが間違っているのは重々承知なのですが、一応記載します。 初心者なので必要な情報があれば、追記しますので教えていただければと思います。 ★エクセルは2003です ★貼り付けるときに1行目の「注文No」や「合計」の記載は必要なし ★オートフィルタで抽出後、必要な項目のデータのみ、シート2の各指定の列に貼り付けたい Sub 代理店A() With Worksheets("シート1").Range("A1") .AutoFilter Field:=1, Criteria1:="代理店A" .CurrentRegion.SpecialCells(xlVisible).Copy Worksheets("代理店A").Range("A1") .AutoFilter End With Worksheets("代理店A").Activate End Sub

  • オートフィルタ後の、マクロでの値の参照に関して

    オートフィルタ後の、マクロでの値の参照に関して 下記を悩んでいます。教えて頂ければ幸いです。 マクロで、あるデーター表から、オートフィルタを使用し、必要なデーターを 抽出し、マクロ内に戻し、その後の計算で使用したいと考えています。 A列、B列、C列にそれぞれ、検索条件を指定し、オートフィルタ後、下記のような状態になります。 参照したい値は、D列になります。 下記のような例では、2.5と2.7の値をマクロ内に戻したいです。 (例:オートフィルタ後) 1行  A▼  B▼  C▼  D 16行 **  **   **  2.5   20行 **  **   **  2.7 *2~15行目は見えなくなっています。 *17~19行目は見えなくなっています。 セルを参照し、マクロ内に戻すには、どのような構文(マクロ)の記述が必要でしょうか? 【備考】 ・上記の例では、セルはD16、D20となりますが、抽出条件によっては、行番号が変わってしまいます。 ・抽出後のD列のデーター数は、常に2つです。 よろしくお願いします。

  • マクロでオートフィルターの抽出が出来ない

    下記のデーターをマクロで作成しましたが、2010/03/01は抽出するが、2010/03/02以降は デバッグが発生して上手くいきません。 どの様にすれば解決できるのか、ご教授お願いします。 現状) AファイルのA列のオートフィルタオプションで、抽出条件の指定にBファイルの C6をコピーして、「Ctrl」+「V」で貼り付け抽出すると2010/03/01の24時間分の データーが抽出されます。2010/03/02を抽出するとデバッグが発生する。 データーの詳細) Aファイルに「元データー Sheet」があり、A6~A44647に、 1ヶ月分の日付が記載されてます。 (B6~B44647には、24時間を1分間隔でのデーターがあります) A列の日付は、2010/03/01~2010/03/31のデーターがあり、 「セルの書式設定」を確認すると、「標準」設定で表記されてます。 オートフィルタによりA列の、各1日分のデーターを抽出させます。 Bファイルの「作成日指定 Sheet」のB3に2010/3/1を入力すると C6には「=$B$3」で「2010/03/01」と表示する様に「セルの書式設定」 「ユーザー定義」で「yyyy/mm/dd」を選択してます。(C36まで設定) 以下C7に「=$B$3+1」で、C8には「=$B$3+2」で、C36までで「2010/03/31」 と表示させてます。

  • エクセルの検索・抽出マクロについて教えて下さい。

    急遽、会社のマクロ使用可のパソコン(ヴィスタ)で、 検索・抽出のデータ作業をすることになりました。 オートフィルタの貼り付けでは、時間がかかりすぎるということで、 職場の少ない知恵を出し合って考えていますが、なかなか上手くいかず、こちらにも お尋ねさせていただきます。 シート1に、3列(番号、文字、英字)の 『参照データ』があります。 シート2の 『検索する番号』 に番号を入れ、 『検索開始』ボタンを押すと、 シート1の『参照データ』から抽出されたデータが、 シート2に 『検索後のデータ』として表になって出てくるような関数(の場合はボタンなし)か、マクロをつくりたいのですが・・ 更には シート2の『検索する番号』を、番号ではなく 表の真ん中の列の『文字』でも検索できるように(番号でも文字でも、どちらでも検索できるように・・)は出来ないでしょうか・・・ ご回答を、心から お待ちしております! よろしく お願いします (u_u)

  • エクセルで3つの条件で検索したい場合

    エクセルで3つの条件で検索したい場合、どうすればいいですか? オートフィルター オプション 抽出条件の指定 「  」を含む 「  」を含む で、3つ目の条件を入れる項目がありません。 例えばシートに 列 A B C D E F とあり、 「A」を含む 「B」を含む 「C」を含む という三つの条件で抽出したい場合、どのようにオートフィルター オプションを使えばいいのでしょうか? ▼マークのフィルターをクリックして 外したい項目のチェックボックスを外せば、A,B,Cを抽出できることはわかってますが 今回は例なだけで、実際はもっと複雑なデータなので、 「オートフィルター オプション」「抽出条件の指定」のやり方が知りたいです。

  • マクロを使って抽出を

    エクセルで検索窓のようなものを作りたいと思っています。 A列には品番、B列にはシリーズ名、C列には対応(○×△)のような表です。 マクロを実行すると、「言葉を入力してください」のようなボックスが出て、そこに文字を入力するとオートフィルタのように抽出してくれるようなものを作りたいのですがどのようにすればいいのでしょうか? それと、検索はB2にバナナ、B8にチョコバナナ、B10にバナナドリンクのような表だとして、検索窓にバナナと入力すると、B2、B8、B10を抽出してくれるようなものを作りたいと思います。 よろしくお願いします。

  • エクセルのVBAマクロで検索と結果表示(抽出)

    エクセルのVBAマクロで検索と結果表示(抽出)を行いたいです。 業務で使用している膨大なリストデータから、特定のキーワードで情報の絞り込みを行いたいのですが、上手くマクロが組めません。 機能としては、シート1で特定のキーワード(テキストボックスに)を入力し検索ボタンを押下すると、 シート2のリストデータから検索に引っかかったセルの"行"を、シート1にリストアップ(貼り付け)していくようなマクロを作りたいのです。 シート2にはB列~AH列xn行のリストデータがあり、シート2のK列のセル内から「シート1のテキストボックスで入力したキーワードを含む」検索を行い、 HITした行をシート1のA9の行から結果として表示を行いたいんです。 簡単に言えばオートフィルタ機能の部分一致版を作りたいのですが・・・。 (オートフィルタでは完全一致でしか抽出が出来ないので) そして、検索ボタンを押下すると前回結果はクリアしたいです。 ネット上のサンプル等も参考にしながらやってみたのですが上手く行きません。。。 どなたか上記のマクロ文をご教授願えないでしょうか。 必要な情報(シート2の特定の列)のみ表示させたいとも思いましたが、むずかしくて断念・・・。 もし可能でしたらこちらもお願い致します。 よろしくお願いいたします。

  • Excelのオートフィルタでデータ抽出するマクロについて

    オートフィルタで指定した期間のデータ抽出のマクロを作成しているのですが上手くいきません。 例えばA列に 10月29日 11月1日 11月3日 11月5日 と日付を入力しており、B列、C列にデータを入力していたとして D列1行目に10月31日、D列2行目に11月4日と入力し D列1行目からD列2行目までと指定したデータを抽出するマクロを教えていただけませんか。 マクロ初心者で、困っております。どうかよろしく御願いします。

専門家に質問してみよう