Программное удаление элементов управления ActiveX с рабочего листа при помощи кода VBA Excel. Метод Delete объекта OLEobject — синтаксис, примеры.
Метод Delete объекта OLEobject
Синтаксис метода Delete объекта OLEobject:
Workbooks(«BookName»).Worksheets(«SheetName»).OLEobjects(«OLEobjectName»).Delete |
- BookName – имя рабочей книги вместе с расширением, книга должна быть открыта.
- SheetName – имя рабочего листа, которое отображается на ярлычке.
- OLEobjectName – имя элемента управления ActiveX.
Чтобы узнать имя элемента управления ActiveX, необходимо при включенном режиме конструктора кликнуть левой кнопкой мыши по элементу. В адресной строке отобразится имя, которое можно скопировать в буфер обмена.
Имя элемента ActiveX в адресной строке
На изображении в строке формул вы видите текст: =ВНЕДРИТЬ("Forms.ComboBox.1";"")
. Если вы случайно кликните по нему, выйти из строки формул можно будет только нажав клавишу «Esc».
Удаление элемента управления ActiveX с рабочего листа книги, в которой размещен код:
ThisWorkbook.Worksheets(«Лист1»).OLEobjects(«CommandButton1»).Delete Worksheets(«Лист1»).OLEobjects(«TextBox2»).Delete ActiveSheet.OLEobjects(«OptionButton1»).Delete |
Удаление элемента управления ActiveX с рабочего листа другой открытой книги:
Workbooks(«Реестры.xls»).Worksheets(«Приказы»).OLEobjects(«ComboBox2»).Delete |
Удаление всех элементов ActiveX
Удаление всех элементов управления ActiveX всех типов:
Sub Primer_1() Dim myOLEobject As OLEobject For Each myOLEobject In ActiveSheet.OLEobjects myOLEobject.Delete Next End Sub |
Этот код удалит все имеющиеся на листе элементы ActiveX.
Удаление всех однотипных элементов управления ActiveX:
Sub Primer_2() Dim myOLEobject As OLEobject For Each myOLEobject In ThisWorkbook.ActiveSheet.OLEobjects If myOLEobject.Name Like «ComboBox*» Then myOLEobject.Delete Next End Sub |
Этот код удалит все имеющиеся на листе элементы, в наименование которых входит подстрока «ComboBox». В данном случае будут удалены все поля со списком.
Точно также можно удалить и другие типы элементов управления ActiveX, заменив аргумент оператора Like «ComboBox*» на часть имени другого типа элементов с символом звездочки. Например: «CommandButton*», «Label*», «OptionButton*» и т.д.
Смотрите как удалить элементы управления формы с рабочего листа.
В этой статье говорится об удалении всех кнопок управления формой или командных кнопок с активного листа в Excel.
Удалите все кнопки, включая кнопки управления формой и командные кнопки, выбрав их все
Удалите все кнопки, включая кнопки управления формой и командные кнопки, с помощью кода VBA
Удалите все кнопки управления формой или командные кнопки с кодом VBA
Удалите все кнопки, включая кнопки управления формой и командные кнопки, выбрав их все
Чтобы удалить все кнопки (включая кнопки управления формой и кнопки команд) с активного листа, сделайте следующее.
1. Включите режим дизайна, нажав Застройщик > Режим проектирования. Смотрите скриншот:
2. Выберите одну из командных кнопок и нажмите Ctrl + A клавиши для выбора всех кнопок на текущем листе.
3. нажмите Удалить для удаления всех выбранных кнопок.
Внимание: Если на этом листе есть другие объекты, они также будут выбраны.
Удалите все кнопки, включая кнопки управления формой и командные кнопки, с помощью кода VBA
Кроме того, вы можете применить ниже сценарий VBA, чтобы удалить все кнопки с текущего рабочего листа в Excel.
1. Откройте рабочий лист, содержащий кнопки, которые вы хотите удалить, а затем нажмите другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули, затем скопируйте ниже код VBA в окно кода.
Код VBA: удалить все кнопки с активного листа
Sub Clear_ButtonsActiveSheet()
Dim I As Long
Dim xOLE As Object
On Error Resume Next
ActiveSheet.Buttons.Delete
For Each xOLE In ActiveSheet.OLEObjects
If TypeName(xOLE.Object) = "CommandButton" Then
xOLE.Delete
End If
Next
End Sub
3. Press the F5 key to run the code. Then all buttons including form control buttons and command buttons are removed from current worksheet immediately.
Remove all form control buttons or command buttons with VBA code
If you only want to remove all form control buttons or all command buttons from active sheet. You can try the below VBA codes to achieve it.
1. Open the worksheet contains the buttons you want to remove, and then press the Alt + F11 keys to open the Microsoft Visual Basic for Applications window.
2. In the Microsoft Visual Basic for Applications window, click Insert > Module, then copy below VBA code into the Code window.
VBA code: Remove all form control buttons from active sheet
Sub Clear_ButtonsActiveSheet()
ActiveSheet.Buttons.Delete
End Sub
VBA code: Remove all command buttons from active sheet
Sub Clear_ButtonsActiveSheet()
Dim xOLE As Object
On Error Resume Next
For Each xOLE In ActiveSheet.OLEObjects
If TypeName(xOLE.Object) = "CommandButton" Then
xOLE.Delete
End If
Next
End Sub
3. Press the F5 key to run the code.
Then all form control buttons or all command buttons are removed from current worksheet immediately.
Related articles:
- How to insert a blank new row automatically by Command Button in Excel?
- How to use Command Button to save active worksheet as PDF file in Excel?
- How to update or insert (current) date and time by a Command Button in Excel?
- How to use a Command Button to change a specified cell value in Excel?
The Best Office Productivity Tools
Kutools for Excel Solves Most of Your Problems, and Increases Your Productivity by 80%
- Reuse: Quickly insert complex formulas, charts and anything that you have used before; Encrypt Cells with password; Create Mailing List and send emails…
- Super Formula Bar (easily edit multiple lines of text and formula); Reading Layout (easily read and edit large numbers of cells); Paste to Filtered Range…
- Merge Cells/Rows/Columns without losing Data; Split Cells Content; Combine Duplicate Rows/Columns… Prevent Duplicate Cells; Compare Ranges…
- Select Duplicate or Unique Rows; Select Blank Rows (all cells are empty); Super Find and Fuzzy Find in Many Workbooks; Random Select…
- Exact Copy Multiple Cells without changing formula reference; Auto Create References to Multiple Sheets; Insert Bullets, Check Boxes and more…
- Extract Text, Add Text, Remove by Position, Remove Space; Create and Print Paging Subtotals; Convert Between Cells Content and Comments…
- Super Filter (save and apply filter schemes to other sheets); Advanced Sort by month/week/day, frequency and more; Special Filter by bold, italic…
- Combine Workbooks and WorkSheets; Merge Tables based on key columns; Split Data into Multiple Sheets; Batch Convert xls, xlsx and PDF…
- More than 300 powerful features. Supports Office / Excel 2007-2021 and 365. Supports all languages. Easy deploying in your enterprise or organization. Full features 30-day free trial. 60-day money back guarantee.
Read More… Free Download… Purchase…
Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier
- Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
- Open and create multiple documents in new tabs of the same window, rather than in new windows.
- Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
Read More… Free Download… Purchase…
Comments (1)
No ratings yet. Be the first to rate!
Download Article
Download Article
- Enabling the Developer Tab
- Removing Buttons
|
This wikiHow will teach you how to delete a button or control in Excel on a computer. You’ll need to have enabled the Developer tab on the editing ribbon to do this.
-
1
Open Excel. It’s in your Start menu or Applications folder in Finder.
- The Developer tab will remain visible until you turn it off or reinstall Microsoft Office.
-
2
Click File (Windows) or Excel (Mac). You’ll see the «File» tab in the editing ribbon above your workspace for Windows and the «Excel» tab in the menu at the top of your screen for a Mac.
Advertisement
-
3
Hover over Options/Preferences and select Customize Ribbon/Ribbon & Toolbar. A new window will open with options for the editing ribbon.[1]
-
4
Click to select the box next to «Developer.« It’s under «Main Tabs.»[2]
-
5
Click Save and close the window (if necessary). If the window doesn’t close by itself, you need to click the x manually.
Advertisement
-
1
Open your project in Excel. You can open your project within Excel by going to File > Open or you can right-click the Excel file and select Open with > Excel.
-
2
Turn on Design Mode. Go to the Developer tab and click Design Mode in the «Controls» group.[3]
-
3
Select the button/controls you want to delete. Click to select them, and they will highlight to indicate that you have them selected.
- You can also select all the buttons in your Excel project by pressing CTRL/Cmd + A.
-
4
Press ← Backspace (Windows) or Delete (Mac). The selected buttons will disappear from your worksheet.[4]
Advertisement
Ask a Question
200 characters left
Include your email address to get a message when this question is answered.
Submit
Advertisement
Thanks for submitting a tip for review!
References
About This Article
Article SummaryX
1. Enable the Developer tab in Excel.
2. Turn on Design Mode.
3. Select the button/controls you want to delete.
4. Press Backspace/Delete.
Did this summary help you?
Thanks to all authors for creating a page that has been read 19,217 times.
Is this article up to date?
Удалить все кнопки (елементы управления формой):[vba]
Код
Sub delAll()
ActiveSheet.Buttons.Delete
End Sub
[/vba]
Удалить все кнопки (активИкс):[vba]
Код
Sub dell()
For Each ob In ActiveSheet.OLEObjects
If ob.Name Like «CommandButton*» Then
ob.Delete
End If
Next
End Sub
[/vba]
Удалить по названию:
[vba]
Код
Sub del()
Dim i&, tx$
tx = InputBox(«Введите подпись кнопки для удаления»)
On Error Resume Next
For i = 1 To ActiveSheet.OLEObjects.Count
If ActiveSheet.OLEObjects.Item(i).Object.Caption = tx Then
ActiveSheet.OLEObjects.Item(i).Delete
End If
Next
For i = 1 To ActiveSheet.Buttons.Count
If ActiveSheet.Buttons.Item(i).Caption = tx Then
ActiveSheet.Buttons.Item(i).Delete
End If
Next
End Sub
[/vba]
aws1967 Пользователь Сообщений: 32 |
Здравствуйте все. |
Слэн Пользователь Сообщений: 5192 |
а по надписи на ней? или alternativetext.. |
ber$erk Пользователь Сообщений: 2735 |
#3 18.07.2013 15:17:42
Учимся сами и помогаем другим… |
||
aws1967 Пользователь Сообщений: 32 |
#4 18.07.2013 15:25:38 Это работает, только у меня есть на листе и нужные кнопки… В итоге удалились все, но за идею спасибо. Попробую исключить нужные и удалить оставшиеся. Хотя конечно правильнее бы знать имя конкретного объекта…
По надписи не идентифицируется. |
||
Слэн Пользователь Сообщений: 5192 |
#5 18.07.2013 15:33:25
почему? что все кнопки с одинаковыми надписями? как же вы ими пользуетесь? Живи и дай жить.. |
||
aws1967 Пользователь Сообщений: 32 |
По тексту, который виден на кнопке программа ее не находит. В системе она хранится как «Button N», и где это переназначить я найти не могу. В интерфейсе я могу только переназначить макрос и изменить текст… |
ber$erk Пользователь Сообщений: 2735 |
#7 18.07.2013 15:40:12 Согласен со Слэном: на копируемом листе зайдите в свойства кнопки и укажите в поле «Замещающий текст» что-нибудь типа «меткаДляУдаления». А в коде
Учимся сами и помогаем другим… |
||
Слэн Пользователь Сообщений: 5192 |
#8 18.07.2013 15:48:33 почему же..
Изменено: Слэн — 18.07.2013 15:49:44 Живи и дай жить.. |
||
aws1967 Пользователь Сообщений: 32 |
ber$erk, это понятно, только я не могу найти это свойство кнопки. На закладке Разработчик есть кнопка Свойства. По ней открываются свойства листа. Кнопок там нет. Выделение кнопки мышью тоже результата не дает. Значит что-то не так делаю… Что не так? |
ber$erk Пользователь Сообщений: 2735 |
ПКМ на кнопке — «формат объекта» Учимся сами и помогаем другим… |
aws1967 Пользователь Сообщений: 32 |
Слэн, Ваш код у меня не заработал — не удаляет ничего. Наверное Вы пишите про Элементы ActiveX, а у меня вставлена кнопка из Элементы управления формы. |
aws1967 Пользователь Сообщений: 32 |
#12 18.07.2013 16:13:23
[CODE][/CODE]На закладке Свойства — только свойства привязки объекта к фону и печать, на закладке Веб — Замещающий текст и он совпадает с названием кнопки, которое программно не определяется. На закладках Шрифт, Выравнивание, Размер, Защита и Поля для данного случая ничего полезного нет. |
||
ber$erk Пользователь Сообщений: 2735 |
на закладке «Замещающий текст» напишите «меткаДляУдаления». Скопируйте лист. На новом листе запустите мой код Учимся сами и помогаем другим… |
Igor67 Пользователь Сообщений: 3729 |
#14 18.07.2013 16:33:23 Проверил, все нормально для кнопок ФОРМЫ. Просто Слэн на коленке видно писал для примера и не провреил орфографию
|
||
aws1967 Пользователь Сообщений: 32 |
#15 18.07.2013 16:40:14
Все заработало. Большое спасибо. |
||
Ivanov Petr Пользователь Сообщений: 43 |
#16 19.07.2013 15:29:34 aws1967,, а не могли бы… Изменено: Ivanov Petr — 19.07.2013 16:47:04 |