Выравнивание текста в word - VBA

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. нужна помощь в данном вопросе. нужно в выбранном файле(пользователь сам выбирает файл) выровнять весь текст по центру, при этом что бы таблицы,заголовки и картинки оставались не тронутыми. Пробовал через стандартное выделение но там затрагивает все.

Решение задачи: «Выравнивание текста в word»

textual
Листинг программы
Sub CommandButton2_Click()
    Dim FileName As String, oMyDoc As Word.Document
    FileName = GetFilePath
    If FileName$ = "" Then Exit Sub
    MsgBox "Выбран файл: " & FileName$
    Set oMyDoc = Documents.Open(FileName$)
    oMyDoc.Activate
    Dim P As Paragraph
    For Each P In ActiveDocument.Paragraphs
       If IsOrdinaryParagraph(P) Then P.Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
    Next
End Sub
Function IsOrdinaryParagraph(Par As Paragraph) As Boolean
    Dim ParCharLen&, i&
    With Par.Range
        ParCharLen = Len(Trim$(.Text))
        If ParCharLen = 1 Then Exit Function            ' Пустая строка
        If .ListFormat.ListType > 0 Then Exit Function  ' Список
        If .Tables.Count > 0 Then Exit Function         ' Таблица
        If .InlineShapes.Count > 0 Then Exit Function   ' Рисунок
        If .OMaths.Count > 0 Then Exit Function         ' Формула
        If .Style.NameLocal Like "Заголовок*" Then Exit Function 'Заголовок
        Select Case .StoryType
            Case wdCommentsStory ' Комментарии.
                Exit Function
            Case wdEndnoteContinuationNoticeStory
                Exit Function
            Case wdEndnoteContinuationSeparatorStory
                Exit Function
            Case wdEndnoteSeparatorStory
                Exit Function
            Case wdEndnotesStory
                Exit Function
            Case wdEvenPagesFooterStory ' Нижний колонтитул
                Exit Function
            Case wdEvenPagesHeaderStory ' Верхний колонтитул
                Exit Function
            Case wdFirstPageFooterStory ' Нижний колонтитул 1-ой страницы раздела
                Exit Function
            Case wdFirstPageHeaderStory ' Верхний колонтитул 1-ой страницы раздела
                Exit Function
            Case wdFootnoteContinuationNoticeStory
                Exit Function
            Case wdFootnoteContinuationSeparatorStory
                Exit Function
            Case wdFootnoteSeparatorStory
                Exit Function
            Case wdFootnotesStory  'Текст сноски.
                Exit Function
            Case wdPrimaryFooterStory ' Нижний колонтитул
                Exit Function
            Case wdPrimaryHeaderStory ' Верхний колонтитул
                Exit Function
            Case wdTextFrameStory  'Текстовая рамка - полотно
                Exit Function
            Case wdMainTextStory ' Основной текст , только его и надо проверять
            Case Else
                Exit Function
        End Select
        If .Fields.Count > 0 Then
            For i = 1 To .Fields.Count
                Select Case .Fields(i).Type
                    Case wdFieldTOC: Exit Function            ' Содержание
                    Case wdFieldEmbed: Exit Function          ' Внедренный OLE объект
                    Case wdFieldIncludePicture: Exit Function ' Поле с рисунком
                    Case wdFieldBibliography: Exit Function   ' Поле - библиография
                End Select
            Next i
        End If
        If ParCharLen < 20 And (UCase$(.Text) Like "РИС*") Then Exit Function ' Нумерация рисунков
        If ParCharLen < 20 And (UCase$(.Text) Like "ДИА*") Then Exit Function ' Нумерация диаграмм
        If ParCharLen < 20 And (UCase$(.Text) Like "ТАБ*") Then Exit Function ' Нумерация таблиц
    End With
    IsOrdinaryParagraph = True
End Function

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5
Похожие ответы