Extrair dados do Excel.
Neste tutorial criaremos uma macro que irá Extrair dados do Excel e adicioná-los a um documento do Word.
Temos a seguinte planilha do Excel, mostrada na imagem abaixo, contendo o número de alunos de cada série. Nosso objetivo é transportar esses dados para o Word apenas com um clique, sem precisar digitar ou copiar e colar.
Anote o endereço com o nome completo e extensão do arquivo Excel. Neste exemplo a nossa planilha está no endereço:
C:\Users\DICHO\Documents\Número de alunos por série.xlsx
Agora vamos abrir um novo documento Word e na Guia Desenvolvedor, no Grupo Código clique em Visual Basic ou use o atalho ALT + F11.
No ambiente de desenvolvimento do VBA clique no menu Inserir e depois clique em Módulo.
Em seguida clique no menu Ferramentas e em seguida clique em Referências...
Em Referências disponíveis desça com a barra de rolagem e selecione Microsoft Excel 14.0 Object Library depois clique no botão OK.
Na Janela de Código criaremos a macro e daremos o nome de dadosexcel, portanto adicione o seguinte Código:
Sub dadosexcel()
Dim objExcel As New Excel.Application
Dim wb As Excel.Workbook
'Define qual planilha do excel será extraído os dados
Set wb = objExcel.Workbooks.Open("C:\Users\DICHO\Documents\Número de alunos por série.xlsx")
'Extrai os dados das células da planilha especeficada e insere no Word
With Selection
.TypeText wb.Sheets("Plan1").Cells(1, 1) & ":"
.TypeText wb.Sheets("Plan1").Cells(1, 2) & vbCrLf
.TypeText wb.Sheets("Plan1").Cells(2, 1) & ":"
.TypeText wb.Sheets("Plan1").Cells(2, 2) & vbCrLf
.TypeText wb.Sheets("Plan1").Cells(3, 1) & ":"
.TypeText wb.Sheets("Plan1").Cells(3, 2) & vbCrLf
.TypeText wb.Sheets("Plan1").Cells(4, 1) & ":"
.TypeText wb.Sheets("Plan1").Cells(4, 2) & vbCrLf
.TypeText wb.Sheets("Plan1").Cells(5, 1) & ":"
.TypeText wb.Sheets("Plan1").Cells(5, 2) & vbCrLf
End With
wb.Close
Set wb = Nothing
'Seleciona e converte o texto em tabela
Selection.WholeStory
Application.DefaultTableSeparator = ":"
Selection.ConvertToTable Separator:=wdSeparateByDefaultListSeparator, _
NumColumns:=2, NumRows:=5, AutoFitBehavior:=wdAutoFitFixed
With Selection.Tables(1)
.Style = "Tabela com grade"
.ApplyStyleHeadingRows = True
.ApplyStyleLastRow = False
.ApplyStyleFirstColumn = True
.ApplyStyleLastColumn = False
End With
'Aplica alinhamento centralizado à tabela
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
End Sub
Veja como deverá ficar na Janela de Código:
Feito isso vamos fechar o Editor do Visual Basic para voltar ao Microsoft Word.
Cliqueno menu Arquivo e em Fechar e voltar para o Microsoft Word.
Clique na Guia Desenvolvedor e no Grupo Código clique em Macros.
Selecione a macro dadosexcel e clique em Executar.
Veja o resultado:
Consideração Final:
Existem outras formas de Extrair dados do Excel utilizando o VBA que estaremos mostrando em outros tutoriais, por exemplo, usando Indicadores.
Observe que no final de algumas linha de código adicionamos ":" (dois pontos) para servir de separador na hora de converter o texto em tabela.
Gostou? Se quiser aprender mais eu tenho um e-Book sobre VBA do Word que você pode se interessar.
Confira aqui