Вставленные в Microsoft Excel или Google Таблицы изображения часто становятся неотъемлемой частью отчётов, каталогов или баз данных. Но что делать, если нужно получить эти картинки отдельно — для редактирования, печати или переноса в другую программу? В отличие от текста, графические файлы не экспортируются стандартными функциями вроде Сохранить как..., а их извлечение требует специальных приёмов.
В этой статье мы разберём 5 проверенных способов — от простейшего ручного копирования до автоматизации через VBA и Power Query. Вы узнаете, как сохранить одну картинку или пакетом извлечь сотни изображений из ячеек, а также какие скрытые ограничения Excel мешают этому процессу и как их обойти. Материал актуален для версий Excel 2013–2023 и Microsoft 365, включая онлайн-версию.
1. Ручной способ: копирование и вставка
Самый очевидный метод — скопировать изображение прямо из Excel и вставить его в графический редактор или папку. Он подходит для единичных картинок, но становится утомительным при работе с десятками файлов.
Как это сделать:
- 🖱️ Выделите картинку в Excel кликом мыши (она обведётся рамкой с маркерами изменения размера).
- 📋 Нажмите
Ctrl+C(или правой кнопкой →Копировать). - 🖼️ Откройте Paint, Photoshop или даже Word, вставьте изображение (
Ctrl+V) и сохраните как файл (F12илиФайл → Сохранить как...).
⚠️ Внимание: Если картинка вставлена в ячейку как фон (через Формат ячеек → Заливка → Рисунок), этот метод не сработает. Для таких случаев потребуется VBA или сторонние утилиты.
2. Сохранение через изменение расширения файла Excel
Excel хранит вставленные изображения внутри файла .xlsx (который на самом деле является ZIP-архивом). Этот метод позволяет извлечь все картинки сразу, но требует осторожности:
- Сделайте копию вашего файла Excel (на случай ошибок).
- Переименуйте расширение с
.xlsxна.zip(например,отчёт.xlsx→отчёт.zip). - Откройте архив через Проводник Windows или 7-Zip.
- Перейдите в папку
xl → media— там будут все изображения в оригинальном формате (.png,.jpgи др.). - Скопируйте файлы в нужную папку.
⚠️ Внимание: Если после переименования Windows выдаёт ошибку "Файл повреждён", значит:
- 🔄 Файл был сохранён в формате
.xls(старый формат Excel 97–2003). Преобразуйте его в.xlsxчерезФайл → Сохранить как → Книга Excel (*.xlsx). - 🔒 Файл защищён паролем. Снимите защиту перед переименованием.
3. Автоматизация через VBA (для опытных пользователей)
Макросы VBA позволяют извлечь картинки из Excel пакетно, сохранив их имена и формат. Этот способ подходит для обработки сотен изображений, но требует базовых знаний Visual Basic.
Инструкция:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - Вставьте новый модуль:
Вставка → Модуль. - Скопируйте следующий код:
Sub ExportPictures()
Dim shp As Shape
Dim ws As Worksheet
Dim i As Integer
Dim exportPath As String
' Укажите путь для сохранения (замените на свой)
exportPath = "C:\ExportedImages\"
' Проверяем существование папки
If Dir(exportPath, vbDirectory) = "" Then
MkDir exportPath
End If
' Обрабатываем все листы
For Each ws In ThisWorkbook.Worksheets
For Each shp In ws.Shapes
If shp.Type = msoPicture Then
i = i + 1
shp.Copy
With ChartObjects.Add(0, 0, shp.Width, shp.Height).Chart
.Paste
.Export exportPath & "Image_" & i & ".png"
.Parent.Delete
End With
End If
Next shp
Next ws
MsgBox "Экспорт завершён! Сохранено " & i & " изображений.", vbInformation
End Sub
- Запустите макрос кнопкой
F5.
⚠️ Внимание: Макрос сохраняет картинки в формате .png. Если нужны оригинальные форматы (.jpg, .bmp), потребуется модификация кода. Также убедитесь, что путь C:\ExportedImages\ существует или измените его на актуальный.
Сделать резервную копию файла Excel|Включить макросы в настройках безопасности (Файл → Параметры → Центр управления безопасностью)|Убедиться, что на диске достаточно места для экспорта|Проверить путь сохранения в коде макроса-->
4. Извлечение через Power Query (Excel 2016 и новее)
Power Query — мощный инструмент для работы с данными, но мало кто знает, что он может помочь и с изображениями. Способ работает, если картинки вставлены в ячейки как связанные объекты (например, через функцию =ИЗОБРАЖЕНИЕ() в Excel 365).
Алгоритм действий:
- 📊 Выделите столбец с изображениями.
- 🔄 Перейдите на вкладку
Данные → Из таблицы/диапазона(Excel автоматически преобразует данные в таблицу). - 🖼️ В редакторе Power Query найдите столбец с изображениями — он будет отмечен значком 📷.
- 💾 Кликните по заголовку столбца правой кнопкой →
Экспортировать файл→ выберите формат (.pngили.jpg).
🔍 Ограничение: Метод работает только для изображений, вставленных через формулу =ИЗОБРАЖЕНИЕ() (доступна в Excel 365). Для обычных вставленных картинок (Вставка → Рисунок) он бесполезен.
Как вставить картинку через формулу =ИЗОБРАЖЕНИЕ()?
Функция =ИЗОБРАЖЕНИЕ("URL_или_путь") позволяет подгружать изображения прямо в ячейки по ссылке или локальному пути. Пример:
=ИЗОБРАЖЕНИЕ("C:\Photos\logo.png") или =ИЗОБРАЖЕНИЕ("https://site.com/image.jpg").
Для работы функции требуется Excel 365 (версия 2208 или новее) и подключение к интернету для онлайн-картинок.
5. Сторонние утилиты: обзор программ
Если встроенные методы не подходят, на помощь приходят специализированные программы. Ниже — сравнение популярных инструментов:
| Программа | Поддержка форматов | Бесплатная версия | Особенности |
|---|---|---|---|
| Excel Image Extractor | .xlsx, .xls |
Да (с ограничениями) | Извлекает вложенные и фоновые изображения, сохраняет оригинальные имена |
| Kutools for Excel | .xlsx, .xlsm |
Нет (платная) | Пакетное извлечение с поддержкой VBA-макросов |
| OfficeRecovery | Все форматы Office | Да (demo-версия) | Восстанавливает повреждённые файлы, включая графику |
| 7-Zip | .xlsx |
Да | Требует ручного поиска по папке media |
💡 Совет: Перед использованием сторонних программ проверьте их на VirusTotal — некоторые утилиты могут содержать рекламное ПО.
Сравнение методов: какой выбрать?
Выбор способа зависит от количества изображений, формата файла Excel и ваших технических навыков. Ниже — краткое резюме:
- 🖼️ 1–2 картинки: Ручное копирование (способ 1).
- 📂 10–50 изображений: Переименование в
.zip(способ 2). - 🤖 100+ изображений: VBA (способ 3) или Power Query (способ 4, если картинки в ячейках).
- 🔧 Сложные случаи: Сторонние утилиты (способ 5) для фоновых изображений или повреждённых файлов.
⚠️ Внимание: Если изображения в Excel связаны с внешними файлами (а не встроены), их оригиналы могут храниться по указанным путям. Проверьте это через Файл → Сведения → Связи с файлами.
FAQ: Частые вопросы
Можно ли извлечь картинки из защищённого файла Excel?
Да, но сначала нужно снять защиту. Если файл защищён паролем, используйте:
- 🔓 Встроенную функцию
Файл → Сведения → Защита книги → Снять защиту(если знаете пароль). - 🛠️ Сторонние утилиты вроде Elcomsoft Advanced Office Password Recovery (для забытых паролей).
После снятия защиты применяйте любой из описанных выше методов.
Почему после переименования в ZIP некоторые картинки отсутствуют?
Это происходит по трём причинам:
- Изображения связаны, а не встроены (Excel хранит только ссылки).
- Файл сохранён в формате
.xls(старый бинарный формат, не поддерживающий ZIP-структуру). - Картинки добавлены как фон ячеек — они хранятся в другом месте архива (
xl\drawings\drawing1.xml).
Как извлечь картинки из Google Таблиц?
В Google Sheets процедура проще:
- Откройте таблицу, кликните по картинке правой кнопкой.
- Выберите
Заменить изображение → Скачать. - Для пакетного скачивания используйте Google Apps Script:
function exportImages() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const images = sheet.getImages();
images.forEach((img, i) => {
DriveApp.createFile(img.getBlob().setName(`Image_${i+1}`));
});
}
Можно ли сохранить картинки с оригинальными именами?
Да, но не все методы это поддерживают:
- 📁 ZIP-метод: Имена будут вроде
image1.png(оригинальные теряются). - 🤖 VBA: Можно модифицировать код, чтобы сохранять имена из свойств
Shape.Name. - 🛠️ Сторонние утилиты: Excel Image Extractor сохраняет оригинальные имена, если они были заданы при вставке.
Почему экспортированные картинки имеют низкое качество?
Excel автоматически сжимает изображения при вставке. Чтобы избежать потерь:
- 📏 Вставляйте картинки в оригинальном разрешении (не растягивайте их в Excel).
- 🔄 Используйте формат
.pngвместо.jpgдля экспорта. - 🛠️ Для критичных случаев храните оригиналы отдельно и вставляйте в Excel как связанные объекты.