Excelで帳票印刷マクロを使っていますが、
Excelで帳票印刷マクロを使っていますが、これを印刷ではなくてPDF出力マクロに変...Excelで帳票印刷マクロを使っていますが、これを印刷ではなくてPDF出力マクロに変更できないでしょうか?ノウハウのある方、ご回答いただければ幸いです。 「帳票シート」というシートが印刷用のシートで、「データシート」というシートはデータリストのシートです。
データシート内でリストが存在する行まで帳票シートの指定セルに値を代入して1行ずつ印刷を繰り返す仕組みです。
これを、印刷ではなくて1行ずつPDF出力にしたい(ファイル名は例えばデータシートA列の値で)のですが可能でしょうか?
マクロ記述は以下です。
------------------------------------------------------------------------------
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub InsPrint() Const org As String = "データシート" '元データのシート名に修正
Const prs As String = "帳票シート" '印刷するシート名に修正
Const strt As Integer = 2 '元データの実データ開始行に修正
Dim idx As Long
Dim oSht, pSht As Worksheet
Set oSht = Worksheets(org)
Set pSht = Worksheets(prs)
For idx = strt To oSht.Range("A65536").End(xlUp).Row
' 以下の行を項目数だけコピーして定義する
pSht.Range("D7").Value = oSht.Cells(idx, "A").Value
pSht.Range("D8").Value = oSht.Cells(idx, "B").Value
pSht.Range("D9").Value = oSht.Cells(idx, "C").Value
'
pSht.PrintOut '印刷
' プリンタの印刷が追いつかないので10頁につき8秒休止する
If (idx Mod 10) = 0 Then
DoEvents
Sleep 8000 'ミリ秒単位で指定
End If
Next idx
End Sub
---------------------------------------------------------------PDFに出力するなら、
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= "フォルダ名\Book1.pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
という感じでしょう。
ExportAsFixedFormatメソッドをヘルプで調べれば分かります。
このメソッドは、Excel2007からです。ありがとうございます!さらに、セルの値をファイル名にする方法も自分で検索して何とかなりました!