Программное удаление элементов управления с листа Calc

Автор ost, 28 июля 2016, 11:49

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

ost

Добрый день. Растолкуйте, пожалуйста, как программно из макроса удалить все элементы управления (в частности кнопки), имеющиеся на листе Calc.
Спасибо.

rami

На всех листах все элементы управления удаляются так:
Sub disposeForm
oDrawPages=ThisComponent.DrawPages
For i=0 To oDrawPages.Count-1
oForms=oDrawPages(i).Forms
For j=0 To oForms.Count-1
oForms(0).dispose
Next
Next
End Sub

ost

#2
Все заработало. Спасибо. :beer:
Один вопрос. Зачем вложенный цикл (по счетчику j)? Насколько успел заметить, по "oForms(0).dispose" с листа удаляются все кнопки одним махом. Внешний цикл (счетчик i) перебирает листы, а вложенный что? Просто интересно понять.

rami

Цитата: ost от 29 июля 2016, 03:42Один вопрос. Зачем вложенный цикл (по счетчику j)? Насколько успел заметить, по "oForms(0).dispose" с листа удаляются все кнопки одним махом.
Элементы управления содержатся в формах, а форм может быть много. Если удаляется одна форма, то удаляются все элементы в ней содержащиеся, а другие формы (если есть) остаются. Чтобы удалить всё, нужно перебрать все формы.

ost