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

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

Author: Siluvia Last Modified: 2025-08-07

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

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

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


Office Tab добавляет вкладочный интерфейс в Office, делая вашу работу значительно проще

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