Sub PasteFromExcelAndFormat()
Dim para As Paragraph
Dim rng As Range
Dim normalStyle As Style
' Вставка только текста
Selection.PasteSpecial DataType:=wdPasteText
If Selection.Type = wdSelectionIP Then Exit Sub
' Находим стиль «Обычный» (в русской версии) или «Normal» (в английской)
On Error Resume Next
Set normalStyle = ActiveDocument.Styles("Обычный")
If normalStyle Is Nothing Then Set normalStyle = ActiveDocument.Styles("Normal")
On Error GoTo 0
For Each para In Selection.Paragraphs
' Применяем базовый стиль, если он найден
If Not normalStyle Is Nothing Then para.Style = normalStyle
With para.ParagraphFormat
.SpaceAfter = 0
.SpaceBefore = 0
.LineSpacingRule = 0 ' 0 = wdLineSpaceSingle (одинарный)
End With
With para.Range.Font
.Name = "Times New Roman"
.Size = 11
End With
' Преобразование текста: первая буква каждого слова заглавная
Set rng = para.Range
rng.MoveEnd Unit:=wdCharacter, Count:=-1 ' исключаем знак конца абзаца
If rng.Characters.Count > 0 Then
rng.Text = StrConv(rng.Text, vbProperCase)
End If
Next para
' Снимаем выделение
Selection.Collapse Direction:=wdCollapseEnd
End Sub