エクセルVBAでPDFを1枚目のみ大量に印刷する方法

このQ&Aのポイント
  • エクセルVBAでPDFを大量に印刷する方法について教えてください。保存された6000件のPDFファイルを指定された番号の範囲で印刷する方法を知りたいです。また、印刷は1ページのみ印刷します。
  • エクセルVBAを使用して、特定の番号の範囲で6000件のPDFファイルを印刷する方法を教えてください。必要なファイル番号をエクセルのA列に入力し、番号に対応するPDFファイルを順番に印刷したいです。印刷は1ページのみ行い、PDFファイルが存在しない場合はエクセルのB列から適当な番号を摘出して使用する方法を考えています。
  • エクセルVBAを使用して、1枚目のみ大量のPDFファイルを印刷する方法を教えてください。6000件近くあるPDFファイルが、「A」というフォルダに1.pdf, 2.pdf, 3.pdf...という形で保存されています。エクセルのA列に必要な番号を入力し、50〜60件を印刷したいです。VBAを使用して、A1から順番にアクティブプリンターで印刷する方法を教えてください。印刷は1ページのみで行い、番号が存在しない場合はB列から適当な番号を摘出して使用する方法を考えています。
回答を見る
  • ベストアンサー

エクセルVBAでPDFを1枚目のみ大量に印刷したい

エクセルVBAでPDFを大量に印刷したい PDFファイルが6000件くらいあって Aというホルダーに1.pdf,2.pdf ・・・6000.pdfといった形で保存しております エクセルのA列に必要な番号を入力し50~60件印刷します A列には必要なファイル番号のみ入れていきます 2,3,6,100,210といった形でA列に必要なデータを入れて VBAで起動させるとA1から順番にアクティブプリンターで印刷したいと おもっています。 どのようなVBAにすればいいのかわかりません。 ループで繰り返しになる感じになると思います N=N+1といった感じでA1セル.PDF 印刷 A2セル.PDF           印刷 A3セル.PDF           印刷 といった形でAに入る数字は毎回違ってきます 番号はあるけどファイルがない場合はその番号を B1列から順番に摘出するようなものを考えてます 印刷については、全部1ページのみ印刷をします。1PDFで4ページあっても先頭の1ページのみ印刷です。 どなたかお忙しいとは思いますがご教示いただけませんか よろしくお願いいたします

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

  • ベストアンサー
  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.1

いろいろ調べたのですが、「Acrobat Reader」では不可能のようです。 「OKWave」に「Acrobat Reader」でページ指定してプリントアウトする方法を掲載しておられる方がおられましたが、その方、参照されたサイトの注意事項を読んでおられず、「Acrobat Readerでは不可」となっているところを参照しておられました。 もし、質問者がお金を出して購入する「Acrobat」をお持ちでしたら、以下のマクロで1ページ目のみプリントします(私は「Adobe Acrobat Pro DC」を持っていますので、動作確認はしていて、問題なく、1ページ目のみ、プリントしました)。 したがって、もし、「Acrobat Reader」しかお持ちでない場合は、さしあたり、諦めるしかないようですが、私も、もう少し調べてみます(もしかしたら、フリーソフトを使って、できるかも知れませんので)。 とりあえず、マクロを載せておきます。 Option Explicit Sub Test() Dim i As Integer Dim f, p As String Dim x As Object Dim y As Object Dim z As Object Dim b As Long Set x = CreateObject("AcroExch.APP") Set y = CreateObject("AcroExch.PDDoc") Set z = CreateObject("AcroExch.AVDoc") p = "D:\Programming\" For i = 1 To Range("A1").End(xlDown).Row f = p & Cells(i, 1).Value & ".pdf" If Dir(f) <> "" Then b = x.Show b = z.Open(f, "") Set y = z.GetPDDoc() b = z.PrintPages(0, 0, 2, 0, 0) b = z.Close(False) b = x.Exit Else Cells(i, 2).Value = Cells(i, 1).Value Cells(i, 1).Value = "" End If Next i Set x = Nothing Set y = Nothing Set z = Nothing End Sub

その他の回答 (2)

  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.3

回答No.1です。 提案です(私は試していませんので、あくまで自己責任で)。 「Adobe社」の「CS2」というバージョン(Photoshop、Illustrator、InDesign、Acrobatなど)は、現在、無償でダウンロードし、インストールできます。 今となっては、古いバージョンですが、これは、このバージョンのサーバを「Adobe社」が閉じてしまったため、ユーザ管理ができなくなり、結果として、誰でもインストールできてしまう、というのです。 しかも、「Adobe社」自身が行っているので、決して、不正なものではりません。 もちろん、すべて「自己責任」になります。 私の場合、「Photshop」を動かそうとすると、「コントロールパネル」→「言語」で「English」というキーボード(?)を選択しないと、起動もしません。 「Illustrator」は動いています。 「Acrobat」は、最新のバージョンを持っているので、インストールしたことがありません。 公開されているバージョンは「pro 7」になります。 ダウンロードサイトは、 https://helpx.adobe.com/jp/creative-suite/kb/cs2-product-downloads.html?promoid=FHRLZKR6&mv=other%20# です。 詳しくは、 http://nj-clucker.com/install-illustrator-cs2-to-windows-10/ を参照してください。 もし、「Acrobat pro 7」がインストールでき、正常に動けば、私の「Acrobat」でのマクロが使えるかもしれません。

  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.2

回答No.1です。 いろいろ調べましたが、「PDF-XChange Viewer」というソフトなら確かにページ指定してプリントすることが出来たのですが、私の場合、白紙のページが出てきました。 他の方も、そもそも「印刷されない」、「なぜか罫線が印字される」など、何やらいろいろトラブっているみたいです。 このソフト、インストール時に「無料版」としてインストールするのですが、お金を出せば、「Pro」版を購入できます。 Pro版を購入した方の評価は見つからなかったので、買ったからと言って、必ず「できる」とも言えないので、私の調査はこれで終えたいと思います。 お役に立てず、申し訳ございません。 なお、「コマンドプロンプト」で、 「C:\Program Files\Tracker Software\PDF Viewer\」フォルダに「CD」(Change Directry)して、 「PDFXCview.exe /print:pages=1 D:\Programming\3.pdf」を実行 で、2ページある、「3.pdf」を出力しようとして、白紙の1ページが出てきました。 やはり、無料でページ指定して、「確実」に印刷を行う方法は、どうもないようです。

takechan0423
質問者

お礼

こちらこそすみません いろいろご尽力いただきまして感謝しかございません 本当にありがとうございました

関連するQ&A

  • エクセルVBAでPDFを大量に印刷したい

    PDFファイルが6000件くらいあって Aというホルダーに1.pdf,2.pdf といった形で保存しております エクセルのA列に必要な番号を入力し50~60件印刷します A列には必要なファイル番号のみ入れていきます 2,3,6,100,210といった形でA列に必要なデータを入れて VBAで起動させるとA1から順番にアクティブプリンターで印刷したいと おもっています。 どのようなVBAにすればいいのかわかりません。 ループで繰り返しになる感じになると思います N=N+1といった感じでA1セル.PDF 印刷 A2セル.PDF           印刷 A3セル.PDF           印刷 といった形でAに入る数字は毎回違ってきます 番号はあるけどファイルがない場合はその番号を B1列から順番に摘出するようなものを考えてます どなたかお忙しいとは思いますがご教示いただけませんか よろしくお願いいたします

  • PDFとエクセルシートを連続印刷する方法

    エクセルVBAを利用して、PDFとエクセルファイル(シート名指定あり)の混載するリストを参照し、 連続印刷する方法を教えてください。 印刷リストとして、 A列にファイルタイプ(xlsかPDFか) B列にファイル場所 C列にファイル名 D列にシート名 E列にする/しないの印刷フラグ を記し、 PDFの場合はファイル場所とファイル名を参照して印刷、 xlsの場合はシート名まで指定して印刷するという処理を書きたいのです。 添付の画像を参照すると、印刷するのは E:\test\111.pdf E:\test\222.pdf E:\test\222.pdf E:\test\Book1.xlsのSheet1 ・ ・ ・ となります。 A列に「判別」としたのは、PDFかエクセルかを見分けるのに必要かなと思って設けました。 リストはイメージなので、必要であれば編集しできます。 全てのファイルをPDFにしてしまえば良いのですが、 それは理由があってできないのです。 VBA初心者で、エクセル2010を使用しています。 どなたかご存じでしたら、ぜひお教え下さい。 よろしくお願いします。

  • PDFとエクセルシートの連続印刷について

    PDFと、指定したエクセルシートの連続印刷について教えてください。 エクセルVBAを利用して、PDFとエクセルファイル(シート名指定あり)の混載するリストを参照し、 連続印刷する方法を教えてください。 添付した図のようなリストを作成し、 E:\test\111.pdf E:\test\222.pdf E:\test\222.pdf E:\test\Book1.xlsのSheet1 ・ ・ ・ と印刷させるには、どのように書けばよろしいでしょうか? A列に「判別」としたのは、PDFかエクセルかを見分けるのに必要かなと思って設けました。 リストはイメージなので、必要な情報などあれば作成しなおします。 あと、もし可能であれば、E列の印刷フラグが1であれば印刷、 0であれば印刷しないでスキップという機能が欲しいです。 ややこしくなるなら、この機能は我慢します。 全てのファイルをPDFにしてしまえば良いのですが、 それは理由があってできないのです。 VBA初心者で、エクセル2010を使用しています。 どなたかご存じでしたら、ぜひお教え下さい。 よろしくお願いします。

  • エクセルでPDFリンクを大量にしたいです。

    エクセルでPDFファイルにハイパーリンクを作成したいです。 PDFファイルがたくさんあり、ひとつずつ右クリックして「ハイパーリンク」の作成とするととても時間がかかってしまいます。 何か良い方法はありませんか? エクセルのセルにA,B,Cと夫々入っていたら AのセルをクリックするとAという名前のPDFを開くことができる。 といったものを作成したいです。PDFは数百件あります。

  • VBAによるPDF印刷について

    1つのファイル内に、A0からA4サイズまでのどれかの図面ファイルがマルチページで数ページ入っています(サイズ並びはランダム)。印刷時に各サイズ毎でまとめて印刷したいのですが(どのページにどのサイズかは判っています)、その設定方法がわかれば教えていただきたく質問しました(最終的には自動化を目指しています)。よろしくお願いします。 例えば「1、2、3、7、9、11、12、14」ページを1度に印刷する場合、Acrobatで印刷ダイアログを表示した際に「印刷範囲」として「1-3,7,9,11-12,14」と記載できます。通常(PDF以外)の印刷設定では開始と終了ページ、部数の設定方法は確認出来ていますが、Acrobatでの印刷ダイアログへの設定方法がわかりません。 ① そもそもPDFファイルがオープンしていれば印刷ダイアログはAcrobatのものが表示されるのか?。 ② 表示されないのであればどうすれば表示できるのか?。 ③ 表示された場合での各項目の設定方法は?。 ④ ①〜③が出来ない場合、別に方法はあるのか?。 色々とネットを検索しているのですが“これ”と思ったものが見つからずで…。検索の方法が悪いのかもしれませんが…。ここのサイトがわかりやすいとか、この参考書が良いとかの情報もあれば教えていただけると助かります。 サイズとページの取得については、他者が作成したエクセルVBAを利用しています(処理コメント説明が一切無いので解析に苦労しながら改造している状態です)。VBA以外も考えたのですが、とりあえずはVBAがらみで今四苦八苦しています。PDFを扱わない処理は経験しているのですが…。出来なければ開始と終了ページで回数を回すしかないのかと。なお、Acrobat有償版は入っています。

  • VBAで、指定したセルの文字のPDFファイルを印刷したいのですが。

    VBAで、指定したセルの文字のPDFファイルを印刷したいのですが。 VBAの起動時に、指定したセルの文字をファイル名として読み取って、 そのファイル名のPDFファイルを自動印刷させたいのですが、 セルの文字を、PDFの起動パスにセットする方法が分かりませんので ご教授いただけませんでしょうか。 具体的にはこの様な処理を考えています。 A1セルの文字を、PDFのファイル名にします。 PDFファイルは、C:¥PDFファイル に保存されています。 A1に「てすと」の文字があれば、「てすと.pdf」が印刷されます。 お手数ですが宜しくお願いいたします。

  • vbaを使ってエクセルリストからPDFを印刷する

    エクセルシートA列に"ファイル場所+ファイル名.pdf"を合体させたリストを作成しました。 リストの上から順にPDFファイルを開き印刷するコードを作成しました。 印刷はされますが、リストの順番に印刷されず、ものすごくランダムに印刷されてしまいます。 このエラーについて、 「次々に実行させるから、ファイルの容量順に印刷されてしまうのでは? PDFを開いて、一旦閉じるコードを入れればよいのでは?」 というアドバイスをもらいましたが、どう対応したらよいか分かりません。 他に考えられる原因があるかもしれません。 教えて下さい。よろしくお願いします Dim i As Long 'セルC2に繰り返し数(ファイルの数)が入力されています For i = 1 To Range("C2").Value 'セルB**に印刷フラグを立て、「空欄」なら印刷、「1」なら印刷しないとしています '印刷フラグ「空欄」は印刷実行 If Cells(i + 1, 2).Value = "" Then PrinterName = Application.ActivePrinter fileName = Range("A" & i + 1).Value Set myShell = CreateObject("WScript.Shell") myShell.Run ("AcroRd32.exe /t " & fileName) '印刷フラグ「1」は印刷しない ElseIf Cells(i + 1, 2).Value = "1" Then End If Next i End Sub

  • 連続で印刷 VBA エクセル

    ・シート1のA列に番号が入力されており、B列以降に情報が入力されています。 ・シート2のA1セルに上記に番号を入力すると、B列以降の情報がフォーマットにあわせて表示する様になっています。 ・印刷する場合、A列に番号を入力→印刷を繰り返します。 ○コレをVBAで自動化できないでしょうか?

  • ExcelデータからPDF内を検索する方法

    ExcelのA列に人名が10000行程度入っています。 300頁程度の横書き文章のPDFファイルがあります。 このPDFファイル内をExcelのA列の人名で検索して,1件以上ヒットする場合に○,1件もヒットしない場合に×をExcelのB列に返すようにしたいです。 このようなことは可能でしょうか。 可能な場合,必要な条件(ソフト等)と,やり方を教えていただけますようお願いいたします。

  • excelとpdfについてです

    書類を個人別にpdfファイルにして(社員番号.pdf)と名前を付けました。 エクセルで社員番号の表があるんですが 例えばA列に社員番号が並んでいる表の 番号それぞれにリンクする簡単な方法はありませんか? 一つずつやるしかないのでしょうか? 全部で1500件ほどなので二の足を踏んでいます 宜しくお願いします

専門家に質問してみよう