Вставка перед текстом Знака абзаца...

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Аватара пользователя
Busine2009
Сообщения: 322
Зарегистрирован: 18 июл 2009, 15:34
Контактная информация:

В документе есть жирный текст двух видов:

1. Без отступа слева.
2. И с отступом слева.

Нужно вставить Знак абзаца только перед текстом, не имеющим Отступ.
Как это сделать? Вот код, который я использую:

Код: Выделить всё

Sub m_1()
'Вставка пустого знака абзаца во ВСЁМ документе
    With ActiveDocument.Range.Find
        .Text = "^p"
        .Font.Animation = wdAnimationNone
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    While .Execute
        .Parent.Select
        Selection.Paragraphs(1).Range.Select
        If Selection.Characters.Count > 1 Then
             If Selection.ParagraphFormat.FirstLineIndent = 0 Or Selection.Font.Bold = True Then
                Selection.InsertParagraphBefore
            End If
        End If
    Wend
    End With
End Sub
Вложения
BoldText.zip
(10.02 КБ) 12 скачиваний
Аватара пользователя
Busine2009
Сообщения: 322
Зарегистрирован: 18 июл 2009, 15:34
Контактная информация:

Кому интересно, вот так придумал:

Код: Выделить всё

Sub m_1()
'Вставка пустого знака абзаца во ВСЁМ документе
    With ActiveDocument.Range.Find
        .Text = "^p"
        .Font.Animation = wdAnimationNone
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        While .Execute
            .Parent.Select
            Selection.Paragraphs(1).Range.Select
            If Selection.Characters.Count > 1 Then
                 If Selection.ParagraphFormat.FirstLineIndent = 0 Or Selection.Font.Bold = True And _
                   Selection.ParagraphFormat.LeftIndent + Selection.ParagraphFormat.FirstLineIndent = 0 Then
                    Selection.InsertParagraphBefore
                End If
            End If
        Wend
    End With
End Sub
Если есть пожелания, то пишите.
Ответить