[[20140809134624]] 『SendKeysを使って給紙方法を変更したい(ととろ)』(ととろ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『SendKeysを使って給紙方法を変更したい(ととろ)』(ととろ)

Excelでプリンターの給紙方法を変更でいないか調べたのですが、Excel(VBA)では
出来ないということで落胆していたのですが、SendKeysを使えば可能ということが分かったのですが、単純に以下の方法のコードで良いかご教授頂けたら幸いです。


Private Sub MyPrinterSet() 'SendKeysステートメントでプリンタ設定
'自動給紙から手差しへ変更←手差しに変更はしないようにしたい

Application.wait Time:=now+TimeValue("00:00:01")

ActiveSheet.Select

SendKeys "%FU"    'Excel画面でファイル(F)、ページ設定...
SendKeys "%O"    ‘オプション
SendKeys "{TAB 8}"  ‘一番端の[メイン]のタブに合わせる
SendKeys "{RIGHT}" ‘一つ右の[用紙]タブへ移動
SendKeys "%S"    ‘給紙方法選択
SendKeys "{DOWN 2}" 'ホッパー2に設定←ここは「ホッパー3」に変更します。
SendKeys "{ENTER}" 
SendKeys "{TAB 5}" ‘[用紙]タブを選択-----------------
SendKeys "{LEFT}" ‘一つ左の[メイン]タブへ移動      |←ココガイラナイダケ?
SendKeys "{ENTER 2}"--------------------------------

――――――――――――――――――――――――――――――

End Sub

Private Sub MyPrinterSet2() 'SendKeysステートメントでプリンタ設定
'自動給紙へ変更

ActiveSheet.Select

SendKeys "%FU" 'Excel画面でファイル(F)、ページ設定...
SendKeys "%O"
SendKeys "{TAB 4}" ‘初期値へ戻すを選ぶ
SendKeys "{ENTER 4}" 

End Sub

    With Worksheets("印刷")
        .PageSetup.Zoom = False     'ズームプロパティ 無効
        .PageSetup.PaperSize = xlPaperA5    '紙サイズ A5
        .PageSetup.Orientation = xlLandscape    '横向き 縦の場合は xlPortrait
        .PageSetup.TopMargin = Application.CentimetersToPoints(2)   '上の余白
        .PageSetup.BottomMargin = Application.CentimetersToPoints(2)    '下の余白
        .PageSetup.LeftMargin = Application.CentimetersToPoints(2.5)    '左の余白
        .PageSetup.RightMargin = Application.CentimetersToPoints(2.5)   '右の余白
        .PageSetup.CenterHorizontally = True    '水平方向の中央
    End With

    Dim ans As Integer
    ans = MsgBox("印刷します!", _
          vbOKCancel + vbInformation, "印刷実行")
    Select Case ans
        Case vbOK
            Worksheets("印刷").PrintOut Copies:=1, Collate:=True
        Case Else
            MsgBox "処理を中止します"
    End Select

以上、よろしくお願い致します。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 SendKeys でできるかどうかはわかりませんが(キー操作だけでできれば可能?)、
 同じプリンタを異なる給紙方法で登録しておき、それを切り替えてはできないでしょうか。

 こんな様な運用です。
http://www.salty1.com/backnumber/703/703.html
(Mook) 2014/08/09(土) 15:54

(mook)さんコメントありがとうごいます。
参考にさせていただきます。

利用者がわがままというか、今まで自動で出ると思い込んでいて、
Excelでは出来ないといくら説明しても理解しくれないので(パソコンに疎いので)
何とか、希望に添えるよう調べたら、「SendKeys」を発見しました。

なので、ボタン一つで、プリントアウト出来るようにしたいのです。
このカスタマイズが上手くいったら、当分は、依頼に悩まされずにすむからです。

利用者も、物ぐさ過ぎるのも程がありますが、この相談内容に目が留まり、このコードで
こういう風に修正すれば、できるよ!と言うレスをお待ちしています。

以上、よろしくお願いいたします。
(ととろ) 2014/08/10(日) 12:57


 ととろさん自身にうまくこちらの意図を伝えられなかったようですが、
 私の意図はマクロでプリンタの切り替えはできるので、同じプリンタを
  プリンタA4
  プリンタB4
  プリンタ手差し
 のように登録しておいて、
  Application.ActivePrinter = "プリンタA4"
  Application.ActivePrinter = "プリンタ手差し"
 のように切り替えてできませんかということです。

 設定関連は下記が詳しく纏まっていると思います。
http://www.max.hi-ho.ne.jp/~happy/YNxv261.html

 これだとボタンや EXCEL 上で指定した設定で印刷するというのも難しくないかと思います。
 PC環境に依存しているので汎用性はありませんが、それは SendKeys も同じなので。
(Mook) 2014/08/10(日) 13:35

(mook)さん
早速のコメントありがとうございます。
なるほどですね!

プリンタを、例えば、A5(ホッパー3)にあらかじめ設定しておき
それをマクロ=Excelに定義すればいいのですね!!

休み明けになりますが、テストしてみます。

結果は、追って記載します。
(ととろ) 2014/08/10(日) 14:13


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.