忙しい現代人の腰&肩のお悩み対策!

100個くらいのPDFファイルを一度に印刷するためにはどうしたらよいのでしょうか?
Acrobat ProfessionalにはExplorer上でファイルを選択することで複数ファイルを印刷する機能はあるのですが、これはなぜか順番がめちゃくちゃになって印刷されます。
一度一つのPDFファイルに結合してから印刷するという方法はありますが非常に時間も負荷もかかってしまいます。
もっと手軽に出来る方法があれば教えて下さい。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

こんにちは


ちょっと古いですが過去log
http://q.hatena.ne.jp/1147713104
が参考にならないですか。

では。
    • good
    • 1

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q複数のPDFを一括で印刷する方法

1つのPDFに1枚の原稿、それが50もあります。
一括して印刷する方法はあるのでしょうか。
単純に複数のPDFを選択し印刷しようとしても
できず、50回印刷の手順を踏まねばならず
くたくたです…。

Aベストアンサー

検索したら、下記のものがありました。
お試しあれ!
http://www.forest.impress.co.jp/article/2009/02/13/syunkanpdf21.html

Qフォルダ内にあるPDFファイルを一括で印刷する方法※右クリック→印刷はNG

指定のフォルダ内にあるPDFファイルを一括で印刷するにはどうしたら良いでしょうか?

200ファイル以上ある想定ですので、
複数選択して、右クリック→印刷、というやり方は不可でお願いします。

PDFは全て1ファイルA4用紙1枚のフォーマットで統一されている想定で、
印刷設定等をする必要はないので、一度スタートさせたら止まる事無く
完了できるようにしたいです。

エクセルVBAでも、
コマンドプロンプトでbatファイルを作るでもやり方は構いません。
ただし何らかのソフトをインストールする方法以外でお願いします。
(インストール不要のフリーソフトなら可)

でもできれば勉強も兼ねて、新規ソフトに頼らない方法で解決したいです。

Aベストアンサー

ANo.3です。

>ただし、これは私の環境の問題なのか、自動でAcrobatReaderが起動して、(恐らく)PDFファイルは閉じるのですが、
>AcrobatReader本体がタスクバーに最小化されて残ったままなのです。これを閉じないと次の印刷に進みません。
>つまりファイル数分、閉じる操作に付きっきりになってしまうのです。
>これもvarietyknowledgeさんの方では発生しなくて私の環境だと発生する問題なんでしょうかね。

自分の環境でもAcrobat Readerは最小化されて残ったままですが、印刷は並行して進みました。
環境依存のようですが、自分も原因は分かりません。

>何か回避方法ないでしょうか?

いろいろ調べてみましたが、現在のAcrobat Readerは一度開いてpdfデータを読み込んだ後、印刷処理を行う仕様のようです。

開くのを抑止する/sオプションもあるのですが、最低一度はAcrobat Readerを開かないと抑止が働かないようです。(それも中途半端な動きです)
苦肉の策ですが、以下を試していただけないでしょうか。

1. 以下のバッチファイルを作成します。(printpdf2.batとして、/sオプションを追加しています)
[printpdf2.bat]-----------------------------------------------------------------------------------------
@echo off
cd /d %~dp0

set rd_path="C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe"

:prloop

%rd_path% /s /h /p "%~dp1%~n1.pdf"

shift
if not "%~1"=="" goto prloop

exit
--------------------------------------------------------------------------------------------------------
※32bit環境の場合は、set rd_pathを下記に置き換えて下さい。
set rd_path="C:\Program Files\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe"

2.Acrobat Reader単体を起動し、最小化して下さい。
3.印刷対象のpdfファイルを全て選択し、1.で作成したバッチファイルにドラッグアンドドロップで入れて下さい。
※印刷対象分開く動作をするのですが、最後に/sオプションが働いて、最終的にはAcrobat Reader単体のみが残ります。
4.印刷が始まったら、残ったAcrobat Reader単体を終了して下さい。
※プリンタスプールにストックされているので、閉じても印刷には支障がでません。

動作確認は、最初は2つのpdfファイルで行うことをお勧めします。

ANo.3です。

>ただし、これは私の環境の問題なのか、自動でAcrobatReaderが起動して、(恐らく)PDFファイルは閉じるのですが、
>AcrobatReader本体がタスクバーに最小化されて残ったままなのです。これを閉じないと次の印刷に進みません。
>つまりファイル数分、閉じる操作に付きっきりになってしまうのです。
>これもvarietyknowledgeさんの方では発生しなくて私の環境だと発生する問題なんでしょうかね。

自分の環境でもAcrobat Readerは最小化されて残ったままですが、印刷は並行して進みました。
環境依存の...続きを読む

QEXCEL VBAでPDFファイルを開いて印刷

Excel VBAで指定してフォルダのPDFファイルを開いて印刷したいです(できれば閉じるところまで)。
開くところまではできたのですが、その先に印刷するのはどのようにしたら良いか教えてください。
安直な考えで開いた後のコードに何か付け足せばいけるのかと思って色々調べてはみたのですが、
そもそも開く段階で別のコマンドを指定しないといけないのでしょうか。
ちなみに、フォルダは変動しませんがファイル名はA1に入っている文言を拾うようにしています。

現在のコード
Sub printpdf()
Dim keyword As String
Dim myPath As String
Dim fName As String

keyword = Worksheets("Sheet1").Range("A1").Value
myPath = "\\フォルダのパス\"
fName = Dir(myPath & keyword & ".pdf")

If fName = "" Then
MsgBox ("該当するファイルが存在しません。")
Exit Sub
End If

Shell ("explorer.exe " & myPath & fName)
fName = Dir()
End Sub

Excel VBAで指定してフォルダのPDFファイルを開いて印刷したいです(できれば閉じるところまで)。
開くところまではできたのですが、その先に印刷するのはどのようにしたら良いか教えてください。
安直な考えで開いた後のコードに何か付け足せばいけるのかと思って色々調べてはみたのですが、
そもそも開く段階で別のコマンドを指定しないといけないのでしょうか。
ちなみに、フォルダは変動しませんがファイル名はA1に入っている文言を拾うようにしています。

現在のコード
Sub printpdf()
Dim key...続きを読む

Aベストアンサー

#4の回答者です。

>ちなみにプリンターバッファの問題とはバッファにデータが残ってしまうのでしょうか?

ある一定量を越えると、プリンターがうんともすんとも反応しなくなってしまうことがありました。マクロはすごく速く処理してしまうのに、プリンターのほうは、実際に印刷時間がありますから、ギャップがあるのです。

Sleep 1000  '1秒
------------------
cnt = cnt + 1
If cnt > 100 Then Exit Sub

で、ほんのちょっとの時間稼ぎはしています。
ちなみに、
If cnt > 100 Then Exit Sub 
これは、ハンドルが取れない時の保護処理です。

なお、sendkeys は、例えば、エクセルで発生させると、エクセル内に関しては、うまくいくこともありますが、外部には働かないことが多いです。
もし、Sendkeys を試すなら、
  CreateObject("Wscript.Shell").SendKeys "%{F4}"
を試してみることですね。

>キーワードが頭に無い為調べ方すら分からないレベルだったので勉強になりました。
そういう私も、もう一度勉強し直します。WMで始まる命令って4個ぐらいしかないのですが、実は、他の定数で、もっと一杯あることを最近知りました。ネット検索でも、ぜんぜん出てこないのですね。(探し方にVB限定で検索するのが、問題があるようです)

#4の回答者です。

>ちなみにプリンターバッファの問題とはバッファにデータが残ってしまうのでしょうか?

ある一定量を越えると、プリンターがうんともすんとも反応しなくなってしまうことがありました。マクロはすごく速く処理してしまうのに、プリンターのほうは、実際に印刷時間がありますから、ギャップがあるのです。

Sleep 1000  '1秒
------------------
cnt = cnt + 1
If cnt > 100 Then Exit Sub

で、ほんのちょっとの時間稼ぎはしています。
ちなみに、
If cnt > 100 Then Exit Sub 
これは...続きを読む

Q印刷の順序が逆になる

2ページ分を印刷すると、2ページ、1ページの順に印刷される

※OKWaveより補足:「キヤノン製品」についての質問です。

Aベストアンサー

逆順印刷機能ですかね。

http://blog.goo.ne.jp/rikopinpinpin/e/9a23ef65bde50f0ab0620164634659c3

QPDFファイルを開かずに印刷したい

幾つものPDFファイルを印刷したいのですが、
できればAdobeReaderを起動させずに印刷したいです。

ファイルのアイコン上で右クリック→印刷でも可能ですが、
数が多くなると、この作業も大変です。
そこでVisualBasic2008ExpressEditionを使って、
簡単なシステムを作りたいと考えています。

しかし、PDFを開かずに印刷する方法が、どうしてもわかりません。
ネット検索、教えてgoo内の検索でもヒットせず途方に暮れています。
参考になるホームページや書籍がありましたら教えてください。
「こんな手法があるよ」というものでも構いません。

宜しくお願いします。

Aベストアンサー

PDFを開く際にACRORD32.exeに対して以下のコマンドラインを指定してください。

ACRORD32.EXE /s /l /p /h [PDFのパス]

コマンドラインの解説は参照URLを。

参考URL:http://scripting.cocolog-nifty.com/blog/2007/07/adobe_reader_81_e41e.html

QPDFファイルを開き、印刷し、閉じるマクロ

Excel 2003 VBAにて、
PDFファイルを開き、印刷し、閉じるマクロを作りたいと思っています。

Dim AA, AAA

AA = "C:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe C:\Scan\20131101160734050_001.pdf"
AAA = Shell(AA, vbNormalFocus)

にて、PDFファイルを開くことは出来ました。
このPDFファイルを、「印刷し、閉じる」ためには、
このPDFファイルを指定する必要があると思いますが、
その構文が判りません。
知っている方、教えて下さい。

Aベストアンサー

#3です。
WShell.Execを使うと閉じる事ができる様ですが、色々と気難しくて苦労しました。
まず、なぜかAdobe Reader/Acrobatのフルパスを与えないと、ファイルがみつからないとゴネます。

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub test()
printPdf2 GetDesktopPath & "\test.pdf", "DocuWorks Printer", "DocuWorks Printer Driver"
' printPdf2 GetDesktopPath & "\test.pdf"
End Sub

Sub printPdf2(pdfDocument As String, Optional printerName As Variant, Optional printerDriver As Variant)
Dim cmdLine As String
Dim WShell As Object
Dim oExec As Object
'ここは調整の必要がありそう
Const waitTime As Long = 1000
'Windows7 Home 64bitの場合です
Const pgmFullPath As String = "C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe"

Set WShell = CreateObject("WScript.Shell")
If IsMissing(printerName) Or IsMissing(printerDriver) Then
cmdLine = "pgmFullPath /n /s /o /h /t ""pdfFullPath"""
cmdLine = Replace(cmdLine, "pgmFullPath", pgmFullPath)
cmdLine = Replace(cmdLine, "pdfFullPath", pdfDocument)
Else
cmdLine = "pgmFullPath /n /s /o /h /t ""pdfFullPath"" ""printerName"" ""printerDriver"""
cmdLine = Replace(cmdLine, "pgmFullPath", pgmFullPath)
cmdLine = Replace(cmdLine, "pdfFullPath", pdfDocument)
cmdLine = Replace(cmdLine, "printerName", printerName)
cmdLine = Replace(cmdLine, "printeDriver", printerDriver)
End If
Debug.Print cmdLine
Set oExec = WShell.exec(cmdLine)
Sleep waitTime
'Windows7Home/64bit環境ではここで実行時エラーが出るので無理矢理先に進めていますが
'Adobe Readerは閉じられる様です
On Error Resume Next
oExec.Terminate
Set WShell = Nothing
End Sub

Private Function GetDesktopPath() As String
Dim wScriptHost As Object, strInitDir As String
Set wScriptHost = CreateObject("Wscript.Shell")
GetDesktopPath = wScriptHost.SpecialFolders("Desktop")
Set wScriptHost = Nothing
End Function

Terminateで原因不明のエラーが出るのでWebを漁っいて下記をみつけました。64bit環境でエラーが出るのはこれも関係しているのでしょうか?少々無理をしている様なので、ご使用時はご注意下さい。
Terminate メソッドは最後の手段としてのみ使用します。これは、アプリケーションによっては適切にクリーンアップできない場合があるためです。通常は、プロセスを途中で中断せず、プロセス自身で実行を終了させるようにします。Terminate メソッドは WM_CLOSE メッセージを使ってプロセスを終了しようとします。これで終了できない場合は、通常のシャットダウン手順を実行せずに、プロセスを強制終了します。
http://msdn.microsoft.com/ja-jp/library/cc364387.aspx

#3です。
WShell.Execを使うと閉じる事ができる様ですが、色々と気難しくて苦労しました。
まず、なぜかAdobe Reader/Acrobatのフルパスを与えないと、ファイルがみつからないとゴネます。

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub test()
printPdf2 GetDesktopPath & "\test.pdf", "DocuWorks Printer", "DocuWorks Printer Driver"
' printPdf2 GetDesktopPath & "\test.pdf"
End Sub

Sub printPdf2(pdfDocument As String, Optional printerName As Variant, Optional prin...続きを読む

Qプリンタに200~1000くらい印刷ジョブを送ると印刷順が狂う

仕事上A4サイズの1枚書類を月末に一度に200~1000枚程印刷しています。この印刷は枚数分印刷ジョブがプリンタに渡され印刷される事になります。印刷順番がとても大切なのに、大量の印刷ジョブが送られると印刷順番が狂ってしまう場合があるのです。どの位の印刷ジョブで印刷順番が狂うのかも時と場合によってで状況発生する場合としない場合があり振りまわされ状態です。プリンタエラーになる訳でもないので数百枚の印刷物の印刷頁を毎回確認しなければならない状況です。どなたか印刷物の順番が混乱しないようなソフトコントロールとかあったら教えて下さい。印刷ジョブをプリンタに流す側のプログラムを作成しているのでソフト面での対処か、ハード設定面での対処があれば助かります。

Aベストアンサー

プリンタとデータサーバはローカル接続ですか?ネットワーク接続ですか?
また、Windows用のプリンタドライバを使用しての印刷でしょうか?直接プリンタ言語で印刷していますか?
また、枚数分印刷ジョブが渡されるということは、200ページ印刷すると200ジョブになる(1ジョブ200ページではない)ということですね?
アプリ-ドライバ-接続形態-プリンタハードのどこに問題があるのか一カ所ごとにためしくしかありません。
プリンタメーカと協力して調査していくのがベストだと思われます。

プリンタドライバを使用している場合で、印刷するPCのHDD空きに問題がなければドライバ内の印刷後ドキュメントを残すにチェックを入れ印刷します。(ジョブは印刷時刻でソートがかかるので日にちをまたがない印刷で検証のこと)
印刷の紙結果とドキュメント名を付け合わせます。ドキュメント名のならびは正しく紙出力に誤りがあれば、ドライバ・アプリの問題ではありません。が、プリンタハードか通信形態(接続形態)か判別がつきませんので、たまっているドキュメントをドライバから再印刷かけます。同一現象であれば、できたら接続形態をかえて(lanだったらパラレルなどのローカル接続にかえる)試してみてください。

データが1ジョブで200ページ分の場合は、たまっているドキュメントをドライバのポートをfileにかえ、prnファイルにして直接プリンタにcopyコマンドなどを使って転送し、データに問題があるのか切り分けすることも可能です。

ドライバにわたる時点でデータが並び代わっている場合はアプリ側の問題の可能性が高くなります。(プリンタハードではない)

もしネットワーク接続上の問題に絞り込みができればネットワークパケットをとって再度組み立て直しデータ送信に誤りがないかを確認します。これは非常に時間と労力とお金がかかるので最終手段です。(ものすごく大変です)

経験上、不定期にでる場合はアプリ側かネットワーク上の問題であることが多いようです。原因に行き着くまでに短くても数ヶ月、ながいケースですと一年かかる場合もあります。MS系のアプリの場合は関連メーカを巻き込んでMSへ調査依頼していく方法が早いようです。

プリンタとデータサーバはローカル接続ですか?ネットワーク接続ですか?
また、Windows用のプリンタドライバを使用しての印刷でしょうか?直接プリンタ言語で印刷していますか?
また、枚数分印刷ジョブが渡されるということは、200ページ印刷すると200ジョブになる(1ジョブ200ページではない)ということですね?
アプリ-ドライバ-接続形態-プリンタハードのどこに問題があるのか一カ所ごとにためしくしかありません。
プリンタメーカと協力して調査していくのがベストだと思われます。

プリンタド...続きを読む

Q【EXCEL-VBA】PDFファイルを開いて印刷したい

お世話になります。
以前、以下のリンク先の質問でA1セルに入力されたファイル名(フルパスの)を取得し
PDFを開くマクロを頂きました。
※ご解答頂いたWindFallerさん、maiko0333さん、ありがとうございました。
このマクロはすごくシンプルで使いやすいので今でも仕事で使っております。

で、、、今回、これをカスタマイズして「印刷もしたい」と思ったのですが、
印刷するためのコードの追加方法がわかりませんでした。

このコードに固執してないので、別の方法でもかまいません。
ですが、ネットで調べたところ複雑なコードばかりでした。
リンク先のようなシンプルなコードでPDFファイルを開いて
印刷することって出来ないのでしょうか?

すいませんが詳しい方、説明の上手な方、
直接、コードで説明できる方、マクロでPDFファイルを開いて印刷するための
コードを教えて下さい。よろしくお願いします。


リンク先:PDFファイルを開くマクロ
「PowerShellを使って関連付けられたアプリケーションでファイルを開く時のエラー」
https://oshiete.goo.ne.jp/qa/9338065.html

追記
1)開いたPDFファイルを閉じる必要はありません。
開けっ放しでOKです

2)前述していますし、リンク先を見て頂ければわかると思いますが、
A1セルに入力するファイル名はフルパスです。
※詳細はリンク先の説明、画像をご覧ください

3)PDFファイルはどれも1枚だけです。
※複数ページのPDFはありません。

以上です。すいませんがよろしくお願いします。

お世話になります。
以前、以下のリンク先の質問でA1セルに入力されたファイル名(フルパスの)を取得し
PDFを開くマクロを頂きました。
※ご解答頂いたWindFallerさん、maiko0333さん、ありがとうございました。
このマクロはすごくシンプルで使いやすいので今でも仕事で使っております。

で、、、今回、これをカスタマイズして「印刷もしたい」と思ったのですが、
印刷するためのコードの追加方法がわかりませんでした。

このコードに固執してないので、別の方法でもかまいません。
ですが、ネットで調...続きを読む

Aベストアンサー

こちらを参考にして
https://www.moug.net/tech/acvba/0130005.html
こんな感じで動きました。(Windows7 64ビット , Excel2010 32ビット)

Option Explicit

Declare Function ShellExecute Lib "SHELL32" Alias "ShellExecuteA" (ByVal hwnd&, ByVal lpOperation$, ByVal lpFile$, ByVal lpParameters$, ByVal lpDirectory$, ByVal nShowCmd&) As Long

Public Sub PrintPDF()
 Dim strPath As String

 strPath = Range("A1").Value
 ' 現在の位置とサイズで表示 5(SW_SHOW)
 Call ShellExecute(Application.hwnd, "open", strPath, vbNullString, vbNullString, 5)
 ' 印刷
 Call ShellExecute(Application.hwnd, "print", strPath, vbNullString, vbNullString, 5)
End Sub

こちらを参考にして
https://www.moug.net/tech/acvba/0130005.html
こんな感じで動きました。(Windows7 64ビット , Excel2010 32ビット)

Option Explicit

Declare Function ShellExecute Lib "SHELL32" Alias "ShellExecuteA" (ByVal hwnd&, ByVal lpOperation$, ByVal lpFile$, ByVal lpParameters$, ByVal lpDirectory$, ByVal nShowCmd&) As Long

Public Sub PrintPDF()
 Dim strPath As String

 strPath = Range("A1").Value
 ' 現在の位置とサイズで表示 5(SW_SHOW)
 Call ShellExecute(Applica...続きを読む

Qフォルダ内のエクセル文書をすべて印刷したいデス

1つのフォルダに ファイルが100個くらいあり それぞれ 1~3シートのBookになています。
すべてのシートを印刷したいのですが 毎回 ファイルを開いてシートを選択しないとできません。

一括で処理する方法をご存知の方 教えて頂けないでしょうか。
(>_<)よろしくお願いしますぅぅ

Aベストアンサー

>まだ使い方が分かりません。。

エクセルを開いて、[Alt] + [F11] でマクロを編集する画面(VBE)が現れます。
その画面で、[挿入] - [標準モジュール] を選択すると、マクロを記述する画面が現れます。

そこに、Sub ~ End Sub までの行をコピーして貼り付けてください。

一行目の「Sub test()」の "test" の文字は任意に書き換えできます。「一括印刷」などの解りやすい名前にしても良いでしょう。

「Fol = "C:\Tmp"」の "" の内側には、ファイルが入っているフォルダのフルパスを書き込んでください。

実行するには、マクロ文中にカーソルを置いて、VBEの[|>](横向き三角ボタン)をクリックすれば実行できます。
若しくは、エクセルの画面で [Alt] + [F8] で実行するマクロを選択する画面が現れます。

まずは、適当なフォルダを作成し、印刷対象ファイルを数個置いて、そのフォルダを対象にして実行テストをして見てください。

参考URL:http://t_shun.at.infoseek.co.jp/My_Page/Excel-VBA/vba_page03.htm

>まだ使い方が分かりません。。

エクセルを開いて、[Alt] + [F11] でマクロを編集する画面(VBE)が現れます。
その画面で、[挿入] - [標準モジュール] を選択すると、マクロを記述する画面が現れます。

そこに、Sub ~ End Sub までの行をコピーして貼り付けてください。

一行目の「Sub test()」の "test" の文字は任意に書き換えできます。「一括印刷」などの解りやすい名前にしても良いでしょう。

「Fol = "C:\Tmp"」の "" の内側には、ファイルが入っているフォルダのフルパスを書き込んで...続きを読む

Q画像を希望の順序で印刷したい

数多くのJPEG画像の中から、必要な物を選び指定した順番で印刷したいのです。例えば 画像に個別番号もしくは名前を付けて、番号を入力した順、又はFrom Toで印刷するのにいい方法やソフトがあったら教えていただきたいのです。
番号や名前はプロパティに登録したものを使えたらいいなと思います。
Office系のアプリケーションで出来たら最高です 情報をお待ちしております。

Aベストアンサー

> 必要な物を選び指定した順番で印刷したい

用紙1枚に1つの画像を大きく印刷なさるのか、用紙1枚に複数の画像を並べて
印刷されるのか、ご質問の中からはうかがえませんが、どちらの内容にしましても
ExcelのVBAで処理されたらどうでしょうか。

例えば、
1.用紙1枚に1つの画像を大きく印刷
   Sheet1 にフォルダ内の画像ファイルリストを作成(これもVBAで)して、
   印刷したいファイル名をクリックすると、あるいはリストの隣のセルに入力
   した番号順に、Sheet2にその画像を表示して印刷します。
2.用紙1枚に複数の画像を並べて印刷
   Sheet1のリストを元にSheet2に入力規則のリストをいくつか作成し、リスト
   から選択された画像をセルの右隣に標示します。
という内容ですが、いかがでしょうか。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング