Readdy Write  
0,00 €
Your View Money
Views: Count
Self 20% 0
Your Content 60% 0

Users by Links 0
u1*(Content+Views) 10% 0
Follow-Follower 0
s2*(Income) 5% 0

Count
Followers 0
Login Register as User

Word: Text-Dateien mit vba Makro zeilenbasierend einlesen

08.10.2018 (👁9704)


Dieses Code-Sample liest in Microsoft Word mittels eines vba-Makros Dateien in das Word-Dokument ein.

Dabei wird die Import-Datei als TextStream geöffnet und Zeile-für-Zeile eingelesen.

Dieser vba-Code hat den Vorteil, dass man Spezielle Text-Zeilen oder Bereiche beim Import filtern oder anpassen kann.

Betrifft: Import gilt auch für Excel, Powerpoint, Access

Dateiformat sollte Text-Basierend sein.

Dieser Test liest eigentlich alle mögliche Dateien mit verschiedenen Formaten ein.

Allerdings sind die gezeigten Einlese-Ergebnisse nur in Text-Dateien, txt, csv und ähnlich sinnvoll.

Option Explicit On

 

Sub Read_PDF_File()

    '------------------< Read_PDF_File() >------------------

    '<# Late-binding >

    'Dim fso

    'Set fso = CreateObject("Scripting.FileSystemObject")

    '</# Late-binding >

 

    '< Reference Binding >

    Dim fs As FileSystemObject

    Set fs = New FileSystemObject

    '</ Reference Binding >

    

    Dim sFilename As String

    sFilename = "C:\_Daten\Desktop\Demo\Word\2018-10-08_PDF_einlesen\Import_File_as_Text.txt"

    'Import_File_as_PDF.pdf

 

    Dim file_to_Read As TextStream

    Set file_to_Read = fs.OpenTextFile(sFilename, 1) '1:open as readonly

    

    Dim sText_Line As String

    Dim iLine As Integer

    iLine = 0

 

    '< output >

    Selection.TypeText "Filename=" & sFilename

    Selection.TypeParagraph

    '</ output >

 

    '----< @Loop: Read Line-by-Line >----

    Do While file_to_Read.AtEndOfStream <> True

        '--< Read Line >--

        iLine = iLine + 1

 

        '< read >

        sText_Line = file_to_Read.ReadLine()

        '</ read >

 

        '< add in word >

        Selection.TypeText sText_Line

        Selection.TypeParagraph

 

 

        'Selection.InsertAfter vbCrLf

        'Selection.InsertAfter sText_Line

 

        'If sText_Line Like "*ine*" Then

        '    MsgBox "Line"

        '    Selection.InsertAfter sText_Line

        'End If

        '</ add in word >

 

        '--</ Read Line >--

    Loop

    '----</ @Loop: Read Line-by-Line >----

 

 

    '< End >

    file_to_Read.Close

    Set file_to_Read = Nothing

    MsgBox "Done Lines=" & iLine

    '</ End >

    '------------------</ Read_PDF_File() >------------------

End Sub

 

 

 

 

Ergebnisse bei

Text-Dateien Import_File_as_Text.txt

ODT: Open Documente ODT direkt eingelesen

RTF: RTF Dokument direkt zeilenbasierend eingelesen