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-05-28

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:

Beste Büroproduktivitätswerkzeuge

🤖 Kutools AI-Assistent: Revolutionieren Sie die Datenanalyse basierend auf: Intelligente Ausführung   |  Code generieren  |  Benutzerdefinierte Formeln erstellen  |  Daten analysieren und Diagramme generieren  |  Erweiterte Funktionen aufrufen
Beliebte Funktionen: Finden, Hervorheben oder Doppelte markieren   |  Leere Zeilen löschen   |  Spalten oder Zellen kombinieren ohne Datenverlust   |   Runden ...
Erweiterte SVERWEIS: Mehrfachkriterien SVERWEIS    Mehrfachwert SVERWEIS  |   Mehrblatt-SVERWEIS   |   Fuzzy Match ....
Erweiterte Dropdown-Liste: Schnell Dropdown-Liste erstellen   |  Abhängige Dropdown-Liste   |  Mehrfachauswahl Dropdown-Liste ....
Spaltenmanager: Eine bestimmte Anzahl von Spalten hinzufügen  |  Spalten verschieben  |  Sichtbarkeitsstatus ausgeblendeter Spalten umschalten  |  Bereiche & Spalten vergleichen ...
Hervorgehobene Funktionen: Gitterfokus   |  Entwurfsansicht   |   Erweiterte Formelleiste    Arbeitsmappe & Arbeitsblatt-Manager   |  AutoText-Bibliothek (Auto Text)   |  Datumsauswahl   |  Daten zusammenführen   |  Zellen verschlüsseln/entschlüsseln    E-Mail senden nach Liste   |  Spezialfilter   |   Spezialfilter (Filtern fett/kursiv/durchgestrichen...) ...
Top15 Werkzeugsets12 Textwerkzeuge (Text hinzufügen, Bestimmte Zeichen löschen, ...)   |   50+ Diagramm typen (Gantt-Diagramm, ...)   |   40+ Praktische Formeln (Alter basierend auf dem Geburtsdatum berechnen, ...)   |   19 Einfügewerkzeuge (QR-Code einfügen, Bild aus Pfad einfügen, ...)   |   12 Konvertierungswerkzeuge (In Wörter umwandeln, Währungsumrechnung, ...)   |   7 Konsolidieren & Aufteilen Werkzeuge (Erweiterte Zeilen zusammenführen, Zellen aufteilen, ...)   |   ... und mehr

Verbessern Sie Ihre Excel-Fähigkeiten mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor. Kutools für Excel bietet über300 erweiterte Funktionen zur Steigerung der Produktivität und Zeitersparnis.  Klicken Sie hier, um die Funktion zu erhalten, die Sie am meisten benötigen...


Office Tab bringt eine Registerkartenoberfläche zu Office und macht Ihre Arbeit viel einfacher

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