Программное удаление элементов управления формы с рабочего листа при помощи кода VBA Excel. Метод Delete объекта Shape — синтаксис, примеры.
Метод Delete объекта Shape
Синтаксис метода Delete объекта Shape:
Workbooks("BookName").Worksheets("SheetName").Shapes("ShapeName").Delete
- BookName – имя рабочей книги вместе с расширением, книга должна быть открыта.
- SheetName – имя рабочего листа, которое отображается на ярлычке.
- ShapeName – имя элемента управления формы.
Элементы управления формы имеют два имени: основное на английском языке и альтернативное на русском. Как ни странно, оба этих имени можно использовать в качестве ShapeName в выражении, удаляющем элемент управления с рабочего листа.
Чтобы узнать альтернативное имя на русском языке, необходимо кликнуть правой кнопкой мыши по элементу управления формы. Откроется первое контекстное меню, а в адресной строке отобразится альтернативное имя.
Чтобы узнать основное имя на английском языке, необходимо кликнуть правой кнопкой мыши по элементу управления формы с задержкой на одну секунду: нажать кнопку, подождать одну секунду и отпустить. Откроется второе контекстное меню, а в адресной строке отобразится основное имя.
Точно так же определяются основные и альтернативные имена других элементов управления формы.
Удаление одного элемента управления
Удаление элемента управления формы с рабочего листа книги, в которой размещен код:
ThisWorkbook.Worksheets("Лист2").Shapes("Button 5").Delete
Worksheets("Лист4").Shapes("Перекл. 3").Delete
ActiveSheet.Shapes("Drop Down 2").Delete
Удаление элемента управления формы с рабочего листа другой открытой книги:
Workbooks("Чеки.xls").Worksheets("Чек №5").Shapes("Кнопка 2").Delete
Удаление всех элементов управления
Удаление всех элементов управления формы всех типов:
1 2 3 4 5 6 |
Sub Primer_1() Dim myShap As Shape For Each myShap In ActiveSheet.Shapes myShap.Delete Next End Sub |
Этот код удалит все имеющиеся на листе элементы управления формы.
Удаление всех однотипных элементов управления формы:
1 2 3 4 5 6 |
Sub Primer_2() Dim myShap As Shape For Each myShap In ThisWorkbook.ActiveSheet.Shapes If myShap.Name Like "Button*" Then myShap.Delete Next End Sub |
Этот код удалит все имеющиеся на листе элементы, в наименование которых входит подстрока «Button». В данном случае будут удалены все кнопки.
Точно также можно удалить и другие типы элементов управления формы, заменив аргумент оператора Like «Button*» на часть имени другого типа элементов с символом звездочки. Например: «Label*», «Drop Down*», «Check Box*» и т.д.
Смотрите как удалить элементы управления ActiveX с рабочего листа.
Для упрощения ввода данных вы можете вставлять такие элементы управления формы, как флажки и переключатели. Флажки хорошо подходят для форм с несколькими вариантами. Переключатели удобнее использовать, когда у пользователя только один вариант выбора.
Обсуждение закрыто.