Загрузка данных


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