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からです。ありがとうございます!さらに、セルの値をファイル名にする方法も自分で検索して何とかなりました!