Микеле нужен способ подсчитать количество маркированных списков или количество нумерованных списков в документе. Она задается вопросом, как это можно сделать в Word.

Это немного сложнее, чем можно было бы представить, потому что мы не можем найти надежного способа сгенерировать счетчик. Причина этого может потребовать некоторого объяснения.

Есть несколько способов добавить стили в документ. Например, вы можете щелкнуть инструменты «Нумерованный список» или «Маркированный список» на вкладке «Главная» ленты, чтобы преобразовать текущий абзац (или абзацы) в список. Вы также можете начать вводить текст и позволить Word определять (с помощью автоформата по мере ввода), создаете ли вы нумерованный список или маркированный список. Вы даже можете определить и применить стили, обозначающие то, что вы хотите использовать в качестве списка.

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

Поскольку стили связаны со списком, вы можете быстро определить, сколько экземпляров стиля используется. Все, что вам нужно сделать, — это отобразить панель задач «Стили» (откройте вкладку «Главная» на ленте и щелкните небольшой значок в правом нижнем углу группы «Стили»). Найдите стиль, используемый для ваших списков, наведите указатель мыши на имя этого стиля, а затем щелкните стрелку вниз, которая появляется справа от имени. Вы увидите что-то похожее на одно из следующего:

  • Выбрать все: (нет данных)

  • Выбрать все экземпляры X

Если то, что вы видите, соответствует первому формату, выберите этот вариант. Когда вы наводите курсор на имя стиля и снова щелкаете стрелку вниз, то, что вы видите, должно соответствовать второму формату.

Вы можете подумать, что это показывает количество списков в вашем документе. Это не так; он показывает только количество абзацев, отформатированных в этом конкретном стиле. Таким образом, если у вас есть единственный список, состоящий из 6 элементов, то возвращаемое количество стилей будет 6.

Таким образом, этот подход — подсчет стилей — не обеспечивает надежного способа определения количества списков.

Другой способ, который вы можете рассмотреть, — это использовать макрос, чтобы определить, сколько списков в вашем документе. Word поддерживает коллекцию списков и делает ее доступной для VBA. Вы можете просмотреть каждый список в документе и изучить его свойство ListType. Фактически это свойство может быть одним из семи различных значений, на что указывают следующие перечисления:

wdListBullet wdListListNumOnly wdListMixedNumbering wdListNoNumbering wdListOutlineNumbering wdListPictureBullet * wdListSimpleNumbering

Вы, вероятно, сможете понять, что влечет за собой каждый из этих типов списков, но то, как они действуют в действительности, может немного озадачить. В качестве примера рассмотрим следующий макрос:

Sub CheckLists()

Dim oL As List     Dim sMsg As String     Dim J As Integer     Dim K As Integer

J = ActiveDocument.Lists.Count     For Each oL In ActiveDocument.Lists         K = K + 1         oL.Range.Select

sMsg = "This is list " & K & " of " & J         sMsg = sMsg & " lists in the document." & vbCrLf & vbCrLf         sMsg = sMsg & "This list is this type: "

Select Case oL.Range.ListFormat.ListType             Case wdListBullet                 sMsg = sMsg & "wdListBullet"

Case wdListListNumOnly                 sMsg = sMsg & "wdListListNumOnly"

Case wdListMixedNumbering                 sMsg = sMsg & "wdListMixedNumbering"

Case wdListNoNumbering                 sMsg = sMsg & "wdListNoNumbering"

Case wdListOutlineNumbering                 sMsg = sMsg & "wdListOutlineNumbering"

Case wdListPictureBullet                 sMsg = sMsg & "wdListPictureBullet"

Case wdListSimpleNumbering                 sMsg = sMsg & "wdListSimpleNumbering"

End Select         MsgBox sMsg     Next oL End Sub

Если у вас есть документ, содержащий списки, и вы запустите его, он выберет каждый список по очереди и отобразит окно сообщения, показывающее, какой тип списка Word считает выбранным. Проблема в том, что если ваш текст содержит два списка, перемежаемых одним или двумя абзацами текста, Word считает его одним списком типа wdListMixedNumbering. Другими словами, он не совсем точно определяет, что такое список, а что нет. Это делает этот конкретный подход ненадежным для подсчета количества списков в вашем документе, хотя он более точен, чем использование подхода подсчета стилей.

Суть в том, что, как упоминалось в начале, мы не можем точно подсчитать количество маркированных и нумерованных списков в документе.

_Примечание: _

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

link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

WordTips — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (13528) применим к Microsoft Word 2007, 2010, 2013, 2016, 2019 и Word в Office 365.