2016-10-24 8 views
6

Excelワークシートをpdfにエクスポートしようとしています。私はVBAを使用してfit to visibleにpdfプロパティを設定する方法はありますか? おかげ以下excel vbaのPDFで表示に合わせる

は、私はあなたの要求を理解している場合は、私が

With wksSalesAndQuotaScoreCard 
     '.PageSetup.LeftMargin=Application.InchesToPoints(0.7) 
     .PageSetup.LeftMargin = Application.InchesToPoints(0.7) 
     .PageSetup.RightMargin = Application.InchesToPoints(0.7) 
     .PageSetup.TopMargin = Application.InchesToPoints(0.75) 
     .PageSetup.BottomMargin = Application.InchesToPoints(0.75) 
     .PageSetup.HeaderMargin = Application.InchesToPoints(0.3) 

     .PageSetup.Orientation = xlLandscape 
     .PageSetup.PrintTitleRows = "_SalesandQuotaScoreCardView" 
     .PageSetup.CenterHorizontally = True 
     .PageSetup.Order = xlDownThenOver 
     .PageSetup.FitToPagesWide = 1 
     ''.PageSetup.Zoom = 50 
     Set rngSalesAndQuotaView = Range(.Shapes("_SalesandQuotaViewFrame").TopLeftCell.Offset(0, -1), .Shapes("_SalesandQuotaViewFrame").BottomRightCell.Offset(1, 0)) 
     rngSalesAndQuotaView.Select 
    End With 

    wksScoreCardPayoutView.Select 
    wksSalesAndQuotaScoreCard.Select False 
    Selection.ExportAsFixedFormat xlTypePDF, IncludeDocProperties:=True, openafterpublish:=True 
    wksCustomizeScoreCard.Activate 
+0

あなたがすでに行ったコーディングを共有してください。 – FatTony

+0

@FatTony pdfのズームレベルを 'fittovisible'に設定したい –

+0

PDFでアクションを実行しているマクロを手動で記録しようとしましたか? ? – Chrismas007

答えて

1

を使用していたコードスニペットです(PDFへのエクスポート、それは印刷のようだから)、あなたはあなたの印刷領域を必要とする両方の幅と高さに調整します。あなたは今、あなたが.FitToPagesTall = 1も必要、.PageSetup.FitToPagesWide = 1文を持っているので、あなたのコードは次のようになります。これは解決されていない場合

With wksSalesAndQuotaScoreCard 
      '.PageSetup.LeftMargin=Application.InchesToPoints(0.7) 
      .PageSetup.LeftMargin = Application.InchesToPoints(0.7) 
      .PageSetup.RightMargin = Application.InchesToPoints(0.7) 
      .PageSetup.TopMargin = Application.InchesToPoints(0.75) 
      .PageSetup.BottomMargin = Application.InchesToPoints(0.75) 
      .PageSetup.HeaderMargin = Application.InchesToPoints(0.3) 

      .PageSetup.Orientation = xlLandscape 
      .PageSetup.PrintTitleRows = "_SalesandQuotaScoreCardView" 
      .PageSetup.CenterHorizontally = True 
      .PageSetup.Order = xlDownThenOver 
      .PageSetup.FitToPagesWide = 1 
      .FitToPagesTall = 1 
      ''.PageSetup.Zoom = 50 
      Set rngSalesAndQuotaView = Range(.Shapes("_SalesandQuotaViewFrame").TopLeftCell.Offset(0, -1), .Shapes("_SalesandQuotaViewFrame").BottomRightCell.Offset(1, 0)) 
      rngSalesAndQuotaView.Select 
    End With 

、これはあなたのためのfittovisibleが何であるかを説明してください。

+0

エクスポートされたpdfのズーム率を一定のレベルに設定したいと思います。そのユーザーは、彼/彼女がそれを開くときに手動で設定する必要はありません。私は '.pagesetup.zoom'を使ってみましたが、このプロパティはエクスポートされたpdfのズームレベルを変更しません。私はエクスポートされたPDFのズームレベルを設定する方法を探しています。 –

+0

'.pagesetup.zoom'は印刷ページの印刷面の占有量に影響を与えますので、' .pagesetup.zoom = 10'と設定すると、PDFとしてエクスポートしたいA4ページのほとんどがブランク。ただし、この小さな領域は左上隅にあります。 – Limak

+0

私が知る限り、PDFファイルには、ファイルを開くときに使用される特定のズームを指定するパラメータは含まれていません。ファイルを開く方法によって異なります。たとえば、Acrobat Professionalでデフォルトのズームを設定できます。 PDFをインターネットに投稿する場合は、URLのいくつかのパラメータで拡大縮小を変更することができます。http://partners.adobe.com/public/developer/en/acrobat/PDFOpenParameters.pdf#page=5&zoom=50&scrollbar=0 – Limak

4

Adob​​eが文書を開くときに使用できるコードのセットがあります。

http://partners.adobe.com/public/developer/en/acrobat/PDFOpenParameters.pdf

が助言さを、承認されたAdobe Readerおよびなく、すべてのPDFリーダーとこれらの唯一の仕事は、これらのコマンドを受け入れます。

は手動per this answer on the Adobe Help Forumsに条件を設定するには、Acrobatを持っている必要があります:

OPについて:「どのように私は100% ズーム倍率ですべてのPDFのを開くには、デフォルトを設定することができますか?」

Acrobat Proを使用して、バッチ処理(シーケンス)/アクションを実行して 「開くオプション」シーケンスを実行します。このシーケンスでは、PDFの[ドキュメントのプロパティ]の[初期表示]タブの下にあるすべての項目を の値に設定できます。

PDFのドキュメントプロパティについて>初期表示:開いている PDFのドキュメントプロパティ(Ctrl + D、Cmd + D)にアクセスしてください。 [初期表示]タブに移動します。 上部ペイン(レイアウトと拡大)は、次の設定を許可します。

ナビゲーションタブ:ページのみ|ブックマークパネルとページ|ページパネルと ページ|添付ファイルパネルとページ|レイヤーパネルとページページレイアウト: デフォルト|シングルページ|単一ページ連続| 2面(面)| 2枚重ね(表紙)| 2連連続(表紙)倍率: デフォルト|実際のサイズ|ページを合わせる|フィット幅|フィット高さ|フィット 目に見える|拡大率(25%〜6400%)

「デフォルト」以外の設定では、最初にPDFが にどのように表示されるかが決まります。

初期ビューのすべてのペインのすべての値の設定は、バッチシーケンス/アクション (Acrobat Proが必要です)を使用して1つまたは複数のPDFに対して確立された です。

大規模なドキュメントコレクションがLAN/WAN「eLibrary」に展開され、 がエンドユーザーに一貫した初期表示を提供するエンタープライズ環境で使用されます。

また、コンテンツ作成者に(例えば光記憶媒体上に分散PDF文書 コレクションなど)それら展開コンテンツの 初期ビューを確立するためのメカニズムを提供します。作成したPDFの典型的なデフォルトの初期表示については

:PDF は レイアウトのためのAcrobat経由でPDFドキュメントのデフォルトの初期ビューを作成している場合には倍率は次のとおりです。 - |ナビゲーション:ページのみ - |ページレイアウト:デフォルト - |倍率:デフォルト - |開いているページ:1

オープンパラメータのドキュメントについて - このドキュメントでは、いくつかのコマンドラインオプションを提供していますが、ドキュメントの主な焦点は、 URLを使用してURLのターゲットPDFを最初に開くことです。

この文書はURL​​に固有のものであり、UNCリンク(LAN/WANとのリンク)には適用できないことに注意してください。

1

「ズームレベル」は、PDFファイルのドキュメントプロパティではなく、アプリケーションプロパティです。最大で、できることは、Excelファイルから直接PDFファイルを開き、 "SendKeys"を使って目的のズームレベルを設定します。

は、以下のコードの断片を参照してくださいは、私の作品:

Function PDFOpenFile(inPath As String, inPageNo As Long, inZoom As Variant) 
'This function opens the PDF document with the specified 
'Page number and zoom level 
'The Page Number and Zoom Level are simulated through SendKeys method 
' ************ Important ******************* 
' When the macro runs, do not use the keyboard 
' else the SenKeys may not function as desired 

ThisWorkbook.FollowHyperlink inPath, NewWindow:=True 
SendKeys ("^+N" & inPageNo & "~^" & inZoom), True 
End Function 

Sub MyDocument() 
' After file name, the firt parameter is for page no, the second parameter is for zoom level 
PDFOpenFile "D:\MyFile.pdf", 3, 3 

' Zoom Level Details 
'0: Full Page 
'1: Zoom to 100% 
'2: Page Width 
'3: Fit visible 
'4: visible width/Reflow 

' These zoom level are visible in acrobat reader. Go to "View > Zoom" and see the shortcut mentioned 
' If the shortcuts are different for your case, you may modify the parameter passed as argument 
End Sub 
-1

私は、これはあなたが最初のPDFにエクスポートする前に、Excelで設定する必要があり、印刷設定領域としてあると思います。これを最初に、または上記のコードの「With」ブロック内でページレイアウトで行い、PDFに書き出すコードを実行します。

1

印刷設定は、デフォルトのプリンタのみが「印刷領域」を定義するため、コンピュータによって異なります。 Excel、Wordなどで同じです。

ドキュメントにアクセスしているすべてのコンピュータが同じデフォルトプリンタに設定されている場合を除いて、すべてのコンピュータでこのドキュメントを定義することはできません。

1

PDFCreatorを使用して、「スケーリングなし」と「1ページに用紙に収まる」シートを印刷しました。両者の差が

.Zoom = 100 

.Zoom = False 
.FitToPagesWide = 1 
.FitToPagesTall = 1 

だった私は、このかかわらず、依存「プリンタ」になるだろうと思います。単にSaveas PDFを使うと、そのオプションは得られませんが、結果は悪くないです。

Range("A1:H34").Select 
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
"C:\myfile.pdf", Quality:= _ 
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _ 
OpenAfterPublish:=False 

私はあなたのPDFをどのように作成するかによって異なります。

関連する問題