Zuschneiden von Grafiken in einem Makro (Microsoft Excel)
John fügt häufig Screenshots in eine Excel-Arbeitsmappe ein. Er muss diese Grafiken immer auf allen vier Seiten um einen festgelegten Betrag zuschneiden. Weil er diese Aufgabe so oft erledigt, fragt er sich, ob es eine Möglichkeit gibt, sie in einem Makro einfach zu erledigen.
Es gibt eine Reihe von Möglichkeiten, wie Sie dieses Problem beheben können, und alle beinhalten die Verwendung von Makros. (Es gibt keine integrierten Befehle, um eine solche Aufgabe auszuführen.) Wenn Sie einfach eine bereits hinzugefügte Grafik zuschneiden möchten, können Sie dies mit einem einfachen Makro wie dem folgenden tun:
Sub CropPicture() With Selection.ShapeRange.PictureFormat .CropLeft = 200 .CropTop = 300 .CropBottom = 50 .CropRight = 100 End With End Sub
Sie müssten natürlich die Werte für das Zuschneiden angeben. Diese Werte werden in Punkten angegeben und beziehen sich auf die Originalgröße des Bildes. Wenn Sie beispielsweise das ausgewählte Bild zuvor auf 150% seiner ursprünglichen Größe skaliert haben und dann dieses Makro ausführen, werden alle Zuschneideeinstellungen mit dem 1,5-fachen ihrer tatsächlichen Werte angezeigt. (So scheint beispielsweise das linke Zuschneiden 300 Pixel und nicht 200 Pixel zu betragen.)
Das Makro kann leicht so geändert werden, dass es das Bild einfügt und das Bild dann automatisch zuschneidet. Dazu fügen Sie einfach einen einzeiligen Einfügebefehl hinzu:
Sub PasteCropPicture() ActiveSheet.Paste With Selection.ShapeRange.PictureFormat .CropLeft = 200 .CropTop = 300 .CropBottom = 50 .CropRight = 100 End With End Sub
Das Makro setzt voraus, dass Sie den Screenshot zuvor in die Zwischenablage kopiert haben. Wenn Sie versuchen, es auszuführen, ohne dies getan zu haben, wird möglicherweise eine Fehlermeldung angezeigt.
Wenn Sie ein Makro wie dieses ausführen, sollten Sie noch eines beachten:
Wenn dies erledigt ist, scheint sich Ihr Bild von seiner ursprünglichen Position im Arbeitsblatt verschoben zu haben. Dies liegt daran, dass durch Zuschneiden von allen vier Seiten die scheinbare obere linke Ecke des Bildes an eine andere Stelle verschoben wird. Falls gewünscht, können Sie dies in Ihrem Makro kompensieren, indem Sie Code hinzufügen, der sich an die obere linke Ecke des Bildes „erinnert“:
Sub CropPositionPicture() Dim MyShape As Shape Dim LeftSide As Single Dim TopSide As Single Set MyShape = Selection.ShapeRange LeftSide = MyShape.Left TopSide = MyShape.Top With MyShape.PictureFormat .CropLeft = 200 .CropTop = 300 .CropBottom = 50 .CropRight = 100 End With MyShape.Left = LeftSide MyShape.Top = TopSide End Sub
Natürlich gibt es eine Sache, die Sie beachten sollten, wenn Sie Grafiken zuschneiden, unabhängig davon, wie Sie sich dafür entscheiden. Das Zuschneiden hat keinen Einfluss auf die Bildgröße. Wenn Sie beispielsweise einen Screenshot so zuschneiden, dass nur die Hälfte des Bildschirms sichtbar ist, sind alle „unsichtbaren“ Teile des Screenshots noch vorhanden und beanspruchen Platz. Dies erhöht die Gesamtgröße Ihrer Arbeitsmappe, manchmal erstaunlich.
Die einzige Möglichkeit, dies zu umgehen, besteht darin, keine Grafiken in Excel zuzuschneiden.
Verarbeiten Sie das Bild stattdessen in einem Grafikprogramm, speichern Sie das verarbeitete Bild und fügen Sie das verarbeitete Bild in das Arbeitsblatt ein. Das Ergebnis sind kleinere Arbeitsmappen, was ein schnelleres Speichern und Laden bedeutet.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (11580) gilt für Microsoft Excel 2007, 2010, 2013 und 2016.