こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

MS-EXCEL VBA (マクロ) の書き方

エクセルの複数シートのデータを両面印刷可能なプリンターで、両面印刷するためのマクロを書きたいのですが、どうしてもうまく行きません。

シート名は、1,2,3,4 と4シートで、それぞれのシートにA4用紙1枚分のデータがあり、それが印刷範囲に指定されています。それら4枚分の印刷範囲を、1枚のA4用紙に、2ページを1ページに圧縮+両面印刷 で印刷したいのですがどうしてもうまく行きません。(プリンターのプロパティ設定はマクロ実行前にSheet1で行っているのですが。)

どなたかお分かりになる方、お手数ですがご教授願えませんでしょうか。

補足:ちなみに、4ページ分を1ページに印刷して、片面での印刷は以下のマクロで出来ています。

Sheets(Array("1", "2","3","4")).Select
Sheets("1").Activate
'この時Sheet1で、プリンターのプロパティで、4ページを1ページに印刷を選択してある。
ActiveWindow.SelectedSheets.PrintOut Copies:=1

よろしくお願いします。

ちなみにプリンターは事務所のネットプリンターで、TOSHIBA e-STUDIO4520CSeriesPCL6 です。

投稿日時 - 2012-07-10 18:21:04

QNo.7582796

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

プリンターのプロパティ設定は、Sendkeysでイケルことが多いですよ。

ANo.1の補足を読んだ感じだと、、
全シート印刷されているのでSelectはできているはず。「あらかじめ設定」だと、プリンター設定の反映され方に違いがあるのかな・・・?
だとしたら、シート選択した後、プリンターを設定するしかないと思います。
Sendkeys試してみてください。

投稿日時 - 2012-07-12 12:04:45

補足

私の質問へのご協力大変ありがとうございます。

>全シート印刷されているのでSelectはできているはず。「あらかじめ設定」だと、プリンター設定の反映され方に違いがあるのかな・・・?

確かに、おっしゃる通りだと思います。

>Sendkeys試してみてください。

Sendkeys をトライしようと思うのですが、未熟にもこのコマンドは使ったことがなく、これから勉強します。又、その結果を報告します。よろしく。

投稿日時 - 2012-07-13 09:40:30

ANo.1

「マクロの記録」は行いましたか?

1シート4ページだろうが、4シート各1ページだろうが同じこと。
プリンタの設定です。会社で名称が異なるかも?だけど「割付」機能+両面ですね。

> 2ページを1ページに圧縮+両面印刷
マクロの記録中に、プリンタで割付設定して両面印刷を指定してください。

投稿日時 - 2012-07-10 23:15:57

補足

早速のご返事ありがとうございます。

>マクロの記録中に、プリンタで割付設定して両面印刷を指定してください。

マクロの記録中に、プリンターで割付設定や両面設定しても、マクロには何にも記録されません。
このようなプリンターの設定は、マクロでは出来ないと思います。

ですから、マクロ実行前に最初のシートである "1"(シート名) にて手動でプリンター設定をし、
例えば、
Sheets(Array("1", "2", "3", "4")).Select
Sheets("1").Activate
ActiveWindow.SelectedSheets.PrintOut Copies:=1
を実行したのですが、両面印刷を設定していると、
Sheets(Array("1", "2", "3", "4")).Select も実行しなくなり、最初の"1" のデータだけA41枚の4分の1の面積に印刷され(このシートは残り空白で出てきて)、残りのシートはそれぞれがA41枚で印刷され、合計4枚でてきます。
両面印刷に設定していないと、Sheets(Array("1", "2", "3", "4")).Select 
が実行され、全てのデータがA4の4分の1の面積に印刷され、全部でA4一枚(片面印刷)で出て来ます。

投稿日時 - 2012-07-11 09:49:39

あなたにオススメの質問