Die Größe und ändern Sie das format mehrerer Bilder mit Excel-VBA
Ich habe ein excel-Arbeitsblatt mit einer Menge von Bildern mit unterschiedlichen Größen und Formaten. Ich möchte mit excel VBA eine Schleife durch alle Bilder in das Arbeitsblatt ein, und legen Sie jedes Bild auf die gleiche Breite (214) und den Bildtyp ändern, um ein JPEG nach dem verkleinern (halten Sie die Größe der Datei nach unten). Meine Bilder befinden sich in verschiedenen Zellen, und ich will nicht, dass die Bild-Standorte zu ändern (D. H. den Aufenthalt in der gleichen Zelle). Ich bin neu in VBA und habe Folgendes versucht, aber es funktioniert nicht. Der debugger Stoppt in der Zeile, wo ich versuche, schneiden Sie das Bild.
Sub Macro6()
Dim p As Object
Dim iCnt As Integer
For Each p In ActiveSheet.Shapes
p.Width = 217.44
p.Cut
p.PasteSpecial Format:="Picture (JPEG)", Link:=False
iCnt = iCnt + 1
Next p
End Sub
InformationsquelleAutor James | 2014-08-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist nicht der schneidende Teil, dass Excel nicht wie-es ist der Teil einfügen.
Paste
undPasteSpecial
sind Methoden, die Sie aufrufen, mit einem worksheet-Objekt (wo du Klebst an) statt das Bild (die Sache ist, die Sie einfügen). Ich weiß nicht, ob Sie wollen, einfach schrumpfen die Breite und halten Sie die Höhe konstant oder wenn Sie wollen, zu skalieren beiden Dimensionen gleichmäßig. Wenn Sie wollen, zu skalieren gleichmäßig, versuchen Sie dies:Wenn Sie nur versuchen zu verkleinern der Breite und verlassen die Höhe die gleiche, versuchen Sie dies:
Den Standorten der Bilder sollte gleich bleiben, wenn Sie wurden ursprünglich direkt an der Ecke einer Zelle. Sonst wird dies richten Sie die Obere linke Ecke des Bildes auf die nächste Zelle Ecke. Die
Application.CutCopyMode = False
ist eine gute übung, nach dem einfügen. Es sagt Excel, um wischen Sie die Zwischenablage und wechseln Sie zurück in den Normalbetrieb, anstatt zu warten, für Sie fügen Sie ihn wieder. Hoffe, das hilft.InformationsquelleAutor Ben Lindsay
Dank für die Beantwortung meiner Frage! Hier der code, den ich am Ende mit auf der Grundlage Ihrer Vorschläge. Das Programm dauerte mehrere Minuten laufen (hatte über 5000 Bilder in der Datei - Huch!). Aber es war das warten Wert, denn es verkleinert die Größe der Datei in der Hälfte.
InformationsquelleAutor James