Sub ClearPage(Optional numPage As Long)
Dim oDrawPages As Variant
Dim oDrawPage As Variant
Dim nCount As Long
Dim oShape As Variant
Dim i As Long
Dim j As Long
If IsMissing(numPage) Then numPage = 1
oDrawPages = ThisComponent.getDrawPages()
For i = oDrawPages.getCount()-1 To 0 Step -1
If Not IsMissing(numPage) And (numPage<>i) Then
oDrawPage = oDrawPages.getByIndex(i)
For j = oDrawPage.getCount()-1 To 0 Step -1
oShape = oDrawPage.getByIndex(j)
oDrawPage.remove(oShape)
Next j
EndIf
Next i
End Sub
Sub tstClearPage()
ClearPage(1) ' Не стирать страницу Page 2
ClearPage() ' Стереть всё
End Sub
Если человеческим языком, то:
Получить все страницы текущего документа
В цикле перебрать их все
Если процедура запущена с параметром и номер обрабатываемой страницы не равен этому параметру, в цикле перебрать все элементы на текущей странице и дать команду этой самой текущей странице "Удали элемент с таким-то номером"
Вторая, короткая процедура - просто демонстрация двух способов вызова - с параметром и без него