• ベストアンサー

オートフィルタのリストを順番に印刷できるマクロ

会社である表にオートフィルタをつけています。 そのオートフィルタのリスト項目ごとに印刷をしたいのですが、 かなり手間がかかってしまうので、マクロをくみたいと考えています。 リストの項目は毎回変わってしまうので、マクロ初心者の私にはとても難しいのです。 お分かりになる方よろしくお願いします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 実際のデータの配置がどのようになっているのか判らないので、方法だけです。 >・・・オートフィルタのリスト項目ごとに印刷をしたいのですが・・・ とありますので、ある列の項目すべてでオートフィルタをしプリントアウトしたい!ということだと解釈してのコードになります。 ↓の画像のようにSheet1のD列のすべての項目でオートフィルタをかけて、プリントアウトするようにしてみました。 (Sheet1のD列データをSheet2のA列に重複なしで表示するようにしていますので、Sheet2は使用していないという前提です) 画面左下にある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim i, j As Long Dim ws1, ws2 As Worksheet Set ws1 = Worksheets("sheet1") '←Sheet名は実際のSheet名に! Set ws2 = Worksheets("sheet2") ws2.Cells.Clear For i = 2 To ws1.Cells(Rows.Count, 1).End(xlUp).Row If WorksheetFunction.CountIf(Range(ws1.Cells(2, 4), ws1.Cells(i, 4)), ws1.Cells(i, 4)) = 1 Then ws2.Cells(Rows.Count, 1).End(xlUp).Offset(1) = ws1.Cells(i, 4) End If Next i j = ws1.Cells(Rows.Count, 1).End(xlUp).Row For i = 2 To ws2.Cells(Rows.Count, 1).End(xlUp).Row Range(ws1.Cells(1, 1), ws1.Cells(j, 4)).AutoFilter field:=4, Criteria1:=ws2.Cells(i, 1) ws1.PrintOut Next i End Sub 'この行まで あくまでこちらで勝手に表を作った上でのコードですので、中身は実状に合わせる必要があります。 Sheet1のデータ範囲・オートフィルタの列等々です。m(__)m

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • オートフィルタで表示されるリスト全部をマクロで抽出したい

    マクロでオートフィルタで抽出する項目を idx = Split("A社,B社,C社,・・・・・", ",") として入力し、 .AutoFilter Field:=1, Criteria1:=str(idx) というように抽出し、新しいシートにコピーているのですが、 社名の追加や変更がよくあるので、 その場合、毎回マクロを訂正しなければなりません。 オートフィルタのドロップダウンリストに表示されるものを 1つずつ全て抽出して新しいシートにコピーする方法はないでしょうか? ご存知の方、どなたか教えてください。 よろしくお願いします。

  • エクセル・マクロ オートフィルタからコピー

    Excel2000使用中です。 縦にたくさん項目が並んでいる表にオートフィルタを行い特定の項目のみを抽出し、抽出した項目のみを他の表にコピペをするという作業をマクロで行ないたいです。 ただし抽出した項目数は50~75項目で日によって変わりますが、抽出先の表は75項目で、75に足りない部分は空白です(空白は必須です)。 始めはオートフィルタをかけた後で上から75行コピーして貼り付けをしてマクロ設定してみたのですが、うまくいきません。 このように日々変化する項目があってもマクロを設定する方法はありますか?

  • エクセルでのオートフィルタに関して(マクロ)

    1行目にタイトルがある表がありましてその表に オートフィルタを掛けて条件を複数指定して検索・・・ここまで手作業。 その後マクロでヒットした行をコピーして別のシートにコピーしたり、ということを行っています。 もともとの表のデータ数は日々増減していて ほしい行の行数も毎回変わってきます。 検索した行をコピーするために選択すると Rows("2809:2809").Select こんな具合に 行番号で指定されるのでデータ数が増減すると うまくいきません。 検索条件を指定して検索した行を うまくマクロで指定することは出来るのでしょうか? 良い方法がありましたら御教授願います。 もう一点ですが 自動記録でオートフィルタの画面を開いたままでは「記録終了」できないですよね? マクロでフィルタ画面を開いて 検索条件を指定するところから手作業でするのは可能でしょうか? あわせてよろしくお願いします。

  • オートフィルタをかけるマクロ

    A12からA50に表示されている内容でB列にオートフィルタをかけ、印刷をする というマクロですが、 Selection.Autofilter field:=2, Criteria1:=Range("A12") Activesheet.Printout を39回コピーし、"A12"の部分を"A13"............"A50"に変えていきました。 本当はもっとスッキリできると思うのですが、そこがまだよくわかりませんので どなたか教えていただけないでしょうか。 A列は必ず50までデータがあるとは限りません。 エクセル2003使用の初心者です。 よろしくお願いします。

  • マクロ オートフィルタで困っています。

    マクロ オートフィルタで困っています。 1列目と2列目からそれぞれ条件をフィルタで抽出し、抽出された行を削除するマクロを組んだのですが(下記)、Bの条件が表にない場合に2行目から下が全て削除されてしまいます。 元の表は毎週変わるため、抽出する条件があるかないかはその時次第です。 オートフィルタにこだわってはいませんが、その他の抽出方法もいまいち分からず……。 どのようにすればよいのか、教えていただけますでしょうか。 宜しくお願い致します。 <マクロ> Sub Macro() Selection.AutoFilter Field:=1, Criteria1:="A" Selection.AutoFilter Field:=2, Criteria1:="B", Operator:=xlAnd Dim gyou(1) As Long gyou(0) = 2 gyou(1) = Range("A1").CurrentRegion.Rows.Count Rows(gyou(0) & ":" & gyou(1)).Select Selection.Delete Shift:=xlUp End Sub

  • オートフィルタで抽出されたデータをうまく印刷したい

    Excel2003で作ったA1:AU1666にデータが入っている表があります。 オートフィルタで、ある項目が○のものだけを抽出し、その部分だけ印刷したいのですが、 印刷しようとすると細かく改ページがされてしまします。 青い線を動かそうとしても動かせません。 そこで、可視セルだけをコピーして他のシートにでも貼り付けようとしたのですが、 「結合されたセルの一部を変更することが出来ません」となりコピーできません。 結合を解除しようとも思ったのですが、結合されている部分とされていない部分がたくさんあり、一気に解除ができません。 オートフィルタを使った表の見えている部分だけをうまくページに収めることは出来ないのでしょうか?

  • オートフィルタの抽出結果をマクロで表示するには?

    A 1000  D 200 A 500 A 1000 B 2000 上表をオートフィルタでA及び1000で絞ると左下に『4レコードで2個です。』と抽出個数が表示されると思いますが、その個数(2個)をマクロを使って表示させるにはどうすればいいでしょうか? マクロの記録でオートフィルタをかけるところまではできるのですが、個数表示で壁にぶち当たっています。 ちなみに1000を検索させて個数を出すという方法もありますが、2行目のデータが他の行にもあるため、データを検索させて個数を導くマクロは作られないので、オートフィルタからのマクロを作成しています。 マクロ初心者のため、分かる方いらっしゃいましたらご教授をお願いします。

  • Excelオートフィルタについて

    WindowsXPでExcel2000を使用しています。 Excelで管理している顧客リストがあるのですが、 検索するときにオートフィルタに引っかかってこないものが あります。 顧客会社名、担当者名などのカナ文字でフィルタにかけるのですが、 例えば「ハナコ」という担当者がセル上に存在しているにもかかわらず フィルタの選択肢に出てきません。 (「データ」→「フィルタ」→「オートフィルタ」の機能) キーボードで「ctrl」+「f」で検索するときちんと引っかかります。 どうしてでしょうか。 このファイルは18項目×3000件くらいのデータです。 また、全く別のファイルでも同じようなことがあります。 こちらはカナでフィルタにかけたときに、「ア」から「ナ」までの選択肢しか表示されません。 もちろんリストには「ニ」から「ワ」までの名称も並んでいます。 こちらのファイルは同じExcel2000で、三項目×1500件です。

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

    オートフィルタ後の、マクロでの値の参照に関して 下記を悩んでいます。教えて頂ければ幸いです。 マクロで、あるデーター表から、オートフィルタを使用し、必要なデーターを 抽出し、マクロ内に戻し、その後の計算で使用したいと考えています。 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つです。 よろしくお願いします。

  • EXCEL2007-マクロ-オートフィルター-1件追加

    EXCEL2007のオートフィルターで必要な項目を1件づつ選んで使用しておりますが、マクロを使って選択している項目を1件だけ除く事や、1件だけ追加する事は出来ますでしょうか?ご存じの方がいらっしゃいましたらお教え下さい。宜しくお願い致します。