Excel vba удалить все картинки с листа

ГЛАВНАЯ

ТРЕНИНГИ

   Быстрый старт
   Расширенный Excel
   Мастер Формул
   Прогнозирование
   Визуализация
   Макросы на VBA

КНИГИ

   Готовые решения
   Мастер Формул
   Скульптор данных

ВИДЕОУРОКИ

ПРИЕМЫ

   Бизнес-анализ
   Выпадающие списки
   Даты и время
   Диаграммы
   Диапазоны
   Дубликаты
   Защита данных
   Интернет, email
   Книги, листы
   Макросы
   Сводные таблицы
   Текст
   Форматирование
   Функции
   Всякое
PLEX

   Коротко
   Подробно
   Версии
   Вопрос-Ответ
   Скачать
   Купить

ПРОЕКТЫ

ОНЛАЙН-КУРСЫ

ФОРУМ

   Excel
   Работа
   PLEX

© Николай Павлов, Planetaexcel, 2006-2022
info@planetaexcel.ru


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

Техническая поддержка сайта

ООО «Планета Эксел»

ИНН 7735603520


ОГРН 1147746834949
        ИП Павлов Николай Владимирович
        ИНН 633015842586
        ОГРНИП 310633031600071 

Excel, just like other Office products, supports inserting pictures of various formats into your workbooks. However, deleting them may be time consuming in large workbooks if you’re trying to find and delete every single image manually. Let us show you how to make Excel delete all pictures automatically using VBA.

How to make Excel delete all pictures

How to make Excel delete all pictures

Pictures are stored in the Pictures collection under a worksheet object. This means that we can loop through pictures in a worksheet and delete them.

For Each pic In ActiveSheet.Pictures
    pic.Delete
Next pic

To delete the pictures from the entire workbook, we need to check every sheet.

For Each ws In ActiveWorkbook.Worksheets
    For Each pic In ws.Pictures
        pic.Delete
    Next pic
Next ws

You can use codes in two ways:

  • Module
  • Immediate Window

In the Module method, you need to add the module into the workbook or the add-in file. Copy and paste the code into the module to run it. The main advantage of the module method is that it allows saving the code in the file, so that it can be used again later. Furthermore, the subroutines in modules can be used by icons in the menu ribbons or keyboard shortcuts. Remember to save your file in either XLSM or XLAM format to save your VBA code.

The Immediate Window method, on the other hand, is essentially a quick and dirty method where you can simply copy and paste the code into the Immediate Window and press the Enter key to run it. Unfortunately, any code you use in the Immediate Window will not be saved. Also note that icons and keyboard shortcuts will not be available.

Delete pictures in active sheet

Module method:

Sub DeletePicturesInActiveSheet()
    For Each pic In ActiveSheet.Pictures
        pic.Delete
    Next pic
End Sub

Immediate Window method:

For Each pic In ActiveSheet.Pictures: pic.Delete: Next pic

Delete pictures in selection

Module method:

Sub DeletePicturesInActiveWorkbook()
    For Each ws In ActiveWorkbook.Worksheets
      For Each pic In ws.Pictures
        pic.Delete
      Next pic
    Next ws
End Sub

Immediate Window method:

For Each ws In ActiveWorkbook.Worksheets: For Each pic In ws.Pictures: pic.Delete: Next pic: Next ws

How do I delete all the pictures in an Excel 2007 worksheet? A working code example would be great.

asked Dec 18, 2010 at 21:22

Arlen Beiler's user avatar

Arlen BeilerArlen Beiler

15k32 gold badges91 silver badges135 bronze badges

The simplest way:

Activesheet.Pictures.Delete

or

Activesheet.Shapes.Delete

Depending on the type of object your picture is.

Deletes all pictures with greater efficiency then iterating (looping through) and deleting them one by one.

answered Aug 10, 2015 at 12:13

jony's user avatar

jonyjony

1,5311 gold badge26 silver badges43 bronze badges

1

Dim shape As Excel.shape

For Each shape In ActiveSheet.Shapes
        shape.Delete
Next

answered Dec 18, 2010 at 21:26

Eric Fortis's user avatar

Eric FortisEric Fortis

16k6 gold badges41 silver badges62 bronze badges

4

To delete all pictures or others shapes, you can iterate all of them and check the type:

Dim shape As Excel.shape

For Each shape In ActiveSheet.Shapes

    Select Case shape.Type
        Case msoPicture, msoMedia, msoShapeTypeMixed, msoOLEControlObject, msoAutoShape
            shape.Delete
        Case Else
            'Do nothing
    End Select
Next

In my case this code was usefull because my sheet was full of transparent shapes of type msoAutoShape which I thought were pictures. So, Activesheet.Pictures.Delete was not working.

You can find all shape types on this link: http://msdn.microsoft.com/en-us/library/aa432678(v=office.12).aspx

answered Nov 21, 2017 at 17:41

Eneas Gesing's user avatar

Если вы хотите удалить все изображения из Microsoft Excel, выбор каждого изображения и удаление их по одному может занять много времени. Следующие уловки могут облегчить вам работу по удалению всех изображений:

Удалите все изображения на активном листе с помощью команды Перейти

Удалите все изображения на активном листе с помощью VBA

Удалите все изображения или другие объекты на активном рабочем листе / всей книге с помощью Kutools for Excel


стрелка синий правый пузырь Удалите все изображения на активном листе с помощью команды Перейти

. Перейти к команда может выбрать все изображения на активном листе. Работа будет проще, если мы сможем выделить все изображения перед их удалением.

1, нажмите F5 , чтобы открыть Перейти к диалоговое окно в Excel.

2, Нажмите Особый кнопку и войдите в Перейти к специальному диалоговое окно , затем проверьте объект вариант. Смотрите скриншот:

3, Затем нажмите OK кнопку, все изображения выбраны на активном листе, нажмите Удалить ключ, чтобы удалить их все.

Ноты:

1. Этот метод выберет все объекты на активном листе, такие как изображения, диаграммы, формы и т. Д. Если вы не хотите удалять другие объекты, вы должны отменить выбор других объектов перед нажатием клавиши Delete.

2. Этот метод удалит только изображения на активном листе.


стрелка синий правый пузырь Удалите все изображения на активном листе с помощью VBA

Использование макроса VBA поможет вам быстро удалить все изображения на активном листе.

1. Удерживайте ALT + F11 ключи в Excel, и он открывает Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модулии вставьте следующий макрос в окно модуля.

Sub DeleteAllPics()
Dim Pic As Object
For Each Pic In ActiveSheet.Pictures
Pic.Delete
Next Pic
End Sub

3, нажмите F5 ключ для запуска этого макроса. И все изображения в активном листе удаляются сразу.


стрелка синий правый пузырь Удалите все изображения на активном листе или всей книге с помощью Kutools for Excel

Kutools for Excel‘s Удалить иллюстрации и объект может удалить все изображения сразу, независимо от того, находятся ли они на активном листе или во всей книге.

1. Нажмите Кутулс > Удалить> Удалить иллюстрации и объект . Смотрите скриншот:

2. В Удалить иллюстрации и объект диалоговое окно:

(1.) Проверьте Картинки или другой вариант объектов в Удалить .

(2.) Удалите все изображения во всей книге, проверьте Все листы вариант в Заглянуть раздел; при удалении всех изображений на активном листе отметьте Активный лист вариант; при удалении всех изображений на определенных листах проверьте Выбранные листы вариант. Смотрите скриншот:

Бесплатная загрузка Kutools for Excel от Yhao сейчас!

3. Нажмите ОК. И все изображения были удалены с активного листа, выбранных листов и всей книги по мере необходимости.

Kutools for Excel‘s Удалить иллюстрации и объект может помочь нам удалить все диаграммы, линии, изображения, автофигуры, умные рисунки, текстовые поля, связанные объекты OLE и встроенные объекты OLE на активном листе, выбранном листе или на всех листах текущей книги.
Нажмите, чтобы узнать больше…

Бесплатная загрузка Kutools for Excel от Yhao сейчас!


стрелка синий правый пузырь Демонстрация: удалите все изображения на активном рабочем листе или всей книге с помощью Kutools for Excel


Статьи по теме:

  • Удалить все диаграммы Рабочие книги
  • Быстро удалить все автофигуры
  • Быстро удалить все текстовые поля

Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

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

офисный дно

При копировании на рабочий лист Excel информации со страницы из сети Интренет периодически помимо текста вставляются ненужные картинки и различные элементы управления (кнопки, флажки и т.д.). Если их количество значительное, то удалять «вручную» окажется трудоемким процессом.

Имеется несколько способов решить данную проблему: средствами программы Excel и с помощью макроса VBA.

Удаление картинок и объектов в Excel средствами программы

В результате вставки данных со страницы Интернет-сайта скопировались ненужные картинки и элементы управления:

Чтобы удалить ненужные объекты, сначала необходимо выделить эти элементы, для этого перейдите в меню «Главная» -> «Редактирование» -> «Найти и выделить«-> «Выделение группы ячеек» (можно также кликнуть клавишу F5, а затем нажать кнопку «Выделить…«).

 

В открывшемся окне необходимо выбрать пункт «Объекты» и кликнуть «OK«:

В результате Excel выделит все требуемые объекты (если необходимо какие то элементы оставить, то необходимо зажать клавишу Ctrl и левой кнопкой мыши кликнуть на необходимые элементы, для снятия выделения):

Теперь осталось только нажать клавишу Delete, чтобы удалить все выделенные объекты.

Удаление картинок и объектов в Excel с помощью макроса VBA

Указанную выше проблему можно решить, написав в редакторе Visual Basic следующий макрос:

Sub DeleteObjects()
	ActiveSheet.DrawingObjects.Delete
End Sub

Если же необходимо удалить только картинки, тогда макрос необходимо изменить на:

Sub DeletePictures()
	Dim xlShape As Shape
	For Each xlShape In ActiveSheet.Shapes
		If xlShape.Type = msoPicture Then xlShape.Delete
	Next
End Sub

Можно дополнить макрос еще одной полезной функцией — удаление гиперссылок:

ActiveSheet.Hyperlinks.Delete

Объединив два действия в одну функцию DeleteObjects будут удалены все объекты и ссылки:

Sub DeleteObjects()
	ActiveSheet.DrawingObjects.Delete
	ActiveSheet.Hyperlinks.Delete
End Sub

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

Понравилась статья? Поделить с друзьями:
  • Excel vba удалить буквы
  • Excel vba удалить shape
  • Excel vba удаление ячейки
  • Excel vba удаление строки умной таблицы
  • Excel vba удаление строк умной таблицы