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

или alternativetext..
Живи и дай жить..
 
Код
For Each IShape In ActiveSheet.Shapes
    If IShape.Name Like "Button*" Then IShape.Delete
Next
Учимся сами и помогаем другим...
 
Это работает, только у меня есть на листе и нужные кнопки... В итоге удалились все, но за идею спасибо. Попробую исключить нужные и удалить оставшиеся. Хотя конечно правильнее бы знать имя конкретного объекта...

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

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

как же вы ими пользуетесь?
Живи и дай жить..
 
По тексту, который виден на кнопке программа ее не находит. В системе она хранится как "Button N", и где это переназначить я найти не могу. В интерфейсе я могу только переназначить макрос и изменить текст...
 
Согласен со Слэном: на копируемом листе зайдите в свойства кнопки и укажите в поле "Замещающий текст" что-нибудь типа "меткаДляУдаления". А в коде
Код
For Each IShape In ActiveSheet.Shapes 
If IShape.AlternativeText = "меткаДляУдаления" Then IShape.Delete 
Next
Учимся сами и помогаем другим...
 
почему же..

Код
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
Живи и дай жить..
 
ber$erk, это понятно, только я не могу найти это свойство кнопки. На закладке Разработчик есть кнопка Свойства. По ней открываются свойства листа. Кнопок там нет. Выделение кнопки мышью тоже результата не дает. Значит что-то не так делаю... Что не так?
 
ПКМ на кнопке - "формат объекта"
Учимся сами и помогаем другим...
 
Слэн, Ваш код у меня не заработал - не удаляет ничего. Наверное Вы пишите про Элементы ActiveX, а у меня вставлена кнопка из Элементы управления формы.
 
Цитата
ber$erk пишет: ПКМ на кнопке - "формат объекта"
[CODE][/CODE]На закладке Свойства - только свойства привязки объекта к фону и печать, на закладке Веб - Замещающий текст и он совпадает с названием кнопки, которое программно не определяется. На закладках Шрифт, Выравнивание, Размер, Защита и Поля для данного случая ничего полезного нет.
Может элементы управления формы так себя и должны вести? А более глубокие свойства доступны только в элементах ActiveX?
 
на закладке "Замещающий текст" напишите "меткаДляУдаления". Скопируйте лист. На новом листе запустите мой код
Учимся сами и помогаем другим...
 
Проверил, все нормально для кнопок ФОРМЫ. Просто Слэн на коленке видно писал для примера и не провреил орфографию
Код
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,, а не могли бы...
вопрос не по теме удален [МОДЕРАТОР].
Изменено: Ivanov Petr - 19.07.2013 16:47:04
Страницы: 1
Наверх