0

ワークシートと範囲の特定の順序で印刷する必要があるワークシートがあります。私がやろうとしているのは

  1. 特定のワークシートと範囲を1つのPDFファイルに印刷します。
  2. PDFファイルを特定の日付として特定のフォルダに保存します。

現在、各ワークシートまたは範囲が独自の単一のPDFファイルに印刷されるため、私が直面している障害は、多数のシートと範囲を1つのPDFファイルに印刷することです。

必要なすべてのシートと範囲を配列のようなものに入れてから、その変数に対して.PrintOutを実行する方法があると思いますが、これは機能していません。

私はExcel2010を使用しているので、「AdobePDF」プリンターを使用しています。

複数の範囲とワークシートを単一の.pdfに印刷するにはどうすればよいですか?

4

4 に答える 4

1

複数のワークシートを印刷するには、次のようにワークシート名を配列に入れることができます

Sub PrintArrayOfWorksheets()

    Dim vaWorksheets As Variant

    vaWorksheets = Array("Sheet1", "Sheet2", "Sheet3")

    ThisWorkbook.Worksheets(vaWorksheets).PrintOut

End Sub

PDF への印刷には特別な問題があります。PDF の作成に「公式」アドインを使用している場合は、おそらく上記のように機能します (申し訳ありませんが、今は試すことができません)。過去に、PDF に印刷する他のプリンター ドライバーを使用したときに、PageSetup プロパティのすべて (または少なくともほとんど) がシート上で同一である必要があり、そうしないと複数のジョブで印刷されることがわかりました。つまり、シュリンク トゥ フィットはなく、すべての余白が同じでなければなりません。問題の原因となったすべてのプロパティを思い出すことはできませんが、これら 2 つは確実に発生し、Orientation は確実に発生しませんでした。

印刷する範囲を限定するには、各シートに印刷範囲を設定する必要があります。PageSetup.PrintArea プロパティを使用してコードで実行できます。しかし、変わらない場合は、手動で 1 回実行するだけで、それが持続する可能性があります。

于 2012-07-17T19:41:25.303 に答える
0

これが私が試したアプローチです...ワークシートをPSファイルに印刷し、PSファイルをダブルクリックしてPDFを生成します。回避策であることはわかっていますが、PS への印刷は非常に高速です。PC に Adob​​e Acrobat がインストールされている必要があります。

Dim GetPath, SavePath, ReportSuffix
GetPath = ActiveWorkbook.Path & "\"
ReportSuffix = Range("ReportName").Text & ".ps"
SavePath = GetPath & ReportSuffix

Dim PrintSheets

PrintSheets = Array("Exec1", "Intro1", "Intro2", "Intro3", "Intro4", "Intro5")

Sheets(PrintSheets).PrintOut Copies:=1, PrintTofile:=True, PrToFileName:=SavePath
于 2013-09-04T13:10:15.310 に答える
0

Excel 2010 には PDF への印刷機能があります。各ワークシートが必要な情報を印刷するように設定されている場合は、印刷するさまざまなワークシートを 1 つの pdf ファイルに強調表示し、[ファイル] と [名前を付けて保存] に移動して、[pdf] の種類として保存を選択します。 . ワークシートごとに印刷を設定しているため、強調表示したワークシートを印刷する必要があります。

于 2013-07-02T18:13:02.317 に答える