Wie kann ich bei Microsoft Word einen fortlaufenden Text alphabetisch sortieren?
Ich habe einen Text, z. B. Apfel Tomate Birne Fenchel Knoblauch Banane
Jetzt möchte ich erreichen, dass mithilfe von Microsoft Word der Text alpabetisch sortiert wird, und zwar OHNE dass ich den gesamten Text vor der Sortierung in Absätze umwandeln muss (denn bei dem Text sind es ca. 40 000 Wörter!), dann gehts, mithilfe von Sortieren A-Z, Absätze...usw.
Nein! Ich möchte den Text so, wie er ist, umwandeln, dass der Text dann heißt:
Apfel Banane Fenchel Knoblauch Tomate
Wie mache ich das?
2 Antworten
Hallo,
solange es immer einzelne, durch Leerzeichen getrennte Wörter sind, die hier sortiert werden sollen, ist das in Word eigentlich sehr schnell zu erledigen.
Dazu muss man in einem ersten Schritt alle Leerzeichen in Absätze umwandeln, dann sortieren und dann alle Absätze wieder in Leerzeichen umwandeln. Das geht so:
- Rufe die Suchen-und-Ersetzen-Funktion auf. Drücke hierfür Strg + H.
- Gib ins Feld Suchen nach ein Leerzeichen ein und ins Feld Ersetzen durch den Befehl ^p. Drücke jetzt auf Alle Ersetzen. Jetzt solltest du alle Wörter einzeln untereinander in Absätzen stehen haben.
- Sortiere jetzt die Absätze (Typ: Text) aufsteigend. Das bringt die Absätze bzw. Wörter in eine alphabetische Reihenfolge.
- Ersetze jetzt die Absätze wieder durch Leerzeichen: Rufe die Suchen-und-Ersetzen-Funktion auf, gib ins Feld Suchen nach den Befehl ^p ein und ins Feld Ersetzen durch ein Leerzeichen ein und drücke auf Alle Ersetzen.
Im Ergebnis sollten jetzt deine Wörter als Fließtext alphabetisch sortiert sein.
VBA-Makro für WordHier das Ganze als Makro in VBA. Den Code unten könnte man in Word ein normales Modul im VBA-Editor kopieren (Alt + F11 drücken, dann Einfügen → Modul, dann den Code unten in den großen weißen Bereich in der Mitte kopieren und Speichern, dann den VBA-Editor wieder verlassen) und dann das Makro WoerterInFliesstextAlphabetischSortieren einmal ausführen (Alt + F8 drücken, dann das Makro WoerterInFliesstextAlphabetischSortieren auswählen und rechts auf Ausführen drücken), um das gleiche Ergebnis herbeizuführen.
Sub WoerterInFliesstextAlphabetischSortieren()
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
With Selection
.WholeStory
.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:=False, LanguageID _
:=wdGerman, SubFieldNumber:="Absätze", SubFieldNumber2:="Absätze", _
SubFieldNumber3:="Absätze"
End With
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "^p"
.Replacement.Text = " "
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute Replace:=wdReplaceAll
End With
End Sub
Gruß, BerchGerch
Nimm eine KI deiner Wahl und hau den Text da rein.
Mit Word geht das jedenfalls nicht so einfach. Nur mit Skripten, die den Text in Absätze umwandelt, sortiert und dann die Absätze wieder entfernt.