Hoe verander je de vormgrootte automatisch op basis van / afhankelijk van de opgegeven celwaarde in Excel?
Als u de vormgrootte automatisch wilt wijzigen op basis van de waarde van een opgegeven cel, kan dit artikel u helpen.
Verander de vormgrootte automatisch op basis van de opgegeven celwaarde met VBA-code
Verander de vormgrootte automatisch op basis van de opgegeven celwaarde met VBA-code
De volgende VBA-code kan u helpen om een bepaalde vormgrootte te wijzigen op basis van de opgegeven celwaarde in het huidige werkblad. Ga als volgt te werk.
1. Klik met de rechtermuisknop op de bladtab met de vorm waarvan u de grootte wilt wijzigen, en klik vervolgens Bekijk code vanuit het rechtsklikmenu.
2. In de Microsoft Visual Basic voor toepassingen venster, kopieer en plak de volgende VBA-code in het codevenster.
VBA-code: verander de vormgrootte automatisch op basis van de opgegeven celwaarde 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
Note: In de code, "Ovaal 2”Is de vormnaam waarvan u de grootte wilt wijzigen. En Rij = 2, Kolom = 1 betekent dat de grootte van vorm "Ovaal 2" wordt gewijzigd met de waarde in A2. Wijzig ze indien nodig.
Pas de onderstaande VBA-code toe om het formaat van meerdere vormen automatisch te wijzigen op basis van verschillende celwaarden.
VBA-code: het formaat van meerdere vormen automatisch wijzigen op basis van de waarde van verschillende gespecificeerde cellen 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
Opmerkingen:
3. druk op anders + Q toetsen tegelijk om het Microsoft Visual Basic voor toepassingen venster.
Vanaf nu, wanneer u de waarde in cel A2 wijzigt, wordt de grootte van vorm Oval 2 automatisch gewijzigd. Zie screenshot:
Of verander de waarden in cel A1, A2 en A3 om de corresponderende vormen "Ovaal 1", "Smileygezicht 3" en "Hart 3" automatisch aan te passen. Zie screenshot:
Note: De vormgrootte verandert niet langer wanneer de celwaarde groter is dan 10.
Maak een lijst van en exporteer alle vormen in de huidige Excel-werkmap:
Dé Exporteer afbeeldingen nut van Kutools for Excel helpen u snel alle vormen in de huidige werkmap weer te geven, en u kunt ze allemaal tegelijk naar een bepaalde map exporteren, zoals de onderstaande schermafbeelding laat zien. Download en probeer het nu! (30 dagen gratis proefperiode)
Gerelateerde artikelen:
- Hoe kan ik mouse-over-tip toevoegen aan een bepaalde vorm in Excel?
- Hoe vul je een vorm met een transparante achtergrondkleur in Excel?
- Hoe een bepaalde vorm te verbergen of zichtbaar te maken op basis van de opgegeven celwaarde in Excel?
Beste Office-productiviteitstools
Geef uw Excel-vaardigheden een boost met Kutools voor Excel en ervaar efficiëntie als nooit tevoren. Kutools voor Excel biedt meer dan 300 geavanceerde functies om de productiviteit te verhogen en tijd te besparen. Klik hier om de functie te krijgen die u het meest nodig heeft...
Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker
- Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, Publisher, Access, Visio en Project.
- Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster in plaats van in nieuwe vensters.
- Verhoogt uw productiviteit met 50% en vermindert honderden muisklikken voor u elke dag!