• 締切済み

Excelマクロで1シートの中身変えて一冊のPDF

ExcelのPDF出力で教えてください シート1に帳票テンプレートを作りまして、連番印刷しておりました。 雰囲気でこんな感じで Sub Macro1() ' Macro1 印刷 Dim i As Integer For i = 1 To 10 Range("a1").Value = Format(i, "0000") Sheets(1).PrintOut Next End Sub #例として1~10としましたが、本当は別シートの台帳の連番で #次は11から10枚とか50枚とか変数で指定してますです。 これをPDF出力へと変えようとして次のように変えようと考えました Sub Macro2() ' Macro2 PDF Dim FilePath As String FilePath = "C:\Temp\" Dim FileName As String Dim i As Integer For i = 1 To 10 Range("a1").Value = Format(i, "0000") FileName = "Temp" & i & ".pdf" Sheets(1).ExportAsFixedFormat Type:=xlTypePDF, _ FileName:=FilePath & FileName, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=False, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False Next End Sub で、ここからが相談なんですが、これだとPDFファイルが10個出来ますよね? そうではなく、一冊の10ページのtemp.pdfとしたい場合はどのようにしましょうか? 一旦ズラズラズラーとPDF作ってからのPDF連結ソフト立ち上げての 手作業とかじゃ面倒なので、全自動でVBA処理で出来ればいいなと思っています。 Sheets(1)に0001作ってSheets(2)に複写 Sheets(1)に0002作ってSheets(3)に複写 Sheets(1)に0003作ってSheets(4)に複写 ・・・ Sheets(2)~Sheets(11)まで選択してあげてのPDFエクスポート Sheets(2)~Sheets(11)削除 という流れを構想してみたのですが 他にも、こうすると簡単だよとかいうアドバイスなどありましたら ぜひともご教示くださいませ♪ Sheets(Array("Sheet2", "Sheet3",・・・)).Select ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF~ ActiveWindow.SelectedSheets.Delete という感じ 一挙にいきなりいっぱいシート生成していくのも見た目びっくりだし 配列にシート名入れていくのも面倒だし、どうしてやるのがベターなのかな?と 思案中です

みんなの回答

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.1

ExcelにPFD/XPSの作成機能があるものの ActiveSheet.ExportAsFixedFormat ごとに印刷ジョブが作成され (印刷ジョブ:印刷開始命令から印刷終了命令までの1塊) お話の通り、印刷ジョブ単位にPDFファイルが分かれてしまいます。 また、お話の通り、複数シートを選択しておいて ActiveSheet.ExportAsFixedFormat を実行すれば 印刷ジョブが1つになるので、 1つのPDFファイルの中に複数ページ(複数シート)が含まれ 期待の結果になります。 >どうしてやるのがベターなのかな? 世にはPDF化するツールは沢山あり、 中にはPDFファイルとして出力しようとしたときに 作成先に同名のファイルがあると追記する仕様のものもあります。 そのようなツールであれば、 印刷ジョブが分かれても、PDFファイルを1つにすることができます。

すると、全ての回答が全文表示されます。

関連するQ&A