Hinzufügen und Formatieren einer Form über ein Makro (Microsoft Excel)
Ron verwendet oft Formen (eigentlich ein Oval), um Dinge in einem Arbeitsblatt hervorzuheben. Er fügt die Form hinzu und passt sie an, dann muss er die Formfarbe in Rot ändern und alle Füllfarben löschen, damit nicht verdeckt wird, was er tatsächlich hervorheben möchte. Er führt diese Schritte ziemlich oft aus und hat keinen Zweifel daran, dass dies mit einem Makro beschleunigt werden könnte, aber er ist sich nicht sicher, wie er vorgehen soll.
Bevor Sie sich makrobasierte Lösungen ansehen, sollten Sie einige berücksichtigen, für die keine Makros erforderlich sind. Wenn Sie beispielsweise Ihr Oval erstellen (wie gewünscht formatiert) und dann mit der rechten Maustaste darauf klicken, können Sie es als Standardform festlegen. Dies kann das Hinzufügen der Form zu Ihrer Arbeitsmappe in Zukunft beschleunigen.
Wenn Sie mehrere Formen mit jeweils unterschiedlicher Größe und Farbe haben, können Sie diese Formen einfach in eine andere Arbeitsmappe kopieren. Diese Arbeitsmappe kann ein „Halter“ für diese Formen sein, sodass Sie sie bei Bedarf wieder in andere Arbeitsmappen kopieren können. Dies ist eine großartige Möglichkeit, eine eigene Galerie mit Standardformen zu erstellen, die jahrelang verwendet werden können.
Wenn Sie entscheiden, dass ein Makro der beste Weg ist, ist es relativ einfach, eines zum Hinzufügen des Ovals zu verwenden. Hier ist eine sehr einfache:
Sub Custom_Oval1() ActiveSheet.Shapes.AddShape(msoShapeOval, 150, 150, _ 120, 60).Select Selection.ShapeRange.Fill.Visible = msoFalse With Selection.ShapeRange.Line .DashStyle = msoLineSolid .Weight = 3 .Visible = msoTrue .ForeColor.RGB = RGB(255, 0, 0) .Transparency = 0 End With End Sub
Dadurch wird an einer einzelnen Stelle im Arbeitsblatt ein Standardoval mit der gewünschten Farbe, Füllung und Transparenz eingefügt. Wenn dies erledigt ist, ist die Form weiterhin ausgewählt, und Sie können das Oval an die gewünschte Stelle ziehen und gegebenenfalls Anpassungen in der Größe vornehmen.
Wenn Sie es vorziehen, das Oval näher an der gewünschten Stelle zu haben, können Sie eine Variante verwenden, die die aktive Zelle im Arbeitsblatt betrachtet und das Oval um diese Zelle herum platziert, entsprechend der Höhe und Breite der Zelle:
Sub Custom_Oval2() Dim lLeft As Long Dim lTop As Long Dim lWidth As Long Dim lHeight As Long lLeft = ActiveCell.Left - 5 lWidth = ActiveCell.Width + 5 lTop = ActiveCell.Top lHeight = ActiveCell.Height + 5 ActiveSheet.Shapes.AddShape(msoShapeOval, lLeft, _ lTop, lWidth, lHeight).Select Selection.ShapeRange.Fill.Visible = msoFalse With Selection.ShapeRange.Line .DashStyle = msoLineSolid .Weight = 3 .Visible = msoTrue .ForeColor.RGB = RGB(255, 0, 0) .Transparency = 0 End With End Sub
Beachten Sie, dass diese Variation des Makros die Position für die Form basierend auf der Position des ActiveCell-Objekts bestimmt. Falls gewünscht, können Sie alle Vorkommen von ActiveCell in Auswahl ändern, sodass sich die Größe des Ovals an Ihre Auswahl anpassen kann und nicht nur an die aktive Zelle. Beachten Sie auch, dass die Werte für links, Breite und Höhe leicht angepasst werden, um dem Oval eine bessere Passform zu verleihen. Möglicherweise möchten Sie mit verschiedenen Anpassungswerten spielen, um genau das gewünschte Aussehen zu erhalten.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (4631) gilt für Microsoft Excel 2007, 2010, 2013 und 2016.