Wortwiederholungen in Word 2010 zählen

Hallo,

ich möchte gerne Wortwiederholungen in meinem mehrseitigen Dokument zählen lassen und diese dann in Form einer Liste angezeigt bekommen. Ich habe einige Makros aus der Google Suche benutzt doch leider waren keine davon zielführend.

Dank euch schon mal im Voraus!

Viele Grüße,

Andreas

Hallo Amdreas,

ich möchte gerne Wortwiederholungen in meinem mehrseitigen Dokument zählen lassen und diese dann in Form einer Liste angezeigt bekommen.

Lösen kann ich Dein Problem nicht. Aber ich möchte Dir meine Gedanken dazu mitteilen.

Ich habe einige Makros aus der Google Suche benutzt doch leider waren keine davon zielführend.

Wundert mich nicht. Ein Computer ist eine Maschine, die nur so viel Intelligenz besitzt wie der Programmierer, der ihr ihre Handlungen einhaucht. Ebenso ist es bei Word. Das. was Du im ersten Zitat postulierst, läßt sich relativ einfach programmieren:

  • Man nimmt das erste Wort des Dokuments in einen Array.
  • Mit Bearbeiten - Suchen sucht man danach und zählt die Sucherfolge.
  • Man fährt mit dem zweiten Wort fort, wobei man abgleicht, ob es bereits im Array ist.
  • usw. bis Dokumentende.

Was soll es aber bringen, wenn man weiß, wie oft „ist“, „war“, „der“, „die“, „das“, „ein“, „einer“, „eine“, „nur“, „wegen“ usw. in Deinem Dokument vorhanden sind? Ich vermute, daß es Dir eher auf bestimmte Begriffe ankommt. Dann müßtest Du eine solche unzensierte Liste manuell auf die gewünschten Suchergebnisse überprüfen.

Sinnvoler erscheint mir daher, daß Du selbst durch das Dokument gehst und die Suchbegriffe, die in der Liste auftauchen sollen, festlegst. M.a.W.: Du doppelklickst ein Wort und rufst ein Makro auf, das die Anzahl dieser Wörter im Dokument feststellt und dies in einer Liste am Dokumentende festhält.

Ist das in etwa in Deinem Sinne?

HTH.

Markus

ich möchte gerne Wortwiederholungen in meinem mehrseitigen
Dokument zählen lassen und diese dann in Form einer Liste
angezeigt bekommen. Ich habe einige Makros aus der Google
Suche benutzt doch leider waren keine davon zielführend.

Hallo Andreas,

Code in ein Standardmodul, Modul1 o.ä.

Gruß
Reinhard

Option Explicit

Sub WorteZaehlen()
Dim W As Long, colC As New Collection, C As Long
On Error Resume Next
Selection.WholeStory
ReDim Worte(1 To Selection.Words.Count, 1 To 2)
For W = 1 To Selection.Words.Count
 colC.Add Key:=Selection.Words(W), Item:=Selection.Words(W)
 Worte(W, 1) = Selection.Words(W)
Next W
On Error GoTo hell
For C = 1 To colC.Count
 For W = 1 To UBound(Worte, 1)
 If colC(C) = Worte(W, 1) Then Worte(C, 2) = Worte(C, 2) + 1
 Next W
Next C
Documents.Add DocumentType:=wdNewBlankDocument
ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=colC.Count, NumColumns \_
 :=2, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= \_
 wdAutoFitFixed
For C = 1 To colC.Count
 Selection.TypeText Text:=colC(C)
 Selection.MoveRight Unit:=wdCharacter, Count:=1
 Selection.TypeText Text:=Worte(C, 2)
 If C 0 Then MsgBox Err.Number & vbCr & Err.Description
End Sub

Danke Reinard, es funktioniert fantastisch, vielen Dank!