Como usar o VBA para documentar estilos personalizados em um documento do Microsoft Word

Nota: O seguinte artigo irá ajudá-lo com: Como usar o VBA para documentar estilos personalizados em um documento do Microsoft Word

Os estilos são uma grande parte do trabalho eficiente no Microsoft Word. Se você trabalha com arquivos ou modelos que contêm muitos estilos personalizados, gostaria de receber uma lista deles, mas não há um recurso interno do Word que exiba uma lista de todos os estilos. Neste tutorial do Word, mostrarei como criar um procedimento VBA que insere o nome de todos os estilos – personalizados, integrados ou ambos – no documento atual. Você pode imprimir o documento para fins de documentação ou para referência.

VEJA: Saiba quanto mais a Microsoft pode fazer por você com este pacote de treinamento (TechRepublic Academy)

Estou usando a área de trabalho do Microsoft 365 em um sistema Windows de 64 bits, mas você pode usar versões anteriores. Para sua conveniência, você pode baixar os arquivos de demonstração .docm e .doc. Word para a Web não oferece e a procedimentos VBA.

O que você precisa saber sobre o procedimento VBA no Word

O procedimento VBA a seguir, também conhecido como macro, faz muito. Primeiro, o procedimento solicita que o usuário escolha entre uma lista de estilos internos, estilos personalizados ou todos os estilos. Depois que o usuário responde, o procedimento abre um novo documento e gera uma lista dos estilos apropriados. Por fim, o procedimento exibe o número de estilos gerados. O procedimento não salva este documento do Word. Não parece muito, considerando o número de linhas no procedimento.

Sub ListStyles()

‘Gerar uma lista de estilos personalizados (1), embutidos (2) ou todos do Word (3)

‘no documento ativo.

Dim doc como documento

Estilo escuro como estilo

Dim inp como inteiro

Dim i As Integer

eu = 0

‘Solicitar valor de entrada do usuário.

On Error GoTo errHandler: ‘Catches Cancel ou X.

inp = InputBox(“Por favor, insira um dos seguintes valores 1, 2 ou 3.” _

& vbLf & vbLf & _

“1. Estilos personalizados” & vbLf & _

“2. Estilos integrados” & vbLf & _

“3. Todos os estilos”, _

“Imprimir uma lista de estilos”, 1)

‘Verifica se há valor de entrada inválido.

Se inp >= 4 Ou inp < 1 Então

MsgBox “Por favor, insira um valor de entrada válido: 1, 2 ou 3.”, vbOKOnly, _

“Erro de entrada”

Sair Sub

Fim se

On Error GoTo errHandler

Set doc = Documents.Add

‘Percorrer estilos no documento ativo.

Com documento

Para cada estilo em .Styles

Se inp = 1 E sty.BuiltIn = False Então

.Range.InsertAfter sty.NameLocal & vbCr

e = e + 1

ElseIf inp = 2 E sty.BuiltIn = True Then

.Range.InsertAfter sty.NameLocal & vbCr

e = e + 1

ElseIf inp = 3 Then

.Range.InsertAfter sty.NameLocal & vbCr

e = e + 1

‘No Else porque o código anterior captura qualquer valor diferente de 1, 2 ou 3.

Fim se

Próximo chiqueiro

Terminar com

MsgBox i & ” estilos encontrados.”, vbOKOnly

Definir doc = Nada

Sair Sub

errHandler:

Se Err.Number = 13 Então Exit Sub

MsgBox Err.Number & ” ” & Err.Description

Definir doc = nada

Finalizar Sub

Cerca de metade do código verifica erros de entrada. Após declarar algumas variáveis, o código exibe uma caixa de entrada solicitando que o usuário insira um dos três valores:

  • Estilos personalizados
  • Estilos incorporados
  • Todos os estilos

A primeira instrução On Error captura o erro gerado se o usuário clicar em Cancel ou X. Nesse caso, o bloco errHandler sai do procedimento:

Se Err.Number = 13 Então Exit Sub

Ao clicar em Cancelar ou em X, o código assume que o usuário não deseja executar o procedimento, portanto, o código não exibe uma caixa de mensagem explicativa.

Se o usuário responder à caixa de mensagem inserindo um valor, o procedimento armazena esse valor de entrada em uma variável inteira chamada inp. Se inp for diferente de 1, 2 ou 3, o código exibe uma caixa de mensagem solicitando que o usuário insira um dos valores especificados – 1, 2 ou 3 – e, em seguida, o procedimento é encerrado.

Quando inp é igual a 1, 2 ou 3, um bloco For Each executa mais verificações usando instruções If:

  • Se inp for igual a 1, o usuário deseja imprimir uma lista de estilos personalizados. Quando a próxima verificação, sty.BuiltIn = False for true, sty é um estilo personalizado, então a instrução adiciona o nome do estilo à lista e adiciona 1 ao contador i.
  • Se inp for igual a 2, o usuário deseja imprimir uma lista de estilos internos. Quando a verificação, sty.BuiltIn = True for true, sty é um estilo interno, então a instrução adiciona o estilo à lista e adiciona 1 ao contador i.
  • Se inp for igual a 3, o usuário deseja imprimir uma lista de todos os estilos para que não haja verificação; o código adiciona o estilo à lista e adiciona 1 ao contador i.

O For Each termina quando o procedimento percorre todos os estilos no documento ativo. As últimas instruções exibem uma mensagem com o número de estilos listados e, em seguida, destrói o objeto doc e sai do procedimento Sub. O tratamento de erros exibe o número e a descrição de qualquer erro. A maior parte do código está capturando valores de entrada inválidos, e é por isso que há tanto.

Agora que você deu uma olhada no procedimento, é hora de inseri-lo em um documento do Word.

VEJO: Comandos do Windows, Linux e Mac que todos precisam saber (PDF grátis) (TechRepublic)

Como inserir o procedimento VBA no Word

Você provavelmente desejará executar este procedimento em muitos documentos e não apenas no mesmo. Se for esse o caso, considere criar um arquivo de modelo (.dotm). Outra alternativa é adicionar o procedimento à pasta de trabalho Personal.xlsb, que concede o ao procedimento de qualquer arquivo de pasta de trabalho aberto. O arquivo de demonstração é um arquivo habilitado para macro, .docm, porque é o mais fácil de usar para nossos propósitos.

Se você estiver usando uma versão da faixa de opções, salve a pasta de trabalho como um arquivo habilitado para macro. Se estiver trabalhando na versão de menu, pule esta etapa. Se você estiver trabalhando por conta própria e não estiver usando o arquivo de demonstração para , adicione um estilo personalizado ao seu arquivo para ver como as três opções funcionam.

Para entrar no procedimento, pressione Alt + F11 para abrir o Editor do Visual Basic. No Project Explorer à esquerda, selecione ThisDocument. Se você tiver mais de um arquivo do Word aberto, certifique-se de selecionar o correto. Você pode inserir o código manualmente ou importar o arquivo .cls para . Além disso, o procedimento está no arquivo .docm para . Se você inserir o código manualmente, não cole desta página da web. Em vez disso, copie o código em um editor de texto e cole esse código em ThisDocument. Isso removerá quaisquer caracteres fantasmas da Web que possam causar erros.

Salve o arquivo e retorne ao documento do Word. Você está pronto para executar o procedimento VBA para ver como ele funciona.

Como executar o procedimento VBA no Word

Agora vem a parte fácil: Executar o procedimento. Para fazer isso, clique na guia Desenvolvedor e clique em Macro no grupo Macros. Na caixa de diálogo resultante, escolha ListStyles (Figura A) e clique em Executar.

Figura A

A caixa de mensagem padroniza para a primeira escolha, 1. Estilos personalizados (Figura B). Clique em OK sem alterar esse valor de entrada.

Figura B

Como você pode ver em Figura C, o arquivo de demonstração tem um estilo personalizado: MyCustomStyle. Certifique-se de salvar este arquivo manualmente se quiser mantê-lo para fins de documentação.

Figura C

Execute o procedimento novamente e escolha 2 para estilos internos. Figura D mostra os mais de 300 resultados. Se você não vir ListStyles, pode estar no novo documento o procedimento criado durante a primeira execução. Certifique-se de retornar ao seu arquivo habilitado para macro.

Figura D

Continue a executar o procedimento VBA para ver como tudo funciona com outros valores de entrada: digite 3, clique em Cancelar, digite 0 e 4 e assim por diante.

Você não quer trabalhar em todas essas etapas para executar essa macro sempre que precisar. Eu recomendo que você o adicione à Barra de Ferramentas de o Rápido ou a um grupo personalizado. Se você precisar de ajuda com isso, leia meu artigo TechRepublic Como adicionar macros do Office à barra de ferramentas QAT para o rápido.

Se você não souber como inserir esse procedimento no Personal.xlsb para que ele fique disponível para todas as pastas de trabalho, leia meu artigo do TechRepublic, Como criar um procedimento VBA que fecha todas as pastas de trabalho abertas no Excel, que inclui instruções para usar o Personal.xlsb.

Você está interessado em aprender mais sobre VBA no Excel? Veja estes recursos na TechRepublic Academy: