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!