Как удалить commandbutton excel

Программное удаление элементов управления ActiveX с рабочего листа при помощи кода VBA Excel. Метод Delete объекта OLEobject — синтаксис, примеры.

Метод Delete объекта OLEobject

Синтаксис метода Delete объекта OLEobject:

Workbooks(«BookName»).Worksheets(«SheetName»).OLEobjects(«OLEobjectName»).Delete

  • BookName – имя рабочей книги вместе с расширением, книга должна быть открыта.
  • SheetName – имя рабочего листа, которое отображается на ярлычке.
  • OLEobjectName – имя элемента управления ActiveX.

Чтобы узнать имя элемента управления 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.

kte tab 201905

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!

officetab bottom

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. Image titled Delete a Button in Excel Step 1

    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. Image titled Delete a Button in Excel Step 2

    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. Image titled Delete a Button in Excel Step 3

    3

    Hover over Options/Preferences and select Customize Ribbon/Ribbon & Toolbar. A new window will open with options for the editing ribbon.[1]

  4. Image titled Delete a Button in Excel Step 4

    4

    Click to select the box next to «Developer.« It’s under «Main Tabs.»[2]

  5. Image titled Delete a Button in Excel Step 5

    5

    Click Save and close the window (if necessary). If the window doesn’t close by itself, you need to click the x manually.

  6. Advertisement

  1. Image titled Delete a Button in Excel Step 6

    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. Image titled Delete a Button in Excel Step 7

    2

    Turn on Design Mode. Go to the Developer tab and click Design Mode in the «Controls» group.[3]

  3. Image titled Delete a Button in Excel Step 8

    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. Image titled Delete a Button in Excel Step 9

    4

    Press Backspace (Windows) or Delete (Mac). The selected buttons will disappear from your worksheet.[4]

  5. 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
Регистрация: 17.07.2013

Здравствуйте все.
На листе есть Кнопка (элемент управления формы) для запуска макроса. Я программно копирую часть этого листа на другой лист вместе с кнопкой, но на новом месте она не нужна.  По тексту-названию кнопки объект программно не находится. При записи макроса удаления, объект был назван «Button 93», но номер при каждом копировании меняется… Подскажите, пожалуйста, где можно найти ее имя или как посмотреть текущий номер этого объекта, чтобы можно было ей управлять.

 

Слэн

Пользователь

Сообщений: 5192
Регистрация: 16.01.2013

а по надписи на ней?

или alternativetext..

 

ber$erk

Пользователь

Сообщений: 2735
Регистрация: 25.12.2012

#3

18.07.2013 15:17:42

Код
For Each IShape In ActiveSheet.Shapes
    If IShape.Name Like "Button*" Then IShape.Delete
Next

Учимся сами и помогаем другим…

 

aws1967

Пользователь

Сообщений: 32
Регистрация: 17.07.2013

#4

18.07.2013 15:25:38

Это работает, только у меня есть на листе и нужные кнопки… В итоге удалились все, но за идею спасибо. Попробую исключить нужные и удалить оставшиеся. Хотя конечно правильнее бы знать имя конкретного объекта…

Цитата
Слэн пишет: а по надписи на ней?

По надписи не идентифицируется.

 

Слэн

Пользователь

Сообщений: 5192
Регистрация: 16.01.2013

#5

18.07.2013 15:33:25

Цитата
aws1967 пишет:
По надписи не идентифицируется.

почему? что все кнопки с одинаковыми надписями?

как же вы ими пользуетесь?

Живи и дай жить..

 

aws1967

Пользователь

Сообщений: 32
Регистрация: 17.07.2013

По тексту, который виден на кнопке программа ее не находит. В системе она хранится как «Button N», и где это переназначить я найти не могу. В интерфейсе я могу только переназначить макрос и изменить текст…

 

ber$erk

Пользователь

Сообщений: 2735
Регистрация: 25.12.2012

#7

18.07.2013 15:40:12

Согласен со Слэном: на копируемом листе зайдите в свойства кнопки и укажите в поле «Замещающий текст» что-нибудь типа «меткаДляУдаления». А в коде

Код
For Each IShape In ActiveSheet.Shapes 
If IShape.AlternativeText = "меткаДляУдаления" Then IShape.Delete 
Next

Учимся сами и помогаем другим…

 

Слэн

Пользователь

Сообщений: 5192
Регистрация: 16.01.2013

#8

18.07.2013 15:48:33

почему же..

Код
for each but in activesheet.shapes
   if but.name like "butt*" then
      if but.drawingobect.object.caption="ваша надпись" then but.delete
   endif
next but

Изменено: Слэн18.07.2013 15:49:44

Живи и дай жить..

 

aws1967

Пользователь

Сообщений: 32
Регистрация: 17.07.2013

ber$erk, это понятно, только я не могу найти это свойство кнопки. На закладке Разработчик есть кнопка Свойства. По ней открываются свойства листа. Кнопок там нет. Выделение кнопки мышью тоже результата не дает. Значит что-то не так делаю… Что не так?

 

ber$erk

Пользователь

Сообщений: 2735
Регистрация: 25.12.2012

ПКМ на кнопке — «формат объекта»

Учимся сами и помогаем другим…

 

aws1967

Пользователь

Сообщений: 32
Регистрация: 17.07.2013

Слэн, Ваш код у меня не заработал — не удаляет ничего. Наверное Вы пишите про Элементы ActiveX, а у меня вставлена кнопка из Элементы управления формы.

 

aws1967

Пользователь

Сообщений: 32
Регистрация: 17.07.2013

#12

18.07.2013 16:13:23

Цитата
ber$erk пишет: ПКМ на кнопке — «формат объекта»

[CODE][/CODE]На закладке Свойства — только свойства привязки объекта к фону и печать, на закладке Веб — Замещающий текст и он совпадает с названием кнопки, которое программно не определяется. На закладках Шрифт, Выравнивание, Размер, Защита и Поля для данного случая ничего полезного нет.
Может элементы управления формы так себя и должны вести? А более глубокие свойства доступны только в элементах ActiveX?

 

ber$erk

Пользователь

Сообщений: 2735
Регистрация: 25.12.2012

на закладке «Замещающий текст» напишите «меткаДляУдаления». Скопируйте лист. На новом листе запустите мой код

Учимся сами и помогаем другим…

 

Igor67

Пользователь

Сообщений: 3729
Регистрация: 21.12.2012

#14

18.07.2013 16:33:23

Проверил, все нормально для кнопок ФОРМЫ. Просто Слэн на коленке видно писал для примера и не провреил орфографию

Код
Sub delitKnopka()
Dim but As Object
For Each but In ActiveSheet.Shapes
   If but.Name Like "Button*" Then
      If but.DrawingObject.Caption = "Привет" Then but.Delete
   End If
Next but
End Sub
 

aws1967

Пользователь

Сообщений: 32
Регистрация: 17.07.2013

#15

18.07.2013 16:40:14

Цитата
на закладке «Замещающий текст» напишите «меткаДляУдаления». Скопируйте лист. На новом листе запустите мой код

Все заработало. Большое спасибо.

 

Ivanov Petr

Пользователь

Сообщений: 43
Регистрация: 01.01.1970

#16

19.07.2013 15:29:34

aws1967,, а не могли бы…
вопрос не по теме удален [МОДЕРАТОР].

Изменено: Ivanov Petr19.07.2013 16:47:04

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Как удалить checkbox в excel
  • Как удалить alt enter в excel
  • Как удалить 1000000 строк в excel
  • Как удалит пустую страницу word 2007
  • Как удалит подложку на word

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии