エクセルマクロVBAについて
エクセルマクロVBAについて、こんなこと出来ますか?
■A列からAS列の1行目にヘッダー情報をもつデータベース
■A列に担当者名
■A列にオートフィルタをかけて各担当ごとにデータを抽出したものを別シートに貼り付けて自動印刷したい
■担当者は都度変わるので、Criteria1:="xxx"というようには直接書けない(担当名を自動で抽出したい)
■担当者の数も都度変わる
■補足 一行のデータを特定の雛形に転記する必要があるので別シートに出したいです
ちなみに、アナログで記録したコードは以下です。
Sub test1()
Sheets("データ抽出シート").Select
ActiveSheet.Range("$A$1:$AS$300").AutoFilter Field:=1, Criteria1:="山田"
Range("$A$1:$AS$300").Select
Selection.Copy
Sheets("抽出データ貼付シート").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Sheets("データ抽出シート").Select
ActiveSheet.Range("$A$1:$AS$300").AutoFilter Field:=1, Criteria1:="斉藤"
Range("$A$1:$AS$300").Select
Selection.Copy
Sheets("抽出データ貼付シート").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Sheets("データ抽出シート").Select
ActiveSheet.Range("$A$1:$AS$300").AutoFilter Field:=1, Criteria1:="田中"
Range("$A$1:$AS$300").Select
Selection.Copy
Sheets("抽出データ貼付シート").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End Sub
これ、担当者の抽出を自動でなんとかなりませんか?
お礼
zap35 さん、こんにちは。 今回も目を留めてくださり、ありがとうございます。 >「シートをコピーし、背景色を消して印刷後、コピーしたシートを削除する」方法ではダメですか? こういう考え方もあるのですね。勉強になります。 “元に戻す”ということばかり考えていましたので、全く思いつきませんでした。 教えていただいたコードで試してみようと思います。 ありがとうございました。