Zum Hauptinhalt springen

Wie ändert man die Größe einer Form automatisch basierend auf/auf den Wert einer bestimmten Zelle in Excel?

Author: Siluvia Last Modified: 2025-08-06

Wenn Sie die Größe einer Form automatisch basierend auf dem Wert einer bestimmten Zelle ändern möchten, kann Ihnen dieser Artikel helfen.

Automatische Größenänderung einer Form basierend auf einem angegebenen Zellenwert mit VBA-Code


Automatische Größenänderung einer Form basierend auf einem angegebenen Zellenwert mit VBA-Code

Der folgende VBA-Code kann Ihnen helfen, die Größe einer bestimmten Form basierend auf dem Wert einer angegebenen Zelle im aktuellen Arbeitsblatt zu ändern. Bitte folgen Sie den nachstehenden Schritten.

1. Klicken Sie mit der rechten Maustaste auf das Tabellenblatt mit der Form, deren Größe Sie ändern möchten, und klicken Sie dann im Kontextmenü auf Ansicht Code.

2. Kopieren Sie im Fenster Microsoft Visual Basic for Applications den folgenden VBA-Code und fügen Sie ihn in das Codefenster ein.

VBA-Code: Automatische Größenänderung einer Form basierend auf einem angegebenen Zellenwert in Excel

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Target.Row = 2 And Target.Column = 1 Then
        Call SizeCircle("Oval 2", Val(Target.Value))
    End If
End Sub
Sub SizeCircle(Name As String, Diameter)
    Dim xCenterX As Single
    Dim xCenterY As Single
    Dim xCircle As Shape
    Dim xDiameter As Single
    On Error GoTo ExitSub
    xDiameter = Diameter
    If xDiameter > 10 Then xDiameter = 10
    If xDiameter < 1 Then xDiameter = 1
    Set xCircle = ActiveSheet.Shapes(Name)
    With xCircle
        xCenterX = .Left + (.Width / 2)
        xCenterY = .Top + (.Height / 2)
        .Width = Application.CentimetersToPoints(xDiameter)
        .Height = Application.CentimetersToPoints(xDiameter)
        .Left = xCenterX - (.Width / 2)
        .Top = xCenterY - (.Height / 2)
    End With
ExitSub:
End Sub

Hinweis: Im Code ist „Oval 2“ der Name der Form, deren Größe Sie ändern werden. Und Zeile = 2, Spalte = 1 bedeutet, dass die Größe der Form „Oval 2“ mit dem Wert in A2 geändert wird. Ändern Sie diese Werte nach Bedarf.

Um mehrere Formen automatisch basierend auf unterschiedlichen Zellwerten zu vergrößern, wenden Sie bitte den folgenden VBA-Code an.

VBA-Code: Automatisches Ändern der Größe mehrerer Formen basierend auf verschiedenen angegebenen Zellenwerten in Excel

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xAddress As String
    On Error Resume Next
    If Target.CountLarge = 1 Then
        xAddress = Target.Address(0, 0)
        If xAddress = "A1" Then
            Call SizeCircle("Oval 1", Val(Target.Value))
        ElseIf xAddress = "A2" Then
            Call SizeCircle("Smiley Face 3", Val(Target.Value))
        ElseIf xAddress = "A3" Then
            Call SizeCircle("Heart 2", Val(Target.Value))
        End If
    End If
End Sub

Sub SizeCircle(Name As String, Diameter)
    Dim xCenterX As Single
    Dim xCenterY As Single
    Dim xCircle As Shape
    Dim xDiameter As Single
    On Error GoTo ExitSub
    xDiameter = Diameter
    If xDiameter > 10 Then xDiameter = 10
    If xDiameter < 1 Then xDiameter = 1
    Set xCircle = ActiveSheet.Shapes(Name)
    With xCircle
        xCenterX = .Left + (.Width / 2)
        xCenterY = .Top + (.Height / 2)
        .Width = Application.CentimetersToPoints(xDiameter)
        .Height = Application.CentimetersToPoints(xDiameter)
        .Left = xCenterX - (.Width / 2)
        .Top = xCenterY - (.Height / 2)
    End With
ExitSub:
End Sub

Hinweise:

1) Im Code sind „Oval 1“, „Smiley Gesicht 3“ und „Herz 3“ die Namen der Formen, deren Größe Sie automatisch ändern werden. Und A1, A2 und A3 sind die Zellen, deren Werte Sie zur automatischen Größenanpassung der Formen verwenden.
2) Wenn Sie weitere Formen hinzufügen möchten, fügen Sie bitte die Zeilen "ElseIf xAddress = "A3" Then" und "Call SizeCircle("Herz 2", Val(Target.Value))" oberhalb der ersten "End If"-Zeile im Code ein. Ändern Sie die Zelladresse und den Formnamen entsprechend Ihren Anforderungen.

3. Drücken Sie gleichzeitig die Tasten Alt + Q, um das Fenster Microsoft Visual Basic for Applications zu schließen.

Ab jetzt wird sich die Größe der Form Oval 2 automatisch ändern, wenn Sie den Wert in Zelle A2 ändern. Siehe Screenshot:

 change the value in a specific cell , the size of shape will be changed automatically

Oder ändern Sie die Werte in den Zellen A1, A2 und A3, um die entsprechenden Formen „Oval 1“, „Smiley Gesicht 3“ und „Herz 3“ automatisch zu vergrößern. Siehe Screenshot:

change the value in a specific cells , the size of shapes will be changed automatically

Hinweis: Die Größe der Form ändert sich nicht mehr, wenn der Zellenwert größer als 10 ist.


Alle Formen in der aktuellen Excel-Arbeitsmappe auflisten und exportieren:

Die Export Graphics-Funktion von Kutools für Excel hilft Ihnen dabei, schnell alle Formen in der aktuellen Arbeitsmappe aufzulisten, und Sie können sie alle auf einmal in einen bestimmten Ordner exportieren, wie im folgenden Screenshot gezeigt. Laden Sie es herunter und probieren Sie es jetzt aus! (30-Tage kostenlose Testversion)

export all shapes in current Excel by kutools


Verwandte Artikel:

Die besten Office-Produktivitätstools

🤖 Kutools AI Aide: Revolutionieren Sie die Datenanalyse basierend auf: Intelligente Ausführung |  Code generieren  |  Benutzerdefinierte Formeln erstellen |  Daten analysieren und Diagramme generieren  |  Erweiterte Funktionen aufrufen
Beliebte Funktionen: Doppelte suchen, hervorheben oder markieren | Leere Zeilen löschen | Spalten oder Zellen ohne Datenverlust zusammenführen | Runden
Erweiterte SVERWEIS: SVERWEIS mit mehreren Kriterien | SVERWEIS für mehrere Werte | Mehrblatt-SVERWEIS | Fuzzy Match
Erweiterte Dropdown-Liste: Dropdown-Liste schnell erstellen | Abhängige Dropdown-Liste | Mehrfachauswahl-Dropdown-Liste
Spalten-Manager: Eine bestimmte Anzahl an Spalten hinzufügen | Spalten verschieben | Sichtbarkeit von ausgeblendeten Spalten umschalten | Bereiche & Spalten vergleichen
Hervorgehobene Funktionen: Gitterfokus | Entwurfsansicht | Erweiterte Formelleiste | Arbeitsmappen- & Blattmanager | AutoText-Bibliothek | Datumsauswahl | Daten zusammenführen | Zellen verschlüsseln/entschlüsseln | E-Mail senden nach Liste | Super Filter | Spezialfilter (Filtern nach Fett/Kursiv/Durchgestrichen...)…
Top15 Toolsets:12 Text-Tools (Text hinzufügen, Bestimmte Zeichen löschen, ...) | 50+ Diagramm typen (Gantt-Diagramm, ...) | 40+ praktische Formeln (Alter basierend auf dem Geburtsdatum berechnen, ...) | 19 Einfüge-Tools (QR-Code einfügen, Bild aus Pfad einfügen, ...) | 12 Konvertierungs-Tools (In Wörter umwandeln, Währungsumrechnung, ...) | 7 Konsolidieren & Aufteilen-Tools (Erweiterte Zeilen zusammenführen, Zellen aufteilen, ...) | ... und mehr
Nutzen Sie Kutools in Ihrer bevorzugten Sprache – unterstützt Englisch, Spanisch, Deutsch, Französisch, Chinesisch und über40 weitere Sprachen!

Steigern Sie Ihre Excel-Kompetenz mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor. Kutools für Excel bietet über300 erweiterte Funktionen, um Ihre Produktivität zu steigern und Zeit zu sparen.Klicken Sie hier, um die Funktion zu erhalten, die Sie am meisten benötigen...


Office Tab bringt die Reiter-Oberfläche in Office und macht Ihre Arbeit so viel einfacher

  • Aktivieren Sie die Bearbeitung und das Lesen in Reitern in Word, Excel, PowerPoint, Publisher, Access, Visio und Project.
  • Öffnen und erstellen Sie mehrere Dokumente in neuen Reitern desselben Fensters, anstatt in neuen Fenstern.
  • Steigert Ihre Produktivität um50 % und reduziert täglich Hunderte von Mausklicks!