У меня получилась такая программа. Это чтобы при копировании абзацев из браузеров, PDF и др. приводить текст к нормальному виду.
Sub ФорматированиеАбзаца()
Selection.Paragraphs.First.Range.Select
Selection.Paragraphs.First.Range.Font.Name = calibri
Selection.Paragraphs.First.Range.Font.Color = wdColorAutomatic
Selection.Paragraphs.First.Range.Font.Size = 10
Selection.Paragraphs.First.FirstLineIndent = CentimetersToPoints(1.2)
Selection.Paragraphs(1).SpaceBefore = 0
Selection.Paragraphs(1).SpaceAfter = 0
Selection.Paragraphs(1).Space1
For Each i In Selection.Paragraphs(1).Range.Hyperlinks
i.Delete
Next i
Selection.Paragraphs(1).Alignment = wdAlignParagraphJustify
With Selection.Paragraphs(1).Range.Find
.Text = "--"
.Replacement.Text = "^+"
.Execute Replace:=wdReplaceAll
End With
Call Replace_quotes(&H22)
Call Replace_quotes(&H201C)
Call Replace_quotes(&H201D)
Call Replace_quotes(&H201E)
End Sub
Private Sub Replace_quotes(code)
With Selection.Paragraphs(1).Range
.Find.Text = ChrW(code)
.Find.Wrap = wdFindContinue
.Select
While .Find.Execute And .InRange(Selection.Range) = True
.MoveEnd Unit:=wdWord, Count:=1
symbol = Mid(.Text, 2, 1)
If symbol = "." _
Or symbol = ChrW(&H20) _
Or symbol = ChrW(13) _
Or symbol = "," _
Or symbol = ";" _
Or symbol = ":" Then
.MoveEnd Unit:=wdCharacter, Count:=-(Len(.Text) - 1)
.Text = ChrW(&HBB)
Else
.MoveEnd Unit:=wdCharacter, Count:=-(Len(.Text) - 1)
.Text = ChrW(&HAB)
End If
Wend
End With
Selection.HomeKey
End Sub
Комментарии при копировании из VBA в кракозябры превращаются. Как вы их копируете?