2016-08-18 4 views
0

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

Моя проблема заключается в том, что, когда я изменяю стиль самого первого слова, он меняет стиль всего абзаца, который очень не предназначен.

'Loop trough all words 
For Each w In p.Range.Words 
... 

... 

'Switch based on the style of the word 
Select Case r 
    Case "b" 
     w.Style = ActiveDocument.Styles("NewStyleB") 
     ... 

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

'Loop trough all words 
For Each w In p.Range.Words 
... 

... 

'Switch based on the style of the word 
Select Case r 
    Case "b" 
     w.CharacterStyle = ActiveDocument.Styles("NewStyleB") 
     ... 
+0

* NewStyleB * должен быть характерным стилем (или связанным стилем). Затем вы можете установить свойство 'Style' объекта' Word': 'w.Style =" NewStyleB "' –

ответ

1

Слово имеет несколько style types. Проверьте, является ли ваш стиль абзацем, и если это так, вы можете скопировать его в новый стиль и изменить его на характер.

Смежные вопросы