Quer aprender como importar XML para o Excel de uma forma fácil e rápida utilizando o VBA? Vamos fazer isso com um botão!
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Fala, Impressionadores! Na aula de hoje vamos te mostrar como fazer a importação de XML para Excel com VBA!
Isso mesmo, vamos importar XML para Excel com VBA. Muitos de vocês pediram e hoje eu vou mostrar o código para importar XML.
Você vai ver que consegue importar as informações de forma rápida com apenas o clique de um botão, usando umam macro para importar XML!
Vamos lá ver como importar XML com VBA?
O que é XML?
Extensible Markup Language (XML) é uma linguagem de marcação recomendada para a criação de documentos organizados hierarquicamente.
É uma forma particular de organizar hierarquicamente itens, que mostramos em exemplo a seguir, para o arquivo de aula:
A ideia aqui é entender que existem itens mais internos, na hierarquia, e itens mais externos.
Queremos, que cada item seja separado em colunas no Excel, ao serem importados.
Abaixo mostramos a tabela que vai receber os dados da importação XML VBA:
A seguir temos o código responsável por fazer essa importação XML Excel. Vamos acompanhar o código e seus comentários:
Sub importarXML()
'Importar a referência Microsoft XML, v6.0
Dim caminhoXML As String
Dim arqXML As New MSXML2.DOMDocument60
Dim CDs As MSXML2.IXMLDOMNode, CD As MSXML2.IXMLDOMNode
Dim linha As Long
With Application.FileDialog(msoFileDialogFilePicker)
'Selecionar apenas um arquivo
.AllowMultiSelect = False
'Exibir apenas os arquivos de tipo .XML
.Filters.Add "Arquivos XML", "*.xml", 1
'Editar o título da caixa de seleção
.Title = "Escolha um arquivo XML"
'Exibir a caixa de seleção
.Show
'Guardar o caminho do arquivo selecionado
caminhoXML = .SelectedItems.Item(1)
End With
arqXML.Load (caminhoXML)
Set CDs = arqXML.SelectSingleNode("CATALOG")
linha = 2
For Each CD In CDs.ChildNodes
Cells(linha, 1).Value = CD.SelectSingleNode("TITLE").Text
Cells(linha, 2).Value = CD.SelectSingleNode("ARTIST").Text
Cells(linha, 3).Value = CD.SelectSingleNode("COUNTRY").Text
Cells(linha, 4).Value = CD.SelectSingleNode("COMPANY").Text
Cells(linha, 5).Value = CD.SelectSingleNode("PRICE").Text
Cells(linha, 6).Value = CD.SelectSingleNode("YEAR").Text
linha = linha + 1
Next
Set arqXML = Nothing
Set CD = Nothing
Set CDs = Nothing
End Sub
Comentários a respeito do código para importar XML:
Observe abaixo a caixa de diálogo de exemplo gerada pelo código:
Após rodar o código, apertando no botão de “Importar XML”, teremos rapidamente a tabela preenchida que queríamos, inicialmente. Veja:
Na aula de hoje você aprendeu a importar XML com VBA!
Você manipulou um arquivo XML em VBA, e conseguiu importar as informações diretamente do XML para Excel!
Até o próximo post! Fique ligado no nosso canal do Youtube para mais conteúdo de VBA! Um abraço!
Para acessar outras publicações de VBA, clique aqui!
Expert em VBA e Power BI da Hashtag Treinamentos. Auxilia no suporte aos alunos da Hashtag Treinamentos e na criação de conteúdos para os que acompanham nossos canais.