Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6837 / 13644 ツリー ←次へ | 前へ→

【42809】SendKeys使用時のフォーカス 猫おじさん 06/9/22(金) 15:20 質問[未読]
【42811】Re:SendKeys使用時のフォーカス Jaka 06/9/22(金) 15:54 発言[未読]
【42812】Re:SendKeys使用時のフォーカス ハチ 06/9/22(金) 16:06 発言[未読]
【42813】Re:SendKeys使用時のフォーカス 猫おじさん 06/9/22(金) 16:38 お礼[未読]

【42809】SendKeys使用時のフォーカス
質問  猫おじさん  - 06/9/22(金) 15:20 -

引用なし
パスワード
    猫おじさんと申します。
 現在、印刷で悪戦苦闘しております。

 約400程のファイルがあり、1つずつ開いて、両面印刷をしたいと考えています。
 最初の1枚だけプリンタの設定を両面印刷にすれば良いと、タカをくくっていたのですが、プリンタの両面片面の設定は、シート毎に規定されていることに気づきました。(全部、片面印刷指定で作ってしまいました。)

 いろいろ調べたところ、プリンタの設定(プリンタドライバ)はマクロで直接命令できないため、SendKeysで行うとのことで、マクロを作ってみました。
 ところが、下記を実行すると、最初に送った"S"が、プレビューダイアログに送られず、エクセルシートやVBAエディタに送られてしまう等さんざんです。
 フォーカスさせようとして、
 MyID=Shell(Wb開いたファイル,vbNormalNoForcus)
とかを行っても、エラーになってしまいます。

 プレビューダイアログをフォーカスする方法をご教示頂ければ幸いです。
 
 また、シート毎に片面印刷指定となっているものを、両面印刷出来れば、SendKeys等の方法には、こだわっておりません。
 よろしくお願いいたします。

Sub test2()

For II= 1 to 400

ファイル名=nantoka & II
'Str 開くファイル名="D:\hogehoge\hugahuga\" & II
'Set Wb開いたファイル = Workbooks.Open(Filename:=Str開くファイル名)
'↑とりあえず、ファイルを一つづつ呼び出すことは出来てます。

'プレビュー設定ダイアログ
Application.Dialogs(xlDialogPrintPreview).Show
Application.Wait Now + TimeValue("00:00:03")

With ActiveSheet.PageSetup
SendKeys "S", Wait
SendKeys "{TAB}", Wait
End With

'ファイルを閉じる 

Next II
End Sub

【42811】Re:SendKeys使用時のフォーカス
発言  Jaka  - 06/9/22(金) 15:54 -

引用なし
パスワード
   印刷関係で使ったこと無いけど...。
こんな感じのWHSだと、どうでしょうか?
(確か、by JuJuさん)
だめだったらすみません。

Dim WshShell As Variant
Set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "{NUMLOCK}"
Set WshShell = Nothing

【42812】Re:SendKeys使用時のフォーカス
発言  ハチ  - 06/9/22(金) 16:06 -

引用なし
パスワード
   ▼猫おじさん さん:
> 猫おじさんと申します。
> 現在、印刷で悪戦苦闘しております。
>
> 約400程のファイルがあり、1つずつ開いて、両面印刷をしたいと考えています。
> 最初の1枚だけプリンタの設定を両面印刷にすれば良いと、タカをくくっていたのですが、プリンタの両面片面の設定は、シート毎に規定されていることに気づきました。(全部、片面印刷指定で作ってしまいました。)
>
Sheetに"両面印刷"という設定はない と思いますが。

猫おじさん さんだけが印刷したいのなら
スタートメニュー>設定>プリンタ(バージョンによって適当に読み替えてください)で、
通常使うプリンタの設定を両面印刷 に変えれば良いと思います。
もしくは、プリンタの追加で両面印刷の設定にしたプリンタを追加して
ActivePrinter を切り替えるとか。

検討違いだったら、すいません。

【42813】Re:SendKeys使用時のフォーカス
お礼  猫おじさん  - 06/9/22(金) 16:38 -

引用なし
パスワード
    Jakaさん ありがとうございました。
 そのまま。コピペしてやってみましたが、うまくいかず、
エクセルシートの方に"S"が送られてしまいました。
 "WScript.Shell"を何か変えるのかと思い調べましたが、よく分かりませんでした。
 
 ハチさん ありがとうございました。
 おっしゃる通り、コントロールパネルからプリンタを両面設定にしたら、
あっというまに解決しました。

 この問題はハチさんの、ご提案で解決いたしましたが、今後、必要になりそうなので、もし、ご存じの方がいらっしゃれば、SendKeysの方法も、ご教示頂ければ幸いです。 

6837 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free