こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PDF資料のセット印刷について

いつもお世話になっております。
説明会用の資料を印刷し、セットしています。
しかし、200部、300部とセットするのが大変です。
そこで、印刷時にセットしておきたいと考えました。
エクセルのマクロで書きました。ウインドウズ7、エクセル2010です。
よろしくお願いします。

説明会の資料が7種類あります。
1と2は、両面白黒印刷、ホッチキス止め  13枚
3と4は、片面白黒印刷、ホッチキス止め  19枚
5  は、両面白黒印刷          両面で1枚
6  は、片面白黒印刷          1枚
7  は、片面カラー印刷         1枚

いろいろな掲示板で探したコードを書いてみました。
意味もあまりわかってないです。。。なので

5、6、7は、印刷できるのですが、3と4はタマにしか印刷できません。
なぜなのかわかりません。同じ環境で続けてマクロを実行しましたが
印刷できるときと、出来ない時があります。
1と2は、いつも印刷できません。
どうすればいいのか教えてください。
白黒印刷や、ホッチキス止めは、プリンターで設定しています。
プリンターの追加で5種類用意しました。

あと、1から7までを1セットとし、20セット印刷したいのですが
どこでループをかけたらいいのかわかりません。
よろしくお願いします。

Sub 説明会資料PDF印刷()

Dim AA
Dim B1, B2, B3, B4, B5, B6, B7
Dim C1, C2, C3, C4, C5
Dim D1, D2, D3, D4, D5, D6, D7
Dim AAA As Object
Dim BB1, BB2, BB3, BB4, BB5, BB6, BB7
Dim i As Long


AA = "C:\Program Files\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe /t "

B1 = "C:\説明会資料\説明会1.pdf"
B2 = "C:\説明会資料\説明会2.pdf"
B3 = "C:\説明会資料\説明会3.pdf"
B4 = "C:\説明会資料\説明会4.pdf"
B5 = "C:\説明会資料\説明会5.pdf"
B6 = "C:\説明会資料\説明会6.pdf"
B7 = "C:\説明会資料\説明会7.pdf"

C1 = "DocuCentre-V C3375(両面白黒ホッチキス)"
C2 = "DocuCentre-V C3375(片面白黒ホッチキス)"
C3 = "DocuCentre-V C3375(両面白黒)"
C4 = "DocuCentre-V C3375(モノクロ)"
C5 = "DocuCentre-V C3375(カラー)"

Set AAA = CreateObject("WScript.Shell")

D1 = AA & """" & B1 & """" & " " & """" & C1 & """"
Set BB1 = AAA.exec(D1)
On Error Resume Next
BB1.Terminate
Set BB1 = Nothing

D2 = AA & """" & B2 & """" & " " & """" & C1 & """"
Set BB2 = AAA.exec(D2)
BB2.Terminate
Set BB2 = Nothing

On Error Resume Next
D3 = AA & """" & B3 & """" & " " & """" & C2 & """"
Set BB3 = AAA.exec(D3)
BB3.Terminate
Set BB3 = Nothing

On Error Resume Next
D4 = AA & """" & B4 & """" & " " & """" & C2 & """"
Set BB4 = AAA.exec(D4)
On Error Resume Next
BB4.Terminate
Set BB4 = Nothing

D5 = AA & """" & B5 & """" & " " & """" & C3 & """"
Set BB5 = AAA.exec(D5)
On Error Resume Next
BB5.Terminate
Set BB5 = Nothing

D6 = AA & """" & B6 & """" & " " & """" & C4 & """"
Set BB6 = AAA.exec(D6)
On Error Resume Next
BB6.Terminate
Set BB6 = Nothing

D7 = AA & """" & B7 & """" & " " & """" & C5 & """"
Set BB7 = AAA.exec(D7)
On Error Resume Next
BB7.Terminate
Set BB7 = Nothing

Set AAA = Nothing

End Sub

投稿日時 - 2015-09-29 15:47:30

QNo.9055809

困ってます

質問者が選んだベストアンサー

印刷できない部分だけ実行して確認してみたら如何ですか。

D2 = AA & """" & B2 & """" & " " & """" & C1 & """"
から
Set BB7 = Nothing

まで削除したら別名で保存し、DocuCentre-V C3375(両面白黒ホッチキス)の印刷ジョブを開きながら実行してみると何かわかるかも。

投稿日時 - 2015-10-01 16:16:17

お礼

tamao-chiさん、ありがとうございました。

ゆっくり実行していったら、うまく印刷できました。
印刷実行したあと、
On Error Resume Next
へ行くタイミングが早すぎたようです。
sleep 4000
を入れることで、希望通りに動きました。

ループも、作ったマクロを回すことで、セット印刷できるようになりました。

本当にありがとうございました。

投稿日時 - 2015-10-02 10:54:07

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

時間があまりないので具体的なコードを提示することはできませんが、
ヒント程度になれば…。

まず同じプリンターを複数(設定数)インストールします。
デバイスとプリンターに追加されますので、
適当にプリンター名を変更し、設定(初期値)もそれぞれに
片面、両面、両面ホッチキスなど設定を行います。
で、印刷したい資料ごとにVBAでデフォルトプリンターを
変更し、最後にデフォルトプリンターを元に戻します。
少し用途が違いますが、私はこれで稼動させているものがあります。

投稿日時 - 2015-10-01 13:20:34

補足

-antsu-さん、ありがとうございます。

C1 = "DocuCentre-V C3375(両面白黒ホッチキス)"
C2 = "DocuCentre-V C3375(片面白黒ホッチキス)"
C3 = "DocuCentre-V C3375(両面白黒)"
C4 = "DocuCentre-V C3375(モノクロ)"
C5 = "DocuCentre-V C3375(カラー)"
こちらが、プリンターを設定したコードです。

D1 = AA & """" & B1 & """" & " " & """" & C1 & """"
Set BB1 = AAA.exec(D1)
On Error Resume Next
BB1.Terminate
Set BB1 = Nothing

こちらが、資料ごとにプリンターを変えて印刷するコードです。

おっしゃっている通りにコードを書いたつもりなのですが
5  は、両面白黒印刷          両面で1枚
6  は、片面白黒印刷          1枚
7  は、片面カラー印刷         1枚
この3枚しか印刷できません。
プリンタドライバのインストールに問題があるのでしょうか?
プリンターのプロパティで詳細設定の中にある
メタファイルスプールをしない  から  する  に 変更したら、

1  は、両面白黒印刷、ホッチキス止め  13枚

13枚のうち、2枚(3ページもしくは4ページ)印刷しホッチキス止めできるようになりました。でも、13枚印刷させたいのですが。。。

急ぎませんので、引き続きよろしくお願いします。

投稿日時 - 2015-10-01 13:51:11

あなたにオススメの質問