Стиль слова изменяется после применения ApplyListTemplate

У меня есть документ Word, содержащий нумерованный список, как это

  1. Элемент 1
  2. Пункт 2
  3. Пункт 3

Стиль списка - "Абзац списка". Левый отступ "List Paragraph" равен 0,5. Если мы запустим следующий код для повторного применения стиля "List Paragraph", левый отступ стиля будет 0,75".

Dim t As ListTemplate
Set t = ActiveDocument.Styles("List Paragraph").ListTemplate
t.ListLevels(1).ResetOnHigher = True
Selection.Range.ListFormat.ApplyListTemplate t, False, wdListApplyToWholeList

В результате список смещен вправо на 0,25". Мне интересно, почему метод ApplyListTemplate меняет левый отступ стиля" Список абзацев ".

До и после применения кода описание стиля

"Indent:
Left:  0.5"
Hanging:  0.25", Numbered + Level: 1 + Numbering Style: 1, 2, 3, … + Start at: 1 + Alignment: Left + Aligned at:  0.75" + Indent at:  1", Style: Quick Style, Priority: 35
Based on: Text"

"Indent:
Left:  0.75"
Hanging:  0.25", Outline numbered + Level: 1 + Numbering Style: 1, 2, 3, … + Start at: 1 + Alignment: Left + Aligned at:  0.75" + Indent at:  1", Style: Quick Style, Priority: 35
Based on: Text"

Я обнаружил одинаковое поведение в Office 2003 и 2010

1 ответ

Я не могу проверить ваш точный код, потому что я получаю ошибку времени выполнения 5941, которая говорит: "Запрашиваемый элемент коллекции не существует".

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

With Selection.ParagraphFormat
    .LeftIndent = InchesToPoints(0.75)          ' Left indent
    .RightIndent = InchesToPoints(0)            ' Right indent
    .FirstLineIndent = InchesToPoints(-0.25)    ' First line indent
End With

Это даст вам левый отступ в 0,5 дюйма и висячий отступ в 0,25 дюйма (хотя цифры могут выглядеть немного странно). Вам не нужна средняя линия, начинающаяся с .RightIndent =, но я подумал, что включу ее в том случае, если вы захотите это изменить.

Другие вопросы по тегам