Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2015, 12:49   #1
bvb
 
Регистрация: 18.06.2015
Сообщений: 6
По умолчанию Удаление прямоугольников из рабочего листа

Есть файл Excel. На него поверх данных выведены прямоугольники с текстом.

1. Как можно макросом удалить все прямоугольники?
2. Можно ли анализировать что находится в прямоугольнике : текст или изображение ? Т.к. помимо прямоугольников с текстом есть еще логотип с рисунком, а вот его как раз надо оставить
Вложения
Тип файла: zip Пример на форум.zip (26.9 Кб, 15 просмотров)

Последний раз редактировалось bvb; 18.06.2015 в 16:59.
bvb вне форума Ответить с цитированием
Старый 18.06.2015, 15:39   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

да, можно
вы бы прикрепили пример файла, - чтобы форумчане не гадали, что у вас там за прямоугольники...
EducatedFool вне форума Ответить с цитированием
Старый 18.06.2015, 15:52   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

оно в Shapes где-то:
Код:
  Dim shp As Shape
  For Each shp In Shapes
    If shp.DrawingObject.Text = "" Then '...
    If shp.OLEFormat.Object.Text = "" Then '...
  Next
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 18.06.2015, 17:00   #4
bvb
 
Регистрация: 18.06.2015
Сообщений: 6
По умолчанию

Миль пардон. На форуме я новичок. Исправился.

По сути дела. Удалить прямоугольники с красным текстом а верхний с картинкой Excel оставить
bvb вне форума Ответить с цитированием
Старый 18.06.2015, 17:20   #5
ikki_pf
Форумчанин
 
Регистрация: 25.02.2012
Сообщений: 166
По умолчанию

Код:
Sub t()
  For Each sh In ActiveSheet.Shapes
    If sh.Type <> msoPicture Then sh.Delete
  Next
End Sub
ikki_pf вне форума Ответить с цитированием
Старый 18.06.2015, 17:21   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Sub DelSomeShapes()
  Dim shp As Shape
  For Each shp In ActiveSheet.Shapes
    If shp.Type <> msoPicture Then shp.Delete
  Next
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 18.06.2015, 17:22   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

и найдите 10 отличий)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 18.06.2015, 17:44   #8
bvb
 
Регистрация: 18.06.2015
Сообщений: 6
По умолчанию

Так просто !

Спасибо всем большое
bvb вне форума Ответить с цитированием
Старый 19.06.2015, 20:09   #9
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Можно и без цикла :

Код:
ActiveSheet.Rectangles.Delete
pashulka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В первых 10 столбцах рабочего листа находятся...... S.A.Nex Microsoft Office Excel 7 05.07.2013 16:59
В 10 столбцах рабочего листа находится... S.A.Nex Microsoft Office Excel 0 03.07.2013 15:53
Вывод на юзерформу изображения (содержания) рабочего листа strannick Microsoft Office Excel 2 12.10.2012 09:29
Заполнение массива из ячеек рабочего листа ofenod Microsoft Office Excel 2 29.04.2011 01:33
Использование события рабочего листа Worksheet_Change kovalevskivf Microsoft Office Excel 2 15.11.2009 12:51