
エクセルシートのプリンタドライバの印刷設定について、現在の印刷設定と両面印刷設定とを切り替える方法を探しています(EXCEL2002です)。
VBAによる対策方法を色々調べてみましたが、VBAの機能では対応できないようです。
( sendkeys を使って擬似的にキー入力を行う方法もありましたが、ショートカットの割り当てが他のアプリケーションと重なる可能性があるため、この方法は避ける事にしました)
ワード向けですが、MicrosoftのページにVBからAPIを利用して、同様の設定をするサンプルがありましたので、エクセルのVBAでも試してみましたが、変更したプリンタの設定は、シートの設定に反映されませんでした(エクセル独自でシート毎の印刷設定が保存されていると思っています)。
対策として、
1)APIをうまく使う方法
2)Excelファイルが持っていると思われるプリンタ設定の変更
の2つがあると思っています。
APIを本格的に使ったこともありまんせので、印刷設定に関するAPIの参考情報を教えてもらえるだけでも助かります。
よろしくお願い致します。
No.5ベストアンサー
- 回答日時:
> 保存したファイルを読み直しても、シート別にプリンタ設定が異なっていました。
ホントですね。
勘違いしてました。
--
> 1)APIをうまく使う方法
恐らく、質問者さんが探し当てたものと思われる記事を見ましたが、こちらはプリンタにエスケープシーケンスと呼ばれる信号を送り、「両面に設定を変更しなさい」と命令する手順かと思います。
プリンタがそういうコードに対応しているのが前提ですす。(対応していないプリンタではゴミが印刷されます。)
また、「両面に設定を変更しなさい」と命令しても、Excelが「これ、片面で印刷しといて」と命令を出すのなら、デフォルトの設定を変更する意味しかないですし。
APIというのは、アプリケーション・プログラム・インターフェースの名前が示すと通りインターフェースですから、アプリケーション側がインターフェースを提供していない部分に関しては、どうにも出来ません。
両面印刷の設定に関しては、こちらが提供されていないんじゃないかと思います。
> 2)Excelファイルが持っていると思われるプリンタ設定の変更
こちらに関しては、同じシートに対して片面設定<->両面設定を切り替えた物を別名で保存すれば、Stirlingなどのバイナリエディタで比較する事で、対象の設定箇所が絞り込めそうです。
ただ、私が確認した所、数バイト書き換えを行う必要があり、ワークシートの内容が異なる場合や、別のプリンタでの両面設定に対応するか疑問です。
回答ありがとうございます。
1)APIを使う方法ですが、
"Microsoft Knowledge Base" に
「Windows の通常使うプリンタを取得および設定する方法」が記載されていました(WORD用?)。
http://support.microsoft.com/default.aspx?scid=k …
このVBAの使える部分をエクセルで実行したところ、通常使うプリンタの印刷設定を両面設定にする事はできました(できない項目もあります)。
ただ、「通常使うプリンタの印刷設定」を変更できても、現在開いているシートの印刷設定が変わりません。
( 回答に書いてもらった通り、結局、APIを使ってもこれだけでは不十分なようです)
しかたがないので、新しいブックを作成し、両面印刷したいシートの内容とページ設定の内容をコピーする形で対応してみました。
(*シートそのものをコピーすると印刷設定までコピーされてしまいます)
この方法でなんとか両面印刷ができましたが、
新規ブックへのコピーに時間がかかるのと、APIを使う不安が残るため、あまりいい方法ではなさそうです。
2)Excelファイルが持っていると思われるプリンタ設定の変更
→
ファイルの比較までして頂いてありがとうございます。
やはりどこかに記録されいるのでしょう。
ただ、こちらもVBAから設定できるレベルではなさそうですね。その方法が公開されるまで、今はあきらめようと思います。
□
ところで、No.3の方の回答を見て思いついた方法ですが、
プリントアウトの情報を一旦ファイルに落として、
そのファイルを(API等で)両面設定をしたプリンタに出力するというものです。
印刷設定で”ファイルへ出力する”にチェックをすれば、*.prn の形式でファイルに落とせるとは思いますが、そのファイルの情報をどうやってプリンタに送ればよいのかがわからず断念しました。
個人別に対応するしかないのですが、No.2の方の方法が間違いがなさそうです。
No.3
- 回答日時:
Private Sub CommandButton1_Click()
Range("A1:AM44").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Range("a1").Select
End Sub
No.2
- 回答日時:
プリンタのデフォルト設定を両面印刷にするとスムーズではないでしょうか?
以下Windowsユーザと勝手に推測して手順を…。
スタート-設定-プリンタで、「プリンタの追加」で、現在お使いのプリンタの設定をもう一度行います。
一通り設定が済んだら、先ほど追加したプリンタのアイコンを右クリック-プロパティを開きます。
印刷設定というボタンがありますので、ここで両面印刷できるように設定をします。
設定が終わったらアイコンの名前を(xxx(両面))のようにするといいと思います。
そして、エクセルで印刷をする時に「ファイル」-「印刷」で、先に作った(xxx(両面))を指定すれば両面印刷になります。
また、(xxx(両面))を通常使うプリンタに設定すれば、印刷ボタンをおしただけで両面になります。
文面を拝見して、PCにはとてもお詳しい感じを受けたのですが、
こんな知識でもお役に立てたら嬉しく思います。
回答ありがとうございます。
質問内容に書き忘れてしまいましたが、Windowsの話ですので、アドバイス頂いた通り、印刷時にプリンタ名を選択する事で解決できると思います。
ただ、複数の人に利用してもらう場合は、PCのプリンタ設定を個別に設定する事になるため、どうしようか悩む所です。両面プリンタの設定を自動で行うsetup.exe等のプログラムを用意しなければいけないのであれば、違う方法を考えようと思っていました。
自分自身で対応するのはこの方法がベストと思います。ありがとうございました。
No.1
- 回答日時:
> エクセルシートのプリンタドライバ
シートはプリンタドライバを持っていません。
シートは用紙のサイズ、余白の大きさなどの設定を持っていますが、この中に両面の設定は含まれません。
両面設定を行うか否かは、Windowsがプリンタの現在の印刷設定として管理しているのでは?
--
片面、両面で印刷する事があり、この設定の切り替えを容易に行いたい。
でしたら、印刷補助用のツールを利用する事をお勧めします。
FinePrint
http://www.nsd.co.jp/share/fineprint/
この回答への補足
回答ありがとうございます。
シートには両面の設定等は含まれないという事でしたが、試しに3枚のシートで異なるプリンタ設定をしてみたところ、保存したファイルを読み直しても、シート別にプリンタ設定が異なっていました。
Windowsの現在の印刷設定は、新規に作成したブックに反映され、それ以降は、エクセルで設定したプリンタ設定の情報を”どこか”に記録してあるのではと思っています。
(試行錯誤や他の情報からの推測でしかないのですが)
有効な解決策があるような気がしているのですが、決め手になる情報が見つからない状況です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【Excel】複数シートがあるエクセルデータで片面印刷と両面印刷設定がシートごとに入 1 2023/03/10 15:25
- Excel(エクセル) エクセルのマクロで複数シートを両面印刷するには? 2 2022/12/08 23:23
- Excel(エクセル) Excelであるシートだけ印刷できない 1 2022/04/01 09:04
- Excel(エクセル) エクセルVBAで複数のシート印刷設定 1 2022/09/07 12:03
- Excel(エクセル) エクセルで条件付き書式を使わずにセルの文字の色を変える方法を教えて下さい 8 2023/07/28 01:15
- Excel(エクセル) エクセルのフッタやヘッダーについて 3 2023/02/04 09:45
- Excel(エクセル) エクセル2013「次のページ数に合わせて印刷」が小さすぎる 9 2023/03/28 10:18
- Visual Basic(VBA) エクセル365のVBAで困っています。どう修正したらよいか添削をお願いします 2 2023/05/03 17:35
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- その他(Microsoft Office) Excelのマクロについて教えてください。 1 2022/03/25 10:03
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ワードやエクセルで印刷をデフ...
-
Excelの表を二段で印刷したい
-
JW-CADで印刷すると線が太くなる
-
ソフト別に印刷設定を自動で変...
-
word印刷時に勝手に手差し印刷...
-
作成したPDFファイルを自動表示...
-
【Excel VBA】プリンタのプロパ...
-
ワードで、10センチの長さの...
-
エクセルシート A3にしてもA4...
-
エクセルでB6サイズに印刷し...
-
PDFのプリントアウトが重す...
-
エクセルでシート毎の両面印刷...
-
エクセルでブックごとにプリン...
-
Google Earth の画面がプリント...
-
Excel VBAを使って給紙方法を...
-
印刷できません!
-
バーコードのサイズを小さくす...
-
たくさんのファイルを一度に印...
-
左右反転・鏡像設定の印刷方法
-
Accessの印刷設定を白黒に固定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ワードやエクセルで印刷をデフ...
-
Excelの表を二段で印刷したい
-
JW-CADで印刷すると線が太くなる
-
ソフト別に印刷設定を自動で変...
-
エクセルでB6サイズに印刷し...
-
エクセルシート A3にしてもA4...
-
エクセルでブックごとにプリン...
-
作成したPDFファイルを自動表示...
-
word印刷時に勝手に手差し印刷...
-
PDFのプリントアウトが重す...
-
「詳細な印刷機能を有効にする...
-
EXCEL印刷設定で[両面印刷]が表...
-
パワーポイントの印刷が画面表...
-
【Excel VBA】プリンタのプロパ...
-
PDFファイルを印刷するときにフ...
-
特定のEXCELのファイルを印刷す...
-
改ページプレビューで設定した...
-
バーコードのサイズを小さくす...
-
Excelで、淵に印を付けたい
-
エクセルでシート毎の両面印刷...
おすすめ情報