Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7全般 : Excel 2010)
差し込み印刷で通常使うプリンター以外で手差し印刷したい
投稿日時: 18/02/25 16:57:03
投稿者: けろこ

お世話になります。
ご教示頂けますと幸いです。
 
エクセルのSheet1に下記のようなデータがあります。

	A	B	C	D	E
1	@番号	A日付	B件名	C内容	D氏名
2	1	2/23	あああ	いいい	〇田〇子
3	2	2/24	ううう	えええ	×川×郎
4	3	2/25	おおお	かかか	△谷△美
    
5行目以降は省略していますが、このようなデータが続いて増えていきます。
 
Sheet2には印刷用フォーマットがあって、@からDまでの枠を作り、Sheet1のデータをVLOOKUP関数を入れて値を表示させています。
sheet2のG2に印刷用番号(=@番号)をいれて検索値としています。
これらを例えば1から10まで連続して印刷したいと思っています。
 
他の方のを参考に、Sheet2に「印刷」というボタンを作り、これを押すと「印刷ページ設定表示」を表示させるためにユーザーフォームでCaptionを「印刷ページ設定」、ラベルで「開始番号」その隣にテキストボックス、ラベルで「終了番号」その隣にテキストボックス、その下にコマンドボタンで「印刷開始」を作成しました。
 
オブジェクト名=UserForm1
開始番号の枠=TextBox1
終了番号の枠=TextBox2
 
☆フォームを表示するためのコード
 
Sub 印刷ページ設定表示()
  UserForm1.Show
End Sub
 
☆自動印刷するためのコード
 
Private Sub CommandButton1_Click()
 
'自動印刷
Dim 番号 As Integer
a = TextBox1.Value
n = TextBox2.Value
 
For 番号 = a To n
Sheets("印刷用フォーマット").Range("G2").Value = 番号
Sheets("印刷用フォーマット").PrintOut
 
Next 番号
 
Unload Me
 
End Sub
 
ただ、印刷する紙は色付きで罫線もある紙なので手差しで印刷したいと思っています。
(Sheet2の印刷用フォーマットはちょうどよい位置に印刷されるよう設定してあります)
それも通常使う設定のプリンターではなく、別のプリンターで印刷したいです。
そのようなことは出来るでしょうか?

回答
投稿日時: 18/02/25 18:24:25
投稿者: WinArrow
投稿者のウェブサイトに移動

私が使ているプリンタ切替方法の紹介
 
    With Application
        orgPRINTER = .ActivePrinter
        ret = CInt(.Dialogs(xlDialogPrinterSetup).Show)
        If ret = 0 Then
            MsgBox "プリンタ選択がキャンセルされました。", vbCritical
            Exit Sub
        End If
         
        actPRINTER = .ActivePrinter
    End With
' ここに印刷処理
'  終了後 
    Application.ActivePrinter = orgPRINTER
 

回答
投稿日時: 18/02/26 10:23:35
投稿者: WinArrow
投稿者のウェブサイトに移動

事前に、手差しトレイを使用するためのプリンタドライバを用意する必要があると思います。
 
どのようなプリンタを使っているのかわかりませんが、
「コントロールパネル」−「ハードウェアとサウンド」ー「デバイスとプリンタの表示」で
設定できると思いますが、詳細はプリンタの説明書を参考にするとよいでしょう。

投稿日時: 18/02/26 21:02:05
投稿者: けろこ

WinArrowさま
 
ご回答ありがとうございます。
ご返信が遅くなりまして申し訳ございません。
 
会社での利用を考えておりまして、複数のプリンターを選択できるようになっています。
通常使うプリンターに設定しているのはEPSONで、今回差し込み印刷に使用したいプリンターはCANONの複合機で通常トレイが4段と手差しトレイがあります。
 
初心者ですので、意味を調べながらやってみたいと思います。

回答
投稿日時: 18/02/27 09:00:08
投稿者: 細雪

2010はどうだったかな・・
現在、手元に用意できないので確認できませんが、
・一度、手差しで印刷
・保存して閉じる
作業をしてやれば、プリンタもドライバの設定も保存されたような気がしないでもないです。
なので、パソコン1台だけで運用するなら、コレだけで良いかもしれません。
  ※2013からだったかもしれません。自身薄です。
 
 
 
特定の設定を含めたプリンタの登録については
他人さまの記事へのリンクで失礼ながら、
http://www.td-sys.com/2014/10/post-66.html
の前半部分辺りが参考になるかもしれません。
リコーのプリンタを例にとっていますが、キヤノンでも基本的には同じです。
 
が、複数のパソコンで同じファイルを使う予定であれば、
上記を参照されながらその印刷用のプリンタを(PC内部的に)用意し、
マクロでダイアログを表示する方法を私もオススメします。
各パソコンでプリンタの名前・ポート番号を揃えておくのは意外に面倒ですのでね。
 
 

投稿日時: 18/02/27 21:37:02
投稿者: けろこ

細雪さま
 
ありがとうございます。
自宅ではExcel2016を使っていますが会社では2010でして、
残念ながら保存されず戻ってしまいます。
 
記事のリンクありがとうございます。
マクロをアドインとして登録、そんな方法があるのですね。
勉強になります。
 
複数のパソコン(10数台)で利用したいと考えておりますので、
やはりマクロでダイアログを表示する方法が良いのですね。
 
今日も会社では別の作業に追われ、着手できませんでしたが、
地道に頑張ってみようと思います。

投稿日時: 18/02/28 21:19:19
投稿者: けろこ

申し訳ございません。
解決済みにチェックを入れてませんでした。
 
WinArrowさま、細雪さま
どうもありがとうございました。