• 締切済み

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を使用しています。 どなたかご存じでしたら、ぜひお教え下さい。 よろしくお願いします。

この投稿のマルチメディアは削除されているためご覧いただけません。

みんなの回答

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

Adobe Readerのコマンドライン指定で印刷する方法があるのですね。 その箇所だけ作成してみました。紙がもったいないのでDocuWorksでしか試験しておりません。 ご使用になるプリンターに合わせてアレンジして下さい。何も指定しなければWindowsの標準プリンターで印刷します。 当方Adobe Reader XIですが、/hを指定してもウィンドウが表示されてしまいます。 都度起動するのはいまいちですが、Adobe Reader 6の頃と異なり、我慢できるレベルと思います。 Excelのワークシートについては、自動記録をアレンジすれば出来ると思うのでご自分でお願いします。 Sub test() printPdf (GetDesktopPath & "\" & "test.pdf") End Sub Sub printPdf(pdfFullPath As String) Dim objWShell As Object Dim cmdLine As String Dim printerName As String Dim driverName As String printerName = Chr(34) & "DocuWorks Printer" & Chr(34) driverName = Chr(34) & "DocuWorks Printer Driver" & Chr(34) Set objWShell = CreateObject("WScript.Shell") cmdLine = "AcroRd32.exe /n /s /o /h /t " & pdfFullPath & " " & printerName & " " & driverName objWShell.Run cmdLine, VbNormalFocus, True Set objWShell = 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

参考URL:
http://pdf-file.nnn2.com/?p=222
yamayama456
質問者

お礼

mitarashi さま Adobe Readerのコマンドライン指定で印刷する方法だけでは、 セルを参照してという部分を自分で作成しきることができませんでした。 でも、ご回答ありがとうございます。

関連するQ&A

  • 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を使用しています。 どなたかご存じでしたら、ぜひお教え下さい。 よろしくお願いします。

  • エクセルのシートを1つのPDFファイルにする方法

    wordやpowerpointでは印刷でAcrobatを指定すれば1つのPDFファイルになりますが、エクセルでシートが複数ある場合で、印刷→Acrobatを指定しても1つのPDFにならず複数枚のPDFになります。複数のPDFファイルを1つのPDFファイルにはAcrobatの機能でできますが、面倒なので複数シートを1つのPDFファイルにする方法をご存じの方がおられましたら教えていただければと思います。

  • EXCEL VBA シートの連続印刷に白黒印刷

    EXCEL VBAの初心者です。回答、指導をよろしくお願いします。EXCEL2003を使用しています。シートAとBを連続で印刷するVBAに白黒で印刷するVBAを加えたいのですが記述方法がわかりませんのでご指導お願いします。シートの連続印刷VBAは下記ですが、これでよろしいでしょうか。どなたかご指導よろしくお願いします。 Sub purint複数シート印刷() Sheets(Array("A", "B")).PrintOut End Sub

  • エクセルによる両面印刷

    困っております。 現在、エクセルで1つのブックに10シートを作成しております。 それを両面印刷したいのですが、いろいろ調べたところ エクセルの既存機能では不可能であり、「別のソフトを使わないと無理」とのことですが、何とかしたいと思っております。 そこで、VBAを使っては無理でしょうか。 またPDFに変換するして、複数シートをひとつの文章としてPDFファイルに変換するなど といったテクニックはないでしょうか? 非常に困っております。 ご存知の方がいらっしゃれば、教えて下さい。

  • エクセルで名簿を連続印刷したい。

    エクセルで名簿を連続印刷したい。 Sheet1に縦に2枚同じ様式のフォームがあります。 A1、A24に、それぞれ名前を連続して印刷したいと思っています。 Sheet2に、名簿があります。 A列 B列 日付 氏名 1  Aさん 2  Bさん という感じで、120名の名簿リストがあります。 どのようにすれば、2箇所名前を連続で入れることができるでしょうか? どうぞよろしくお願いします。 *フォーマットを作った人は別でして、これでできるようにしてくださいと言われています。

  • エクセルのシートをPDFに

    XPでMSOFFICEのEXCEL2002を使っています。関数が埋め込まれたり 条件つき書式で色づけしたシートのある部分を選択し、印刷範囲の指定→ADOBEアクロバットで印刷を指示し、プレビューを見るときちんと表示されますが名前をつけて保存のところで、なにも反応がなく、一向にPDFが作成されません。場合によってはEXCELにトラブルが発生して強制終了したり、ファイルの修復とされてしまいます。何度かアクロバットを再インストールしたりしてしばらくはうまくいくのですがすぐまた同じ現象がおきます。もとのEXCELファイルを持ち帰り、自宅でクセロPDF を使って試みましがやはり、PDF化されずEXCEL2002をヴァージョンアップしろといわれるだけです。どなたかお知恵をお貸しください。

  • エクセルの複数シートpdf印刷が2分割される

    使用 EXCEL2007 ・ Adobe Acrobat 8 STANDARD エクセルで10シートを選択し、印刷プレビューを見ますとページ数は10ページとなっており、プリンタなどで印刷すると正常に10枚印刷されます。 問題はプリンタ選択でadobe PDFを指定し印刷をすると5ページでファイルの保存先を聞いてきます。それを終了させると残りの5ページ分も同じようになります。 結果5ページづつの2ファイルとなってしまします。どのようにすれば10ページ1ファイルでPDFが作成できるのでしょうか? よろしくお願いします。

  • PrimoPDFで連続ページ印刷

    PrimoPDFというフリーのPDF作成ソフトについてです。 EXCELで同一ワークシート内で連続したデータは、適当に改ページや書式設定で、PDF出力が1つのPDFファイルで連続したページとなって出力されます。 これに対して、複数ワークシートを「ファイル」→「印刷」→印刷対象を「ブック全体」としてPDF出力すると、ワークシートごとで別のPDFファイル(1ページごとの別々のファイル)になってしまいます。 1つのPDFファイルで連続ページの状態で出力したいのですが、ご存じの方、教えて下さい。 (または、PDF出力後の複数PDFファイルを一つに結合する方法でも結構です)

  • エクセル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ページのみ印刷です。 どなたかお忙しいとは思いますがご教示いただけませんか よろしくお願いいたします

  • EXCEL VBA 印刷 または PDF

    こんにちは。 EXCEL VBA初心者で、いろいろ調べてみましたが見つけられず 質問します。 1.自分のPCに設定してあるプリンタを選択したい 2.プリンタを指定して紙で印刷する 3.もしくは、PDF印刷を選択したらファイル名を指定して保存 ファイルの保存先は、自分で決めるのでダイアログボックスまででいいですが ファイル名はあらかじめ決めておきたい。 ・PDFにするには、「クロセPDF」を使用しています。(プリンター名も) ・PDFファイル名:ABCD ・使用するユーザーは、全国にいてプリンタ名などばらばら ・Windows XP/ EXCEL2003 シート名を選択してプリンターを選択するところまでは、わかりましたが 印刷するとき、PDFにするときしファイル名を表示させるのがどうしても わかりません・・・ Sub 印刷orPDF() Sheets("シート名").Select Application.Dialogs(xlDialogPrint).Show 以下、不明 どうぞ宜しくお願い申し上げます。