
エクセルのマクロ処理でフォーム上のボタンから
印刷ダイアログを呼び出して、そのダイアログを
Sendkeysでもって両面印刷設定にし印刷させると
いう処理を行いたいのですが上手くいきません。
印刷ダイアログが表示された段階で止まり(エラーで
止まるわけではなく単に処理が止まる)、その先の
Sendkeysによる命令へ進みません。
Private Sub CommandButton1_Click()
Application.Dialogs(xlDialogPrint).Show
SendKeys "%r", True
SendKeys "%k", True
SendKeys "^{tab}", True
SendKeys "^{tab}", True
SendKeys "^{tab}", True
SendKeys "%r", True
SendKeys "{enter}", True
SendKeys "+{tab}", True
SendKeys "+{tab}", True
SendKeys "+{tab}", True
SendKeys "+{tab}", True
SendKeys "{enter}", True
SendKeys "+{tab}", True
SendKeys "+{tab}", True
SendKeys "+{tab}", True
SendKeys "{enter}", True
End Sub
よくSendKeysは環境によって誤作動などが起こるので
使わない方がいいと言われますが、一度どのように
動くのか試してみたいと思っています。
ちなみに上のコードは当方のプリンタでの設定手順となります。
SendKeysで印刷ダイアログにキーを送ることは
できないのでしょうか?
宜しくお願いします。
No.1ベストアンサー
- 回答日時:
単純な
Sub test()
Application.Dialogs(xlDialogPrint).Show
MsgBox ("Done!")
End Sub
というマクロを作って試してみましたが、印刷ダイアログを閉じない限り、メッセージボックスが現れないです。
と言うことは、印刷ダイアログを出した時点でマクロはそこで止まってしまい、その後の命令はダイアログが閉じないと実行されないということだと思うので、SendKeysは印刷ダイアログには送られないのでしょう。
他に方法がないか検索してみたのですが、
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr; …
によると、
「EXCEL VBAからプリンタの設定を操作するのは、かなり困難なようです。」
らしいです。
試作までして頂き有難うございました。
この手の質問はネット上でも山ほどあるのですが
やはりエクセルから直接設定を調整するには
かなりの知識が必要なようです。
フリーランスの他プログラムを用いて同様の
処理を行うやり方なども見つけたのですが、
複数の人間がそれぞれ異なるパソコンで
使うファイルの為、エクセルのみで完結させることが
前提でしたので、この方法は仕方なく諦めることに
しました。
解決とまでは言えませんが、印刷ダイアログ表示前に
両面設定にする旨のメッセージを表示させることで
対処した次第です。
また何かありましたら宜しくお願いします。
No.2
- 回答日時:
こんばんは。
Sendkeys の代わりに、UWSCを使えば出来るのでは?
Application.Dialogs で、ダイアログを出したら、後は、
UWSC のスクリプトを作っておいて、
Shell で、このUWSC.EXE を呼び出して、プリンタの設定させればよいと思います。
http://www.h7.dion.ne.jp/~umiumi/
当方でもフリーランスの他プログラムを用いて同様の
処理を行うやり方などを見つけたのですが、
複数の人間がそれぞれ異なるパソコンで
使うファイルの為、エクセルのみで完結させることが
前提でしたので、この方法は仕方なく諦めることに
しました。
解決とまでは言えませんが、印刷ダイアログ表示前に
両面設定にする旨のメッセージを表示させることで
対処した次第です。
また何かありましたら宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
-
エクセルVBAでプリンタプロパティを操作したい
Visual Basic(VBA)
-
エクセルのマクロで複数シートを両面印刷するには?
Excel(エクセル)
-
-
4
【Excel VBA】プリンタのプロパティダイアログの表示
Excel(エクセル)
-
5
[ExcelVBA] Application.Dialogs(xlDialogPrint).Show とユーザーフォームについて
Visual Basic(VBA)
-
6
EXCEL VBA 印刷プレビューダイアログのボタン操作を判定したい
Visual Basic(VBA)
-
7
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
8
Excel VBAを使って給紙方法を変更する(キーストローク使用)
Excel(エクセル)
-
9
エクセルVBA 「Application.Run」について
Excel(エクセル)
-
10
印刷ダイアログの印刷ボタンを押す方法?
Visual Basic(VBA)
-
11
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
12
マクロを使って両面 部数設定をして印刷したい
Word(ワード)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ワードやエクセルで印刷をデフ...
-
JW-CADで印刷すると線が太くなる
-
word印刷時に勝手に手差し印刷...
-
Excelの表を二段で印刷したい
-
PDFのプリントアウトが重す...
-
「詳細な印刷機能を有効にする...
-
ソフト別に印刷設定を自動で変...
-
エクセルシート A3にしてもA4...
-
作成したPDFファイルを自動表示...
-
エクセルでB6サイズに印刷し...
-
ワード A4サイズで作成した...
-
パワーポイントの印刷が画面表...
-
プリンターの「お気に入り」設...
-
バーコードのサイズを小さくす...
-
エクセルでシート毎の両面印刷...
-
PC入替に伴うAS400からの印刷ト...
-
PDFファイルを作成すると四角い...
-
エクセルでブックごとにプリン...
-
改ページプレビューで設定した...
-
プリンター印刷
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ワードやエクセルで印刷をデフ...
-
Excelの表を二段で印刷したい
-
JW-CADで印刷すると線が太くなる
-
PDFのプリントアウトが重す...
-
ソフト別に印刷設定を自動で変...
-
エクセルシート A3にしてもA4...
-
エクセルでB6サイズに印刷し...
-
作成したPDFファイルを自動表示...
-
エクセルでブックごとにプリン...
-
word印刷時に勝手に手差し印刷...
-
バーコードのサイズを小さくす...
-
「詳細な印刷機能を有効にする...
-
パワーポイントの印刷が画面表...
-
PDFファイルを印刷するときにフ...
-
CMYK表示の出来るフリーソフト...
-
【Excel VBA】プリンタのプロパ...
-
PRIMO PDFで書類をつくるといつ...
-
A3, A4サイズが混在したファイ...
-
PDF書類をずらして印刷したい
-
特定のEXCELのファイルを印刷す...
おすすめ情報