Содержание
- Отображаем невидимые объекты на листе EXCEL
- Microsoft Excel
- Как правильно выбирать объекты на листе Excel
- Ctrl+щелчок
- Панель Выделение и видимость
- Диалоговое окно Выделение группы ячеек
- Инструмент выбора объектов
- Excel works!
- Excel works!
- Как добавить фигуру в Excel? Применение автофигур
- Автофигуры в Excel. Стрелочки, скобки и выноски
- Как добавить фигуру в Excel? Необычные применения
- Что, если нужно удалить все фигуры?
- Работа с фигурами (объектами-рисунками)
- Задание свойств для фигуры
- Применение свойства или метода к нескольким фигурам одновременно
- Создание коллекции ShapeRange, содержащей все фигуры на листе
- Применение свойства или метода к коллекции ShapeRange
- Циклический просмотр коллекций Shapes или ShapeRange
- Выравнивание, распределение и группирование фигур в ShapeRange
- См. также
- Поддержка и обратная связь
Отображаем невидимые объекты на листе EXCEL
history 26 апреля 2013 г.
При импорте содержимого web-страниц на лист EXCEL может попасть множество ненужных объектов: картинок, элементов управления, таблиц, форм. Часть из этих объектов может быть скрыта. Научимся отображать эти объекты, а затем удалять их.
Для примера можно скопировать содержимое любой web-страницы на лист, например, ]]> www.mail.ru ]]> .
Для отображения скрытых объектов необходимо вызвать в меню Главная/ Редактирование/ Найти и выделить команду Область выделения .
Нажимая на название объекта ( Picture 1 ) можно выделить объект, затем клавишей DEL – удалить его если нужно.
Совет : чтобы удалить элемент управления (см. Control 13 на рисунке выше) необходимо перейти на вкладке Разработчик в режим Конструктора ( Разработчик/ Элементы управления ). Чтобы открыть вкладку Разработчик зайдите в меню Кнопка офис/ Параметры Excel/ Основные/ Показывать вкладку Разработчик на ленте .
Выделить ВСЕ объекты можно с помощью инструмента Выделение группы ячеек ( Главная/ Найти и выделить ). Переключатель установить на Объекты .
На первом рисунке (окно Область выделения . ) видно, все объекты разделены на 2 группы (группы отделены горизонтальной линией). Инструмент Выделение группы ячеек выделяет сначала объекты из нижней группы (наподобие выделения нижнего слоя). После их выделения, а затем удаления с помощью клавиши DEL , можно приниматься за вторую группу объектов. Заново вызовите Инструмент Выделение группы ячеек, который выделит теперь оставшиеся элементы (верхнюю группу).
Аналогичный подход может быть использован и для объектов, созданных самостоятельно.
Источник
Microsoft Excel
трюки • приёмы • решения
Как правильно выбирать объекты на листе Excel
Excel позволяет размещать довольно много различных типов объектов на листе: диаграммы, фигуры, картинки и SmartArt, например. Для работы с объектом вы должны его выбрать. Самый простой способ выбрать отдельный объект — щелкнуть на нем кнопкой мыши.
А что делать, если вы хотите выбрать несколько объектов? Например, вам может потребоваться переместить несколько объектов, удалить их или применить форматирование. Excel предоставляет различные способы выбора нескольких объектов.
Ctrl+щелчок
Удерживание нажатой клавиши Ctrl при щелчках на объектах — один из способов выбрать несколько объектов.
Панель Выделение и видимость
Панель Выделение и видимость, показанная на рис. 151.1, обеспечивает быстрый способ выбора (и скрытия) объектов. Для открытия этой панели выберите Главная ► Редактирование ► Найти и выделить ► Область выделения. Панель содержит имя каждого объекта на активном листе. Щелкните на имени объекта, и он будет выбран. Нажмите Ctrl для выбора нескольких объектов. Вы также можете воспользоваться этой панелью для того, чтобы скрыть объекты (щелкните на маленьком значке с изображением глаза) и изменить их порядок (используйте две соответствующие кнопки внизу).
Рис. 151.1. Вы можете использовать панель Выделение и видимость для легкого выбора объектов (если знаете их имена)
Диалоговое окно Выделение группы ячеек
Для выбора всех объектов на листе выполните команду Главная ► Редактирование ► Найти и выделить ► Выделение группы ячеек. Далее установите переключатель в соответствующее положение и нажмите ОК.
Инструмент выбора объектов
Другой способ выбора нескольких объектов состоит в использовании инструмента выбора объектов (выберите Главная ► Редактирование ► Найти и выделить ► Выбор объектов). Когда вы выполняете эту команду, Excel переходит в специальный режим, а указатель мыши принимает вид стрелки. Щелкните кнопкой мыши на листе и перетаскивайте, чтобы выбрать все объекты в прямоугольной области. Чтобы вернуться в нормальный режим, нажмите клавишу Esc.
Источник
Excel works!
Excel работает за вас
Excel works!
Thanks for Visiting
Как добавить фигуру в Excel? Применение автофигур
Автофигура — довольно популярное средство добавить простой объект поверх данных созданного документа. Это может быть стрелочка, выноска, скобка, рамочка и так далее. Как правило, в редакторах таблиц и текстов это стандартный набор фигур. Как добавить фигуру в Excel? Что можно сделать полезного с автофигурами? Давайте посмотрим.
Добавить автофигуру довольно просто как видно из рисунка. Панель управления — вкладка Главная — раздел Иллюстрации — жмите Фигуры. Как мы видим, набор фигур довольно большой.
Как можно использовать такие автофигуры? Функционал довольно простой — визуализировать данные, чтобы они проще воспринимались и были понятны с первого взгляда. Постараюсь поделиться своим опытом.
Автофигуры в Excel. Стрелочки, скобки и выноски
Выноска хорошая для уточнения информации, где не подойдет примечание. Например, можно добавить пояснение на графике.
Выноска. 1 граница и черта
Стрелочка отлично подходит, чтобы показать причинно-следственные связи, как например здесь:
Фигурная скобка, наверное, то, что я применяю чаще всего. Удобно, чтобы заострить внимание на сумме показателей.
Правая фигурная скобка
Автофигуры само собой можно изменять, менять цвет, толщину и так далее. Для этого в версиях 2007 и выше есть специальная вкладка на панели управления — там вы можете настроить все форматы под себя. Просто кликните/выберите фигуру и она появится справа от всех панелей.
Как добавить фигуру в Excel? Необычные применения
Очень удобная автофигура, когда надо понять в какой четверти находится большинство данных. Например, в какой области на карте большее количество адресов или, как на примере, наибольшее количество заказов в возрастной категории. Применяю довольно часто — рекомендую.
Поскольку лучший анализатор — это наш глаз и мозг, то остается только помочь им. На данном графике представлена зависимость количества заказов от возраста. С уверенностью можно сказать, что чем выше возраст, тем больше заказов. Мне кажется, такая автофигура добавляет наглядности графику, особенно если вертикальную линию поместить по среднему значению!
Кстати, обычную линию я тоже часто применяю для графиков, например, для нанесения средней линии.
Что, если нужно удалить все фигуры?
Вы знаете, что excel файл — это архив? Подробно можно прочитать в материале.
Удалив все drawnings из структуры по ссылке выше, вы удалите так же все фигуры, в том числе кнопки макросов.
Если при нажатии на фигуру необходимо, чтобы выполнялось какое-нибудь действие, лучше прочитать статью.
Источник
Работа с фигурами (объектами-рисунками)
Фигуры, или объекты-рисунки, представлены тремя разными объектами:
Объект | Описание |
---|---|
Коллекция фигур | Используйте для создания фигур и итерации всех фигур на заданном листе. |
Коллекция ShapeRange | Используйте для изменения нескольких фигур так же, как и с несколькими фигурами в пользовательском интерфейсе. |
Объект Shape | Используйте для форматирования или изменения одной фигуры. |
Задание свойств для фигуры
Многие параметры форматирования фигур не устанавливаются с помощью свойств, применяемых непосредственно к объекту Shape или ShapeRange. Вместо этого связанные атрибуты фигур группируются во вспомогательных объектах, таких как объект FillFormat, который содержит все свойства, связанные с заливкой фигуры, или объект LinkFormat, который содержит все свойства, являющиеся уникальными для связанных объектов OLE.
Чтобы задать свойства для фигуры, необходимо сначала вернуть объект, представляющий набор соответствующих атрибутов фигуры, а затем задать свойства этого возвращенного объекта. Например, можно использовать свойство Fill, чтобы вернуть объект FillFormat, а затем задать свойство ForeColor объекта FillFormat, чтобы настроить цвет заливки переднего плана для указанной фигуры, как показано в следующем примере.
Применение свойства или метода к нескольким фигурам одновременно
В пользовательском интерфейсе можно выполнять некоторые операции с несколькими выбранными фигурами; Например, можно выбрать несколько фигур и задать все их отдельные заливки одновременно. Другие операции можно выполнять с выделенной только одной фигурой; Например, текст в фигуре можно изменить только в том случае, если выбрана одна фигура.
В Visual Basic есть два способа применения свойств и методов к наборам фигур. Эти два способа позволяют выполнять все операции, которые можно осуществить с отдельной фигурой, для диапазона фигур независимо от того, можно ли выполнять эту операцию в пользовательском интерфейсе.
Если операция применяется для нескольких выделенных фигур в пользовательском интерфейсе, вы можете выполнить аналогичную операцию в Visual Basic, создав коллекцию ShapeRange, содержащую нужные фигуры, и применив соответствующие свойства и методы непосредственно к коллекции ShapeRange.
Если операция не применяется для нескольких выделенных фигур в пользовательском интерфейсе, вы по-прежнему можете выполнить операцию в Visual Basic, осуществив циклический просмотр коллекции Shapes или коллекции ShapeRange, содержащей нужные фигуры, и применив соответствующие свойства и методы к отдельным объектам Shape в коллекции.
Многие свойства и методы, применяемые к объекту Shape и коллекции ShapeRange, завершаются ошибкой, если применяются к определенным типам фигур. Например, применение свойства TextFrame к фигуре, которая не может содержать текст, приводит к ошибке.
Если вы не уверены, что к каждой фигуре в коллекции ShapeRange может применяться определенное свойство или метод, не применяйте свойство или метод к коллекции ShapeRange . Если вы хотите применить одно из этих свойств или методов к коллекции фигур, нужно выполнить циклический просмотр коллекции и протестировать каждую отдельную фигуру, чтобы убедиться в соответствии ее типа перед применением к ней свойства или метода.
Создание коллекции ShapeRange, содержащей все фигуры на листе
Можно создать объект ShapeRange , содержащий все объекты Shape на листе, выбрав фигуры, а затем используя свойство ShapeRange для возврата объекта ShapeRange , содержащего выбранные фигуры.
В Microsoft Excel аргумент Index не является необязательным для свойства Range коллекции Shapes , поэтому его нельзя использовать без аргумента для создания объекта ShapeRange , содержащего все фигуры в коллекции Shapes .
Применение свойства или метода к коллекции ShapeRange
Если вы можете выполнить в пользовательском интерфейсе операцию для нескольких выделенных фигур одновременно, можно выполнить аналогичное программное действие, создав коллекцию ShapeRange и затем применив к ней соответствующие свойства или методы. В следующем примере создается диапазон фигур, содержащий фигуры «Большая звезда» и «Маленькая звезда», и myDocument применяется к ним градиентная заливка.
Ниже приведены общие руководства по поведению свойств и методов при их применении к коллекции ShapeRange.
Применение метода к коллекции аналогично применению метода к каждому отдельному объекту Shape в этой коллекции.
Настройка значения свойства коллекции аналогична настройке значения свойства каждой отдельной фигуры в этом диапазоне.
Свойство коллекции, возвращающее константу, возвращает значение свойства для отдельной фигуры в коллекции, если все фигуры в коллекции имеют одинаковое значение для этого свойства. Если у фигур в коллекции разные значения свойства, возвращается «смешанная» константа.
Свойство коллекции, возвращающее простой тип данных (например, Long, Single или String), возвращает значение свойства для отдельной фигуры, если все фигуры в коллекции имеют одинаковое значение для этого свойства.
Значение некоторых свойств можно вернуть или установить только в том случае, если в коллекции содержится только одна фигура. Если коллекция содержит несколько фигур, возникает ошибка во время выполнения. Обычно это происходит в случае возвращения или настройки свойств, если аналогичные действия в пользовательском интерфейсе возможны только для одной фигуры (такие действия, как изменение текста в фигуре или изменение точек полилинии).
Предшествующие руководства также применяются при настройке свойств фигур, сгруппированных во вспомогательных объектах коллекции ShapeRange, например в объекте FillFormat. Если вспомогательный объект представляет операции, которые можно выполнять над несколькими выделенными объектами в пользовательском интерфейсе, можно вернуть объект из коллекции ShapeRange и настроить его свойства.
Например, вы можете использовать свойство Fill, чтобы вернуть объект FillFormat, представляющий заливки всех фигур в коллекции ShapeRange. Настройка свойств этого объекта FillFormat задает такие же свойства для всех отдельных фигур в коллекции ShapeRange.
Циклический просмотр коллекций Shapes или ShapeRange
Даже если вы не можете одновременно выполнить операцию с несколькими фигурами в пользовательском интерфейсе, выбрав их, а затем с помощью команды, можно выполнить эквивалентное действие программным способом, выполнив цикл по коллекции Shapes или ShapeRange , содержащей фигуры, с которыми вы хотите работать, применяя соответствующие свойства и методы к отдельным объектам Shape в коллекции.
В следующем примере выполняется цикл по всем фигурам myDocument и изменяется цвет переднего плана для каждой фигуры AutoShape.
В следующем примере создается коллекция ShapeRange , которая содержит все выбранные в данный момент фигуры в активном окне и задает цвет переднего плана для каждой выбранной фигуры.
Выравнивание, распределение и группирование фигур в ShapeRange
Методы Выравнивание и Распределение используются для размещения набора фигур относительно друг друга или относительно документа, в котором они содержатся.
Используйте метод Group или Метод Regroup , чтобы сформировать одну сгруппированную фигуру из набора фигур.
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Источник
Если вы хотите избавиться от автоматических форм в Excel, вы можете найти простой способ быстро удалить все формы, а не удалять автоматические формы по одной. Следующий хитрый метод поможет вам удалить все автофигуры одним щелчком мыши.
- Удалите все автофигуры на активном листе с помощью функции Перейти в Excel
- Удалите все автофигуры на активном листе с помощью VBA
- Удалите все автофигуры на листе или в книге с помощью Kutools for Excel
Удалите все автофигуры на активном листе с помощью функции Перейти в Excel
Если есть только один вид объектов — автофигуры на листе, вы можете удалить все автофигуры с помощью Перейти к функции.
1. Нажмите F5 or Ctrl + G для отображения Перейти к диалоговое окно и щелкните Особый.., см. снимок экрана:
2. Проверьте Объекты, А затем нажмите Ok, он выберет все объекты, см. снимок экрана:
3. Затем нажмите Возврат на одну позицию кнопку, чтобы удалить все автофигуры.
Внимание: Объекты содержат автофигуры, изображения, картинки и т. Д. Применение этого метода приведет к удалению других объектов, кроме автофигур, если на листе есть не только объект автофигур.
Удалите все автофигуры на активном листе с помощью VBA
Использование макроса VBA может помочь вам быстро удалить все автоматические формы на активном листе.
Шаг 1: Удерживайте ALT + F11 ключи, и он открывает Microsoft Visual Basic для приложений окно.
Шаг 2: нажмите Вставить > Модули, и вставьте следующий макрос в Модули окно.
VBA: удалить все фигуры на активном листе.
Sub DeleteShapes ()
Дим Шп как форма
Для каждой детали в ActiveSheet.Shapes
Шп.Удалить
Следующая Шп
End Sub
Шаг 3: нажмите F5 ключ для запуска этого макроса.
Затем вы увидите, что все фигуры на активном листе быстро удаляются.
Заметки:
1. Этот макрос VBA может удалять только все фигуры на активном листе.
2. Этот макрос VBA может удалять все виды фигур на активном листе, включая изображения, клипы, фигуры, SmartArt, диаграммы, текстовые поля и т. Д.
Удалите все автофигуры на листе или в книге с помощью Kutools for Excel
Если вы хотите удалить только автоматические формы с листа, Kutools for Excel‘s Удалить иллюстрации и объект может помочь вам удалить определенные фигуры на активном листе, выбранных листах или всей книге одним щелчком мыши.
Kutools for Excel включает более 300 удобных инструментов Excel. Бесплатная пробная версия без ограничений в течение 30 дней. Получить сейчас.
Шаг 1: нажмите Кутулс > Удалить иллюстрации и объект.
Шаг 2: В Удалить инструменты диалоговое окно, пожалуйста, отметьте Авто формы вариант и отметьте один из вариантов в заглянуть раздел. См. Следующий снимок экрана:
- Если вы установите флажок Активный лист опция, он удалит все автоматические формы на активном листе;
- Если вы установите флажок Выбранные листы опция, он удалит все автоматические формы на выбранных листах;
- Если вы установите флажок Все листы вариант, он удалит все автоматические формы во всей книге.
Шаг 3: нажмите OK, он удалит все автоматические формы.
Kutools for Excel’s Удалить инструменты может помочь нам удалить все диаграммы, линии, изображения, автофигуры, умные рисунки, текстовые поля, связанные объекты OLE и встроенные объекты OLE на активном листе, выбранном листе или на всех листах текущей книги. Нажмите, чтобы узнать больше…
Относительные статьи:
- Легко удалить все изображения
- Удалить все диаграммы Рабочие книги
- Быстро удалить все текстовые поля
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Работа с фигурами в VBA Excel: создание фигур методом Shapes.AddShape, типы фигур (MsoAutoShapeType), обращение к фигурам и изменение их свойств. Примеры.
Объекты для работы с фигурами
Фигуры в VBA Excel представлены тремя объектами:
Объект | Описание |
---|---|
Shapes | Коллекция всех фигур на рабочем листе. Используется для создания новых фигур, для обращения к одной фигуре по имени и для перебора фигур циклом. |
ShapeRange | Коллекция нескольких фигур, аргументом которой является массив имен выбранных объектов. Используется для редактирования сразу всех фигур, входящих в эту коллекцию. |
Shape | Объект, представляющий одну фигуру. Используется для редактирования одной этой фигуры. |
Фигуры в VBA Excel создаются методом Shapes.AddShape.
Синтаксис метода AddShape
Shapes.AddShape (Type, Left, Top, Width, Height) |
Shapes — выражение, возвращающее коллекцию фигур на рабочем листе, например: ActiveSheet.Shapes.
Параметры метода AddShape
Параметр | Описание |
---|---|
Type | Константа из коллекции MsoAutoShapeType, определяющая тип создаваемой фигуры. |
Left | Расстояние от левой границы фигуры до левой границы табличной части рабочего листа в пунктах.. Тип данных — Single. |
Top | Расстояние от верхней границы фигуры до верхней границы табличной части рабочего листа в пунктах.. Тип данных — Single. |
Width | Ширина фигуры по внешним границам в пунктах. |
Height | Высота фигуры по внешним границам в пунктах. |
Все параметры метода Shapes.AddShape являются обязательными.
Константы MsoAutoShapeType
Константы коллекции MsoAutoShapeType, определяющие основные типы создаваемых фигур:
Константа | Значение | Тип фигуры |
---|---|---|
msoShapeRectangle | 1 | Прямоугольник |
msoShapeParallelogram | 2 | Параллелограмм |
msoShapeTrapezoid | 3 | Трапеция |
msoShapeDiamond | 4 | Ромб |
msoShapeRoundedRectangle | 5 | Прямоугольник: скругленные углы |
msoShapeOctagon | 6 | Восьмиугольник (октаэдр) |
msoShapeIsoscelesTriangle | 7 | Равнобедренный треугольник |
msoShapeRightTriangle | 8 | Прямоугольный треугольник |
msoShapeOval | 9 | Овал |
msoShapeHexagon | 10 | Шестиугольник (гексаэдр) |
msoShapeCross | 11 | Крест |
msoShapeRegularPentagon | 12 | Пятиугольник (пентаэдр) |
msoShapeCan | 13 | Цилиндр |
msoShapeCube | 14 | Куб |
msoShapeDonut | 18 | Круг: прозрачная заливка (кольцо) |
msoShapeLightningBolt | 22 | Молния |
msoShapeSun | 23 | Солнце |
msoShapeMoon | 24 | Месяц (луна) |
msoShape5pointStar | 92 | Звезда: 5 точек (пятиконечная) |
msoShapeCloud | 179 | Облако |
Все доступные константы из коллекции MsoAutoShapeType смотрите на сайте разработчиков.
Создание объекта ShapeRange
Создание коллекции ShapeRange из выбранных фигур:
Dim myShapeRange As ShapeRange Set myShapeRange = ActiveSheet.Shapes.Range(Array(«Пятиугольник 140», «Солнце 141», «Облако 144»)) |
Объектная переменная myShapeRange не обязательна, можно обратиться непосредственно к возвращенной коллекции, например, присвоив всем ее элементам синий цвет:
ActiveSheet.Shapes.Range(Array(«Пятиугольник 140», «Солнце 141», «Облако 144»)).Fill.ForeColor.RGB = vbBlue |
Примеры работы с фигурами
Пример 1
Создание пяти разных фигур из кода VBA Excel методом Shapes.AddShape:
Sub Primer1() With ActiveSheet.Shapes ‘При создании фигуры без присвоения ее переменной скобки не нужны .AddShape msoShapeCube, 30, 40, 72, 72 .AddShape msoShapeIsoscelesTriangle, 130, 40, 72, 72 .AddShape msoShapeSun, 230, 40, 72, 72 .AddShape msoShapeLightningBolt, 330, 40, 72, 72 ‘Чтобы выбрать фигуру, параметры необходимо заключить в скобки .AddShape(msoShapeCloud, 430, 40, 72, 72).Select End With End Sub |
Результат работы кода:
Пример 2
Работа с одной фигурой:
Sub Primer2() Dim myShape As Shape ‘Создаем фигуру «Месяц» и присваивает ссылку на нее переменной myShape Set myShape = ActiveSheet.Shapes.AddShape(msoShapeMoon, 50, 50, 80, 80) With myShape ‘Меняем высоту и ширину фигуры .Height = 150 .Width = 100 ‘Меняем цвет фигуры .Fill.ForeColor.RGB = vbYellow ‘Поворачиваем фигуру влево на 40 градусов .Rotation = —40 End With End Sub |
Пример 3
Редактирование одновременно нескольких фигур с помощью коллекции ShapeRange:
Sub Primer3() With ActiveSheet.Shapes.Range(Array(«Овал 1», «Овал 2», «Овал 3»)) ‘Меняем цвет всех фигур из коллекции ShapeRange .Fill.ForeColor.RGB = vbBlue ‘Задаем высоту и ширину овалов .Height = 150 .Width = 50 ‘Поворачиваем фигуры вправо на 45 градусов .Rotation = 45 End With End Sub |
Пример 4
Редактирование одновременно всех фигур на рабочем листе с помощью коллекции ShapeRange:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Sub Primer4() Dim myShapeRange As ShapeRange, i As Integer, _ myShape As Shape, myArray() As String ‘Задаем массиву размерность от 1 до количества фигур на листе ReDim myArray(1 To ActiveSheet.Shapes.Count) ‘Проходим циклом по всем фигурам коллекции и записываем их имена в массив For Each myShape In ActiveSheet.Shapes i = i + 1 myArray(i) = myShape.Name Next ‘Создаем коллекцию ShapeRange и присваиваем ссылку на нее переменной myShapeRange Set myShapeRange = ActiveSheet.Shapes.Range(myArray) With myShapeRange ‘Изменяем цвет всех фигур на рабочем листе .Fill.ForeColor.RGB = RGB(100, 150, 200) ‘Поворачиваем все фигуры вокруг вертикальной оси .Flip msoFlipVertical End With End Sub |
Пример 5
Добавление надписи (текста) на фигуру:
Sub Primer5() Dim myShape As Shape Set myShape = ActiveSheet.Shapes.AddShape(msoShapeCloud, 50, 30, 300, 300) With myShape.TextFrame2 ‘Добавление текста на фигуру .TextRange.Characters.Text = «Объект TextFrame представляет текстовую рамку в объекте Shape. Содержит текст в текстовом кадре, а также свойства и методы, которые контролируют выравнивание и закрепление текстового кадра.» ‘Задаем курсивное начертание .TextRange.Characters.Font.Italic = True ‘Указываем размер шрифта .TextRange.Characters.Font.Size = 13 ‘Отступ левой границы текстового поля от левой внутренней границы фигуры .MarginLeft = 30 ‘Отступ верхней границы текстового поля от верхней внутренней границы фигуры .MarginTop = 20 End With End Sub |
Результат работы кода:
Изменить цвет текста, например на черный, можно двумя способами:
‘С помощью константы MsoThemeColorIndex myShape.TextFrame2.TextRange.Characters.Font.Fill.ForeColor.ObjectThemeColor = msoThemeColorDark1 ‘С помощью цветовой модели RGB myShape.TextFrame2.TextRange.Characters.Font.Fill.ForeColor.RGB = RGB(0, 0, 0) |
С константами из коллекции MsoThemeColorIndex вы можете ознакомиться на сайте разработчиков.
Пример 6
Удаление фигур с рабочего листа из кода VBA Excel с помощью метода Delete.
Удаление одной фигуры:
ActiveSheet.Shapes(«Ромб 5»).Delete |
Удаление нескольких фигур:
ActiveSheet.Shapes.Range(Array(«Овал 1», «Овал 2», «Овал 3»)).Delete |
Удаление всех фигур с рабочего листа с помощью цикла:
Sub Primer6() Dim myShape As Shape For Each myShape In ActiveSheet.Shapes myShape.Delete Next End Sub |
В 7 примере рассмотрено удаление всех фигур без цикла.
Пример 7
Выделение всех фигур на рабочем листе:
ActiveSheet.Shapes.SelectAll |
Выбор всех фигур и удаление выбранного (всех фигур):
Sub Primer7() ActiveSheet.Shapes.SelectAll Selection.Delete End Sub |
Продолжение темы в статье VBA Excel. Копирование, перемещение и поворот фигур.
Данный макрос производит поиск фигур (графических объектов) на всех листах текущей книги Excel,
и выводит следующую информацию по каждой найденной фигуре:
- Название фигуры (графического объекта)
- Координаты верхнего левого угла
- Координаты правого нижнего угла
- Размеры фигуры (ширина, высота)
- Тип фигуры (свойство Type типа MsoShapeType)
- Тип автофигуры (свойство AutoShapeType типа MsoAutoShapeType)
Вывод информации производится в окно Immediate
Sub ВыводСпискаАвтофигурСКоординатами() Dim sh As Worksheet, sha As Shape For Each sh In ThisWorkbook.Worksheets Debug.Print "=== Лист «" & sh.Name & "» - количество фигур: " & sh.Shapes.Count & " ===" For Each sha In sh.Shapes n = n + 1: Debug.Print " Фигура №" & n & " с названием «" & sha.Name & "»" Debug.Print " Координаты верхнего левого угла: X=" & sha.Left & "; Y=" & sha.Top Debug.Print " Координаты правого нижнего угла: X=" & sha.Left + sha.Width & "; Y=" & sha.Top + sha.Height Debug.Print " Размеры фигуры: ширина=" & sha.Width & "; высота=" & sha.Height Debug.Print " Тип фигуры: " & sha.Type & "; тип автофигуры: " & sha.AutoShapeType Next sha Debug.Print "=== Конец просмотра листа «" & sh.Name & "» ===" & vbNewLine Next sh End Sub
В прикреплённом файле нажмите кнопку «Запуск» для запуска макроса
Результат работы макроса:
=== Лист «Лист1» - количество фигур: 4 === Фигура №1 с названием «КнопкаЗапуска» Координаты верхнего левого угла: X=48; Y=25,5 Координаты правого нижнего угла: X=144; Y=51 Размеры фигуры: ширина=96; высота=25,5 Тип фигуры: 1; тип автофигуры: 5 Фигура №2 с названием «AutoShape 2» Координаты верхнего левого угла: X=105; Y=121,5 Координаты правого нижнего угла: X=216; Y=213,75 Размеры фигуры: ширина=111; высота=92,25 Тип фигуры: 1; тип автофигуры: 89 Фигура №3 с названием «Солнце» Координаты верхнего левого угла: X=255; Y=49,5 Координаты правого нижнего угла: X=315,75; Y=107,25 Размеры фигуры: ширина=60,75; высота=57,75 Тип фигуры: 1; тип автофигуры: 23 Фигура №4 с названием «Oval 4» Координаты верхнего левого угла: X=341,25; Y=154,5 Координаты правого нижнего угла: X=459; Y=197,25 Размеры фигуры: ширина=117,75; высота=42,75 Тип фигуры: 1; тип автофигуры: 9 === Конец просмотра листа «Лист1» === === Лист «Лист2» - количество фигур: 2 === Фигура №5 с названием «WordArt 1» Координаты верхнего левого угла: X=78,75; Y=27,75 Координаты правого нижнего угла: X=170,25; Y=120,75 Размеры фигуры: ширина=91,5; высота=93 Тип фигуры: 15; тип автофигуры: -2 Фигура №6 с названием «Стрелка» Координаты верхнего левого угла: X=202,5; Y=81 Координаты правого нижнего угла: X=277,5; Y=188,25 Размеры фигуры: ширина=75; высота=107,25 Тип фигуры: 9; тип автофигуры: -2 === Конец просмотра листа «Лист2» ===
Скриншот результата: http://ExcelVBA.ru/pictures/20110925-5vf-80kb.jpg
А следующий код назначает всем автофигурам макрос с названием МакросДляФигуры:
Sub НазначениеОдногоМакросаВсемФигурам() Dim Sh As Worksheet, sha As Shape For Each Sh In ActiveWorkbook.Worksheets ' перебираем все листы в активной книге For Each sha In Sh.Shapes ' перебираем все фигуры на очередном листе ' назначаем макрос только тем фигурам, которым ещё не назначены макросы If sha.OnAction = "" Then sha.OnAction = "МакросДляФигуры" Next sha Next Sh End Sub
Назначенный макрос выводиn во вторую строку активного листа Excel информацию о выделенной фигуре: координаты, размеры, и название фигуры:
(см. пример в прикреплённом файле — пощелкайте на фигурах, кроме зеленой кнопки)
Sub МакросДляФигуры() On Error Resume Next ' получаем ссылку на фигуру, с которой был вызван этот макрос Dim sha As Shape: Set sha = ActiveSheet.Shapes(Application.Caller) ' заносим в диапазон ячеек a2:f2 координаты и размеры выделенной фигуры Range("a2:f2").Value = Array(sha.Left, sha.Top, _ sha.Left + sha.Width, sha.Top + sha.Height, _ sha.Width, sha.Height) sha.Select ' выделяем фигуру, которая запустила макрос End Sub
При импорте содержимого web-страниц на лист EXCEL может попасть множество ненужных объектов: картинок, элементов управления, таблиц, форм. Часть из этих объектов может быть скрыта. Научимся отображать эти объекты, а затем удалять их.
Для примера можно скопировать содержимое любой web-страницы на лист, например,
www.mail.ru
.
Для отображения скрытых объектов необходимо вызвать в меню
команду
Область выделения
.
Нажимая на название объекта (
Picture
1
) можно выделить объект, затем клавишей
DEL
– удалить его если нужно.
Совет
: чтобы удалить элемент управления (см.
Control 13
на рисунке выше) необходимо перейти на вкладке
Разработчик
в режим
Конструктора (
).
Чтобы открыть вкладку
Разработчик
зайдите в меню
.
Выделить ВСЕ объекты можно с помощью инструмента
Выделение группы ячеек
(
). Переключатель установить на
Объекты
.
На первом рисунке (окно
Область выделения
…) видно, все объекты разделены на 2 группы (группы отделены горизонтальной линией). Инструмент
Выделение группы
ячеек
выделяет сначала объекты из нижней группы (наподобие выделения нижнего слоя). После их выделения, а затем удаления с помощью клавиши
DEL
, можно приниматься за вторую группу объектов. Заново вызовите Инструмент
Выделение группы
ячеек,
который выделит теперь оставшиеся элементы (верхнюю группу).
Аналогичный подход может быть использован и для объектов, созданных самостоятельно.
СОВЕТ:
Другим способом удаления картинок, объектов (элементов формы),
гиперссылок
является вставка содержимого web-страницы не прямо в EXCEL, а в стандартное приложение Windows Блокнот (Notepad.exe). После вставки содержимого web-страницы из Буфера обмена в новый документ Блокнота в нем будет содержаться только текст с web-страницы. Затем остается этот текст скопировать в EXCEL.