Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


65610 / 76734 ←次へ | 前へ→

【15697】Re:Acrobat6.0でExcelマクロからPDFファ...
回答  nowak  - 04/7/3(土) 0:44 -

引用なし
パスワード
   どうしても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ファイル生成を確認したら消すとかってコードでも付け足してください。
2 hits

【15188】Acrobat6.0でExcelマクロからPDFファイル作成するのは? KENT 04/6/17(木) 12:12 質問
【15697】Re:Acrobat6.0でExcelマクロからPDFファ... nowak 04/7/3(土) 0:44 回答
【15699】Re:Acrobat6.0でExcelマクロからPDFファ... KENT 04/7/3(土) 10:03 質問
【15705】Re:Acrobat6.0でExcelマクロからPDFファ... [名前なし] 04/7/3(土) 13:09 発言

65610 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free