Удалить кнопку с листа

Автор siti, 4 октября 2022, 10:59

0 Пользователи и 1 гость просматривают эту тему.

siti

2022-10-04_12-57-46.png
Подскажите, как программно удалить эту кнопку с листа?

bigor

Если прямо следовать вопросу, то смотрите здесь
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

sokol92

Владимир.

siti

А эти циклы в обеих примерах обязательны если кнопка одна во всём документе и имя ее известно?

sokol92

В этом сообщении - один цикл. Замените "CONTROL_NAME" на имя Вашего элемента управления ("Кнопка"). Ограничение при использовании этого макроса - имена элементов управления на листе документа Calc не должны повторяться.
Владимир.

bigor

Вариант от rami удаляет все элементы управления всех форм. Если известно на каком листе кнопка (для примера на 0), то можно так:
Sub disposeForm

oDrawPages=ThisComponent.DrawPages

oDrawPages(0).Forms(0).dispose

End Sub
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

siti

В варианте от rami нет ошибки в части oForms(0).dispose
Может oForms(j).dispose ?

bigor

Нет, там правильно. Как я понимаю удаляется постоянно "0 форма". Но при каждом проходе цикла она разная. Так как в первом проходе удалили 0, при втором нулевой стала первая итд. Правда к концу цикла basic наверное ругнется, что формы кончились, а индексы нет   
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

siti

Ну или еще короче и проще если нет большого кол-ва форм:
ThisComponent.DrawPages(0).Forms(0).dispose

Всем спасибо!