2016-12-13 6 views
0

Я пытаюсь создать макрос, который ищет в моем документе слова, чтобы найти любой текст, который центрирован, и применить к нему это форматирование.Поиск и форматирование по центру текста в Word. - Macro/VBA

With Selection 
.Paragraphs.Alignment = wdAlignParagraphCenter 
.Font.Bold = wdToggle 
.Font.AllCaps = True 
End With 

Я попытался

Selection.Find.Style = wdAlignParagraphCenter 

Но я полагаю, что это не так просто.

Затем я дал этому выстрел,

Dim p As Paragraph 

For Each p In ActiveDocument.Paragraphs 
    If p.Alignment = wdAlignParagraphCenter Then 
     With Selection 
      .Font.Bold = wdToggle 
      .Font.AllCaps = True 
     End With 

    End If 
Next p 

Но не повезло, к сожалению.

+0

Вы должны показать нам свой фактический код. Например, что такое определение «Выбор». –

+0

Я обновил сообщение, надеюсь, это поможет? Дайте мне знать, если вам нужна дополнительная информация. Благодарю. – Bp944

+0

Код работал отлично для меня. Как вы запускаете код? Функция или Sub? Вы пытались выполнить его шаг за шагом? –

ответ

0

попробовать это:

Sub Bold_All_Caps() 
    Dim p As Paragraph 

    For Each p In ActiveDocument.Paragraphs 
     If p.Alignment = wdAlignParagraphCenter Then 
      With p 
       .Range.Font.Bold = True 
       .Range.Font.AllCaps = True 
      End With 

     End If 
    Next p 
End Sub 

Проблема была, что вы применили изменения (The With часть) только выбор. Если вы измените это на абзац, он будет работать.

Пожалуйста, измените деталь .Range.Font.Bold = True на .Range.Font.Bold = wdToggle, если вы хотите изменить полужирный шрифт, вместо того чтобы применять полужирный шрифт все время. WdToggle сделает полужирный текст не жирным и наоборот.

+0

Удивительный! Это и есть. Так что p.range выбирает весь абзац, который, как считается, выравнивается по центру? – Bp944

+0

Код в основном проходит через каждый абзац ('Для каждого ...'), проверяет, выравнивается ли абзац Center ('If p.Alignment ...') и устанавливает этот абзац Format в жирный и allcaps. Однако вы должны проверить функции на вкладке стилей, есть опция «Выбрать весь текст с похожим форматированием», что делает это явно. –

+0

Это имеет смысл. Я бы использовал эту функцию, но я пытаюсь создать макрос, который делает несколько разных вещей в формате документа/макете. Далее в списке, измените любые маркеры или списки на определенный тип списка. - Немного не по теме, но вы не узнаете, где я могу получить имена этих списков, например. Bulletpoint: wdListBullet. Спасибо за вашу помощь:] - EDIT: Nvm нашел это здесь: http://www.thedoctools.com/index.php?show=mt_create_style_name_list :) – Bp944