Как ускорить обработку макросом

При большом количестве объектов макросы медленно работают. Знаю, что есть способы ускорить процесс, но в справке не нашла. Только вот на форумах практические команды:

ActiveDocument.BeginCommandGroup "Scatter clones"
Optimization = True
EventsEnabled = False
ActiveDocument.PreserveSelection = False

'код код код

ActiveDocument.EndCommandGroup
Optimization = False
EventsEnabled = True
ActiveDocument.PreserveSelection = True

CorelScript.RedrawScreen

Вот как тут синтаксис понять? Если честно, я себе просто вставила эти куски и оно залетало! но прикол в том, что у меня-то код - отнюдь не про клонирование. А как правильно поменять, не знаю, даже где почитать, непонятно. В справке по VBA в Кореле эта функция BeginCommandGroup просто названа, и все, понимайте, как хотите.

Вообще то в справке есть описание с примерами. Вот например кусок:

The BeginCommandGroup method marks the start of a group of commands. By starting a command group, you define a sequence of document handling commands that you can undo in a single step.

Спасибо. В моем CorelDraw VBA Help ничего подобного близко нет.

CorelScript.BeginCommandGroup
Function BeginCommandGroup(UndoString As String) As Long
Member of CorelScript
Parameters Description
UndoString

И ни слова больше. И так про все. Работать ужасно неудобно. Где же эти справочники найти?

Нашла: надо было искать не через "слово" - F1, а задать в строке поиска, и выбрать из результатов не первый раздел, а где-то ниже, "Document.BeginCommandGroup". Там действительно есть кое-какие важные подробности.

Но такая навигация, конечно, это жесть.

На самом деле всё очень просто — ставится курсор на BeginCommandGroup в коде (или на любую другую функцию, свойство...) или в браузере объектов, и нажимается клавиша F1. И ни чего не нужно искать.

Sancho, спасибо, я именно так и ищу всегда, вот пишу же в предыдущем посте (слово -> F1). Только тут выдача абсолютно неинформативная получается. До более подробной информации по этой функции только через поиск по справке.

И еще такой вопрос - они там предупреждают о риске слета. Да, у меня так пару раз слетало, когда макрос прерывался до разморозки экрана. Надо так понимать, что в таком случае достаточно закрыть активный документ? Или весь Корел перезагрузить? А то толком не помню, там что-то вроде тогда стало и в панелях глючить... а восстанавливать ситуацию и экспериментировать что-то желания нет.

Или, допустим, вернуться в редактор и запустить разморозку (финальную часть кода) отдельно?

ekali, не знаю что за версия такая где не работает справка, у меня Х5 (sp3 + hf) и всё работает как нужно. А по поводу риска, нужно просто делать обработчик ошибок, например вот так:

Sub DoSomething()
  On Error GoTo myEndSub
  boostStart "Something"
  
  'code here
  
  boostFinish True
  Exit Sub
myEndSub:
  boostFinish True
  MsgBox Err.Number & vbCr & Err.Description, vbCritical, "Error"
End Sub

Public Sub boostStart(Optional ByVal unDo$ = "")
  On Error Resume Next
  If unDo <> "" Then ActiveDocument.BeginCommandGroup unDo
  Optimization = True
  EventsEnabled = False
  ActiveDocument.SaveSettings
  ActiveDocument.PreserveSelection = False
End Sub

Public Sub boostFinish(Optional ByVal endUndoGroup% = False)
  On Error Resume Next
  ActiveDocument.PreserveSelection = True
  ActiveDocument.RestoreSettings
  EventsEnabled = True
  Optimization = False
  Application.CorelScript.RedrawScreen
  If endUndoGroup Then ActiveDocument.EndCommandGroup
  CorelDRAW.Refresh
End Sub

Спасибо, очень прикольно. У меня X4, происхождение не помню.

происхождение не помню

Прочитайте правила портала, если ещё этого не сделали. :)

при чем здесь правила, я его у себя на съемном диске в декабре нашла.