Изменить многоуровневый список документов Word, чтобы включить всю глубину - PullRequest
0 голосов
/ 04 июня 2018

У меня есть документ Word, который имеет четырехуровневый многоуровневый список.Я хотел бы изменить стили списка (временно), чтобы показать всю глубину чисел.Например, вместо того, чтобы просто показывать (iii), я хочу изменить его так, чтобы он показывал 1.1 (a) (iii).Я видел инструкции по прикреплению стиля к списку, но я не уверен, как написать стиль, чтобы показать то, что я хочу.

Итак, весь поиск и ответы не привели к работерешения пока нет, но я обнаружил, что файл .docx представляет собой zip-коллекцию XML-файлов.Итак, просмотрев файл docx и вложенный файл numbering.xml, я обнаружил следующий раздел, в котором, похоже, определен стиль нумерации, которую я хочу изменить:

<w:abstractNum w:abstractNumId="93" w15:restartNumberingAfterBreak="0">
<w:nsid w:val="5FE75E67"/>
<w:multiLevelType w:val="multilevel"/>
<w:tmpl w:val="9C366D9C"/>
<w:lvl w:ilvl="0">
    <w:start w:val="1"/>
    <w:numFmt w:val="decimal"/>
    <w:pStyle w:val="ArticleCL1"/>
    <w:lvlText w:val="%1"/>
    <w:lvlJc w:val="left"/>
    <w:pPr>
        <w:tabs>
            <w:tab w:val="num" w:pos="720"/>
        </w:tabs>
        <w:ind w:left="0" w:firstLine="0"/>
    </w:pPr>
    <w:rPr>
        <w:rFonts w:ascii="Calibri" w:hAnsi="Calibri" w:cs="Times New Roman"/>
        <w:b/>
        <w:i w:val="0"/>
        <w:caps/>
        <w:smallCaps w:val="0"/>
        <w:sz w:val="22"/>
        <w:u w:val="none"/>
    </w:rPr>
</w:lvl>
<w:lvl w:ilvl="1">
    <w:start w:val="1"/>
    <w:numFmt w:val="decimal"/>
    <w:pStyle w:val="ArticleCL2"/>
    <w:lvlText w:val="%1.%2"/>
    <w:lvlJc w:val="left"/>
    <w:pPr>
        <w:tabs>
            <w:tab w:val="num" w:pos="720"/>
        </w:tabs>
        <w:ind w:left="720" w:hanging="720"/>
    </w:pPr>
    <w:rPr>
        <w:rFonts w:ascii="Calibri" w:hAnsi="Calibri" w:cs="Times New Roman"/>
        <w:b w:val="0"/>
        <w:i w:val="0"/>
        <w:caps w:val="0"/>
        <w:sz w:val="22"/>
        <w:u w:val="none"/>
    </w:rPr>
</w:lvl>
<w:lvl w:ilvl="2">
    <w:start w:val="1"/>
    <w:numFmt w:val="lowerLetter"/>
    <w:pStyle w:val="ArticleCL3"/>
    <w:lvlText w:val="(%3)"/>
    <w:lvlJc w:val="left"/>
    <w:pPr>
        <w:tabs>
            <w:tab w:val="num" w:pos="720"/>
        </w:tabs>
        <w:ind w:left="720" w:hanging="720"/>
    </w:pPr>
    <w:rPr>
        <w:rFonts w:ascii="Calibri" w:hAnsi="Calibri" w:cs="Times New Roman"/>
        <w:b w:val="0"/>
        <w:i w:val="0"/>
        <w:caps w:val="0"/>
        <w:sz w:val="22"/>
        <w:u w:val="none"/>
    </w:rPr>
</w:lvl>
<w:lvl w:ilvl="3">
    <w:start w:val="1"/>
    <w:numFmt w:val="lowerRoman"/>
    <w:pStyle w:val="ArticleCL4"/>
    <w:lvlText w:val="(%4)"/>
    <w:lvlJc w:val="left"/>
    <w:pPr>
        <w:tabs>
            <w:tab w:val="num" w:pos="1440"/>
        </w:tabs>
        <w:ind w:left="1440" w:hanging="720"/>
    </w:pPr>
    <w:rPr>
        <w:rFonts w:ascii="Calibri" w:hAnsi="Calibri" w:cs="Times New Roman"/>
        <w:b w:val="0"/>
        <w:i w:val="0"/>
        <w:caps w:val="0"/>
        <w:sz w:val="22"/>
        <w:u w:val="none"/>
    </w:rPr>
</w:lvl>
<w:lvl w:ilvl="4">
    <w:start w:val="1"/>
    <w:numFmt w:val="lowerLetter"/>
    <w:pStyle w:val="ArticleCL5"/>
    <w:lvlText w:val="%5."/>
    <w:lvlJc w:val="left"/>
    <w:pPr>
        <w:tabs>
            <w:tab w:val="num" w:pos="2160"/>
        </w:tabs>
        <w:ind w:left="2160" w:hanging="720"/>
    </w:pPr>
    <w:rPr>
        <w:rFonts w:ascii="Calibri" w:hAnsi="Calibri" w:cs="Times New Roman"/>
        <w:b w:val="0"/>
        <w:i w:val="0"/>
        <w:caps w:val="0"/>
        <w:sz w:val="24"/>
        <w:u w:val="none"/>
    </w:rPr>
</w:lvl>
<w:lvl w:ilvl="5">
    <w:start w:val="1"/>
    <w:numFmt w:val="decimal"/>
    <w:pStyle w:val="ArticleCL6"/>
    <w:lvlText w:val="%6."/>
    <w:lvlJc w:val="left"/>
    <w:pPr>
        <w:tabs>
            <w:tab w:val="num" w:pos="2160"/>
        </w:tabs>
        <w:ind w:left="2160" w:hanging="720"/>
    </w:pPr>
    <w:rPr>
        <w:rFonts w:ascii="Calibri" w:hAnsi="Calibri" w:cs="Times New Roman" w:hint="default"/>
        <w:b w:val="0"/>
        <w:i w:val="0"/>
        <w:caps w:val="0"/>
        <w:sz w:val="22"/>
        <w:u w:val="none"/>
    </w:rPr>
</w:lvl>
<w:lvl w:ilvl="6">
    <w:start w:val="1"/>
    <w:numFmt w:val="bullet"/>
    <w:lvlRestart w:val="0"/>
    <w:pStyle w:val="ArticleCL7"/>
    <w:lvlText w:val="·"/>
    <w:lvlJc w:val="left"/>
    <w:pPr>
        <w:tabs>
            <w:tab w:val="num" w:pos="1440"/>
        </w:tabs>
        <w:ind w:left="1440" w:hanging="720"/>
    </w:pPr>
    <w:rPr>
        <w:rFonts w:ascii="Symbol" w:hAnsi="Symbol" w:hint="default"/>
        <w:b w:val="0"/>
        <w:i w:val="0"/>
        <w:caps w:val="0"/>
        <w:sz w:val="24"/>
        <w:u w:val="none"/>
    </w:rPr>
</w:lvl>
<w:lvl w:ilvl="7">
    <w:start w:val="1"/>
    <w:numFmt w:val="bullet"/>
    <w:lvlRestart w:val="0"/>
    <w:pStyle w:val="ArticleCL8"/>
    <w:lvlText w:val="·"/>
    <w:lvlJc w:val="left"/>
    <w:pPr>
        <w:tabs>
            <w:tab w:val="num" w:pos="2160"/>
        </w:tabs>
        <w:ind w:left="2160" w:hanging="720"/>
    </w:pPr>
    <w:rPr>
        <w:rFonts w:ascii="Symbol" w:hAnsi="Symbol" w:hint="default"/>
        <w:b w:val="0"/>
        <w:i w:val="0"/>
        <w:caps w:val="0"/>
        <w:sz w:val="24"/>
        <w:u w:val="none"/>
    </w:rPr>
</w:lvl>
<w:lvl w:ilvl="8">
    <w:start w:val="1"/>
    <w:numFmt w:val="bullet"/>
    <w:pStyle w:val="ArticleCL9"/>
    <w:lvlText w:val="·"/>
    <w:lvlJc w:val="left"/>
    <w:pPr>
        <w:tabs>
            <w:tab w:val="num" w:pos="2880"/>
        </w:tabs>
        <w:ind w:left="2880" w:hanging="720"/>
    </w:pPr>
    <w:rPr>
        <w:rFonts w:ascii="Symbol" w:hAnsi="Symbol" w:hint="default"/>
        <w:b w:val="0"/>
        <w:i w:val="0"/>
        <w:caps w:val="0"/>
        <w:color w:val="auto"/>
        <w:sz w:val="24"/>
        <w:u w:val="none"/>
    </w:rPr>
</w:lvl>

Надеюсь, это означает, что я могу изменить w: lvlText w: val = "(% 3) для w: ilvl =" 2 ", используя VBA. Все еще исследую.

Спасибо! Rod

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Что ж, получается, что вы действительно можете напрямую изменить стиль multiLevelList на любом уровне, если вы знаете, как на него ссылаться.Используя xml-файл, на который я ссылался, я обнаружил, что стиль третьего уровня, ArticleC_L3, имеет формат чисел, установленный на «(% 3)», что я и хотел изменить.Это было в аннотации с AbstractNumId = "93".Следующий код изменяет эту настройку:

wDoc.ListTemplates(94).ListLevels(3).NumberFormat = "%1.%2.%3"

Вы заметите, что номер ListTemplates на один выше, а ID ListLevels также на один выше.В любом случае, чтобы найти точное место, к которому вам нужно обратиться, лучший рабочий процесс, который я нашел:1. В слове doc, нажмите на число / маркер для уровня, который вы пытаетесь изменить.2. Нажмите на маленькую стрелку выпадающего меню в окне стилей, чтобы увидеть название стиля для этого уровня.3. Просмотрите файл numbering.xml, чтобы узнать, какой стиль чисел использует это имя стиля.Для меня строка читается <w:pStyle w:val="ArticleCL3"/>4. Следуйте за деревом xml вверх, чтобы узнать, какой это уровень стиля нумерации.Для меня строка читается <w:lvl w:ilvl="2">5. Продолжайте следовать по дереву xml вверх, чтобы узнать, в каком номере шаблона находится уровень. Для меня строка читается как <w:abstractNum w:abstractNumId="93" w15:restartNumberingAfterBreak="0">6. Теперь вы можете обратиться к точному формату уровня, как в строке, которую я поделил в начале.

Спасибо за помощь eveyone!Rod

0 голосов
/ 06 июня 2018

Предположительно, что-то основано на:

Sub ApplyMultiLevelStyleNumbers()
Dim LT As ListTemplate, i As Long
Set LT = ActiveDocument.ListTemplates.Add(OutlineNumbered:=True)
For i = 1 To 4
  With LT.ListLevels(i)
    .NumberFormat = Choose(i, "%1", "%1.%2", "%1.%2.%3", "%1.%2.%3.%4")
    .Font.Bold = True
    .ResetOnHigher = True
    .StartAt = 1
    .LinkedStyle = "ArticleC_L" & i
  End With
Next
End Sub

Выше предполагается, что ваши четыре стиля названы ArticleC_L1 - ArticleC_L4.

...