Do Básico ao Avançado
Home  Tutoriais  Artigos  Contato

VBA - Como preencher com traços as células vazias de uma tabela

Às vezes em uma tabela você necessita que cada célula tenha algo dentro dela, ou seja, as células vazias devem ser preenchidas com um traço ou por uma palavra ou por outro caracter qualquer.

Neste tutorial criaremos uma macro que colocará automaticamente um “-“ em todas as células vazias da tabela selecionada.

Observe na tabela abaixo que algumas células estão vazias. Estas células vazias deverãoser preenchidas por um tracinho (“-“).

Tabela com células vazias

Para criar a macro a qual daremos o nome de ProcCelulaVazia siga os seguintes passos:

1- Acione a Guia Desenvolvedor e no Grupo Código clique em Visual Basic para abrir o editor do VBA, ou se preferir use o atalho ALT +F11.

Guia Desenveolvedor

2- No ambiente de desenvolvimento do VBA clique no Menu Inserir e em seguida clique em Módulo para inserir um novo Módulo.

Inserir Módulo

3- Na Janela de Código adicione o código abaixo:

Sub ProcCelulaVazia()
'Declara as variáveis
Dim tTab As Table
Dim cCel As Cell
Dim sCelVazia As String

'Especifica que o valor da variável sCelVazia é um traço
sCelVazia = "-"
If Selection.Information(wdWithInTable) Then

'Seleciona a tabela e percorre cada uma das células
'e verifica para ver o que ela contém.
'Se a célula estiver vazia, então o texto especificado na variável sCelVazia é colocado na célula.

Set tTab = Application.Selection.Tables(1)
For Each cCel In tTab.Range.Cells

'Uma célula aparentemente vazia contém um marcador de fim de célula
If Len(cCel.Range.Text) < 3 Then
cCel.Range = sCelVazia

'Aplica o alinhamento centralizado
cCel.Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
End If
Next
End If


'Define as variáveis cCel e tTab como vazias
Set cCel = Nothing
Set tTab = Nothing
End Sub


Veja como ficará:

Janela de Código VBA

4- Feche o Editor do Visual Basic para voltar ao Microsoft Word, clicando no menu Arquivo e depois em Fechar e voltar para o Microsoft Word.

Fechar e voltar para o Microsoft Word

5- Na Guia Desenvolvedor, no Grupo Código clique em Macros.

Macros

6- Selecione a macro ProcCelulaVazia e clique em Executar.

Executar Macro

Veja como ficou a nossa tabela.

Tabela

Considerações Finais:

A linha de código “Set tTab = Application.Selection.Tables(1)”, seleciona a primeira tabela do documento.

Neste exemplo usamos um documento que contém apenas uma tabela, porém, se o documento contém várias tabela e você, por exemplo, quer adicionar os “-“ somente na terceira tabela, basta somente alterar esta linha de código como mostrado abaixo:

Set tTab = Application.Selection.Tables(3)

Caso queira adicionar o traço nas células vazias de todas as tabelas contidas no documento é só fazer uma pequena alteração na macro. Veja como ficaria:

Sub ProcCelulaVaziaTodasTab()
'Declara as variáveis
Dim tTab As table
Dim cCel As Cell
Dim sCelVazia As String

'Especifica que o valor da variável sCelVazia é um traço
'Verifica todas as tabelas e percorre por todas as células
'para ver o que ela contém.

'Se a célula estiver vazia, então o texto especificado na variável sCelVazia é colocado na célula.
For Each tTab In ActiveDocument.Range.Tables
For Each cCel In tTab.Range.Cells

'Uma célula aparentemente vazia contém um marcador de fim de célula
If Len(cCel.Range.Text) < 3 Then
cCel.Range = sCelVazia

'Aplica o alinhamento centralizado
cCel.Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
End If
Next
Next


'Define as variáveis cCel e tTab como vazias
Set cCel = Nothing
Set tTab = Nothing
End Sub

Se ao invés de traço você quiser preencher as células vazias com uma palavra ou outro caracter, basta somente alterar o valor da variável sCelVazia, por exemplo:

sCelVazia = “#”

sCelVazia = ”nulo”

sCelVazia = “N/A”



Gostou? Se quiser aprender mais eu tenho um e-Book sobre VBA do Word que você pode se interessar.
Confira aqui




Formação Pacote Office



eBook Word 2010 VBA
Política de Privacidade  |   © 2013 Tutoriais Word - Todos os direitos reservados