Eu não uso o VBA com muita freqüência, e estou tentando montar uma macro que selecione todo o texto no documento com tamanho de fonte de 13,5 pt e mude seu estilo para o Cabeçalho 1. Até agora eu tenho o código abaixo:
Sub FormatSectionHeaders()
Application.ScreenUpdating = False
Dim oRng As Word.Range
Set oRng = ActiveDocument.Content
oRng.Find.ClearFormatting
oRng.Find.Replacement.ClearFormatting
oRng.Find.Replacement.Style = wdStyleHeading1
With oRng.Find
.Font.Size = 13.5
.Text = ""
.Execute Format:=True, Replace:=wdReplaceAll, Wrap:=wdFindContinue
End With
End Sub
Isso seleciona o texto correto e aplica o estilo, mas, por algum motivo, não está substituindo toda a formatação original - a fonte e o tamanho da fonte, por exemplo, não são alterados para corresponder aos do estilo. Alguém pode me dizer o que estou fazendo errado?
Nota: Eu posso fazer isso funcionar com o seguinte loop, mas isso é muito mais lento do que usar o substiteall, então eu gostaria de tentar corrigir o código acima, em vez de usar algo assim.
With oRng.Find
.ClearFormatting
.Text = ""
.Font.Size = 13.5
While .Execute
oRng.Style = ActiveDocument.Styles(wdStyleHeading1)
oRng.Collapse wdCollapseEnd
Wend
End With