Очень полезен, когда файл из формата txt форматируешь в ворд - нужно убирать лишние символы параграфа.
Вот то что успел сваять, но он не рабочий.
Вопросами ??? помечен кусок, где нужно как-то вносить изменеия в документ, и кроме того, как-то обновлять range с параграфами.
Как это сделать?
Код: Выделить всё
Sub MakeParaNew1()
'Если нет выделенного текста, отметить всё!
If Selection.End = Selection.Start Then
Selection.WholeStory
End If
'Заменить переводы строки на переводы параграфы.
'ReplaceLineBreaksWithPara - макрос
'Заменить повторяющиеся пробелы на один пробел.
'ReplaceWhiteSpaces - макрос
'Убрать начальные пробелы.
Dim cur_para As Paragraph
Dim paras As Paragraphs
Dim left1 As Range
Dim line As String
Dim text1 As String
Dim text2 As String
Dim para_count As Integer
Dim test_counter As Integer
test_counter = 0
Set paras = Selection.Paragraphs
For i_para = 1 To paras.Count - 1
'Debug.Print i_para & paras(i_para).Range.text
'Убрать пробелы с начала и с конца
text1 = Trim(paras(i_para).Range.text)
text2 = Trim(paras(i_para + 1).Range.text)
'paras(i_para).Range.text = text1
'paras(i_para + 1).Range.text = text2
'Проверка следующих условий
If Len(text1) > 1 And Len(text2) > 1 And Right(text2, 1) = "." Then
'Заменить последний символ в строке с chr(13) на chr(32)
Mid(text1, Len(text1) + 1, 1) = Chr(32)
text1 = text1 & text2
'??? Как теперь эту строчку вставить ????
'??? Да, как я понимаю, paras после этого не будет валидным, как его обновить?
'??? Если так: paras = Selection.Paragraphs - то мы зациклимся !
End If
Debug.Print i_para & text1
test_counter = test_counter + 1
Next para_count
MsgBox ("Обработано " & test_counter & " строк.")
End Sub