• 締切済み

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 です。

みんなの回答

  • ap_2
  • ベストアンサー率64% (70/109)
回答No.2

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

Spock7772
質問者

補足

私の質問へのご協力大変ありがとうございます。 >全シート印刷されているのでSelectはできているはず。「あらかじめ設定」だと、プリンター設定の反映され方に違いがあるのかな・・・? 確かに、おっしゃる通りだと思います。 >Sendkeys試してみてください。 Sendkeys をトライしようと思うのですが、未熟にもこのコマンドは使ったことがなく、これから勉強します。又、その結果を報告します。よろしく。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

「マクロの記録」は行いましたか? 1シート4ページだろうが、4シート各1ページだろうが同じこと。 プリンタの設定です。会社で名称が異なるかも?だけど「割付」機能+両面ですね。 > 2ページを1ページに圧縮+両面印刷 マクロの記録中に、プリンタで割付設定して両面印刷を指定してください。

Spock7772
質問者

補足

早速のご返事ありがとうございます。 >マクロの記録中に、プリンタで割付設定して両面印刷を指定してください。 マクロの記録中に、プリンターで割付設定や両面設定しても、マクロには何にも記録されません。 このようなプリンターの設定は、マクロでは出来ないと思います。 ですから、マクロ実行前に最初のシートである "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一枚(片面印刷)で出て来ます。

関連するQ&A