Перейти к содержимому

Как автоматически изменить размер фигуры на основе/в зависимости от значения указанной ячейки в Excel?

Author: Siluvia Last Modified: 2025-06-05

Если вы хотите автоматически изменять размер фигуры на основе значения указанной ячейки, эта статья может вам помочь.

Автоматическое изменение размера фигуры на основе значения указанной ячейки с помощью кода VBA


Автоматическое изменение размера фигуры на основе значения указанной ячейки с помощью кода VBA

Следующий код VBA поможет вам изменить размер определенной фигуры на основе значения указанной ячейки в текущем листе. Пожалуйста, действуйте следующим образом.

1. Щелкните правой кнопкой мыши по вкладке листа с фигурой, размер которой нужно изменить, а затем выберите Вид Код из контекстного меню.

2. В окне Microsoft Visual Basic for Applications скопируйте и вставьте следующий код VBA в окно Кода.

Код VBA: Автоматическое изменение размера фигуры на основе значения указанной ячейки в 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

Примечание: В коде «Oval 2» — это имя фигуры, размер которой вы будете изменять. А Row = 2, Column = 1 означает, что размер фигуры «Oval 2» будет изменен значением в ячейке A2. Пожалуйста, измените их по мере необходимости.

Для автоматического изменения размера нескольких фигур на основе различных значений ячеек примените следующий код VBA.

Код VBA: Автоматическое изменение размера нескольких фигур на основе различных указанных значений ячеек в 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

Примечания:

1) В коде «Oval 1», «Smiley Face 3» и «Heart 3» — это названия фигур, размеры которых будут автоматически изменены. А A1, A2 и A3 — это ячейки, значения которых будут использоваться для автоматического изменения размеров фигур.
2) Если вы хотите добавить больше фигур, пожалуйста, добавьте строки "ElseIf xAddress = "A3" Then" и "Call SizeCircle("Heart 2", Val(Target.Value))" выше первой строки "End If" в коде. И измените адрес ячейки и имя фигуры в соответствии с вашими потребностями.

3. Нажмите клавиши Alt + Q одновременно, чтобы закрыть окно Microsoft Visual Basic for Applications.

Теперь, когда вы измените значение в ячейке A2, размер фигуры Oval 2 будет автоматически изменен. См. скриншот:

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

Или измените значения в ячейках A1, A2 и A3, чтобы автоматически изменить размер соответствующих фигур «Oval 1», «Smiley Face 3» и «Heart 3». См. скриншот:

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

Примечание: Размер фигуры больше не будет изменяться, когда значение ячейки станет больше 10.


Список и экспорт всех фигур в текущей книге Excel:

Утилита Экспорт диаграммы Kutools для Excel помогает быстро перечислить все фигуры в текущей книге, и вы можете экспортировать их все сразу в определенную папку, как показано на скриншоте ниже. Скачайте и попробуйте прямо сейчас! (30-дневная бесплатная пробная версия)

export all shapes in current Excel by kutools


Связанные статьи:

Лучшие инструменты для повышения продуктивности работы с Office

🤖 Kutools AI Aide: Совершенно новый подход к анализу данных на основе: Интеллектуальное выполнение |  Генерация кода  |  Создание пользовательских формул |  Анализ данных и построение диаграмм  |  Вызов Расширенных функций Kutools
Популярные функции: Найти, выделить или отметить дубликаты | Удалить пустые строки | Объединить столбцы или ячейки без потери данных |   Округлить без формулы ...
Супер ПОИСК: VLOOKUP по нескольким критериям | VLOOKUP с несколькими значениями | Многолистовой поиск | Распознавание нечетких соответствий ....
Расширенный раскрывающийся список: Быстро создать раскрывающийся список | Зависимый раскрывающийся список | Множественный выбор в раскрывающемся списке ....
Менеджер столбцов: Добавить определённое количество столбцов | Переместить столбцы | Переключить видимость скрытых столбцов | Сравнить диапазоны и столбцы ...
Избранные функции: Сетка фокусировки | Дизайн листа | Улучшенная строка формулы | Управление книгами и листами | Библиотека автотекста | Выбор даты | Объединить данные | Шифрование/расшифровка ячеек | Отправить письмо по списку | Супер фильтр | Специальный фильтр (фильтр ячеек с жирным/курсивом/зачёркнутым...) ...
Топ-15 наборов инструментов:12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...) |50+ типов диаграмм (Диаграмма Ганта, ...) |40+ практических формул (Расчет возраста на основе даты рождения, ...) |19 инструментов вставки (Вставить QR-код, Вставить изображение по пути, ...) |12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...) |7 инструментов для объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...) | ... и многое другое

Ускорьте работу в Excel с Kutools для Excel и ощутите новую степень эффективности. Kutools для Excel предлагает более300 расширенных функций для повышения продуктивности и экономии времени. Нажмите здесь, чтобы выбрать нужную вам функцию...


Office Tab добавляет вкладки в Office и делает вашу работу намного проще

  • Включите редактирование и чтение с вкладками в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна, а не в отдельных окнах.
  • Увеличьте свою продуктивность на50% и сократите сотни лишних кликов мышью каждый день!