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

Kutools для Office — один пакет. Пять инструментов. Выполняйте больше.

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

Author Siluvia Last modified

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

Автоматическое изменение размера фигуры на основе значения указанной ячейки с помощью кода 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 по нескольким значениям | Многолистовой поиск | Распознавание нечетких соответствий ...
Расширенный раскрывающийся список: Быстро создать раскрывающийся список | Зависимый раскрывающийся список | Множественный выбор в раскрывающемся списке ...
Менеджер столбцов: Добавить определённое количество столбцов | Переместить столбцы | Переключить видимость скрытых столбцов | Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки | Дизайн листа | Улучшенная строка формулы | Управление книгой и листами | Библиотека автотекста | Выбор даты | Объединить данные | Зашифровать/расшифровать ячейки | Отправить письмо по списку | Супер фильтр | Специальный фильтр (фильтр жирный/курсив/зачеркнутый...) ...
Топ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% и уменьшите количество щелчков мышью на сотни ежедневно!

Все надстройки Kutools. Один установщик

Пакет Kutools for Office включает надстройки для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro — идеально для команд, работающих в разных приложениях Office.

Excel Word Outlook Tabs PowerPoint
  • Комплексный набор — надстройки для Excel, Word, Outlook и PowerPoint плюс Office Tab Pro
  • Один установщик, одна лицензия — настройка занимает считанные минуты (MSI-совместимо)
  • Совместная работа — максимальная эффективность между приложениями Office
  • 30-дневная полнофункциональная пробная версия — без регистрации и кредитной карты
  • Лучшее соотношение цены и качества — экономия по сравнению с покупкой отдельных надстроек