- ベストアンサー
Excel VBAを使って給紙方法を変更する(キーストローク使用)
ExcelのVBAを使って印刷するものによって給紙方法を変えたいと思っています。 調べてみたところ'SendKeysステートメントを使うと設定できそうだったので、下記のような命令文を作ってみたのですがうまく動きません。 どなたか詳しい方いらっしゃいましたら教えていただけないでしょうか? OS:WindowsXP 使用ソフト:Microsoft Excel2003 使用プリンタ:NEC PR-2860N 【コマンドボタン】 本書印刷 → 印刷範囲:「一枚目」(あらかじめ設定してある名前) 給紙方法:自動 控え印刷 → 印刷範囲:「二枚目」 給紙方法:ホッパー2 Private Sub 控え印刷_Click() With ActiveSheet.PageSetup .PrintArea = "二枚目" End With MyPrinterSet ActiveSheet.PrintOut End Sub ―――――――――――――――――――――――――――――― Private Sub 本書印刷_Click() With ActiveSheet.PageSetup .PrintArea = "一枚目" End With MyPrinterSet2 ActiveSheet.PrintOut End Sub ――――――――――――――――――――――――――――――― Private Sub MyPrinterSet() 'SendKeysステートメントでプリンタ設定 '自動給紙から手差しへ変更 ActiveSheet.Select SendKeys "%FU" 'Excel画面でファイル(F)、ページ設定... SendKeys "%O" ‘オプション SendKeys "{TAB 8}" ‘一番端の[メイン]のタブに合わせる SendKeys "{RIGHT}" ‘一つ右の[用紙]タブへ移動 SendKeys "%S" ‘給紙方法選択 SendKeys "{DOWN 2}" 'ホッパー2に設定 SendKeys "{ENTER}" SendKeys "{TAB 5}" ‘[用紙]タブを選択 SendKeys "{LEFT}" ‘一つ左の[メイン]タブへ移動 SendKeys "{ENTER 2}" ―――――――――――――――――――――――――――――― End Sub Private Sub MyPrinterSet2() 'SendKeysステートメントでプリンタ設定 '例、EPSON LP-****を手差しから自動へ変更 ActiveSheet.Select SendKeys "%FU" 'Excel画面でファイル(F)、ページ設定... SendKeys "%O" SendKeys "{TAB 4}" ‘初期値へ戻すを選ぶ SendKeys "{ENTER 4}" End Sub ――――――――――――――――――――――――――――――
- みんなの回答 (2)
- 専門家の回答
お礼
おかげさまで何とかかんとか動くようにはなりました。 不安定に変わりはないんですね^^; でもやっぱり便利なので使ってみたいと思います。 ご丁寧にありがとうございました。