Excel VBA質問箱 IV

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

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


11517 / 13646 ツリー ←次へ | 前へ→

【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 発言[未読]

【15188】Acrobat6.0でExcelマクロからPDFファイル...
質問  KENT  - 04/6/17(木) 12:12 -

引用なし
パスワード
   環境:Win2000/Excel2000
Acrobat6.0でExcelマクロからPDFファイルを作成したいのですが、

Application.ActivePrinter = "Adobe PDF on Ne04:"
ActiveWindow.SelectedSheets.PrintOut _
   Copies:=1,
   ActivePrinter:= "Adobe PDF on Ne04:", _
   PrtoFilename:="D:\XXXX.pdf"

とすると 保存場所をいいてきますし Acrobatが立ち上がったままになります。
又、PrintToFile:=True, をつけると PDF変換しません。(Acrobatで開かない)

要望としては、指定ファイルにPDFファイルを保存してAcrobatは立ち上げなし
にしたいのでが宜しくお願いします。

【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ファイル生成を確認したら消すとかってコードでも付け足してください。

【15699】Re:Acrobat6.0でExcelマクロからPDFファ...
質問  KENT  - 04/7/3(土) 10:03 -

引用なし
パスワード
   ▼nowak さん:
ご解答ありがとうございます。
しかし、客先指定の為どうしてもAcrobat6.0使わないいけないのです。
 マクロで作成するのが無理なら
 一旦PostScript Fileに保存し、バッチで変換する方法ありますか?
 pdfmakerで自動変換するとか? パラメータが良く分らないので
 教えてください。

【15705】Re:Acrobat6.0でExcelマクロからPDFファ...
発言  [名前なし]  - 04/7/3(土) 13:09 -

引用なし
パスワード
   ここは参考になりませんか?
http://www.terra-intl.com/pdf.html

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