martin4711
Goto Top

Excel VBA Makro zum Auslesen von Seitenzahlen in Word Dokumenten

Hallo zusammen,

ich habe in einem Verzeichnis circa 50 Word Dokumente und möchte in einem Excel Blatt eine Übersicht über die Word Dateien erstellen. Dazu soll einfach nur der Word-Dateiname und die Seitenanzahl des Word Dokuments in die Excel Übersicht übernommen werden.

Kann mir jemand mit einem VBA Script aushelfen?

Vielen Dank,
Martin

Content-Key: 112649

Url: https://administrator.de/contentid/112649

Printed on: April 26, 2024 at 23:04 o'clock

Member: bastla
bastla Mar 29, 2009 at 16:36:01 (UTC)
Goto Top
Hallo Martin4711 und willkommen im Forum!

Könnte etwa so aussehen:
Sub WordStats()
Basis = "D:\Word-Dateien"  
Typ = "doc" 'in Kleinbuchstaben  

Set wd = CreateObject("Word.Application")  
Zeile = 3 'ab dieser Zeile werden die Informationen in das Tabellenblatt eingetragen  
Set fso = CreateObject("Scripting.FileSystemObject")  
For Each Datei In fso.GetFolder(Basis).Files
    If LCase(fso.GetExtensionname(Datei.Name)) = Typ Then
        Set doc = wd.Documents.Open(Datei.Path)
        Cells(Zeile, "A") = Datei.Name  
        Cells(Zeile, "B") = doc.BuiltinDocumentProperties(14)  
        doc.Close False
    End If
    Zeile = Zeile + 1
Next
Columns("A:B").AutoFit  
Set wd = Nothing
End Sub
Grüße
bastla
Mitglied: 73234
73234 Mar 29, 2009 at 16:39:31 (UTC)
Goto Top
Für 50 Dateien:

1. dir *.doc > worddoku.txt
2. worddoku.txt in Excel importieren
3. Jedes Dokument aus der Textdatei öffnen und die Seitenzahl ermitteln
Mitglied: 76109
76109 Mar 31, 2009 at 13:31:01 (UTC)
Goto Top
Hallo bastla,

die Seitenanzahl gibt es unter:

            Cells(Zeile, "B") = doc.Content.End  

Gruß Dieter
Member: Martin4711
Martin4711 Mar 31, 2009 at 14:33:49 (UTC)
Goto Top
Super, 1000 Dank! Die Lösung funktioniert prima...

Viele Grüße,
Martin
Member: bastla
bastla Mar 31, 2009 at 15:36:23 (UTC)
Goto Top
@76109
Cells(Zeile, "B") = doc.Content.End  
Da erhalte ich aber einige abenteuerliche Werte face-wink (als Seitenanzahl) ...

... ist dann doch eher eine Zeichenanzahl - allerdings nicht gleich dem Ergebnis von
 doc.BuiltinDocumentProperties(16)

Grüße
bastla
Mitglied: 76109
76109 Mar 31, 2009 at 16:13:01 (UTC)
Goto Top
Hallo bastla,

wenn ich bei mir doc's lade, dann steht bei mir in "doc.BuiltinDocumentProperties" nix drin (Debbuggerfehler)

Ich habe doc's mit 1,2,3,4, und 5 Seiten (allerdings leer) getestet und da hat die Seitenanzahl mit "doc.Content.End"
gestimmt?

Gruß Dieter
Member: bastla
bastla Mar 31, 2009 at 16:23:02 (UTC)
Goto Top
@did1954
Test unter Office2003 mit einigen Worddateien ("Test5.doc" enthält wie bei Dir nur leere Seiten - dafür aber gleich 12 face-wink):
doc.BuiltinDocumentProperties(14):
Test2.doc	2
Test1.doc	1
Test3.doc	2
Test4.doc	1
Test5.doc	12

doc.BuiltinDocumentProperties(16):
Test2.doc	4134
Test1.doc	1118
Test3.doc	1781
Test4.doc	2383
Test5.doc	0

doc.Content.End:
Test2.doc	4865
Test1.doc	1294
Test3.doc	2186
Test4.doc	3010
Test5.doc	12
Scheint so, als würden mit "Content.End" alle Zeichen (also auch sämtliche Steuerzeichen, wie zB Seitenvorschub) gezählt werden.

Grüße
bastla
Mitglied: 76109
76109 Mar 31, 2009 at 16:47:34 (UTC)
Goto Top
Hallo bastla,

es scheint so, dass .Content.End alle Textzeichen zählt. Aber mit .BuiltIn bekomme ich immer noch Debuggerfehler.
Meldung "nicht verfügbar". Habe noch Office XP?

Gruß Dieter
Mitglied: 76109
76109 Mar 31, 2009 at 17:02:48 (UTC)
Goto Top
Hallo bastla,

also jetzt aber, jetzt funktioniert BuiltIn doch (Syntaxfehler ?), aber mit falschen Seitenzahlen:

Doc01 = 1
Doc02 = 2
Doc03 = 3
Doc04 = 3
Doc05 = 3

Gruß Dieter