Come modificare automaticamente la dimensione di una forma in base al valore di una cella specificata in Excel?
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
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:
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:
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:
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)
Articoli correlati:
- Come aggiungere un suggerimento al passaggio del mouse su una determinata forma in Excel?
- Come riempire una forma con un colore di sfondo trasparente in Excel?
- Come nascondere o mostrare una determinata forma in base al valore di una cella specificata in Excel?
I migliori strumenti per la produttività in Office
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!