• 締切済み

VBでExcel印刷する時のプリンタトレイの選択方法について

VB6.0でエクセルを操作するプログラムを作成していますが、プリンタトレイの選択方法がわかりません。 エクセルで作成したシートをトレイ1には 専用用紙、トレイ2には普通紙をセットしたプリンタで印刷しようとしていますが、 .PaperBinでトレイ2を設定したのですが、いくら印刷してもトレイ1に印刷されてしまいます。 やはりエクセルで印刷する時(.PrintOutを使用)は PaperBinでは無く、他の方法があるのでしょうか? 他の方法をご存知の方は教えて頂けないでしょうか。

みんなの回答

  • jmh
  • ベストアンサー率23% (71/304)
回答No.4

「システムのデフォルトを変更してから…」とは、つまり、エクスプローラでプリンタのフォルダのとこでプリンタのプロパティを予め(トレイ1に)設定しておいてから、エクセルを起動するというコトですが、それでも、エクセルはそれとは異なるトレイを選択しますか?

  • jmh
  • ベストアンサー率23% (71/304)
回答No.3

普通、自分(VB)のを変えても、相手(エクセル)のは変わんないんじゃないかしら。システムのデフォルトを変更してから、エクセルを起動するとかすればできるかも…。

hiron_001
質問者

お礼

回答有難うございます。 システムのデフォルトを変更してもプリンタトレイを変更できませんでした。 APIを使用すればプリンタトレイの変更が出来るそうなんですが、そこまで能力が無いので無理っぽいです。 もう少し考えて見ます。 回答有難う御座いました。

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

PaperBinの定数で acPRBNLower(下段トレイ)かacPRBNMiddle(中段トレイ)を指定してもだめでしょうか?

hiron_001
質問者

お礼

回答有難う御座います。 PaperBin定数を試してみましたがトレイは 変わりませんでした。 どうやらVBでの印刷(Printer.EndDocを使用)する時は PaperBinでトレイの変更が出来るみたいで、 エクセル印刷の時(.PrintOut)には使えないようです。 もう少し悩んでみます。 どうも有難う御座いました。

  • a987654
  • ベストアンサー率26% (112/415)
回答No.1

マクロ記録で実際にやってみて、マクロを編集で確認されたら如何ですか? 私も、方法が良く解らないときはこの方法で解決させています。

hiron_001
質問者

お礼

回答有難う御座います。 マクロ記録で確認してみます。 有難う御座いました。

関連するQ&A

  • VB2008(印刷ダイアログ)上でExcel印刷

    現在VB2008でExcel操作(COM参照使用)をしているのですが、 Excelシートを印刷する際にVB2008にある印刷ダイアログにて プリンタを設定後そのシートを印刷することは可能ですか? 現在はExcelVBAの起動時マクロでプリンタ設定しているのですがプリンタの中にはネットワークプリンタもあり、しばしばプリンタ名(後ろのNe:○○の番号が可変)が変わりそのたびにコードを書き変えています また複数台プリンタがあり通常使うプリンタがラベルプリンタなのでA4紙データを印刷するととんでもないことになるので(汗) そのためVB2008上でダイアログからプリンタを選んで印刷できればいいなと考えています ご教授お願いします。

  • VBでExcel操作する時の画像を入れる方法

    VB6.0でエクセルを操作するプログラムを作成していますが、あらかじめエクセル上にイメージを作成して そこに指定した画像を入れるようなプログラムを作成しているのですが上手くできません。 OLEObjectsを使用してイメージを選択する所までは 出来たのですが、そこから指定したファイルの画像を貼り付ける文章がわかりません。 教えて下さい、宜しくお願いします。

  • エプソンプリンター881A のトレイ選択について

    エプソンプリンター881A のトレイ選択の方法について教えて下さい。 年賀状を印刷するにあたり、上トレイにハガキをセットするのですが、「用紙がありません」となってしまいます。 そもそもトレイの選択について、どこでどう設定すれば良いのか分かっていませんので、やり方について教えて頂けますと有難いです。 年賀状の印刷については、もう下トレイにハガキを入れて印刷するしかないと思っていますが、今後の為にも教えて頂けますと幸いです。 どうぞよろしくお願いします。

  • プリンタ : 2つのトレーから印刷する方法

     いつもお世話になっております。    会社でカセットが2つあるプリンタを使用しています。  自分のみで、他人は使いません。  エクセルを使用し、  1件1シートで書類を作成しては、  【弊社の控え用(白紙)、客先に提出用(色紙)で各1枚ずつ印刷】  という処理方法で日に数十件の印刷をします。    現在、  カセット1に白紙、カセット2に色紙 がセットしてあり、  印刷の度に、設定でカセットを指定しています。      これを1度の印刷で、両方から出す方法はありますか?    または、少しでも楽が出来る方法があれば  教えていただけると助かります。  ※勉強不足でマクロについては完全に無知ですので    マクロ以外の方法をお願い致します。  ・パソコン:Windows XP  ・エクセル:2003  ・プリンタ:Canon LBP 6300

  • VB.NET+ActiveReports で印刷時の用紙トレイ選択

    VB.NET2003+ActiveReports を使用し、 帳票(伝票)を複数のプリンタから振り分けて印刷しようとしています。 帳票はB5サイズの専用用紙で、プリンタのどの部分に給紙されているかは プリンタ毎に異なるので、動的にプリンタと用紙トレイを変更しようとしています。 現在、テストに使用しているプリンタはA4の用紙トレイ(Upper)とB5の手差し(Middle)が設定されており、 Dim rpt As New rptLayout01 rpt.Document.Printer.PrinterName = 指定したプリンタ名 rpt.PageSettings.PaperSource = 指定した用紙トレイ と記述しているのですが、A4の用紙トレイを指定しても、 B5の手差しから印刷されてしまいます。 A4のトレイを指定したときに、プリンタ側で「用紙サイズエラー」となれば納得できるのですが、 そういったメッセージも表示されずそのまま印刷されてしまいます。 これは用紙サイズが一致しないとき、プリンタ側で親切に自動選択をしてくれているのでしょうか? ご存じの方、お知恵をお貸しください。 テストで使用しているプリンターは、EPSON LP-9400 です。

  • プリンターの手差しトレイから印刷できない。

    プリンターの操作パネルで設定したのですができず。windowsからは、プリンタードライバーの設定が優先します。プリンタードライバーで給紙するトレイを選択して下さいと書いてあります。 ⇒プリンタードライバーのヘルプとなっています。 どうゆう手順ですればよいでしょうか。教えて下さい。通常のトレイからは印刷出来ます。

  • プリンターの用紙トレイ選択

    インクジェットプリンターの用紙トレイ選択 使用機種・・・DCP-J577N PC・・・Windows10 用紙トレイが手差しを含めて3つありますが、2つ以上のトレイに用紙がセットされた場合、印刷時の用紙はどういうルールで選択されますか?トレイ1,2,3のはできないようですが。何回かミス印刷したので、メインのトレイにのみ用紙をセットして、用紙サイズが変わるときは、用紙を入れ替えして使用しています。 3つトレイがあっても・・・・・ ※OKWAVEより補足:「ブラザー製品」についての質問です。

  • VBからEXCELで印刷するときにユーザー設定用紙を設定したい

    こんにちわ。 VBからEXCELにデータを書き込み、印刷したいのですが、 EXCELはフォーマットシートをあらかじめ作成し、それを開いてデータを埋め込んでいます。 そのとき、フォーマットシートのほうでは用紙サイズをユーザー設定にして幅・高さを指定しているのですが、違うプリンタで印刷すると、A4サイズになってしまいます。 VBから用紙のサイズを設定できる方法はあるのでしょうか? よろしくお願いします。

  • エクセルマクロ印刷時にプリンタを指定できますか?

    エクセル2002を使用しています。VBAはまったくわかりません。 マクロの自動登録で印刷を記録すると、通常使うプリンタから 出力されるようですが、LANでプリンタ複数使用可能な環境です ので、いちいち通常使うプリンタを変更するのではなく、マクロ 実行時にプリンタを選択したく思います。  因みに、以下のマクロはSheet1に値を入力し、Sheet1の値をコピー したSheet2を印刷するというマクロです。このマクロのどの部分に コードを付け加えればプリンタをこのマクロ実行時に選択可能でしょうか? もしくはマクロではプリンタを選択できないのでしょうか? どうぞよろしくお願いいたします。 ****************************************************************** Sub 印刷() Sheets("Sheet2").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Sheets("Sheet1").Select End Sub *******************************************************************

  • VBからExcelのアクティブセルの位置を知る方法

    VB6でExcel2000のワークシートを操作するプログラムを作成しています。次のようなことをやりたいと思ってます。 (1)Excelのワークシートを開く (2)ワークシートの1点をクリックして、アクティブセルとする。(例えばA1) (3)VBのプログラムのボタンを押すと、アクティブセルを基点に3×3を選択範囲とする。 そこで次のようなプログラムを書いてみました。 Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Set xlApp = GetObject(, "Excel.Application") If Err.Number Then MsgBox "Excel が起動されていません。" Err.Clear Else ' MsgBox "Excel はすでに起動中です。" Set xlBook = xlApp.Workbooks.Item(1) Set xlSheet = xlBook.Worksheets.Item(1)     'アクティブセルを取得する     'アクティブセルを3x3に拡張する計算 xlSheet.Range("3x3に拡張した範囲").Select Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing End If しかし、アクティブセルを取得する方法がわかりません。誰か教えてください。

専門家に質問してみよう