Tutoriais Word
Home  |  Tutoriais  |  Artigos  |  VBA  |  Download  |  eBooks Word VBA  |  Dicas e Truques  |  Teclas de Atalho  |  Serviços  |  Contato


Categorias

Básico/Intermediário

  Avançado

  VBA

  Tabelas

  Formulário

  Campo

  Livros

  ABNT

  TCC

Personalizando Formulário

eBook Word 2010 VBA

Tabela do Word como banco de dados

Home > VBA > Trabalhando com tabelas


VBA - Trabalhando com tabelas no VBA





Neste tutorial apresentarei alguns exemplos de como utilizar tabelas através do VBA.


O exemplo abaixo insere uma tabela de cinco colunas e oito linhas no início do documento ativo. A estrutura For Each...Next é usada para percorrer cada célula da tabela. Dentro da estrutura For Each...Next, o método InsertAfter é usado para adicionar texto às células da tabela (Célula 1, Célula 2 e assim por diante). Neste exemplo adicionaremos números sequenciais em cada célula, mas também pode ser adicionado um texto qualquer.


No ambiente de desenvolvimento insira um novo módulo.


Inserir Módulo


 Na Janela de Código adicione o Código abaixo:


Sub criartabela()
Dim docActive As Document
Dim novatab As Table
Dim celulatabela As Cell
Dim intCount As Integer
Set docActive = ActiveDocument
Set novatab = docActive.Tables.Add( Range:=docActive.Range(Start:=0, End:=0), NumRows:=8, NumColumns:=5)
intCount = 1
For Each celulatabela In novatab.Range.Cells
celulatabela.Range.InsertAfter "0" & intCount
intCount = intCount + 1
Next celulatabela
novatab.AutoFormat Format:=wdTableFormatColorful2, ApplyBorders:=True, ApplyFont:=True, ApplyColor:=True
End Sub



Deverá ficar como na imagem a seguir:


Janela de Código


Feche o Editor do Visual Basic (VBA) para voltar ao Word.


Fechar e voltar para  Microsoft Word


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


Macros


Selecione a macro criartabela e clique em Executar.


Selecionar macro


Veja o Resultado:


Tabela


Se quiser criar a tabela sem conteúdo retire a variável celulatabela e as linhas de código da estrutura For Each ...Next.


Ficará assim:


Sub criartabela()
Dim docActive As Document
Dim novatab As Table
Dim intCount As Integer
Set docActive = ActiveDocument
Set novatab = docActive.Tables.Add(Range:=docActive.Range(Start:=0, End:=0), NumRows:=8, NumColumns:=5)
intCount = 1
novatab.AutoFormat Format:=wdTableFormatColorful2, ApplyBorders:=True, ApplyFont:=True, ApplyColor:=True
End Sub



O resultado será como a imagem abaixo:


Tabela


Pra inserir um texto, por exemplo, na primeira célula use a macro abaixo:


Sub inserirtexto()
If ActiveDocument.Tables.Count >= 1 Then
With ActiveDocument.Tables(1).Cell(Row:=1, Column:=1).Range
.Delete
.InsertAfter Text:="Tutoriais"
End With
End If
End Sub



Veja o resultado:


Tabela


Pra inserir textos, por exemplo, em cada célula da primeira linha use a macro abaixo:


Sub inserirtexto2()
If ActiveDocument.Tables.Count >= 1 Then
With ActiveDocument.Tables(1).Cell(Row:=1, Column:=1).Range
.Delete
.InsertAfter Text:="Tutoriais"
End With
With ActiveDocument.Tables(1).Cell(Row:=1, Column:=2).Range
.Delete
.InsertAfter Text:="Word 2003"
End With
With ActiveDocument.Tables(1).Cell(Row:=1, Column:=3).Range
.Delete
.InsertAfter Text:="Word 2007"
End With
With ActiveDocument.Tables(1).Cell(Row:=1, Column:=4).Range
.Delete
.InsertAfter Text:="Word 2010"
End With
With ActiveDocument.Tables(1).Cell(Row:=1, Column:=5).Range
.Delete
.InsertAfter Text:="VBA"
End With
End If
End Sub



Veja o resultado:


Tabela


Considerações Finais:


Se o documento possuir mais tabelas elas serão referenciadas como: .Tables(1), .Tables(2), .Tables(3)... e assim sucessivamente, conforme o número de tabelas que o documento possui.


Row:=1 - refere-se a  primeira linha da tabela; Row:=2 – refere-se a segunda linha da tabela e assim sucessivamente, conforme o número de linhas da tabela.


Column:=1 – refere-se a primeira coluna da tabela; Column:=2 – refere-se a segunda coluna da tabela e assim sucessivamente, conforme o número de colunas da tabela.


A linha de Código “If ActiveDocument.Tables.Count >= 1 Then” verifica se o documento possui uma ou mais tabelas. Você pode criar uma rotina de tratamento de erro e/ou exibir uma mensagem ao usuário para o caso de não haver tabelas no documento.


Veja no código abaixo:


Sub inserirtexto2()
If ActiveDocument.Tables.Count >= 1 Then
With ActiveDocument.Tables(1).Cell(Row:=1, Column:=1).Range
.Delete
.InsertAfter Text:="Tutoriais"
End With
With ActiveDocument.Tables(1).Cell(Row:=1, Column:=2).Range
.Delete
.InsertAfter Text:="Word 2003"
End With
With ActiveDocument.Tables(1).Cell(Row:=1, Column:=3).Range
.Delete
.InsertAfter Text:="Word 2007"
End With
With ActiveDocument.Tables(1).Cell(Row:=1, Column:=4).Range
.Delete
.InsertAfter Text:="Word 2010"
End With
With ActiveDocument.Tables(1).Cell(Row:=1, Column:=5).Range
.Delete
.InsertAfter Text:="VBA"
End With
Else
MsgBox "Não há tabelas no documento", vbOKOnly, "Informação ao usuário"
End If
End Sub



Caso não haja nenhuma tabela no documento a mensagem abaixo será exibida.


Caixa de Mensagem






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






eBook Word 2010 VBA

      

 Inscreva-se

 E seja informado sempre que um novo tutorial for publicado.

 E mais... Você poderá fazer gratuitamente o download de 02(dois) e-Books:
- Como preencher uma tabela(VBA) - Iniciante;
- Como preencher uma tabela com várias linhas(VBA) - Iniciante.


 Nome* 
 E-mail* 
 *Preenchimento obrigatório.
Prometemos não utilizar suas informações de contato para enviar qualquer tipo de SPAM.

 



eBook Word 2010 VBA


© 2013 Tutoriais Word - Todos os direitos reservados