Skip to main content

Come modificare automaticamente la dimensione di una forma in base al valore di una cella specificata in Excel?

Author: Siluvia Last Modified: 2025-05-29

Se desideri modificare automaticamente la dimensione di una forma in base al valore di una cella specificata, questo articolo può esserti utile.

Modifica automatica della dimensione della forma in base al valore di una cella specificata con il codice VBA


Modifica automatica della dimensione della forma in base al valore di una cella specificata con il codice VBA

Il seguente codice VBA può aiutarti a modificare la dimensione di una determinata forma in base al valore di una cella specificata nel foglio di lavoro corrente. Procedi come segue.

1. Fai clic con il tasto destro sulla scheda del foglio con la forma di cui vuoi cambiare la dimensione, quindi fai clic su Visualizza Codice dal menu contestuale.

2. Nella finestra Microsoft Visual Basic for Applications, copia e incolla il seguente codice VBA nella finestra del Codice.

Codice VBA: Modifica automatica della dimensione della forma in base al valore di una cella specificata 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

Nota: Nel codice, “Oval 2” è il nome della forma di cui vuoi cambiare la dimensione. E Riga = 2, Colonna = 1 significa che la dimensione della forma “Oval 2” verrà modificata in base al valore in A2. Cambiali secondo necessità.

Per ridimensionare automaticamente più forme in base a diversi valori delle celle, applica il seguente codice VBA.

Codice VBA: Ridimensionamento automatico di più forme in base a diversi valori di celle specificate 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

Note:

1) Nel codice, “Oval 1”, “Smiley Face 3” e “Heart 3” sono i nomi delle forme di cui vuoi cambiare automaticamente le dimensioni. E A1, A2 e A3 sono le celle i cui valori utilizzerai per ridimensionare automaticamente le forme.
2) Se desideri aggiungere altre forme, aggiungi le righe "ElseIf xAddress = "A3" Then" e "Call SizeCircle("Heart 2", Val(Target.Value))" sopra la prima riga "End If" nel codice. Cambia l'indirizzo della cella e il nome della forma in base alle tue esigenze.

3. Premi contemporaneamente i tasti Alt + Q per chiudere la finestra Microsoft Visual Basic for Applications.

Da ora in poi, quando modifichi il valore nella cella A2, la dimensione della forma Oval 2 cambierà automaticamente. Vedi screenshot:

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

Oppure cambia i valori nelle celle A1, A2 e A3 per ridimensionare automaticamente le forme corrispondenti "Oval 1", "Smiley Face 3" e "Heart 3". Vedi screenshot:

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

Nota: La dimensione della forma non cambierà più quando il valore della cella è maggiore di 10.


Elenca ed esporta tutte le forme nella cartella di lavoro corrente di Excel:

L'utilità Esporta grafico di Kutools per Excel ti aiuta a elencare rapidamente tutte le forme nella cartella di lavoro corrente e puoi esportarle tutte in una determinata cartella in una volta sola, come mostrato nello screenshot sottostante. Scarica e prova subito! (30-giorni di prova gratuita)

export all shapes in current Excel by kutools


Articoli correlati:

I migliori strumenti per la produttività in Office

🤖 Kutools AI Aide: Rivoluziona l'analisi dei dati grazie a: Esecuzione Intelligente | Genera Codice | Crea Formule Personalizzate | Analizza Dati e Genera Grafici | Richiama Funzioni avanzate di Kutools
Funzionalità popolari: Trova, evidenzia o contrassegna duplicati | Elimina righe vuote | Unisci colonne o celle senza perdere dati | Arrotonda...
Super RICERCA.VERT: Ricerca VERT con criteri multipli | Ricerca VERT con valori multipli | Ricerca su più fogli | Corrispondenza approssimativa...
Elenco a discesa avanzato: Crea rapidamente un elenco a discesa | Elenco a discesa dipendente | Elenco a discesa multi-selezione...
Gestione Colonne: Aggiungi un numero specifico di colonne | Sposta colonne | Attiva/disattiva la visibilità delle colonne nascoste | Confronta intervalli e colonne...
Funzionalità in evidenza: Attenzione della griglia | Visualizzazione di progettazione | Barra delle formule avanzata | Gestione Cartella di lavoro e Foglio di lavoro | Libreria AutoText | Selettore di data | Unisci dati | Crittografa/Decrittografa celle | Invia Email tramite elenco | Super Filtri | Filtro speciale (filtra grassetto/corsivo/barrato...) ...
Top15 set di strumenti:12 strumenti di testo (Aggiungi testo, Elimina Caratteri Specifici, ...) | Oltre50 tipi di grafici (Diagramma di Gantt, ...) | Oltre40 formule pratiche (Calcola l'età in base alla data di nascita, ...) |19 strumenti di inserimento (Inserisci codice QR, Inserisci Immagine da percorso, ...) |12 strumenti di conversione (Converti in parole, Conversione valuta, ...) |7 strumenti di unione e divisione (Unione avanzata righe, Dividi celle, ...) | ... e molto altro

Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un'efficienza mai vista prima. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...


Office Tab porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra, invece che in nuove finestre.
  • Aumenta la tua produttività del50% e riduce centinaia di clic del mouse ogni giorno!