Word VBA: Принудительно расставить переносы в словах с дефисом

Автор Svetik, 21 декабря 2015, 21:51

Svetik

Здравствуйте!
У меня есть такая проблема: Word не может расставить правильно автоматические переносы в сложно составных словах с дефисом. Но ручные переносы Word расставляет правильно. Можно ли макросом все такие слова в тексте разбивать переносами принудительно?
Пример неправильно переноса. Есть слово "корпускулярно-волновая". Второе слово "волновая" в конце строки не делится, а переносится на следующую строку целиком. В результате правый край текста становится неровный, т.к. между строкой и правым полем страницы большой промежуток.
Спасибо.

Администратор

Ручные переносы макрос устанавливает только с помощью диалога.

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

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

Чтобы уменьшить кол-во показов диалогов, связанных с переносами, макрос может просматривать не вообще все дефисные слова, а только те, у которых дефис находится в одной строке, а второе слово - в строке ниже. Но могут быть ситуации, когда дефисное слово вообще полностью переносится на строку ниже, поэтому такой способ может быть не эффективным.

Svetik

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

Администратор

Придумал такой обходной вариант. Можно вставлять пробел после дефиса и делать пробел размером 1 пт. Или можно вставлять два пробела: слева неразрывный, а справа - обычный, чтобы было одинаково слева и справа от пробела, и уменьшить эти пробелы до 1 пт.

Svetik

Как-то сложно получиться, если текст выделю весь, размер шрифта изменю, то пробелы появятся. А может быть есть какой-нибудь тонкий пробел? Не половинчатый, о котором я знаю, а еще тоньше?

Администратор