いつも楽しく勉強させていただいております。
下記の作業を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にしてくれません。
No.1ベストアンサー
- 回答日時:
Adobe PDF プリンタの設定を変更すればよいと思います。
プリンタのプロパティを開き、[Adobe PDF]タブにある
「結果のAdobe PDF を表示」と「既存の PDF ファイルの上書きを確認」のチェックを外せば
何とかなりそうでは?
保存フォルダも「Adobe PDF 保存先フォルダ」に指定できます。
最初のシートだけしか印刷しない件は、Adobe 側の問題と思われます。
シート内での改ページは一つのファイルになりますが、
複数シート(ブックも?)の場合シート毎に保存ファイルを作るみたいですね。
出力ファイル名を Adobe PDF に変数を介して渡せれば何とかなりそうですが…
私にはそこまでのスキルがありません。m(__)m
doxobさん
実は暮れから悩んでいたのですが、ご指示通りにしたらあっさりできてしまいました(狂喜乱舞)。
ありがとうございます。
No.3
- 回答日時:
>保存場所は最初に指定したフォルダに入れて毎回聞いて来ないでほしいし、できたPDFもいちいち表示されないようにできないものでしょうか。
「デバイスとプリンター」コントロールパネルで、Adobe PDFを右クリック→「プリンターのプロパティ」→「基本設定」をクリック。出てきた画面で、保存先ディレクトリの指定と「結果のPDFを表示」をオフにして「適用」すれば、どのアプリでもそれが標準の振る舞いになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Excel(エクセル) 【マクロ】ファイル名の日付によって、保管するフォルダを、自動選択したい 4 2023/08/16 11:24
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/17 11:59
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでブックを非表示で開いて処...
-
エクセルの関数 ENTERを押...
-
エクセルを共有するとPCによっ...
-
エクセルで参照しているデータ...
-
WorkBooksをオープンさせずにシ...
-
エクセルファイルを開かずにpdf...
-
Excel(2010)のフィルターが保...
-
エクセルで開いていないbookの...
-
Excelファイルをダブルクリック...
-
Excelで複数ブックの同一セルに...
-
Excelでブックの共有を掛けると...
-
ブックのピボットを別ブックに...
-
エクセルで「ディスクがいっぱ...
-
エクセルで50行ごとに区切った...
-
エクセル2016です。「ブッ...
-
行、列の挿入がリンク先に反映...
-
VBAでブック保護非保護を判定す...
-
複数の同じフォーマットのファ...
-
外部ブック参照が#REF!になって...
-
エクセルで別ブックをバックグ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
エクセルを共有するとPCによっ...
-
WorkBooksをオープンさせずにシ...
-
エクセルで参照しているデータ...
-
エクセルで「ディスクがいっぱ...
-
Excelでブックの共有を掛けると...
-
Excelで複数ブックの同一セルに...
-
Excel(2010)のフィルターが保...
-
エクセルで別ブックをバックグ...
-
エクセルにおける,「ブック」...
-
同じフォルダへのハイパーリン...
-
ブックのピボットを別ブックに...
-
エクセルファイルを開かずにpdf...
-
エクセル2016です。「ブッ...
-
ブックの保護ができないんです...
-
エクセルで50行ごとに区切った...
-
エクセルシートの一部を送りたい
-
フォルダ内の複数ファイルから...
-
エクセル 複数のブックを一度...
おすすめ情報