Jak automaticky měnit velikost tvaru na základě / v závislosti na zadané hodnotě buňky v aplikaci Excel?
Pokud chcete automaticky změnit velikost tvaru na základě hodnoty určené buňky, může vám tento článek pomoci.
Automaticky měnit velikost tvaru na základě zadané hodnoty buňky pomocí kódu VBA
Automaticky měnit velikost tvaru na základě zadané hodnoty buňky pomocí kódu VBA
Následující kód VBA vám pomůže změnit určitou velikost tvaru na základě zadané hodnoty buňky v aktuálním listu. Postupujte prosím následovně.
1. Klikněte pravým tlačítkem na záložku listu s tvarem, který potřebujete změnit, a poté klikněte Zobrazit kód z nabídky pravého tlačítka myši.
2. V Microsoft Visual Basic pro aplikace zkopírujte a vložte následující kód VBA do okna Kód.
Kód VBA: Automatická změna velikosti tvaru na základě zadané hodnoty buňky v aplikaci 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
Poznámka: V kódu, “Oválné 2„Je název tvaru, kterým změníte jeho velikost. A Řádek = 2, Sloupec = 1 znamená, že velikost tvaru „Oval 2“ bude změněna s hodnotou v A2. Změňte je prosím podle potřeby.
Pro automatickou změnu velikosti více tvarů na základě různých hodnot buněk použijte níže uvedený kód VBA.
Kód VBA: Automatická změna velikosti více tvarů na základě hodnoty různých zadaných buněk v aplikaci 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
Poznámky:
3. lis Další + Q současně zavřete Microsoft Visual Basic pro aplikace okno.
Od této chvíle, když změníte hodnotu v buňce A2, velikost tvaru Oval 2 se automaticky změní. Viz snímek obrazovky:
Nebo změňte hodnoty v buňce A1, A2 a A3 a automaticky změňte velikost odpovídajících tvarů „Ovál 1“, „Veselý obličej 3“ a „Srdce 3“. Viz snímek obrazovky:
Poznámka: Velikost tvaru se již nezmění, pokud je hodnota buňky větší než 10.
Seznam a export všech tvarů v aktuálním sešitu aplikace Excel:
Projekt Exportovat grafiku užitečnost Kutools pro Excel vám pomůže rychle zobrazit seznam všech tvarů v aktuálním sešitu a můžete je všechny exportovat do určité složky najednou, jak ukazuje následující snímek obrazovky. Stáhněte si a vyzkoušejte! (30-denní stezka zdarma)
Související články:
- Jak přidat myš přes špičku do určitého tvaru v aplikaci Excel?
- Jak vyplnit tvar průhlednou barvou pozadí v aplikaci Excel?
- Jak skrýt nebo odkrýt určitý tvar na základě zadané hodnoty buňky v aplikaci Excel?
Nejlepší kancelářské nástroje produktivity
Kutools pro Excel řeší většinu vašich problémů a zvyšuje vaši produktivitu o 80%
- Opakované použití: Rychle vložte složité vzorce, grafy a cokoli, co jste dříve používali; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
- Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
- Sloučit buňky / řádky / sloupce bez ztráty dat; Rozdělit obsah buněk; Zkombinujte duplicitní řádky / sloupce... Zabraňte duplicitním buňkám; Porovnat rozsahy...
- Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
- Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
- Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
- Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
- Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
- Více než 300 výkonných funkcí. Podporuje Office / Excel 2007-2021 a 365. Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Plné funkce 30denní bezplatná zkušební verze. 60denní záruka vrácení peněz.

Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci
- Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
- Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
- Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
















