• 締切済み

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

みんなの回答

回答No.1

------- まず… ------- いろいろ質問の中にキーワードがあります。 その中で「自力で学ぶべき」と思う部分もあるので、あえてその部分のコードは書きません。 ただこちらが省略した部分で、質問者さんが自力で解決できない部分があった場合、「目的達成の質問の丸投げ」ではなく、 ・目的の全体像について ・その中で行き詰っている部分 ・エラーが発生しているのであれば、それに関係すると思われるコード抜粋と、エラー内容 を載せて、再質問を行ってください。 ----------------- 各キーワードから ----------------- >連続印刷 「シートの値が垂直方向に存在する間」というループを行う繰り返し処理の実装が必要です。 >E列にする/しないの印刷フラグ ループ内の印刷メイン処理を行う/スキップするの判定処理が必要です。 >B列にファイル場所 >C列にファイル名 ファイルの存在チェックが必要です。 >A列にファイルタイプ(xlsかpdfか) 印刷メイン処理を実行し、その中で処理を分岐します。 →PDFのとき ・PDF印刷を行う(以下サンプルを参照) →XLSのとき ・XLS印刷を行う(以下サンプルを参照) ------------------ PDFの印刷方法 ------------------ PDF印刷呼び出し方法は以下の文字列を結合して、実行する。 (1)「AdobeReder(acrobat)のexeのパス」 (2)[/s /t]の文字列オプション (3)「印刷対象のPDFのフルパス」 Sub pdf_print_sample()   Dim l_strReader   As String   Dim l_strPrmOpt   As String   Dim l_strPrmPdf   As String   Dim l_strCmd    As String      l_strReader = """C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe"""   l_strPrmOpt = "/s /t"   l_strPrmPdf = """C:\test\123.pdf"""   l_strCmd = l_strReader & " " & l_strPrmOpt & " " & l_strPrmPdf   Call Shell(l_strCmd) End Sub --------------------------- エクセルシートの印刷方法 --------------------------- エクセルシートオブジェクトの「PrintOutメソッド」を実行するだけです。 サンプルはマクロが記載されているワークブックのSheet2を対象にしていますが、本来は ・対象ワークブックを開く ・対象ワークブック配下の印刷対象ワークシートを捕まえる ・ワークシートの印刷を実行 ・対象ワークブックを閉じる という流れになります。 Sub xls_print_sample()   Dim l_xlsBook  As Excel.Workbook  '『印刷対象のワークブック』変数   Dim l_xlsSheet As Excel.Worksheet '『印刷対象のワークシート』変数      '【マクロが記載されている本ワークブック】を『印刷対象のワークブック』とする   Set l_xlsBook = ThisWorkbook      '【『印刷対象のワークブック』の"Sheet2"】を『印刷対象のワークシート』とする   Set l_xlsSheet = l_xlsBook.Worksheets("Sheet2")      '『印刷対象のワークシート』を印刷実行   l_xlsSheet.PrintOut End Sub

yamayama456
質問者

お礼

1050YEN さま ご丁寧にどうもありがとうございます。 目的達成の質問の丸投げしてすみませんでした。 回答を見ながら1つずつ、自分の力で作れていけそうです。 行き詰ったら、また質問します。 ありがとうございました。

関連するQ&A

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

  • Excel VBA別ブックのシートをコピーするには

    Excel2010のVBAで別ブックのシートをコピーしてくる方法 Excelファイル(C:\test\BOOK2.xls)のシート名が TESTというシートを自分のExcelファイル(C:\doc\BOOK1.xls)に コピーするにはどのように記述すればよいのでしょうか。 ・コピー先:自分のExcelファイル(C:\doc\BOOK1.xls)  VBAのコードがあるファイルです ・コピー元:C:\test\BOOK2.xlsのTESTシート  なお、TESTシートを持つ同じ名前(BOOK2.xls)のファイルが  別フォルダにもあります   Workbooks( )の引数にファイル名(BOOK2.xls)は指定できるのですが、 フルパス名(C:\test\BOOK2.xls)で指定できないので困っています。

  • EXCEL VBA n番目のシートの内容を参照した

    EXCEL VBAについて教えてください。 別のブックのシートのセルを直接参照したいのですが、 シート名が、決まっておらず、必ず4番目のシートを参照したいです。 以下のようなVBAの シート名をSheets(1)のような、決まったインデックス番号で指定にしたいのですが、どのように指定すればよいでしょうか? Range("A1") = "='e:\Temp\working\[book1.xls]シート名'!A1"

  • 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 以下、不明 どうぞ宜しくお願い申し上げます。

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

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

  • エクセル VBA 一つのシートにまとめたい

    TEST(1).xls~TEST(5).xlsのそれぞれ、A5~Z100までを、一つの ファイルのシートにまとめるのはどうすればいいでしょうか。 まとめた、エクセルシートは、TEST(1)のZ列のあとに、TEST(2)のA列の内容が続いていくという感じです。 よろしくお願い致します。

  • エクセル PDF化 sheet一括分割方法

    お世話になります。 初めて『PDF化』をしています。。。 ソフトはクセロです。 エクセルファイル内の複数のSheetを それぞれ分割してPDFに起こし、 それぞれのsheet名で保存したいのですか、 全てを一括してPDF化することは出来ますでしょうか。。。 今、sheet一枚一枚を選択して それぞれを印刷する要領で保存していますが 2つのエクセルファイルにそれぞれ50個以上のsheetがあり、 キレる寸前です。。 どなたか助けてください。 よろしくお願いいたします。

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

  • エクセルVBAで参照ボタンを作成したい

    VBAでLAN上のエクセルファイルを指定して開くようにしたのですが、 そのファイルを参照ボタンを作成して、 ファイルを指定したいと考えています。 そのようなことはできるのでしょうか。 よろしくお願いします。 ***VBAのコード***** mypath = "\\server01\test\test.xls" ↑ このファイルを参照ボタンを使って指定したい Set wb = Workbooks.Open(mypath)

  • エクセル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列から順番に摘出するようなものを考えてます どなたかお忙しいとは思いますがご教示いただけませんか よろしくお願いいたします

専門家に質問してみよう