|
どうしてもAcrobat6.0使わないとダメですか?
フリーソフトを使うのであれば、自動で(しかもタダで)作る方法がありますが。
まず、使用するソフトですがAdobeで無償DL可能のPostScriptドライバと、
PostScriptファイルをPDF化するフリーソフト、GhostScriptを使います。
DLとセットアップの方法は以下のサイトが参考になるでしょう。
http://www.interq.or.jp/boy/koro/
↑の「PDF実験室」を参考にインストしてみてください。
パスを通すための作業はVBA内でやってしまうので不要です。
で、即興で作ったコードですが、こんな感じです。
GhostScriptにはコマンドラインから実行するBATファイルが付いてるので
それをShell関数で動かしてやるわけです。
Sub PDF自動生成()
Dim psFileName, pdfFileName As String 'ファイル名格納用
Dim pntOld, pntNew as String 'プリンタ名格納用
Dim FFile As Integer 'FreeFile値
'PSファイル・PDFファイル名を設定
psFileName = "test.ps"
pdfFileName = "test.pdf"
'アクティブプリンタを変更(やらないとプリンタがオフラインだとダイアログ出現)
pntOld = Application.ActivePrinter
If InStr(1, pntStrOld, "の") = 0 Then
pntNew = "Acrobat Distiller J on FILE:"
Else
pntNew = "FILE: の Acrobat Distiller J"
End If
Application.ActivePrinter = pntNew
'PSファイル生成
Sheets("Sheet1").PrintOut ActivePrinter:=pntNew, _
PrintToFile:=True, PrToFileName:=ThisWorkbook.Path & "\" & psFileName
'アクティブプリンタを元に戻す
On Error Resume Next
Application.ActivePrinter = pntOld
'BATファイル生成
FFile = FreeFile
Open ThisWorkbook.Path & "\gstmp.bat" For Output As #FFile
Print #FFile, "CD " & ThisWorkbook.Path
'↓はGhostScriptのバージョンやインストフォルダによって変更が必要
Print #FFile, "PATH=%PATH%;c:\gs\gs8.14\bin;c:\gs\gs8.14\lib"
Print #FFile, "ps2pdf14 " & psFileName & " " & pdfFileName
Close #FFile
'PDF化実行
Shell ThisWorkbook.Path & "\gstmp.bat", vbHide
End Sub
Acrobatで作ったPDFと比べると少々汚かったりしますが、なにぶんタダなのでw
あと、このままだとpsファイルとbatファイルが残ってしまうので、問題なら、
PDFファイル生成を確認したら消すとかってコードでも付け足してください。
|
|