dポイントプレゼントキャンペーン実施中!

マクロ超初心者です。
すでにマクロが組んであるExcelファイルで、さらに印刷の設定をマクロに組み込みたいです。
やりたい設定は、通常使用しているプリンターとは”別のプリンターに変更”し、”手差しにする”というものです。
「マクロの記録」で印刷設定を変更するところまでを記録しても、反映されません。
印刷してから保存しても、印刷の設定は保存されません。
お分かりになる方がいらしたらご助力いただきたいです。

現在のExcelデータの状況を説明させていただきます。
”名簿”sheetに10名分の名簿と、”書類”sheetにその名簿の人たち向けの書類が作ってあります。
名簿の各個人の宛名等が入った書類を作成するため、”書類”sheetのB2セルに名簿の通し番号を入力すると
該当する人が”名簿”sheetからvlookupで引っ張られてきて書類ができあがるようになっています。
いちいち”書類”sheetのB2セルの数字を変えて印刷ボタンを押すのが面倒なため、
それらを一気に印刷すべく、”書類”sheetのF2セルに”10”と入力してあり、次のマクロを組んであります。

---------------------------------------------
Sub 一気に印刷()

Dim 番号 As Integer
a = Sheets("書類").Range("B2").Value
n = Sheets("書類").Range("F2").Value

For 番号 = a To n

Sheets("書類").Range("B2").Value = 番号
Sheets("書類").PrintOut

Next 番号

End Sub
---------------------------------------------

上記のマクロで、ワンタッチで10枚の別々の書類を印刷できるのですが、
いつも印刷設定をし忘れて10枚の無駄紙を作ってしまいます。
マクロで印刷設定までできればかなり助かるのですが。。

A 回答 (1件)

こんにちは、


>”別のプリンターに変更”し、”手差しにする”というものです。
別のプリンターが分らないので、ダイアログで変更するのは、どうでしょう。
となると、VBAでやる必要ないかもですが、、、

>マクロで印刷設定までできればかなり助かるのですが。。
印刷対象が不明の為、判りませんが 
.HPageBreaksなどで改ページを取得するとか、、、ですか?

For 番号 = a To n せずにこれも ダイアログで設定すれば良いのではと思いますが、ボタン一回で印刷する便利さと、どちらを取りますかね。

下記に簡単なサンプルと示しますが、プリンターを変えたい変えたくないの意思はどこで決めるか分からないので、必ずダイアログが表示されます。

各条件、環境などをすべて明示的(論理的)に出来るのなら、ダイアログ表示の必要はありませんが、、参考まで

Dim 番号 As Integer
Dim a As Integer, n As Integer
Dim PrintFlag As Boolean
Dim CH As Boolean
Dim ActPrinter
ActPrinter = Application.ActivePrinter
a = Sheets("書類").Range("B2").Value
n = Sheets("書類").Range("F2").Value
For 番号 = a To n
Sheets("書類").Range("B2").Value = 番号
If PrintFlag <> True Then
CH = Application.Dialogs(xlDialogPrint).Show
If CH = False Then Exit Sub
PrintFlag = True
Else
Sheets("書類").PrintOut
End If
Next 番号
Application.ActivePrinter = ActPrinter
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!