Вставленная картинка на листе является Shape. Изменение её ширины нужно выполнять с сохранением пропорций, если растяжение не требуется специально.

Зададим изображению фиксированную ширину вместо повторного увеличения на процент при каждом запуске.

Что подготовить

На «Проверка» вставьте собственную учебную картинку и назовите её productCard через область выделения. Подготовьте B2 для вывода ширины.

Имя относится к объекту рисунка, а не к ячейке или подписи под ним. Код не скачивает картинки и не использует личные фотографии.

Код и порядок выполнения

Option Explicit
Sub ResizeProductPicture()
    Dim pic As Shape
    Set pic = ThisWorkbook.Worksheets("Проверка").Shapes("productCard")
    pic.LockAspectRatio = msoTrue
    pic.Width = 240
    ThisWorkbook.Worksheets("Проверка").Range("B2").Value = pic.Width
End Sub

Width измеряется в пунктах, не в пикселях. При LockAspectRatio=msoTrue высота изменится согласованно с исходной пропорцией.

Фиксированная ширина 240 делает повторный запуск предсказуемым. Команда Width = Width * 1.5 увеличивала бы рисунок снова при каждом нажатии.

Учебный код: Как увеличить изображение в Excel макросом.
Учебный код: Как увеличить изображение в Excel макросом.

Как проверить результат

После изменения B2 содержит ширину 240 пунктов. Форма изображения сохраняет исходные пропорции.
После изменения B2 содержит ширину 240 пунктов. Форма изображения сохраняет исходные пропорции.

После изменения B2 содержит ширину 240 пунктов. Форма изображения сохраняет исходные пропорции.

Ограничения и частые ошибки

Если Shape с таким именем отсутствует, сначала проверьте область выделения и тип объекта. Группа фигур, диаграмма и вставленная картинка могут требовать разных действий.

Свойство Placement управляет поведением объекта при изменении ячеек. Размер картинки и масштаб окна Excel — разные настройки; смена Zoom не меняет Width самого Shape.

Если требуется временное увеличение по клику и возврат, сохраняйте исходные ширину, высоту и положение и определяйте состояние явно. Не пытайтесь восстановить исходник повторным делением, не зная историю запусков.

Проверка перед рабочим запуском

  • Объект назван productCard.
  • Ширина равна 240 пунктам.
  • Пропорции сохранены.
  • Повтор не увеличивает рисунок ещё раз.

Сначала выполните пример на учебной копии с указанными именами листов и диапазонами. Сравните исходные данные и результат, затем сохраните проверенный вариант процедуры.

Продолжить изучение: Как создать кнопку для запуска макроса в Excel, Форматирование ячеек VBA: цвет, выравнивание и AutoFit, Ошибка 424 Object required в VBA.

Разберитесь с макросами вместе с преподавателем

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

Начните с бесплатного вводного урока: 45 минут, один на один, без обязательств. Обсудите цель и попробуйте формат. Решение о продолжении — после занятия.

Записаться на бесплатный урок