Is there any program that checks if there are words that repeat in a given text? Ie. I introduce some long text, and it would somehow highlight repeated words, etc.
Czy wolisz polską wersję strony elektroda?
Nie, dziękuję Przekieruj mnie tam
         Dim Slowo As String           'slowo z tekstu - szukane
         Const max_ilo_slow = 9000              'ilosc maksymalna slow ... ograniczenia :(
         Dim Slowa(max_ilo_slow) As String      'tablica z slowami
         Dim Licznik_slowa(max_ilo_slow) As Integer      'tablica z iloscia wystapienia konkretnego slowa
         Dim Unikalne_licznik As Integer             'ilosc slow unikalnych w tekscie
         Dim Sortowanie As Boolean              'sortowanie - po ilosci wystapien
         Dim Ilosc_slow As Long                 'ilosc slow w dokumencie - wszystkie
         Dim Wylaczenia As String             'Slowa ktore wylaczyc z liczenia
         Dim F As Boolean               'flaga pomocnicza
         Dim j, k, l, Temp As Integer       'liczniki itp.
         Dim TmpSlowo As String                ' Tyczasowe slowo
         Wylaczenia = ""
         Wylaczenia = InputBox$("Wpisz słowa które chcesz wyłączyć z przesukiwanego tekstu, słowa umieść w nawiasach [ ].", " Wyłączone słowa", "")
'poniżej przykład jak wpisać:
'"[z][i][do][o][w]" itp
         ' pytanie czy sortować po ilości wystąpień
         Sortowanie = True
         Selection.HomeKey Unit:=wdStory
         System.Cursor = wdCursorWait
         Unikalne_licznik = 0
         Ilosc_slow = ActiveDocument.Words.Count
         WSlowa = ActiveDocument.Words.Count
         ' liczymy :)
         For Each aword In ActiveDocument.Words
             Slowo = Trim(aword)
             If Slowo < "A" Or Slowo > "z" Then Slowo = ""
             If InStr(Wylaczenia, "[" & Slowo & "]") Then Slowo = ""
             If Len(Slowo) > 0 Then
                 F = False
                 For j = 1 To Unikalne_licznik
                     If Slowa(j) = Slowo Then
                         Licznik_slowa(j) = Licznik_slowa(j) + 1
                         F = True
                         Exit For
                     End If
                 Next j
                 If Not F Then
                     Unikalne_licznik = Unikalne_licznik + 1
                     Slowa(Unikalne_licznik) = Slowo
                     Licznik_slowa(Unikalne_licznik) = 1
                 End If
                 If Unikalne_licznik > max_ilo_slow - 1 Then
                     j = MsgBox("W tekście jest więcej unikalnych słów niż podałeś. Zwiększ maksymalną ilość słów", vbOKOnly)
                     Exit For
                 End If
             End If
             Ilosc_slow = Ilosc_slow - 1
             StatusBar = "Pozostało: " & Ilosc_slow & "     Unikalnych: " & Unikalne_licznik
         Next aword
         ' sortowanie
         For j = 1 To Unikalne_licznik - 1
             k = j
             For l = j + 1 To Unikalne_licznik
                 If (Not Sortowanie And Slowa(l) < Slowa(k)) Or (Sortowanie And Licznik_slowa(l) > Licznik_slowa(k)) Then k = l
             Next l
             If k  j Then
                 TmpSlowo = Slowa(j)
                 Slowa(j) = Slowa(k)
                 Slowa(k) = TmpSlowo
                 Temp = Licznik_slowa(j)
                 Licznik_slowa(j) = Licznik_slowa(k)
                 Licznik_slowa(k) = Temp
             End If
             StatusBar = "Sortowanie: " & Unikalne_licznik - j
         Next j
         ' Wyniki w nowy dokument :) i jako tabelke :)
         tmpName = ActiveDocument.AttachedTemplate.FullName
         Documents.Add Template:=tmpName, NewTemplate:=False
         Selection.ParagraphFormat.TabStops.ClearAll
         With Selection
             For j = 1 To Unikalne_licznik
             .TypeText Text:=Slowa(j) & vbTab & Trim(Str(Licznik_slowa(j))) & vbCrLf
             Next j
         End With
         ActiveDocument.Range.Select
         Selection.ConvertToTable
         Selection.Collapse wdCollapseStart
         ActiveDocument.Tables(1).Rows.Add BeforeRow:=Selection.Rows(1)
         ActiveDocument.Tables(1).Cell(1, 1).Range.InsertBefore "Słowo"
         ActiveDocument.Tables(1).Cell(1, 2).Range.InsertBefore "Ilość wystąpień"
         ActiveDocument.Tables(1).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
         ActiveDocument.Tables(1).Rows.Add
         ActiveDocument.Tables(1).Cell(ActiveDocument.Tables(1).Rows.Count, 1).Range.InsertBefore "Ilość wszystkich słów w dokumencie"
         ActiveDocument.Tables(1).Cell(ActiveDocument.Tables(1).Rows.Count, 2).Range.InsertBefore WSlowa
         ActiveDocument.Tables(1).Rows.Add
         ActiveDocument.Tables(1).Cell(ActiveDocument.Tables(1).Rows.Count, 1).Range.InsertBefore "Ilość unikalnych słów w dokumencie"
         ActiveDocument.Tables(1).Cell(ActiveDocument.Tables(1).Rows.Count, 2).Range.InsertBefore Trim(Str(Unikalne_licznik))
         System.Cursor = wdCursorNormal
     Selection.HomeKey wdStory