In diesem Beispiel zeigen wir Ihnen, wie XML Dateien per VBA erzeugt werden können.
Als Ausgangsdatei dient eine kleine Adressliste, die als XML-Datei abgespeichert werden soll, siehe Abbildung.
Abb: Adressliste
Der VBA-Code soll nun ab Zeile 6 die Einträge Vorname, Nachname und Ort mit den entsprechenden Tags in eine XML-Datei schreiben. Die XML-Datei soll wie folgt aufgebaut sein:

Erfassen Sie dazu in einem Code-Modul den folgenden VBA-Code:
Sub XML_Export()
'*****************************************
'** Excel-Inside Solutions - (C) *
'*****************************************
'** Dimensionierung der Variablen
Dim strFile As String, Text As String
Dim lngRow, lngCol As Long
Dim varShow
'** Errorhandling
On Error GoTo Fehlermeldung
'** XML-Dateipfad und -Name festlegen
strFile = ThisWorkbook.Path & "\test.xml"
'** Datei (ASCII) öffnen
Open strFile For Output As #1
'** XML-Header schreiben
Print #1, "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?> "
Print #1, "<daten xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"">"
'** Mit Schleife die ersten 3 Spalten der Tabelle schreiben
For lngRow = 6 To ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
'** Schreiben Datensatz-Beginn
Print #1, "<Adresse ID=""" & lngRow - 5 & """>" 'Tag Anfang
'** Schreiben der Felder (Spalten A-C)
Print #1, "<Vorname>" & Cells(lngRow, 1) & "</Vorname>"
Print #1, "<Nachname>" & Cells(lngRow, 2) & "</Nachname>"
Print #1, "<Ort>" & Cells(lngRow, 3) & "</Ort>"
'** Schreiben Datensatz-Ende
Print #1, "</Adresse>"
Next lngRow
'** Daten-Tag schließen
Print #1, "</daten>"
'** XML-Datei schließen
Close #1
'** Aufruf des Editors mit der geschriebenen xml-Datei
varShow = Shell(Environ("windir") & "\notepad.exe " & strFile, 1)
Exit Sub
'** Errorhandling
Fehlermeldung:
Close #1
MsgBox "Fehler-Nr.: " & Err.Number & vbNewLine & vbNewLine _
& "Beschreibung: " & Err.Description _
, vbCritical, "Fehler"
End Sub
Die XML-Daten-Struktur wird mit diesem VBA-Code erzeugt und in der Datei "test.xml" im gleichen Verzeichnis abgelegt, in der sich die Excel-Datei befindet.
Das Ergebnis sieht wie folgt aus:
Abb: XML-Datenstruktur
Hinweis:
Dieser Beispielcode wandelt Umlautet nicht nicht in einen XML-Konformen String um. Dies muss zusätzlich implementiert werden.
Die Beispieldatei kann über den folgenden Link heruntergeladen werden.
Import von XML-Dateien
Nun haben Sie erfahren, wie sie per VBA ganz einfach XML Dateien exportieren können. Um diese erzeugen XML-Dateien wieder zu importieren, also einzulesen gehen Sie wie folgt vor:
- Öffnen Sie den XML-Importbefehl über das Menü Daten | Verbindungen | Externe Daten abrufen | Aus anderen Quellen | Vom XML-Datenimport
- Öffnen Sie in dem Import "Datenquelle auswählen" unsere exportierte Datei Text.xml oder jede andere beliebige XML-konforme Datei
- Nach einem Klick auf die Schaltfläche Öffnen wird die XML-Datei importiert und in eine Excel-Tabelle eingelesen, siehe Abbildung.
Abb. importierte XML-Datei
Wie Sie sehen, verfügt Excel über eine komfortable XML-Importfunktion. Diese prüft beim Importvorgang die XML-Datei und gibt entsprechende Fehlermeldungen aus, falls die zu importierende Datei nicht konsistent ist.