Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Обработка Абзацев в Word

8.2K
24 ноября 2005 года
mohito
35 / / 24.11.2005
HELP
Нужно написатьпрограмму которая "подправляет" абзацы в документе Word, т.е. удаляет лишние переводы строк после абзаца.
Помгоите плиз. горю.
8.9K
10 декабря 2005 года
Залетин Виталий
71 / / 10.12.2005
Цитата:
Originally posted by mohito
HELP
Нужно написатьпрограмму которая "подправляет" абзацы в документе Word, т.е. удаляет лишние переводы строк после абзаца.
Помгоите плиз. горю.


:!!!: Там есть объект Paragraph

8.2K
10 декабря 2005 года
mohito
35 / / 24.11.2005
Цитата:
Originally posted by Залетин Виталий
:!!!: Там есть объект Paragraph



Я знаю... Но как им воспользоваться? У неего весьма ограниченные возможности методов... И во многих случаешь он попросту вешает компьютер...

8.9K
10 декабря 2005 года
Залетин Виталий
71 / / 10.12.2005
Цитата:
Originally posted by mohito
Я знаю... Но как им воспользоваться? У неего весьма ограниченные возможности методов... И во многих случаешь он попросту вешает компьютер...


:P Ну, могу еще предложить такой макрос:
Sub ee()
On Error Resume Next

Dim r As Range, i As Long

For Each r In ActiveDocument.Words
If Asc(Left$(r.Text, 1)) = 13 Then
If Asc(Left$(r.Previous.Text, 1)) = 13 Then
i = i + 1
r.Delete
End If
End If
Word.StatusBar = i
DoEvents
Next
End Sub

Теперь смысл "Asc(Left$(": ворд считает словами все. Потому и проверяем, если первый левый символ слова - знак абзаца (код = 13), то проверяем предыдущий так же, и если он тоже символ абзаца, то удаляем текущий (после символа абзаца в сове ничего быть не может - только в новом слове). Это сделано так, наспех, но работает. Если документ большой, то и время для очитски тоже нужно большое. Насчет объекта Paragraph может я и погарячился, но вешать компьютер он никак не может. Просто идет очень большой цикл, который забирает все ресурсы, но он работает. Такие вещи логичнее делать в отдельном потоке, но, поскольку в бейсике с этим очень даже плохо, то самая распространенная рекомендация по эмуляции многопоточности - использовать функцию DoEvents - и работать будет все, и приложение будет доступно, но процессор занят на 100%. Но для временной работы можно этим и пожертвовать.

8.9K
10 декабря 2005 года
Залетин Виталий
71 / / 10.12.2005
Цитата:
Originally posted by mohito
Я знаю... Но как им воспользоваться? У неего весьма ограниченные возможности методов... И во многих случаешь он попросту вешает компьютер...


:P И еще: фраза On Error Resume Next нужна для того, чтоб не выскочила ошибка при просмотре первого слова, перед которым, ясное дело, нет слов!

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог