Shapes zentrieren im bestimmten Bereich
Schritt-für-Schritt-Anleitung
Um Shapes in einem bestimmten Bereich, wie zum Beispiel A3 bis W32, in Excel zu zentrieren, kannst Du den folgenden VBA-Code verwenden. Dieser Code überprüft, ob sich die Shapes innerhalb des angegebenen Bereichs befinden und zentriert sie entsprechend.
- Öffne Excel und drücke
ALT + F11, um den VBA-Editor zu öffnen.
- Klicke auf
Einfügen und wähle Modul, um ein neues Modul zu erstellen.
- Kopiere und füge den folgenden Code in das Modul ein:
Option Explicit
Public Sub Center_Picture()
Dim objShape As Shape
For Each objShape In Worksheets("Brandschutz_Kreuz").Shapes
With objShape
If .Type = msoPicture Then
If Not Intersect(.TopLeftCell, Worksheets("Brandschutz_Kreuz").Range("A3:W32")) Is Nothing Then
.Left = .TopLeftCell.Left + .TopLeftCell.Width / 2 - .Width / 2
.Top = .TopLeftCell.Top + .TopLeftCell.Height / 2 - .Height / 2
End If
End If
End With
Next
End Sub
- Schließe den VBA-Editor und gehe zurück zu Excel.
- Führe das Makro aus, um die Shapes zu zentrieren. Du kannst dies über
Entwicklertools > Makros tun und das entsprechende Makro auswählen.
Häufige Fehler und Lösungen
Alternative Methoden
Eine alternative Methode, um Shapes zu zentrieren, besteht darin, eine benutzerdefinierte Funktion zu verwenden, die auch andere Formen (z.B. Rechtecke, Ellipsen) berücksichtigt. Hier ist ein Beispiel:
Public Sub Center_All_Shapes()
Dim objShape As Shape
For Each objShape In Worksheets("Brandschutz_Kreuz").Shapes
If Not Intersect(objShape.TopLeftCell, Worksheets("Brandschutz_Kreuz").Range("A3:W32")) Is Nothing Then
objShape.Left = (objShape.TopLeftCell.Left + objShape.TopLeftCell.Width / 2) - (objShape.Width / 2)
objShape.Top = (objShape.TopLeftCell.Top + objShape.TopLeftCell.Height / 2) - (objShape.Height / 2)
End If
Next
End Sub
Praktische Beispiele
Angenommen, Du hast in einem Excel-Blatt Shapes, die verschiedene Grafiken darstellen, und möchtest diese in den Zellen A3 bis W32 zentrieren. Mit dem bereitgestellten VBA-Code kannst Du dies schnell und effizient erledigen. Teste den Code, indem Du einige Shapes in den angegebenen Bereich einfügst und das Makro ausführst.
Tipps für Profis
- Makros speichern: Vergiss nicht, Deine Datei im .xlsm-Format zu speichern, um die Makros zu behalten.
- Fehlerbehandlung: Füge Fehlerbehandlungsroutinen in Deinen Code ein, um unerwartete Probleme zu vermeiden.
- Optimierung: Wenn Du viele Shapes hast, kann es hilfreich sein, die Shapes in Gruppen zu organisieren, um die Performance zu verbessern.
FAQ: Häufige Fragen
1. Wie kann ich den Code anpassen, um nur bestimmte Shapes zu zentrieren?
Du kannst Bedingungen hinzufügen, um nur Shapes mit bestimmten Namen oder Typen zu zentrieren.
2. Funktioniert dieser Code in Excel 2016 und älteren Versionen?
Ja, der Code sollte in Excel 2016 sowie in älteren Versionen funktionieren. Achte jedoch darauf, dass die Entwicklertools aktiviert sind.