Word-Tabellen nach Excel exportieren

VBA und Makros
Codeschnipsel
Tabellen
Export
Dokument
Automatisierung
Excel
Word

Ausgangslage - Was tut dieser Code-Schnipsel?

Ein kleiner Beispielquelltext, um alle Tabellen eines Dokumentes in eine neue leere Excel Arbeitsmappe zu exportieren.

Der Quelltext

Option Explicit
' Original-Quelltext unter: https://www.online-vba.de/word-tabellen-nach-excel-exportieren
' Express-Hilfe für VBA unter https://www.online-vba.de/vba-expresshilfe
' Es gelten die Nutzungsbedingungen von Online-VBA.de

Public Sub OVBAde_ExportTablesToExcel()
  Dim oExcelApp As Object
  Dim oExcelWorkbook As Object
  Dim lZeile As Long
  Dim lSpalte As Long
  Dim lTable As Long
  Dim oTable As Object
  Dim lRememberSheetsInNewWorkbook As Long
    
    'Zuerst wird die Excel Datei geöffnet
    Set oExcelApp = CreateObject("Excel.Application")
    
    'Nur ein leeres Blatt beim Anlegen erstellen
    lRememberSheetsInNewWorkbook = oExcelApp.SheetsInNewWorkbook
    oExcelApp.SheetsInNewWorkbook = 1
    Set oExcelWorkbook = oExcelApp.Workbooks.Add
    oExcelApp.SheetsInNewWorkbook = lRememberSheetsInNewWorkbook
    oExcelApp.Visible = True
    
    'Schleife über alle Tabellen des Dokuments
    lTable = 1
    For Each oTable In ActiveDocument.Tables
        
        'Ab der zweiten Tabelle ein weiteres Blatt ergänzen
        If lTable >= 2 Then
            oExcelWorkbook.Sheets.Add After:=oExcelWorkbook.Sheets(oExcelWorkbook.Sheets.Count)
        End If
    
        'Tabelle übertragen für alle Zeilen und Spalten
        For lZeile = 1 To oTable.Rows.Count
            For lSpalte = 1 To oTable.Columns.Count
                'Steuerzeichen abschneiden und Zellenwert übertragen
                oExcelWorkbook.Sheets(lTable).Cells(lZeile, lSpalte) = _
                    Replace(Trim(CStr(oTable.Cell(lZeile, lSpalte).Range.Text)), Chr(13) & Chr(7), "")
            Next lSpalte
        Next lZeile
    
        'Nächste Tabelle und Arbeitsblatt
        lTable = lTable + 1
        
    Next oTable
    
    MsgBox "Fertig!"
    
    'Aufräumen nicht vergessen ...
    Set oTable = Nothing
    Set oExcelWorkbook = Nothing
    Set oExcelApp = Nothing
End Sub

Anmerkungen und Hinweise

Dieser Codeschnipsel wurde geschrieben von Marc Wershoven im Jahr 2017.
Die Nutzung erfolgt auf eigene Gefahr. Bitte denken Sie immer zuerst an eine ausreichende Datensicherung. Wir können keinen kostenlosen Support anbieten. Es gelten unsere Nutzungs­bedingungen.


So einfach läuft unsere VBA-Expresshilfe ab

1
Senden Sie uns Ihre Office-Datei oder Ihren VBA-Code (gerne anonymisiert) mit einer kurzen Problembeschreibung oder Ihrem Erweiterungswunsch per E-Mail.
2
Wir analysieren Ihr Anliegen schnell und schicken Ihnen umgehend (tagsüber meist innerhalb von 1-2 Stunden) ein Festpreis-Angebot.
3
Nach Ihrer Zustimmung lösen wir Ihr Problem (meist noch am gleichen Tag) oder setzen Ihre Erweiterung zuverlässig um – inklusive verständlicher Dokumentation der durchgeführten Maßnahmen.

Jetzt kontaktieren!







Mit einem * gekennzeichnete Eingabefelder sind Pflichtfelder.
Datenschutzhinweise zum Kontaktformular: Die von Ihnen im Kontaktformular bereitgestellten Daten werden ausschließlich zur Bearbeitung Ihrer Anfrage verwendet und nicht ohne Ihre Zustimmung an Dritte weitergegeben. Ihre Daten werden nur für den Zeitraum gespeichert, der zur Bearbeitung Ihrer Anfrage erforderlich ist. Weitere Hinweise zum Datenschutz finden Sie in unserer Datenschutzerklärung.
Hinweis: Für die vollständige Funktion dieser Website ist JavaScript erforderlich.
Bitte aktivieren Sie JavaScript in Ihrem Browser, um alle Inhalte und interaktiven Funktionen nutzen zu können.