は、我々はという名前のテーブルを持っていると仮定します。 また、HidenでHelpという名前のヘルプシート(フィルタリングされたテーブルを保存する)があります。
Option Explicit
Sub print_to_pdf()
Dim sh As Long
Dim rg As Range
Dim Rng As Range
Dim rw As Range
Application.ScreenUpdating = False
For Each rw In Range("Table2[#All]").Rows
If rw.EntireRow.Hidden = False Then
If Rng Is Nothing Then Set Rng = rw
Set Rng = Union(rw, Rng)
End If
Next
Rng.Copy
With Sheets("help")
.Visible = True
sh = .Cells(Rows.Count, "A").End(xlUp).Row + 2
Set rg = Range("a3" & ":" & "a" & sh - 2)
.Activate
.Cells(sh, "A").Select
ActiveSheet.Paste
ActiveSheet.PageSetup.PrintArea = rg
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=ThisWorkbook.Path & "\rep.pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
.Visible = False
End With
Application.ScreenUpdating = True
MsgBox "Your PDF Has been Created with Success!!", vbInformation
End Sub
ヘルプシートにデータを追加し、pdfをエクスポートすることができます。
参照:https://stackoverflow.com/questions/
-1これは高度なアプリケーションに依存します。つまり、あなたが今やっていることを明確にするために、いくつかのコードを投稿し、それがうまくいかない理由が必要になります。一般的に言えば、ExcelはPDFに必要なものをエクスポートします。複数の「ビュー」などをエクスポートする場合は、それらをすべて1か所で取得し、単一のPDFエクスポートを行う必要があります。これには通常、ヘルパーシート/ワークブックの作成が含まれます。または、Excelを使用して複数のPDFを作成し、他のツールを使用して組み合わせることもできます。 Excelを使用して「PDFに追加」する方法はありません。 –
はヘルパーシート/ワークブックを使用しようとしますが、これは400以上のレコードで集中的であるかもしれないと感じています。私はPDFをマージする例を見つけましたので、このメソッドを使用して個々のPDFを作成してマージしようとします。私は第二の選択肢がずっと速いかもしれないが、確かにないと思う。 Byronのヘルパーシート/ブックオプションをすばやく最適化する巧妙な方法はありますか?どのプロトコルがここにあるか分からない。まだ投稿するコードがないので、コードを投稿してもらえますか?いずれにしても、私はどのような選択肢があるのか、その理由について助言します。私はExcel 2013、Adobe 10標準 – nelly2000
を使用しています。再:400シート、Excelが処理できるものに驚くかもしれません。私は間違いなくあなたの元のワークブックを汚染しないように新鮮な/空のワークブックにそれらを入れます。私はかなり集中的なものでこのテクニックを使用しましたが、うまくいく傾向があります。それが多すぎるかどうかを調べ、それが遅すぎるか実行できない場合は最適化することをテストする価値があるでしょう。おそらく、それはうまく動作し、実行されます。 –