- ベストアンサー
エクセルのマクロで印刷設定を可能にする方法
- エクセル2003を使用していますが、マクロを使って印刷設定をカスタマイズすることは可能でしょうか?
- Sheet1に入力されたデータを元にSheet2に必要な箇所のみを反映させ、それを印刷したい場合、マクロを活用することができます。
- 具体的には、Sheet1の特定のセルに入力された文字に応じて、Sheet2の印刷範囲を設定することができます。これにより、必要な範囲だけを印刷することが可能となります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
可能です マクロの記録を活用しましょう 今回の最終処理は印刷なので、印刷のマクロから考えてみましょう ただし、1枚から6枚まで印刷枚数を変化する必要があるので考慮します まずは、1ページのみ、2ページまで、3ページまでの印刷をマクロの記録で記録します 結果は '------------------------------------------------------------ Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2008/11/12 ユーザー名 : ' ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate:=True End Sub Sub Macro2() ' ' Macro2 Macro ' マクロ記録日 : 2008/11/12 ユーザー名 : ' ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2, Copies:=1, Collate:=True End Sub Sub Macro3() ' ' Macro3 Macro ' マクロ記録日 : 2008/11/12 ユーザー名 : ' ActiveWindow.SelectedSheets.PrintOut From:=1, To:=3, Copies:=1, Collate:=True End Sub '------------------------------------------------------------ のようになるかと思います 以上の結果から印刷枚数は To:= の値を変化させれば良いことが分かると思います あとは、どうやって印刷枚数を求めるかです 手順としてはSheet1のJ18に値があるか、あれば1ページ J27に値があるか、あれば2ページまで ・ ・ J63に値があるか、あれば6ページまで Sheet2に移動し、印刷ページ数を設定、印刷実行 これを何も考えず、マクロ化すると次のように成るかと思います '------------------------------------------------------ Sub test() Dim 印刷枚数 As Integer 印刷枚数 = 0 Sheets("Sheet1").Select If Range("j18").Value <> "" Then 印刷枚数 = 1 If Range("j27").Value <> "" Then 印刷枚数 = 2 If Range("j36").Value <> "" Then 印刷枚数 = 3 If Range("j45").Value <> "" Then 印刷枚数 = 4 If Range("j54").Value <> "" Then 印刷枚数 = 5 If Range("j63").Value <> "" Then 印刷枚数 = 6 Sheets("Sheet2").Select ActiveWindow.SelectedSheets.PrintOut From:=1, To:=印刷枚数, Copies:=1, Collate:=True End Sub '------------------------------------------------------
その他の回答 (1)
- hige_082
- ベストアンサー率50% (379/747)
NO.1です すみません 書き込み内容を確認し戻るつもりが投稿ボタンを押してしまいました もう少しお付き合いください ただし、エラー処理は一切していません 対象セルがすべて空白の場合などエラーが出ます 会社等で使用するには、この辺も考慮する必要があります 以上参考になれば幸いです
お礼
こんばんは。 こんなに丁重に教えていただきありがとうございます。 初心者の私にも分かりやすく、大変助かりました。 対象となるセルが全て空白になることはないので、教えていただいたとおり実行してみようと思います。 また自分なりに勉強しても分からないときは、ぜひ助けてくださいね。 本当にありがとうございました。