Как искать полностью жирные абзацы? - PullRequest
0 голосов
/ 30 октября 2019

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

Моя конечная цель - найти полужирный абзац, удалите символ, следующий сразу за ним (обычно это пустая строка).

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

Dim para As Paragraph

For Each para In ActiveDocument.Paragraphs
    If Selection.Font.Bond = True Then MsgBox "All Bold"
    Else: Next para

Что делает этот макрос, так это вызывает MsgBox с надписью «Все полужирный» для каждого абзаца в документе (например, если в нем 50 абзацев, он поднимает MsgBox в 50 раз), вместо проверки каждого абзаца, а затем вызывает MsgBoxЕсли это полностью смелый. В идеале, в моем фактическом документе, содержащем около 50 абзацев, только 3 заголовка могут привести к появлению MsgBox.

1 Ответ

1 голос
/ 30 октября 2019

Поскольку ваш код ничего не выбирает Selection.Font.Bold не имеет отношения к чему-либо в цикле. Просто изменив Selection на para.Range, вы найдете только те абзацы, которые ищете.

Dim para As Paragraph

For Each para In ActiveDocument.Paragraphs
    If para.Range.Font.Bold = True Then para.Next.Range.Delete
Next para

Доступ к следующему абзацу можно получить, просто используя свойство Next.

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

...