[oodisc] нБЛТПУ ДМС РЕТЕЧПДЮЙЛПЧ

Serhiy Kuznyetsov sergeyvk ОБ ukr.net
чУ йАО 27 17:42:53 MSD 2004


Здравствуйте!

Одно из моих заданий - это перевод. Для Ворда у меня есть один макрос. Коротко опишу его действия. Открытые окна с оригиналом и для перевода он располагает горизонтально. Когда я нажимаю одну комбинацию клавиш, то макрос выделяет первое предложение оригинала, увеличивает шрифт до 14, меняет цвет на синий и формат шрифта на подчеркнутый и снова делает активным окно перевода. Таким образом переводимое предложение выделяется из других. Когда это предложение переведено, то повторное нажатие этой комбинации приводит к тому, что предыдущее выделение снимается и таким же образом выделяется следующее предложение. Это было очень удобно для перевода.

Хотя Ворд и стоит у меня, работаю я в основном в OpenOffice.org 1.1.0. К сожалению, я не смог сделать подобный макрос, и для перевода я себе сделал с помощью команды "Запись макроса" иной макрос. Суть его действия: он выделяет текст оригинала, устанавливает язык Английский (США), меняет цвет шрифта на синий (128) и после каждого английского абзаца вставляет пустой абзац, отформатированный как Русский и черный. Таким образом я могу сразу же переводить абзацы, а потом с помощью другого макроса удалить  синий английский текст (я надеюсь, что у меня получится написать тот макрос :-) .

Я встретился со следующей проблемой: я не могу задать условия для цикла Do...Loop, чтобы когда текст закончился, макрос мог остановиться. Пока я останавливаю его следующим образом: в конце текста я вручную вставляю много (около 20) абзацев, состоящих из одной буквы, слежу за работой макроса, и когда он добирается до этих абзацев, то вручную останавливаю его (я вывел себе кнопку Остановить макрос на панель инструментов). Дело в том, что если вставить просто пустые абзацы, без хотя бы одной буквы, то постоянно выскакивает диалоговое окно "Продолжить поиск с начала документа?", и макрос уже не остановить, и приложение приходится просто снимать с потерей всех изменений.

Во вложении я посылаю макрос. Если кто может и имеет время, то помогите, пожалуйста задать условие цикла Do...Loop. Дело в том, что макрос ищет последний символ в абзаце (а не сам абзац), и я не знаю, как ему сказать, что если таких символов больше нет (то есть, достигнут конец документа), то следует выйти из цикла.

Заранее вам всем признателен, Сергей Кузнецов

P.S. В принципе, если кто умеет, то может перед началом выполнения этого макроса задать диалоги, в которых бы пользователь мог установить, с какого и на какой язык он переводит, чтобы это макрос был доступен более широкому кругу. А я перевожу лишь с английского на русский. Также я готов в качестве благодарности если надо, перевести что-то с английского на русский для русского проекта OpenOffice.
----------- УМЕДХЭБС ЮБУФШ -----------
вЩМП ХДБМЕОП ЧМПЦЕОЙЕ ОЕ Ч ФЕЛУФПЧПН ЖПТНБФЕ...
йНС     : GetRadyToTranslate.bas
фЙР     : application/octet-stream
тБЪНЕТ  : 2880 ВБКФПЧ
пРЙУБОЙЕ: ПФУХФУФЧХЕФ
Url     : http://lists.openoffice.ru/pipermail/oo-discuss/attachments/20040627/aa97c8cb/GetRadyToTranslate.obj


рПДТПВОБС ЙОЖПТНБГЙС П УРЙУЛЕ ТБУУЩМЛЙ Oo-discuss