Как добавить пользовательские стили для навигации или изменить их с помощью VBA

У меня есть документ Word2010, созданный инструментом из Axure.

  • каждый раздел форматировать с пользовательского стиля ("AxureHeading1", "AxureHeading2", "AxureHeading3").
  • я смог создать оглавление с заголовками:References tab, click Table of Contents, click Insert Table of Contents, and then click Options. Under Available styles.
  • но я не могу выяснить, что мне нужно сделать, чтобы включить эти пользовательские заголовки в панели навигации

что я могу сделать, чтобы либо

  1. изменить каждый пользовательский заголовок (уровень 1, 2, 3) со встроенными заголовками из word, не нажимая и выбирая каждый заголовок вручную (макрос VBA?)
  2. или настройте пользовательский стиль заголовка, чтобы он отображался на панели навигации

изображение панели навигации, показывающее встроенные заголовки
Navigaton Pane in Word 2010

обновление

похоже, что мой макро-подход работает (Вариант 1). Но если кто-нибудь знает способ для варианта 2 мне все равно было бы интересно услышать об этом.

2
задан threeFourOneSixOneThree
11.04.2023 18:09 Количество просмотров материала 3029
Распечатать страницу

3 ответа

VBA не требуется.

в диалоговом окне изменить стиль выберите формат-абзац и измените уровень абриса с основного текста на нужный уровень абриса.

Это добавит все заголовки с этим стилем в структуру документа, показанную на панели навигации.

10
отвечен Patrick 2023-04-13 01:57

Вариант 1 для замены форматирования

через макрос

следующий макрос изменяет заголовок из одного стиля в другой

Sub FindAndReplaceStyle()

Dim intI As Integer
Dim newStyle As String


For intI = 1 To ActiveDocument.Paragraphs.Count

    curStyle = ActiveDocument.Paragraphs(intI).Style

    If curStyle = "AxureHeading1" Then
       Call SetStyle(intI, wdStyleHeading1)

    ElseIf curStyle = "AxureHeading2" Then            
        Call SetStyle(intI, wdStyleHeading2)

    ElseIf curStyle = "AxureHeading3" Then
        Call SetStyle(intI, wdStyleHeading3)

    End If       

Next intI

и уменьшить дублирование кода и увеличить считываемость небольшая вспомогательная функция

Sub SetStyle(intI, newStyle)

    Dim ranActRange As Range
    Set ranActRange = ActiveDocument.Paragraphs(intI).Range

        With ranActRange               
            ranActRange.Style = newStyle
        End With

End Sub

С помощью поиска заменить диалог

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

Вариант 2 Изменение уровня контура

As Patrick предложил можно изменить уровень структуры от текста к другому. Поскольку мое редактирование ответа Патрика было отклонено, я включил скриншот в этот ответ.

открыть диалог изменения стиля

Open modify style dialogue

выберите пункт формат-объект вы хотели бы изменить

Select paragraph as the format-object you would like to change

выберите контур-уровень

Select the outline-level

1
отвечен threeFourOneSixOneThree 2023-04-13 04:14

самый простой способ - сделать заголовок верхнего уровня на основе Заголовок 1 на New Style (или Modify) диалог.

до тех пор, пока ваши пользовательские заголовки каскадируются с верхнего уровня, они будут отображаться на панели навигации.

0
отвечен Ken Blair 2023-04-13 06:31

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх