こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ExcelマクロでAcrobatを制御したい

いつも楽しく勉強させていただいております。

下記の作業をExcelマクロで自動化したいのですが、うまくいきません。

(1)ブックの中の非表示でないシートをすべて選択する。
(2)PDFファイルとして出力する。

Win7でExcelのバージョンは2003です。
社内には2007もあるのですが、レーダーチャートが崩れるとかで2003を使わないといけません。

PDF化するためにAdobe Acrobat XI Proの製品版を購入する予定ですが、とりあえず30日間無料のお試し版をインストールしてあります。

自動記録を利用しつつ、下記のマクロを作成しました。

Sub PDF化()
Dim ws As Worksheet
Dim i As Integer
Dim ArrayShName() As String

Workbooks.Open "C:\Users\meglin\Documents\出力フォルダ\book1.xls"
i=0
For Each ws In Worksheets
If ws.Visible = xlSheetVisible Then
ReDim Preserve ArrayShName(i)
ArrayShName(i) = ws.Name
i = i + 1
End If
Next

Worksheets(ArrayShName).Select
Application.ActivePrinter = "Adobe PDF on Ne10:"
ActiveWindow.SelectedSheets.PrintOut copies:=1, collate:=True

End Sub

ところがこれを実行すると困ったことが二つあります。

(1)PDFの保存場所を聞くダイアログボックスが表示される。
(2)できたPDFファイルが自動的に表示されてしまう。

Excelのブックは将来的には数千個になるので、これではやっていられません。
保存場所は最初に指定したフォルダに入れて毎回聞いて来ないでほしいし、できたPDFもいちいち表示されないようにできないものでしょうか。

Adobe Acrobat XI Proを起動しておいて複数のブックを選択してPDF化することも試しましたが、一番最初のシートしかPDFにしてくれません。

投稿日時 - 2013-01-07 15:08:02

QNo.7880049

困ってます

質問者が選んだベストアンサー

Adobe PDF プリンタの設定を変更すればよいと思います。

プリンタのプロパティを開き、[Adobe PDF]タブにある

「結果のAdobe PDF を表示」と「既存の PDF ファイルの上書きを確認」のチェックを外せば
何とかなりそうでは?

保存フォルダも「Adobe PDF 保存先フォルダ」に指定できます。


最初のシートだけしか印刷しない件は、Adobe 側の問題と思われます。
シート内での改ページは一つのファイルになりますが、
複数シート(ブックも?)の場合シート毎に保存ファイルを作るみたいですね。
出力ファイル名を Adobe PDF に変数を介して渡せれば何とかなりそうですが…
私にはそこまでのスキルがありません。m(__)m

投稿日時 - 2013-01-07 15:55:26

お礼

doxobさん

実は暮れから悩んでいたのですが、ご指示通りにしたらあっさりできてしまいました(狂喜乱舞)。
ありがとうございます。

投稿日時 - 2013-01-07 16:07:50

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

>保存場所は最初に指定したフォルダに入れて毎回聞いて来ないでほしいし、できたPDFもいちいち表示されないようにできないものでしょうか。

「デバイスとプリンター」コントロールパネルで、Adobe PDFを右クリック→「プリンターのプロパティ」→「基本設定」をクリック。出てきた画面で、保存先ディレクトリの指定と「結果のPDFを表示」をオフにして「適用」すれば、どのアプリでもそれが標準の振る舞いになります。

投稿日時 - 2013-01-07 16:13:27

お礼

shut0325さん、丁寧なご回答ありがとうございます。
PDF化は初めてやったのでわからないことばかりでした。

投稿日時 - 2013-01-07 16:15:33

ANo.2

Proは持っていないので勝手な予想ですが、Proの説明書?に使い方は無いのですか?
SDKが入っているんですか? 通常そのようなことをやるためにはSDKを利用するんだと思うのですが。
的外れだったらごめんなさい。

投稿日時 - 2013-01-07 15:57:14

お礼

masatsanさん、ありがとうございます。
おっしゃるとおりですね。

投稿日時 - 2013-01-07 16:16:26

あなたにオススメの質問