2016-10-24 3 views
6

Ich versuche, Excel-Arbeitsblätter in PDF zu exportieren. Gibt es eine Möglichkeit, wie ich die PDF-Eigenschaft mit VBA fit to visible festlegen kann. DankSet Fit zu Sichtbar in Pdf von Excel VBA

Unten ist der Code-Schnipsel, die ich

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

Bitte teilen Sie aus verständlichen Gründen die Codierung, die Sie bereits gemacht haben – FatTony

+0

@FatTony Ich möchte die Zoomstufe von pdf auf 'fattovisible' setzen –

+0

Haben Sie versucht, ein Makro von Ihnen die Aktion auf die PDF manuell durchzuführen ? – Chrismas007

Antwort

1

bin mit Wenn ich Ihre Anfrage verstanden haben, müssen Sie Ihre Druckbereich (weil exportieren es ist wie als PDF drucken) angepasst sowohl an Breite und Höhe . Sie haben die .PageSetup.FitToPagesWide = 1 Anweisung, jetzt müssen Sie auch .FitToPagesTall = 1, so dass Ihr Code aussehen wird:

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 

Ist dies nicht die Lösung, bitte erklären, was diese fittovisible für Sie ist.

+0

Ich möchte den Zoom-Prozentsatz auf ein bestimmtes Niveau im exportierten PDF setzen. Dieser Benutzer muss ihn also nicht manuell einstellen, wenn er ihn öffnet. Ich habe versucht, '.pagesetup.zoom' zu verwenden, aber diese Eigenschaft ändert nicht die Zoomstufe für das exportierte PDF.Ich suche nach einer Möglichkeit, mit der ich die Zoomstufe für das exportierte PDF einstellen kann. –

+0

'.pagesetup.zoom' haben Einfluss darauf, wie viel Fläche der gedruckten Seite Ihr Druckbereich belegen wird. Wenn Sie also als' .pagesetup.zoom = 10' festlegen, würde der größte Teil dieser A4-Seite, die Sie als PDF exportieren möchten, sein leer, außer diesem kleinen Bereich in der oberen linken Ecke. – Limak

+0

Soweit ich weiß, enthält PDF-Dateien keinen Parameter, der den bestimmten Zoom angibt, der beim Öffnen der Datei verwendet werden würde. Es hängt davon ab, wie Sie die Datei öffnen. Sie können z. B. den Standardzoom in Acrobat Professional festlegen. Wenn Sie Ihre PDF-Datei im Internet veröffentlichen, können Sie den Öffnungszoom mithilfe einiger Parameter in der URL ändern, siehe: http://partners.adobe.com/public/developer/en/acrobat/PDFOpenParameters.pdf#page=5&zoom=50&scrollbar=0 – Limak

4

Adobe eine Reihe von Codes hat Sie verwenden können, wenn ein Dokument geöffnet wird:

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

sein, diese nur Arbeit mit dem genehmigten Adobe Reader empfohlen, und nicht alle PDF-Leser werden diese Befehle akzeptieren.

Möglicherweise müssen Acrobat haben, um die Bedingungen manuell per this answer on the Adobe Help Forums einzustellen:

die OP Betreff: „Wie kann ich das Standard alle PDF-Dateien auf 100% öffnen Zoom-Vergrößerung?“

Führen Sie in Acrobat Pro einen Batch-Prozess (Sequenz)/Aktion aus, um die Sequenz "Open Options" auszuführen. Mit dieser Sequenz können Sie die Werte für alle Elemente auf der Registerkarte Initial View der Dokumenteigenschaften von PDFs festlegen.

In Bezug auf die Dokumenteigenschaften eines PDF-Dokuments> Anfangsansicht: Öffnen Sie die PDF-Dokumenteigenschaften (Strg + D, Cmd + D) des Dokuments. Wechseln Sie zur Registerkarte Initialansicht. Der obere Bereich (Layout und Vergrößerung) ermöglicht die Konfiguration von:

Navigationsregisterkarte: Nur Seite | Lesezeichen-Panel und Seite | Seiten Panel und Seite | Anlagen-Panel und Seite | Ebenen Bedienfeld und Seitenlayout: Standard | Einzelseite | Einzelseite Kontinuierlich | Zwei-Up (Facing) | Two-Up (Deckblatt) | Zwei-Up Continuous (Titelseite) Vergrößerung: Standard | Tatsächliche Größe | Passende Seite | Breite anpassen | Höhe anpassen Fit Sichtbar | Vergrößerungsprozentsätze (25% bis 6400%)

Andere Konfigurationseinstellungen als "Standard" legen fest, wie das PDF zuerst angezeigt wird.

Die Einstellungen für alle Werte in allen Bereichen in der ursprünglichen Ansicht können für eine oder mehrere PDFs mit einer Stapelsequenz/Aktion (Acrobat Pro erforderlich) festgelegt werden.

Diese Funktionalität in einer Enterprise-Umgebung verwendet wird, wo große Dokumentensammlungen bereitgestellt werden in einem LAN/WAN „eLibrary“ zu bieten eine konsistente Anfangsansicht zu den Endnutzern.

Es bietet auch einen Gehalt Autor, einen Mechanismus zur Bestimmung des erste Ansicht für ihre entfalteten Inhalt (wie beispielsweise PDF-Dokument auf optischen Speichermedien verteilt Sammlungen).

In Bezug auf die typische Standard Erste Ansicht für eine erstellte PDF: Wenn ein PDF über Acrobat erstellt wird, das Standard-Ansicht beim Öffnen der PDF-Dokuments für Layout und Vergrößerung ist: - | Navigation: Nur Seite - | Seitenlayout: Standard - | Vergrößerung: Standard - | Öffnen Sie zur Seite: 1

In Bezug auf das Dokument öffnen Parameter - Während dieses Dokument erhalten einige Optionen in der Befehlszeile der primäre Fokus des Dokuments ist die Verwendung eines URL URL einer gezielten PDF zu öffnen ist zunächst zu öffnen.

Bemerkenswert ist, dass das Dokument spezifisch für URLs ist und nicht für UNC-Links (Links mit einem LAN/WAN).

1

"Zoom Level" ist keine Dokumenteigenschaft für PDF-Dateien, sondern eine Anwendungseigenschaft. Allenfalls was wir tun können, öffnen Sie die PDF-Datei direkt aus dem Excel-Makro und stellen Sie mit "SendKeys" die gewünschte Zoomstufe ein.

Siehe das Stück Code, unter dem funktioniert für mich:

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

Ich denke, das als Druckbereich ist, müssen Sie zuerst einstellen in Excel zu setzen, bevor in PDF exportieren. Führen Sie dies zuerst im Seitenlayout oder im Block "Mit" des obigen Codes aus, und führen Sie dann den Code aus, der nach PDF exportiert wird.

1

Die Druckeinstellungen variieren je nach Computer, da nur der Standarddrucker definiert, was der 'Druckbereich' ist. Dies ist in Excel, Word usw. gleich.

Sie können es also nicht für alle Computer definieren, es sei denn, alle Computer, auf die Sie zugreifen, werden auf den gleichen Standarddrucker eingestellt.

1

Ich druckte ein Blatt, mit PDFCreator, mit "keine Skalierung" und mit "passen Blatt auf einer Seite." Der Unterschied zwischen den beiden war

.Zoom = 100 

und

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

Ich denke, dies obwohl „Drucker“ abhängig sein würde. Wenn Sie einfach als PDF speichern, erhalten Sie diese Optionen nicht, aber die Ergebnisse sind auch nicht schlecht.

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

Ich denke viel hängt davon ab, wie Sie Ihre PDF erstellen.