Форум по VBA и MS Office

Word => Макросы в Word => Тема начата: Svetik от 21 декабря 2015, 21:51

Название: Word VBA: Принудительно расставить переносы в словах с дефисом
Отправлено: Svetik от 21 декабря 2015, 21:51
Здравствуйте!
У меня есть такая проблема: Word не может расставить правильно автоматические переносы в сложно составных словах с дефисом. Но ручные переносы Word расставляет правильно. Можно ли макросом все такие слова в тексте разбивать переносами принудительно?
Пример неправильно переноса. Есть слово "корпускулярно-волновая". Второе слово "волновая" в конце строки не делится, а переносится на следующую строку целиком. В результате правый край текста становится неровный, т.к. между строкой и правым полем страницы большой промежуток.
Спасибо.
Название: Re: Word VBA: Принудительно расставить переносы в словах с дефисом
Отправлено: Администратор от 22 декабря 2015, 21:29
Ручные переносы макрос устанавливает только с помощью диалога.

И во время работы макроса юзеру надо будет делать такие действия. Макрос ищет слово с дефисом, затем появляется диалог для установки ручного переноса. Юзеру нужно щёлкнуть "Да". Затем появляется сообщение, спрашивающее, нужно ли продолжить в оставшейся части файла. Здесь юзеру нужно щёлкнуть "Нет". Затем появляется сообщение, что расстановка переносов завершена и нужно щёлкнуть "OK".

Таким образом на каждое слово с дефисом будут появляться три диалога и нужно щёлкать три раза.

Чтобы уменьшить кол-во показов диалогов, связанных с переносами, макрос может просматривать не вообще все дефисные слова, а только те, у которых дефис находится в одной строке, а второе слово - в строке ниже. Но могут быть ситуации, когда дефисное слово вообще полностью переносится на строку ниже, поэтому такой способ может быть не эффективным.
Название: Re: Word VBA: Принудительно расставить переносы в словах с дефисом
Отправлено: Svetik от 23 декабря 2015, 18:58
Иногда слово по дефису не разбивается, а просто переносится на другую строку. Значит нужно, чтобы макрос работал со всеми дефисными словами. Мне такое не подходит, т.к. файлы многостраничные и неудобно столько раз щёлкать, работая с диалогами.
Название: Re: Word VBA: Принудительно расставить переносы в словах с дефисом
Отправлено: Администратор от 23 декабря 2015, 20:58
Придумал такой обходной вариант. Можно вставлять пробел после дефиса и делать пробел размером 1 пт. Или можно вставлять два пробела: слева неразрывный, а справа - обычный, чтобы было одинаково слева и справа от пробела, и уменьшить эти пробелы до 1 пт.
Название: Re: Word VBA: Принудительно расставить переносы в словах с дефисом
Отправлено: Svetik от 23 декабря 2015, 21:36
Как-то сложно получиться, если текст выделю весь, размер шрифта изменю, то пробелы появятся. А может быть есть какой-нибудь тонкий пробел? Не половинчатый, о котором я знаю, а еще тоньше?
Название: Re: Word VBA: Принудительно расставить переносы в словах с дефисом
Отправлено: Администратор от 23 декабря 2015, 22:18
Не знаю, есть ли такой пробел.