Erweiterte Dateiinfo von Docx auslesen unter Excel

Bild

Betrifft: Erweiterte Dateiinfo von Docx auslesen unter Excel
von: Angel
Geschrieben am: 29.07.2015 12:23:15

Hallo
Ist es möglich in Excel-VB die Erweiterte Dateieigenschaften einer WORD Datei (docx) auszulesen und weiterzuverarbeiten?
Ich brauche explicit Infos zum Inhalt: Seitenanzahl, Anzahl Wörter,ANzahl Zeichen usw.
Ich habe es versucht mit der Funktion: GetDetailsOf
leider sind diese Infos dort nicht vorhanden :(
Danke in voraus
Angel

Bild

Betrifft: AW: Erweiterte Dateiinfo von Docx auslesen unter Excel
von: Nepumuk
Geschrieben am: 29.07.2015 12:50:04
Hallo,
das könntest du mit dem OLE File Property Reader lösen.
Runterladen kannst du die DLL hier: https://www.microsoft.com/en-us/download/details.aspx?id=8422
Das Makro sieht dann beispielsweise so aus (Verweis auf die DSOFile.dll vorausgesetzt):

Public Sub Test()
    
    Dim objOleDocumentProperties As DSOFile.OleDocumentProperties
    Dim objSummaryProperties As DSOFile.SummaryProperties
    
    Set objOleDocumentProperties = New DSOFile.OleDocumentProperties
    
    objOleDocumentProperties.Open "G:\Eigene Dateien\Eigene Dokumente\Addin_Anleitung.docx"
    
    Set objSummaryProperties = objOleDocumentProperties.SummaryProperties
    
    Debug.Print objSummaryProperties.PageCount
    Debug.Print objSummaryProperties.WordCount
    Debug.Print objSummaryProperties.CharacterCount
    Debug.Print objSummaryProperties.CharacterCountWithSpaces
    
    objOleDocumentProperties.Close
    
    Set objSummaryProperties = Nothing
    Set objOleDocumentProperties = Nothing
End Sub

Ansonsten musst du die Word-Dateien öffnen und die entsprechenden BuiltinDocumentProperties auslesen. Die DSO-DLL ist erheblich schneller.
Gruß
Nepumuk

Bild

Betrifft: AW: Erweiterte Dateiinfo von Docx auslesen unter Excel
von: Angel
Geschrieben am: 29.07.2015 13:16:03
Vielen Dank,
werde es gleich ausprobieren. Es sind ca. 2500 docx files zum auslesen, bin gespannt wie schnell es geht. Alle Werte sollen in ExcelDatenBlatt eingetragen werden :D wir Spass werden...
Eine Frage bleibt jedoch, da ich ein x64 bit System habe.
Habe hier eine Version in x64 gefunden: http://www.keysolutions.com/blogs/kenyee.nsf/d6plinks/KKYE-79KRU6
kann ich diese nutzen? wo liegt der Unterschied zu x86?
Danke im Voraus,
Angel

Bild

Betrifft: AW: Erweiterte Dateiinfo von Docx auslesen unter Excel
von: Nepumuk
Geschrieben am: 29.07.2015 15:43:24
Hallo,
eine 64Bit-Version der DLL bräuchtest du nur, wenn du ein 64Bit-Office benutzen würdest.
Gruß
Nepumuk

Bild

Betrifft: AW: Erweiterte Dateiinfo von Docx auslesen unter Excel
von: Angel
Geschrieben am: 29.07.2015 23:05:59
Guten Abend Nepumuk,
habe alles installiert und angefangen zu testen. So weit so gut. Es stellt sich aber ein anderes Problem dar.
Deinen Vorschlag folgend, habe ich beide Word Typen versucht auszulesen ( .doc und .docx)
Unter .doc Files funktioniert es Einwand frei.
Sowohl lesen als auch schreiben, so weit so gut :) … doch bei .docx bekomme ich leider nur lauter "0" angezeigt.
Was mache ich falsch? Wo ist mein Denkfehler?
Hast Du vielleicht irgendein Tut, weitere Codebeispiele zu OLE File Property Reader?
Vielen Dank,
Angel

Bild

Betrifft: AW: Erweiterte Dateiinfo von Docx auslesen unter Excel
von: Nepumuk
Geschrieben am: 30.07.2015 07:32:08
Hallo,
ich hab das mit .doc / .docx / .docm getestet und bei allen dreien funktioniert das einwandfrei. Hast du schon mal in den Dateieigenschaften des Explorers geschaut ob da die Einträge drin sind?
Userbild
Gruß
Nepumuk

Bild

Betrifft: AW: Erweiterte Dateiinfo von Docx auslesen unter Excel
von: Angel
Geschrieben am: 30.07.2015 12:05:41
Hallo Nepumuk,
habe keine Guten Nachrichten :( bin die gesamte Einstellung durchgegangen, laufe unter WIn7x64 sp1, MSOffice 2013, sowohl die Installation als auch einzelne Komponenten.
Es scheint alles ist richtig installiert und erfasst zu sein.
Im Explorer gibt es UNTERSCHIEDLICHE ANSICHTEN .doc und .docx screenshots habe ich beigefügt.
Einerseits fehlt ein Reiter "Benutzerdefiniert" des weiteren sind einige Werte nicht erfasst (Datei).
Im Detail: Erweiterte Eigenschaften,
- Beschreibung GLEICH
- Ursprung GLEICH
- Inhalte GLEICH
- Datei UNTERSCHIEDLICH
im Testscript habe ich lediglich die Fileendung geändert von .doc aud .docx und er spucke nur lauter "0" aus ...
hm... was mache ich falsch? was kann man machen?
Userbild
Userbild
Userbild
Userbild
Userbild

Bild

Betrifft: AW: Erweiterte Dateiinfo von Docx auslesen unter Excel
von: Angel
Geschrieben am: 30.07.2015 14:37:01
Nachtrag:
Dem Fehler habe ich gefunden ABER ich kann Ihm nicht abstellen.
Da ich auf x64 laufe, (sowohl WIN als auch Office) habe ich die Version vom http://www.keysolutions.com/blogs/kenyee.nsf/d6plinks/KKYE-79KRU6
dies ist zwar eine x64 aber in der Version 2.0
die kann definitiv keine .docx auslesen
orig x86 ist Version 2.1
die kann es .docx werden korrekt ausgelesen.
*habe es getestet an orig. beigelegten Beispiel von MS*
die DSOFILE.dll *x86* wiederum kann ich nicht unter system32 registrieren (geht nur im C:\DsoFile )
Im Excel wird dann auch das Einbinden der Bibliothek angeboten (habe ich gemacht...)
Jedoch beim Ausführen gibt es einen Laufzeitfehler 429
was kann man machen?
Bilder hier:
x64 Version: 2.0
Userbild
Userbild
x86 Version 2.1
registriert unter C:\DsoFile
Userbild
Userbild

Bild

Betrifft: AW: Erweiterte Dateiinfo von Docx auslesen unter Excel
von: Nepumuk
Geschrieben am: 30.07.2015 17:09:58
Hallo,
unter einem 64Bit Windows müssen 32Bit-DLL's im Ordner SYSWOW64 gespeichert werden und auch mit der darin befindlichen regsvr32 registriert werden. Die Version 2.0 der DLL ist veraltet.
Ich kann dein Problem nicht nachvollziehen. Mach mal so ein Dokument auf und speichere es erneut, kommen dann die Werte? Wenn nicht, dann lade doch mal ein Musterdokument bei dem der Fehler auftritt hoch.
Gruß
Nepumuk

Bild

Betrifft: AW: Erweiterte Dateiinfo von Docx auslesen unter Excel
von: Angel
Geschrieben am: 30.07.2015 19:44:35
Hmm....
ich habe dazu dies gefunden,
http://forums.asp.net/t/1615658.aspx?dsofile+dll+not+working+in+VS2008+Website+on+Windows+7+64+bit+machine
sowie hier
https://social.msdn.microsoft.com/Forums/vstudio/en-US/112b300b-06e2-4b95-b811-1dd6726ef410/dsofiledll-not-working-in-vs2008-website-on-windows-7-64bit-machine?forum=vsto
genau das selbe wie bei mir ... so wird es nicht gehen, entweder registrierte x64 version (2.0) die "0" Werte rausgibt oder alles umstellen auf x86 - dann wird es gehen :( ... was für ein FOrtschritt...
irgend eine andere Idee?

Bild

Betrifft: AW: Erweiterte Dateiinfo von Docx auslesen unter Excel
von: Nepumuk
Geschrieben am: 30.07.2015 19:53:43
Hallo,
ich hab Windows7 Professional 64Bit und die DLL 2.1 arbeitet einwandfrei.
Gruß
Nepumuk

Bild

Betrifft: AW: Erweiterte Dateiinfo von Docx auslesen unter Excel
von: Angel
Geschrieben am: 30.07.2015 19:56:12
hier ist es gut erklärt aber den Laufzeitfehler (unter x86) bekomme ich nicht geregelt.
http://www.xlam.ch/soscq/vbadsofile.htm
Die COM ist nicht richtig "eingebunden"
Andere Idee die Werte Erweiterten docx auszulesen ohne diese Bibliothek?

Bild

Betrifft: AW: Erweiterte Dateiinfo von Docx auslesen unter Excel
von: Nepumuk
Geschrieben am: 30.07.2015 20:24:32
Hallo,
das hab ich in meiner ersten Antwort schon geschrieben. Du machst die Dateien auf und liest die BuiltinDocumentProperties aus. Darin sind die gesuchten Informationen gespeichert.
Beispiel:

Public Sub Test()
    Const PROPERTY_PAGES As String = "Number of pages"
    Const PROPERTY_WORDS As String = "Number of words"
    Const PROPERTY_CHARACTERS As String = "Number of characters"
    Dim objWord As Object, objDocument As Object
    Set objWord = CreateObject("Word.Application")
    Set objDocument = objWord.Documents.Open(Filename:= _
        "G:\Eigene Dateien\Eigene Dokumente\Addin_Anleitung.docx", ReadOnly:=True)
    With objDocument.BuiltinDocumentProperties
        Debug.Print .Item(PROPERTY_PAGES).Value
        Debug.Print .Item(PROPERTY_WORDS).Value
        Debug.Print .Item(PROPERTY_CHARACTERS).Value
    End With
    Call objDocument.Close(SaveChanges:=False)
    Call objWord.Quit
    Set objDocument = Nothing
    Set objDocument = Nothing
End Sub

Gruß
Nepumuk

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Erweiterte Dateiinfo von Docx auslesen unter Excel"