Como posso aplicar um estilo ao rodapé no Word 2010 com o VBA?

0

Eu tenho uma macro em um documento do Word que gera um rodapé com base em indicadores. Ele funciona, exceto por um detalhe: em um dos campos Ref no rodapé, a fonte está sempre incorreta após a atualização.

O tamanho deve ser 6, como o resto do rodapé, mas é 9,5, como o texto original. Isso só acontece com um campo. Verifiquei se o sinal de parágrafo e a linha inteira estão formatados corretamente. Eu até copiei um dos marcadores de funções e os adaptei, mas o tamanho da fonte está sempre errado.

O problema surge em vários computadores.

Eu desisti de resolver o problema original porque estou ficando sem ideias. O que eu quero agora é adicionar à macro algum código que irá aplicar um certo estilo (ou fonte) ao rodapé.

O que eu tentei até agora:

  • Eu criei um estilo para o rodapé (chamado footer1) - antes disso, ele não era definido
  • Eu me interessei pelo VBA e pesquisei por algumas horas agora sem sucesso.
  • Desativando / Ativando switches de campo de mesclagem no campo Ref
  • Pesquisa do Google para "aplicar estilo ao rodapé da palavra vba"

Tentativas falhadas:

ActiveDocument.Sections(ActiveDocument.Sections.Count) _
        .Footers(1).Range.Style("footer1")

Este é o código:

ActiveDocument.Fields.Update
ActiveDocument.Sections(ActiveDocument.Sections.Count) _
        .Footers(1).Range.Fields.Update
' code needed here for changing footer's style to "footer1" 
' Alternative: apply style only to faulty ref field.

Obrigado pela sua ajuda.

Eu posso fazer pequenos ajustes em macros VBA em um piscar de olhos, mas não sou especialista. Eu simplesmente não encontrei nada que eu pudesse adaptar às minhas necessidades.

    
por user 99572 is fine 15.08.2013 / 12:33

1 resposta

4

Para alterar o tamanho da fonte de um rodapé específico no Word, use Range.Font.Si‌​ze

ActiveDocument.Sections(1).Footers(1).Range.Font.Size = 6

Sintaxe explicada

  • ActiveDocument : um objeto Document que representa o documento ativo. Outras maneiras de acessar arquivos do Word são Documento (índice) ou Documento ("Fullname")

  • .Sections (index) : Uma seção é um conceito complicado no Word. Os usuários podem inserir seções em um documento para que possam alterar a formatação em uma determinada área de um documento. As quebras manuais e as quebras de seção dividem sua página em seções separadas, onde cada uma pode ter uma formatação diferente. Alterar as propriedades de um rodapé nem sempre significa que todos os rodapés foram alterados. Leia aqui para saber mais .

    No VBA, ao usar Sections.Count como o parâmetro de índice para .Sections(index) , ele sempre representará a última seção do seu documento

  • .Footers (index) : representa uma única área de rodapé nas margens superior, inferior ou lateral de cada página de um documento. Outras propriedades comumente usadas para seções são border , header ou range , que representa o corpo completo dentro da seção especificada

  • Rodapés (índice) .Tange : Representa a parte de um documento que está contido no cabeçalho ou rodapé especificado. Observe a diferença para Sections(index).range

  • Font.Si‌ ze : uma das muitas propriedades que uma fonte pode ter. Outras propriedades comuns para rodapés são Words(index) para alterar palavras específicas, Fields ou apenas Text para ler no texto completo do rodapé

por 15.08.2013 / 19:08