Тема: Повторный вызов команды по Enter

Коллеги, подскажите пожалуйта.
Итак, ситуация следующая:
на кнопке вызов прописан как:
^C^C(vl-vbarun "Leader_Routines.CreateLeaderInteractive")^M
Внутри процедуры Leader_Routines.CreateLeaderInteractive
вызывается SendCommand ("_move.....")
и получается, что последней выполненной командой оказывается _move, а хочется что бы была ^C^C(vl-vbarun "Leader_Routines.CreateLeaderInteractive")^M
Есть варианты?

Re: Повторный вызов команды по Enter

Надо заключить все действия твоего макроса в UNDO-блок.
Для этого в начале тела макроса вызываешь метод StartUndoMark объекта ActiveDocument, а в конце - EndUndoMark того же объекта. Таким образом, все твои команды, вызванные из макроса, могут быть отменены одним Унду. Не знаю, поможет ли это.
Ещё попробуй поставить звёздочку* в самом начале кнопочного макроса, или сразу после ^C^C. Звёздочка вызовет зацикливание кнопочной команды.
И наконец, меня осенило. Читай правильный ответ!
Дело в том, что никакой команды твоя кнопка не вызывает!!! Она вызывает лисп-ФУНКЦИЮ (vl-vbarun). Так вот, в акаде существует КОМАНДА VBARUN, которая делает то же самое - вызывает бейсик-макрос. Но если ты напишешь кнопку с участием этой команды, то, во-первых, пиши так: _.-VBARUN, чтобы подавить вылетающее диалоговое окно, где запрашивается имя макроса. А во вторых, по кнопке ENTER будет вызываться VBARUN, да, но, скорее всего, без параметра, то есть она будет снова тупо запрашивать имя бейсик-макроса.
И вот, наконец, правильное решение (я мог привести его сначала, но надеюсь, вся вышеизложенная инфа не будет лишней:)). Так вот, следует в Лиспе определить некую команду, например, так:

(defun c:my_super_command ( / ) (vl-vbarun "Leader_...") (princ))

а в кнопке - ставить вызов ^C^Cmy_super_command;
Надеюсь, это должно сработать:)
Конечно, ты понимаешь, что определение команды (через defun) следует запускать ДО вызова кнопочного макроса. Для этого достаточно включить его в файл автозапуска acaddoc.lsp.

Re: Повторный вызов команды по Enter

Шикарно, шикарно!
_.VBARUN - нельзя использовать, потому как при запуске VBA-кода посредством VBARUN необъяснимым образом очищается PickFirstSelectionSet sad , а при вызове через визуалЛисп все проходит нормально.
Но решение понятно.
Спасибо!!!