Ich erstelle ein Makro in PowerPoint VBA, um ein Bild von der aktuellen Folie zu exportieren. Das Exportbild ist das erste Bild mit einer Breite von mehr als 250 Einheiten. Das Bild wird als Shape
gespeichert, also mache ich eine For Each ... Next
Schleife, um es zu tun. Der Code funktioniert gut.Wie wird die Exportbildgröße in PowerPoint mithilfe von VBA angepasst?
Function FindAndSavePicture() As String
'
' Find the target picture at the active windows
'
'
Dim myTempPath As String
myTempPath = "C:\Users\" & Environ$("USERNAME") _
& "\AppData\Local\Microsoft\Windows\pic_VBA.jpg"
With ActiveWindow.Selection.SlideRange
For Each s In .Shapes
Debug.Print s.Name
If s.Type = msoPicture And s.Width > 250 Then
' Show scale
Debug.Print "s.Width=" & s.Width ' s.Width=323,3931
Debug.Print "s.Height=" & s.Height ' s.Height=405
' Save pic in file system
s.Export myTempPath, ppShapeFormatJPG
' assign the return value for this function
FindAndSavePicture = myTempPath
Exit For
End If
Next
End With
End Function
Problem
Das pic_VBA.jpg
exportierte Bild ist viel kleiner, als es in der Powerpoint angezeigt wird. Ich möchte die Originalgröße des Bildes. Dieses exportierte Bild von VBA pic_VBA.jpg
hat 331 x 413 in Abmessungen. Und wenn ich das Bild manuell mit als Bild speichern ... exportieren, hat das exportierte Bild pic_SaveAs.jpg
692 x 862 in Abmessungen, die die Originalgröße ist.
pic_VBA.jpg
Abmessungen: 331 x 413pic_SaveAs.jpg
Abmessungen: 692 x 862 (Originalgröße)
Was ich
s.Export myTempPath, ppShapeFormatJPG, s.Width, s.Height, ppScaleXY
Es getestet habe funktioniert nicht . Die Abmessungen des Export Bild sind 150 x 413
Frage
So, wie Export Bildgröße in Powerpoint mit VBA anpassen?
Verwandte infomations
Können Sie mir bitte sagen, wo Sie Ihre Funktion in meinem Code verwenden? Ich benutze niemals 'Type' vorher. Soll ich etw als 'Dim myType als ypPictureScale' bezeichnen? –
Typdeklarationen müssen in den Deklarationsabschnitt Ihres Codemoduls (vor allem Sub- und Funktionsprozeduren) gehen. –
Hallo @JamieG, ich habe es versucht. Vielleicht vergessen Sie, Präfix "yp" in Zeile 27 und Zeile 28 hinzuzufügen? In Zeile 27 sollte es "PictureScale" sein.ypScaleH' stattdessen. Abgesehen von diesem Problem funktioniert Ihr Code perfekt. Allerdings hat es meine Frage nicht gelöst, da es das Bild mit der gleichen Größe wie das, was ich gemacht habe, mit der Standardeinstellung 's.Export myTempPath, ppShapeFormatJPG' exportiert. Ich konnte es nicht akzeptieren, aber ich habe deine Antwort erneuert. Ich werde jetzt aufhören, an dieser Frage zu arbeiten (mein Kollege brauche es nicht mehr), aber danke für deine Hilfe! –