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
という感じ
一挙にいきなりいっぱいシート生成していくのも見た目びっくりだし
配列にシート名入れていくのも面倒だし、どうしてやるのがベターなのかな?と
思案中です
お礼
n-junさん、早々の回答どうも有り難うございました。 ご紹介いただいたサイトから次の事例を試行させていただきました…Good 早速実践運用させていただきます。 ▼次のコードは確認メッセージを出さないでアクティブシートを削除します。 ---------------------------- Sub Sample04_2() Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True End Sub ---------------------------- 以上