[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『データーを絞り込んで印刷』(keisuke)
Excel2003 OS WindowsXP です。
お世話になります。
A列 B列
品番 品名
1 あ
2 い
2 う
3 え
3 お
3 か
品番と入力してある1行目にオートフィルターをかけ、品番のところの
オートフィルターの一覧から1を選んで印刷、2を選んで印刷、3を選んで印刷
とこれを繰り返しております。なんとか自動でできないでしょうか?
品番は1、2、3とは限らず都度変わります(件数も変動します)ので
オートフィルターの一覧にあるぶんだけを印刷したいです。
方法は問いません、ようは品番ごとに絞り込んで印刷を一度にしたいという事です。
宜しくお願いいたします。
VBAを使うことになるね。
1.まず、フィルターオプションで、A列の品番を、どこか別シートに重複を無視して抽出(つまり、一意になる) 2.その重複がなくなった品番リストを1つずつ取り出して、オートフィルター --> 印刷 これを繰り返す。
こうなると思う。フィルターオプションのところ、オートフィルターのところ、フィルター結果の印刷のところは 実際の操作をマクロ記録したらコードが生成される。これらは、ほとんどそのまま使うことができると思う。
あとは、品番を取り出すループ処理を、これらの上にかぶせればいいんだけど、これぐらいのアドバイスで あとはできる?
(ぶらっと)
うえでかいたことをコードにするとこんな感じ。
Sub Sample() Dim shW As Worksheet Dim c As Range
Application.ScreenUpdating = False
Set shW = Sheets("Sheet2") '作業用シート shW.Cells.ClearContents '作業シートのクリア
With Sheets("Sheet1") 'データシート 'A列の品番を重複を排除して作業シートに抽出 .Columns("A").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=shW.Range("A1"), Unique:=True 'オートフィルター設定があればいったん解除 If .AutoFilterMode Then .AutoFilter.Range.AutoFilter 'あらためてオートフィルター設定 .Range("A1").AutoFilter 'ユニークになった品番リストから品番を1つずつ抽出 For Each c In shW.Range("A2", shW.Range("A" & shW.Rows.Count).End(xlUp)) '抽出した品番の値でフィルタリングして印刷 .AutoFilter.Range.AutoFilter Field:=1, Criteria1:=c.Value .PrintOut Next 'オートフィルター解除 .AutoFilter.Range.AutoFilter End With
shW.Cells.ClearContents '作業シートのクリア Application.ScreenUpdating = True
MsgBox "印刷終了"
End Sub
(ぶらっと)
VBAまで記入して頂き、大変助かりました。
申し訳ございません、最初のアドバイスでは仕組みが理解できませんでした。
あとから頂きましたコードをコピーして実行したら思い通りの事ができました。
コードを書き換えて使わせて頂きます。本当にありがとうございました。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.