• ベストアンサー

エクセルでシート毎の両面印刷を自動で設定する方法

エクセルシートのプリンタドライバの印刷設定について、現在の印刷設定と両面印刷設定とを切り替える方法を探しています(EXCEL2002です)。 VBAによる対策方法を色々調べてみましたが、VBAの機能では対応できないようです。 ( sendkeys を使って擬似的にキー入力を行う方法もありましたが、ショートカットの割り当てが他のアプリケーションと重なる可能性があるため、この方法は避ける事にしました) ワード向けですが、MicrosoftのページにVBからAPIを利用して、同様の設定をするサンプルがありましたので、エクセルのVBAでも試してみましたが、変更したプリンタの設定は、シートの設定に反映されませんでした(エクセル独自でシート毎の印刷設定が保存されていると思っています)。 対策として、 1)APIをうまく使う方法 2)Excelファイルが持っていると思われるプリンタ設定の変更 の2つがあると思っています。 APIを本格的に使ったこともありまんせので、印刷設定に関するAPIの参考情報を教えてもらえるだけでも助かります。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.5

> 保存したファイルを読み直しても、シート別にプリンタ設定が異なっていました。 ホントですね。 勘違いしてました。 -- > 1)APIをうまく使う方法 恐らく、質問者さんが探し当てたものと思われる記事を見ましたが、こちらはプリンタにエスケープシーケンスと呼ばれる信号を送り、「両面に設定を変更しなさい」と命令する手順かと思います。 プリンタがそういうコードに対応しているのが前提ですす。(対応していないプリンタではゴミが印刷されます。) また、「両面に設定を変更しなさい」と命令しても、Excelが「これ、片面で印刷しといて」と命令を出すのなら、デフォルトの設定を変更する意味しかないですし。 APIというのは、アプリケーション・プログラム・インターフェースの名前が示すと通りインターフェースですから、アプリケーション側がインターフェースを提供していない部分に関しては、どうにも出来ません。 両面印刷の設定に関しては、こちらが提供されていないんじゃないかと思います。 > 2)Excelファイルが持っていると思われるプリンタ設定の変更 こちらに関しては、同じシートに対して片面設定<->両面設定を切り替えた物を別名で保存すれば、Stirlingなどのバイナリエディタで比較する事で、対象の設定箇所が絞り込めそうです。 ただ、私が確認した所、数バイト書き換えを行う必要があり、ワークシートの内容が異なる場合や、別のプリンタでの両面設定に対応するか疑問です。

tokeiprint
質問者

お礼

回答ありがとうございます。 1)APIを使う方法ですが、 "Microsoft Knowledge Base" に  「Windows の通常使うプリンタを取得および設定する方法」が記載されていました(WORD用?)。 http://support.microsoft.com/default.aspx?scid=kb;ja;246772 このVBAの使える部分をエクセルで実行したところ、通常使うプリンタの印刷設定を両面設定にする事はできました(できない項目もあります)。 ただ、「通常使うプリンタの印刷設定」を変更できても、現在開いているシートの印刷設定が変わりません。 ( 回答に書いてもらった通り、結局、APIを使ってもこれだけでは不十分なようです) しかたがないので、新しいブックを作成し、両面印刷したいシートの内容とページ設定の内容をコピーする形で対応してみました。 (*シートそのものをコピーすると印刷設定までコピーされてしまいます) この方法でなんとか両面印刷ができましたが、 新規ブックへのコピーに時間がかかるのと、APIを使う不安が残るため、あまりいい方法ではなさそうです。 2)Excelファイルが持っていると思われるプリンタ設定の変更 → ファイルの比較までして頂いてありがとうございます。 やはりどこかに記録されいるのでしょう。 ただ、こちらもVBAから設定できるレベルではなさそうですね。その方法が公開されるまで、今はあきらめようと思います。 □ ところで、No.3の方の回答を見て思いついた方法ですが、 プリントアウトの情報を一旦ファイルに落として、 そのファイルを(API等で)両面設定をしたプリンタに出力するというものです。  印刷設定で”ファイルへ出力する”にチェックをすれば、*.prn の形式でファイルに落とせるとは思いますが、そのファイルの情報をどうやってプリンタに送ればよいのかがわからず断念しました。 個人別に対応するしかないのですが、No.2の方の方法が間違いがなさそうです。

その他の回答 (4)

  • 4ku4ku
  • ベストアンサー率50% (1/2)
回答No.4

#3です。はじめての回答で手違いしてしまいしつれいしました。

  • 4ku4ku
  • ベストアンサー率50% (1/2)
回答No.3

Private Sub CommandButton1_Click() Range("A1:AM44").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Range("a1").Select End Sub

  • chayo
  • ベストアンサー率30% (44/145)
回答No.2

プリンタのデフォルト設定を両面印刷にするとスムーズではないでしょうか? 以下Windowsユーザと勝手に推測して手順を…。 スタート-設定-プリンタで、「プリンタの追加」で、現在お使いのプリンタの設定をもう一度行います。 一通り設定が済んだら、先ほど追加したプリンタのアイコンを右クリック-プロパティを開きます。 印刷設定というボタンがありますので、ここで両面印刷できるように設定をします。 設定が終わったらアイコンの名前を(xxx(両面))のようにするといいと思います。 そして、エクセルで印刷をする時に「ファイル」-「印刷」で、先に作った(xxx(両面))を指定すれば両面印刷になります。 また、(xxx(両面))を通常使うプリンタに設定すれば、印刷ボタンをおしただけで両面になります。 文面を拝見して、PCにはとてもお詳しい感じを受けたのですが、 こんな知識でもお役に立てたら嬉しく思います。

tokeiprint
質問者

お礼

回答ありがとうございます。 質問内容に書き忘れてしまいましたが、Windowsの話ですので、アドバイス頂いた通り、印刷時にプリンタ名を選択する事で解決できると思います。 ただ、複数の人に利用してもらう場合は、PCのプリンタ設定を個別に設定する事になるため、どうしようか悩む所です。両面プリンタの設定を自動で行うsetup.exe等のプログラムを用意しなければいけないのであれば、違う方法を考えようと思っていました。 自分自身で対応するのはこの方法がベストと思います。ありがとうございました。

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

> エクセルシートのプリンタドライバ シートはプリンタドライバを持っていません。 シートは用紙のサイズ、余白の大きさなどの設定を持っていますが、この中に両面の設定は含まれません。 両面設定を行うか否かは、Windowsがプリンタの現在の印刷設定として管理しているのでは? -- 片面、両面で印刷する事があり、この設定の切り替えを容易に行いたい。 でしたら、印刷補助用のツールを利用する事をお勧めします。 FinePrint http://www.nsd.co.jp/share/fineprint/

tokeiprint
質問者

補足

回答ありがとうございます。 シートには両面の設定等は含まれないという事でしたが、試しに3枚のシートで異なるプリンタ設定をしてみたところ、保存したファイルを読み直しても、シート別にプリンタ設定が異なっていました。 Windowsの現在の印刷設定は、新規に作成したブックに反映され、それ以降は、エクセルで設定したプリンタ設定の情報を”どこか”に記録してあるのではと思っています。 (試行錯誤や他の情報からの推測でしかないのですが) 有効な解決策があるような気がしているのですが、決め手になる情報が見つからない状況です。

関連するQ&A

  • エクセル2007全てのシートを両面印刷するには?

    シートが30枚以上あるエクセルファイルで、全てのシートを両面印刷したいのですが、全てのシートを選んだり、「印刷対象」でブック全体にしたり、「プリンタとFAX」で使うプリンタを選んでプロパティで両面印刷を選んでも、全てのシートに「両面印刷」が反映されず、シート毎に印刷設定しているのですが、30回以上同じ操作をせずに済む方法を教えて下さい。片面印刷の方が早いのにと思いますが、職場で両面印刷が奨励されていて、シート数の多いエクセルファイルが多く、困っています。

  • 両面印刷設定方法について

    両面印刷設定方法について Access2000 vbaにて、accessのレポートとDocuworksのxdwファイルを1枚ずつ交互に印刷し、両面印刷を行いたい思います。プリンター自体は両面印刷対応なので、両面印刷は可能です。 問題なのが、Access vba内で、プリンター自体に両面印刷設定方法がわからないことです。 コントロールパネルから手動で通常使うプリンターに対して、両面印刷設定をする方法だと、印刷するたびに毎回設定しなければいけないので、vba内で設定し、印刷処理が終了したら、設定を通常の片面印刷に戻したいです。 いろいろ調べましたが、accessのレポートだけだったら、PrtDevModeプロパティで設定可能だと思うんですが・・・・・ 設定方法がお分かりになる方がいらっしゃったら、お知恵をお貸しください。 かなり困っております。 宜しく御願いいたします。

  • エクセル2010で別シートの両面印刷ができない。

    エクセル2010を使っている者です。 マイコンピュータからプリンターを選んで印刷設定で両面印刷にしてもうまくいかなかったので、ネット上で調べたところ、シートごとに両面印刷の設定をするとシートが別であっても両面印刷ができるようになると書いてありました。 そこで私も両面印刷したいシートをコントロールキー、またはシフトキーで選んで、ページレイアウトタブ→ページ設定→オプションから両面印刷に設定し、印刷してみたのですが、たまにしか7、8回に1回ぐらいしか両面印刷ができませんでした。 プリンターはかなり良いものを使っていて、2台で試してみたのですが、2台ともその程度の成功率でした。 操作に何か問題があったのでしょうか? もしこの問題についてわかる方がいらっしゃれば、ご教示願います。

  • excelの複数シートを一括で両面印刷設定の方法

    excelファイルで1つのファイルの中で複数のシートがあり そのシートを両面印刷する時、シートごとに両面印刷の設定を1枚1枚 しなかればならないが、これを千シート一括して両面印刷の設定する方法が知りたいのですが・・・ よろしくお願いします。(__)

  • エクセルで印刷する時の両面印刷設定方法

    エクセルで印刷する時の両面印刷設定方法 エクセルで印刷する時、両面印刷をプロパティで設定しても時間が経って次に印刷しようとしたら印刷設定がまた標準印刷に戻ってしまいます。 両面印刷のままの設定方法はありますか? それから、たくさんあるシートはそれぞれのシートごとに設定しなければいけないのですか?

  • Sheet1 、Sheet2 の両面印刷は可能?

    Excel 2002 で単一シートの両面印刷には慣れているつもりです。 シート毎に1ページに納まるように印刷設定した複数のシートを、一度の印刷操作で、両面印刷させることは可能でしょうか? Sheet1、Sheet2、Sheet3、Sheet4、… を表、裏、表、裏、…という具合に。 事前にプリンタ側で両面印刷を設定上で、複数のシートを選択状態(作業状態と称するのかな?)にして印刷を実行したけど各シートの片面印刷になってしまったのでお尋ねしています。 Excel 2013 でも試しましたが、成功しませんでした。

  • エクセル 別シートの両面印刷

    エクセルファイルの複数シートを両面印刷出来ません。 シートが1~7まであるとします。 1と2は両面印刷、3~5は片面印刷、6と7は両面印刷・・・というようになってしまいます。 印刷プレビューで確認すると間違いなく7ページになっています。 各シート毎に両面印刷設定はしてありますし、全て縦向きです。 プリンタはLP-S7000です。 どのような原因が考えられるでしょうか? 詳しい方いらっしゃいましたら、宜しくお願い致します。

  • エクセル 複数シートの両面・製本印刷が正しく行われない

    エクセル2003 プリンタ Cannon複合機iRC3220を使っています エクセルの複数(30枚くらい)のシートに同じA4横のレイアウトの表が1シートに1枚づつ入っています これを縦A4の1ページに2枚ずつ、両面印刷しようとして、印刷対象のシートを選択し、印刷設定で上記の条件に印刷設定して印字しても複数選択のアクティブなシートのみ設定が反映され、それ以外のシートは全てA4横で1枚ずつ印字されてしまいます。 CannonのホームページのQ&Aでは 対処方法として『印刷を行う各シート毎に「ファイル」→「ページの設定」を開き、印刷品質の設定及び「オプション」ボタンからプリンタドライバのプロパティを開き、ドライバ各設定を確認後、再度印刷をお試しください。』となっていますが30枚のシートを一枚ずつ印刷設定するのはかなり大変です。選択したシートの印刷設定を一括して変更する方法はないものでしょうか。 よろしくお願いします。

  • エクセルの両面印刷

    XPプロ エクセル2003 プリンタ;NECマルチライタ5400Nです。PCとプリンタは社内LANで接続されてます。 質問: エクセルファイルを両面印刷してますがPCが変わっても無条件に両面印刷する方法お願いします。 例:AさんのPC:プリンタ設定を両面印刷にした後両面印刷。   Aさん以外PC:同じエクセルファイルを両面印刷する場合都度プリンタ両面印刷設定しなければならない。 

  • エクセル 両面印刷

    エクセルで作成した表を両面印刷したいのですが。 (1)両面印刷プリンターは持っています (2)シート1とシート2で作成した表を同時に両面印刷したい これって可能でしょうか? 各シートには一つしか表作成していません。 よろしくお願いします。

専門家に質問してみよう