Logo faq-o-matic.net
Logo faq-o-matic.net

Word: Zeichenzahl aller Dokumente zählen

von veröffentlicht am6. Januar 2006, 16:34 Uhr Kurzlink und Zitatlink einblenden
Kategorie Kategorie: Office, Scripting, Word   Translate with Google Translate Translate EN   Die angezeigte Seite drucken

Es ist zugegebenermaßen ein spezielles Problem, aber wer häufiger Dokumente zur Veröffentlichung schreiben muss, stolpert immer wieder darüber. Meine Frau sprach mich an, weil sie ein Buchmanuskript in verschiedenen Word-Dokumenten bearbeitet. Um einen Überblick zu erhalten, wie groß der Umfang des bisher Geschriebenen in Druckseiten sein wird, musste sie jedes Dokument öffnen, Word die Zeichen zählen lassen und dann die Druckseitenzahl berechnen. Automatisierung tut not.

Was liegt näher, als ein kleines Skript zu bemühen. Und so löst das folgende VB-Skript diese Aufgabe.

Nötige Anpassungen: Im Wesentlichen müssen nur zwei Variablen am Skriptanfang angepasst werden.

  • strDokumentpfad enthält den Pfad, in dem die Dokumente stehen (Unterordner werden nicht durchsucht)
  • intNormseite gibt an, wie viele Zeichen durchschnittlich auf einer Druckseite stehen

Und hier das Skript:

  1. '''''''''''''''''''''''''''''''''''''''''''''''''''''
  2. ' Word-Zeichenzaehler.vbs
  3. ' Zählt die Zeichen aller Word-Dokumente im angegebenen Ordner
  4. ' und stellt die Werte übersichtlich dar
  5. '
  6. ' Version: 1.0
  7. ' Datum:   05.01.2006
  8. ' Autor:   Nils Kaczenski (Vorname at Nachname .de)
  9. ' Letzte Änderungen:
  10. '
  11. ' Nils Kaczenski stellt dieses Skript ohne jede
  12. ' Gewährleistung zur Verfügung.
  13. ' Die Verwendung geschieht auf eigene Gefahr.
  14. '
  15. '''''''''''''''''''''''''''''''''''''''''''''''''''''
  16.  
  17. Option Explicit
  18. Dim strFarbe          '
  19. Dim intNormseite      '
  20. Dim intZaehler        '
  21. Dim intGesamtzahl          '
  22. Dim intZeichen
  23. Dim objDatei               '
  24. Dim objDoc
  25. Dim objDokumentordner      '
  26. Dim objExplorer
  27. Dim objFSO                 '
  28. Dim strHTML
  29. Dim objWord                '
  30. Dim strDokumentpfad        '
  31. Dim strPfad                '
  32.  
  33. Set objFSO = CreateObject("Scripting.FileSystemObject")
  34. Set objWord = CreateObject("Word.Application")
  35.  
  36. strDokumentpfad = "D:\Dokumente\Buch\Kapitel"
  37. intNormseite = 1500
  38.  
  39. strHTML = "<HTML><HEAD><TITLE>Word-Zeichenzähler</TITLE>" _
  40.     & "<STYLE type=""text/css""><!– " _
  41.     & "p, td, th {font-family:verdana;font-size:10pt;}" _
  42.     & " –></STYLE></HEAD>" _
  43.     & "<BODYonload=""this.focus();"">" _
  44.     & "<P><B>Anzahl der Zeichen in allen Word-Dokumenten in " & strDokumentpfad & "</B></P><BR>" _
  45.     & "<TABLE WIDTH=""100%"" CELLSPACING=""0"">" _
  46.     & "<TH align=""left"">Dokument</TH><TH align=""right"">Zeichen</TH><TH align=""right"">Normseiten</TH>"
  47.  
  48. intGesamtzahl = 0
  49.  
  50. Set objDokumentordner = objFSO.GetFolder(strDokumentpfad)
  51. For Each objDatei In objDokumentordner.Files
  52.     If Right(LCase(objDatei.Path), 3) = "doc" AND Not Left(objDatei.Name, 2) = "~$" Then
  53.         ZaehleWorter objDatei.Path, objDatei.Name
  54.     End If
  55. Next
  56.  
  57. strHTML = strHTML & "<TR><TD><B>Gesamt über alle Dokumente</B></TD>" _
  58.     & "<TD align=""right""><B>" & intGesamtzahl & "</B></TD>" _
  59.     & "<TD align=""right""><B>" & Round(intGesamtzahl/intNormseite, 1) & "</B></TD></TR>" _
  60.     & "</TABLE><BR></BODY></HTML>"
  61.  
  62. Set objExplorer = WScript.CreateObject("InternetExplorer.Application")
  63. objExplorer.Navigate "about:blank"
  64. objExplorer.ToolBar = 0
  65. objExplorer.StatusBar = 0
  66. objExplorer.Width=700
  67. objExplorer.Height = 400
  68. objExplorer.Left = 0
  69. objExplorer.Top = 0
  70. objExplorer.Visible = 1
  71. objExplorer.document.writeln(strHTML)
  72.  
  73.  
  74. Sub ZaehleWorter (strPfad, strName)
  75.     intZaehler = intZaehler+1
  76.     If intZaehler MOD 2 = 0 Then
  77.         strFarbe = "lightgrey"
  78.     Else
  79.         strFarbe = "white"
  80.     End If
  81.     ' Dokumentname
  82.     strHTML = strHTML & "<TR><TD bgcolor=""" & strFarbe _
  83.         & """>" & strName & "</TD>"
  84.     Set objDoc = objWord.Documents.Open(strPfad)
  85.     intZeichen = objWord.ActiveDocument.Characters.Count
  86.     intGesamtzahl = intGesamtzahl + intZeichen
  87.     objDoc.Close
  88.     ' Zeichen
  89.     strHTML = strHTML & "<TD bgcolor=""" & strFarbe _
  90.         & """ align=""right"">" & intZeichen & "</TD>"
  91.     ' Normseiten
  92.     strHTML = strHTML & "<TD bgcolor=""" & strFarbe _
  93.         & """ align=""right"">" & Round(intZeichen/intNormseite,1) & "</TD></TR>"
  94.  
  95. End Sub

© 2005-2017 bei faq-o-matic.net. Alle Rechte an den Texten liegen bei deren Autorinnen und Autoren.

Jede Wiederveröffentlichung der Texte oder von Auszügen daraus - egal ob kommerziell oder nicht - bedarf der ausdrücklichen Genehmigung durch die jeweiligen Urheberinnen oder Urheber.

Das Impressum findet sich unter: http://www.faq-o-matic.net/impressum/

Danke, dass du faq-o-matic.net nutzt. Du hast ein einfaches Blog sehr glücklich gemacht!