Alle wörter untereinander gleich groß

5 Antworten

Alle wörter untereinander gleich groß

Community-Experte

Microsoft Word

Hallo,

du kannst das folgende Makro verwenden, das du in ein neues, normales Modul einfügen musst (in Word Alt + F11 drücken, um den VBA-Editor zu öffnen, dann dort über Einfügen Modul ein neues Modul erzeugen, und dann hier das Makro reinkopieren).

Hier der Code:

Option Compare Text Sub TextUeberpruefen()          Dim strWort, strNaechstesWort As String          ActiveDocument.Range.Select          'Alle Satz- oder Sonderzeichen aus Text entfernen      With Selection.Find         .ClearFormatting         .Replacement.ClearFormatting         .Text = "[,.-;:„“\!""§$%&/(\)=?{[\]}\\]"         .Replacement.Text = ""         .Forward = True         .Wrap = wdFindContinue         .Format = False         .MatchCase = False         .MatchWholeWord = False         .MatchWildcards = True         .MatchSoundsLike = False         .MatchAllWordForms = False         .Execute Replace:=wdReplaceAll     End With          'Wörter untereinander schreiben      With Selection.Find         .ClearFormatting         .Replacement.ClearFormatting         .Text = " "         .Replacement.Text = "^p"         .Forward = True         .Wrap = wdFindContinue         .Format = False         .MatchCase = False         .MatchWholeWord = False         .MatchWildcards = False         .MatchSoundsLike = False         .MatchAllWordForms = False         .Execute Replace:=wdReplaceAll     End With          'Sortieren     Selection.Sort ExcludeHeader:=False, FieldNumber:="Absätze", SortFieldType _         :=wdSortFieldAlphanumeric, SortOrder:=wdSortOrderAscending, FieldNumber2 _         :="", SortFieldType2:=wdSortFieldAlphanumeric, SortOrder2:= _         wdSortOrderAscending, FieldNumber3:="", SortFieldType3:= _         wdSortFieldAlphanumeric, SortOrder3:=wdSortOrderAscending, Separator:= _         wdSortSeparateByTabs, SortColumn:=False, CaseSensitive:=True, LanguageID _         :=wdGerman, SubFieldNumber:="Absätze", SubFieldNumber2:="Absätze", _         SubFieldNumber3:="Absätze"              'Mehrfach vorkommende Wörter löschen     With Selection         .EndKey Unit:=wdStory         .TypeParagraph         .HomeKey Unit:=wdStory, Extend:=wdExtend         ActiveDocument.Bookmarks.Add Name:="BMBereich", Range:=.Range         .Collapse VonVorne:         .EndKey Unit:=wdLine, Extend:=wdExtend         strWort = .Range.Text         strWort = Left(strWort, Len(strWort) - 1)         .Collapse         .MoveDown Unit:=wdLine         .EndKey Unit:=wdLine, Extend:=wdExtend         strNaechstesWort = .Range.Text         strNaechstesWort = Left(strNaechstesWort, Len(strNaechstesWort) - 1)         If strWort = strNaechstesWort Then             .Delete             .MoveUp Unit:=wdLine         Else             If .InRange(ActiveDocument.Bookmarks("BMBereich").Range) Then                 strWort = .Range.Text             Else                 .Delete                 ActiveDocument.Bookmarks("BMBereich").Delete                 Exit Sub             End If         End If         GoTo VonVorne     End With      End Sub

Das Makro entfernt zunächst alle Satz- und Sonderzeichen aus deinem Text. Danach werden alle Wörter untereinander geschrieben und anschließend sortiert. Schließlich werden alle mehrfach vorkommenden Wörter entfernt, wobei Groß- und Kleinschreibung hierbei nicht beachtet wird.

Wichtig: Je nach Umfang und Größe deines Dokuments, kann es sein, dass das Makro sehr lange braucht, weil es jede Zeile bzw. jedes Wort einzeln mit dem jeweils nächsten abgleichen muss, um gleiche Wörter zu löschen. Möglicherweise hängt sich Word dabei auch auf. Jedenfalls erfolgt die Verwendung des Makros vollkommen auf eigenes Risiko! Ich übernehme keinerlei Haftung für Schäden jedweder Art, die möglicherweise aus der Verwendung des Makros entstehen.

Eine Rückmeldung wäre nett und melde dich bitte bei Fragen!

Gruß, BerchGerch

Woher ich das weiß:Eigene Erfahrung – Ich arbeite seit 25 Jahren nahezu täglich mit Word.

Alle wörter untereinander gleich groß

Ersetze die Leerzeichen durch Zeilenumbrüche. Dazu könntest du die „Suchen & Ersetzen“-Funktion verwenden.

Zeilenumbrüche (bzw. eigentlich genauer: neue Absätze) erhält man bei Suchen und Ersetzen mit „^p“. Beim Suchfeld also „ “ (ein Leerzeichen) eintragen und beim Ersetzen-Feld „^p“ eintragen. (ohne Anführungszeichen)

Bzgl. der Löschung doppelt vorkommender Wörter fällt mir spontan keine optimale Möglichkeit ein. Persönlich würde ich evtl. die Zeilen einfach sortieren lassen und dann manuell schauen, welche Wörter doppelt vorkommen und diese Löschen. Bei einer größeren Datenmenge wäre das aber anstrengend und dauert evtl. auch länger. Bzw. würd ich selbst dafür wohl gar nicht Word verwenden, sondern mir dafür ein kleines Python-Script basteln und den Text da reinschmeißen. Vermutlich kann man das mit VBA zufriedenstellend in Word lösen, aber damit kenne ich mich nicht aus.

Alle wörter untereinander gleich groß

Schalte zunächst die Anzeige der Steuerzeichen ein, damit Du Leerzeichen von weichen und harten Zeilenumbrüchen unterscheiden kannst. Und dann nutze die "Suchen-Ersetzen-Funktion", um Leerzeichen gegen feste Zeilenumbrüche auszutauschen. Schon hast Du alle Wörter untereinander.

Kopiere den ganzen Text nun in die Tabellenfunktion. Danach müßte https://praxistipps.chip.de/openoffice-calc-doppelte-eintraege-finden-und-entfernen_28350 helfen.

Alle wörter untereinander gleich groß

Es gibt eine ganz einfache Möglichkeit: du ersetzt alle Leerzeichen zwischen den Wörtern durch Absatz Endezeichen und dann hast du alle Wörter untereinander.

Alle wörter untereinander gleich groß

Community-Experte

Computer

Das einfachste wäre wohl, wenn du den rechten Seitenrand soweit nach links ziehst, dass dann jedesmal eine neue Zeile beginnt.

Automatische Silbentrennung dann ausschalten.

Für alles andere dann per VBA.