Обработка Абзацев в Word
Нужно написатьпрограмму которая "подправляет" абзацы в документе Word, т.е. удаляет лишние переводы строк после абзаца.
Помгоите плиз. горю.
HELP
Нужно написатьпрограмму которая "подправляет" абзацы в документе Word, т.е. удаляет лишние переводы строк после абзаца.
Помгоите плиз. горю.
:!!!: Там есть объект Paragraph
:!!!: Там есть объект Paragraph
Я знаю... Но как им воспользоваться? У неего весьма ограниченные возможности методов... И во многих случаешь он попросту вешает компьютер...
Я знаю... Но как им воспользоваться? У неего весьма ограниченные возможности методов... И во многих случаешь он попросту вешает компьютер...
: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%. Но для временной работы можно этим и пожертвовать.
Я знаю... Но как им воспользоваться? У неего весьма ограниченные возможности методов... И во многих случаешь он попросту вешает компьютер...
:P И еще: фраза On Error Resume Next нужна для того, чтоб не выскочила ошибка при просмотре первого слова, перед которым, ясное дело, нет слов!