Массовое изменение размера картинок в Word
Чтобы сделать все картинки в документе Word одинакового размера, выделите их (удерживая Ctrl или Shift), перейдите на вкладку «Формат рисунка» и в группе «Размер» укажите точные значения высоты и ширины. Для полной автоматизации процесса в больших документах используйте макрос VBA, который применяет заданные параметры ко всем изображениям за один клик.
Ниже подробно разобраны три метода: от быстрого ручного выравнивания до программной автоматизации.
Оглавление
Способ 1: Ручное массовое изменение (без макросов)
Этот метод подходит, если нужно быстро изменить размер 5–20 изображений. Word позволяет применять параметры форматирования к нескольким выбранным объектам одновременно.
Пошаговая инструкция:
-
Выделите изображения.
- Кликните по первой картинке.
- Зажмите клавишу
Ctrl(илиShift) и кликайте по остальным изображениям, которые нужно выровнять. - Совет: Если картинки идут подряд, можно выделить первую, зажать
Shiftи кликнуть по последней.
-
Откройте инструменты формата.
- После выделения автоматически появится вкладка «Формат рисунка» (или «Формат») на ленте меню сверху.
-
Задайте точные размеры.
- В правой части ленты найдите группу «Размер».
- В поля «Высота» и «Ширина» введите нужные значения (например,
10 см). - Нажмите
Enter. Все выделенные изображения примут указанный размер.
Если поля «Размер» неактивны, убедитесь, что вы выделили именно объекты InlineShape (в тексте), а не плавающие фигуры. Для плавающих фигур алгоритм тот же, но иногда требуется снять группировку.
Способ 2: Автоматизация через макрос VBA
Если в документе сотни изображений или вам регулярно нужно приводить картинки к единому стандарту (например, для каталога товаров), лучше использовать макрос. Это сэкономит часы ручной работы.
Как запустить макрос:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - В меню выберите Insert > Module.
- Скопируйте и вставьте код ниже.
- Нажмите
F5для запуска или закройте редактор и запустите макрос черезВид>Макросы.
Код макроса (универсальный):
Sub ResizeAllImages()
Dim shp As InlineShape
Dim targetWidth As Single
' Укажите желаемую ширину в сантиметрах
' Word использует пункты (points), поэтому конвертируем: 1 см = 28.35 pts
targetWidth = CentimetersToPoints(10) ' Здесь 10 см - замените на нужное значение
Application.ScreenUpdating = False ' Отключаем обновление экрана для скорости
' Проходим по всем встроенным изображениям
For Each shp In ActiveDocument.InlineShapes
shp.LockAspectRatio = msoTrue ' Сохраняем пропорции
shp.Width = targetWidth
' Высота подстроится автоматически благодаря LockAspectRatio
Next shp
Application.ScreenUpdating = True
MsgBox "Все изображения изменены!", vbInformation
End Sub
Что делает этот код:
- Находит все изображения, встроенные в текст (
InlineShapes). - Блокирует соотношение сторон (
LockAspectRatio = msoTrue), чтобы картинки не сплющивались. - Устанавливает единую ширину (в примере — 10 см). Высота меняется пропорционально.
Макрос выше работает только с изображениями, имеющими обтекание «В тексте». Если у вас используются плавающие объекты («Перед текстом», «За текстом»), замените InlineShapes на Shapes и адаптируйте код, так как работа с ними отличается.
Настройка пропорций и качества
При массовом изменении важно сохранить визуальное качество и правильную геометрию объектов.
Сохранять ли пропорции?
- Да (Рекомендуется): Если фотографии разные (портретные и альбомные), жесткая фиксация и ширины, и высоты исказит изображение. Лучше фиксировать только одну сторону (обычно ширину), а высоту оставить автоматической.
- Нет: Если вам нужны строго квадратные превью или одинаковые прямоугольники независимо от исходника (например, для сетки товаров). В этом случае в настройках размера снимите галочку «Сохранить пропорции» и задайте оба значения.
Проверка результата
После применения размеров обязательно прокрутите документ. Из-за изменения габаритов картинок может «поехать» верстка текста:
- Используйте обтекание «В тексте» для стабильности потока.
- Если картинки скачут, проверьте интервалы между абзацами (
Макет>Интервалы).
Частые ошибки
| Ошибка | Причина | Решение |
|---|---|---|
| Поля размера серые (неактивны) | Выделен текст, а не картинка, или выбраны объекты разных типов | Убедитесь, что курсор стоит на изображении или выделены только картинки |
| Картинки растянуты/сплюснуты | Отключено сохранение пропорций при разных исходных форматах | Включите LockAspectRatio или меняйте только ширину |
| Макрос не видит некоторые картинки | Изображения имеют обтекание «Перед текстом» (Shapes), а код настроен на InlineShapes | Используйте универсальный скрипт или измените тип обтекания на «В тексте» |
| Сбилась верстка после изменения | Картинки слишком большие для ширины страницы | Уменьшите целевой размер или измените поля страницы |
FAQ
Можно ли сделать все картинки квадратными автоматически?
Да, в макросе задайте shp.Width = targetSize и shp.Height = targetSize, предварительно отключив LockAspectRatio. Однако это обрежет или исказит контент. Лучше использовать инструмент «Обрезка» > «По соотношению сторон» > «1:1» перед изменением размера.
Почему после ввода 10 см картинка становится 9.8 см? Word может округлять значения или учитывать внутренние отступы рамки. Разница в доли миллиметра обычно незаметна при печати. Для идеальной точности используйте пункты (points) в макросах.
Как вернуть всё назад, если макрос всё испортил?
Сразу после выполнения нажмите Ctrl + Z. Если файл уже сохранен и закрыт, поможет только резервная копия. Всегда сохраняйте копию документа перед запуском VBA-скриптов.