Farbton einer Grafik in Excel per VBA ändern
Schritt-für-Schritt-Anleitung
Um die Farbe einer Grafik in Excel per VBA zu ändern, kannst du die folgenden Schritte befolgen:
-
Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
-
Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
-
Füge den folgenden VBA-Code ein:
Sub Makro1()
Dim objShp As Picture
Set objShp = ActiveSheet.Pictures("Grafik 1")
With objShp
.ShapeRange.Fill.PictureEffects.Item(1).EffectParameters("ColorTemperature").Value = 4700
End With
End Sub
-
Ändere "Grafik 1" in den Namen deiner Grafik, falls notwendig.
-
Schließe den VBA-Editor und führe das Makro aus.
Häufige Fehler und Lösungen
-
Makro stürzt ab: Wenn das Makro bei frisch eingefügten Grafiken abstürzt, kann dies daran liegen, dass die Grafik noch nicht vollständig initialisiert ist. Verwende On Error Resume Next, um den Fehler zu ignorieren und den Code fortzusetzen.
On Error Resume Next
Selection.InlineShapes(1).Fill.PictureEffects.Item(1).EffectParameters("ColorTemperature").Value = 3900
If Err.Number <> 0 Then
Selection.InlineShapes(1).Fill.PictureEffects.Insert(msoEffectColorTemperature).EffectParameters(1).Value = 3900
End If
-
Unendliche Schleife beim Speichern: Wenn du mehrere Grafiken bearbeitest und das Dokument nicht mehr speichern kannst, kann es hilfreich sein, die Grafiken zuerst in einem Bildbearbeitungsprogramm anzupassen, bevor du sie in Excel einfügst.
Alternative Methoden
Falls du keine VBA-Makros verwenden möchtest, kannst du den Farbton jeder Grafik manuell über die Excel-Oberfläche ändern:
- Klicke auf die Grafik, die du ändern möchtest.
- Wähle im Menü
Bildtools die Registerkarte Anpassen.
- Gehe zu
Farbe und wähle Farbton, um die gewünschte Einstellung vorzunehmen.
Diese Methode ist einfach, aber nicht automatisiert und eignet sich besser für einmalige Anpassungen.
Praktische Beispiele
Hier sind einige Beispiele, wie du den Farbton einer Grafik ändern kannst:
-
Farbton auf 3000K einstellen:
Sub SetColorTemperature3000K()
Dim objShp As Picture
Set objShp = ActiveSheet.Pictures("Grafik 1")
With objShp
.ShapeRange.Fill.PictureEffects.Item(1).EffectParameters("ColorTemperature").Value = 3000
End With
End Sub
-
Farbton auf 5300K einstellen:
Sub SetColorTemperature5300K()
Dim objShp As Picture
Set objShp = ActiveSheet.Pictures("Grafik 2")
With objShp
.ShapeRange.Fill.PictureEffects.Item(1).EffectParameters("ColorTemperature").Value = 5300
End With
End Sub
Tipps für Profis
- Fehlerbehandlung: Implementiere
On Error Resume Next, um Probleme beim Ausführen des Codes zu umgehen und das Skript benutzerfreundlicher zu gestalten.
- Namen der Grafiken: Achte darauf, dass der Name der Grafik genau übereinstimmt. Du kannst Grafiken in Excel umbenennen, um Verwirrung zu vermeiden.
- VBA-Referenzen: Stelle sicher, dass du die richtigen Referenzen in deinem VBA-Projekt gesetzt hast, falls du mit externen Bildbearbeitungsbibliotheken arbeitest.
FAQ: Häufige Fragen
1. Kann ich den Farbton mehrerer Grafiken gleichzeitig ändern?
Ja, du kannst eine Schleife verwenden, um mehrere Grafiken zu durchlaufen und den Farbton für jede Grafik anzupassen.
2. Funktioniert dieser Code in Excel 2010?
Ja, der bereitgestellte Code wurde für Excel 2010 entwickelt, sollte aber auch in neueren Versionen funktionieren. Achte darauf, dass die entsprechenden Methoden und Objekte in deiner Version verfügbar sind.