Word-Makros

Beim Lektorieren nutze ich viele Makros, denn sie beschleunigen den Überarbeitungsprozess.

Was sind Makros?

Word VBA Makros sind kleine Programme, die in der Programmiersprache VBA (Visual Basic for Applications) geschrieben wurden und in Microsoft Word ausgeführt werden können. Mit Makros können Veränderungen, die mehrere Tastaturanschläge benötigen, auf eine Tastenkombination gelegt werden. Das ist besonders praktisch bei Veränderungen, die häufig durchgeführt werden. Ein Beispiel ist die gleichzeitige Ausführung folgender Veränderungen:

  • zum Ende des Wortes springen
  • den letzten Buchstaben eines Worts löschen,
  • m einfügen,
  • wieder zum Beginn des Worts zu springen.

Sie kann als Makro mit der Tastenkombination Strg + M ausgeführt werden.

Lektorierende können von Makros profitieren, da sie so effizienter und schneller arbeiten können. Zum Beispiel können Makros für das Löschen unnötiger Leerzeichen oder für das Hervorheben von wiederkehrenden Fehlern wie Rechtschreibfehlern oder falsch gesetzten Kommas verwendet werden. Dadurch sparen Lektorierende Zeit und erhöhen gleichzeitig die Qualität ihrer Arbeit.

Makros können auch für die Erstellung von individuellen Prüfprotokollen oder für die Nachverfolgung von Änderungen in Dokumenten genutzt werden. Dadurch können Fehler und Änderungen schnell und einfach gefunden und korrigiert werden, was wiederum die Produktivität und Effektivität der Lektorierenden steigert.

Installierung

Makros können in Word direkt installiert werden. Dabei wird ein neues Makro erstellt, und der Code eines vorprogrammierten Makros kann hineinkopiert werden. Um die folgenden Makros zu installieren, gehe folgendermaßen vor:

  1. Suche dir das Makro aus.

  2. Klappe den VBA-Code aus (VBA-Code zeigen).

  3. Kopiere den Code, indem du auf das Klemmbrett rechts klickst.

  4. Öffne den VBA-Code-Editor in Word: Alt + F11 in Word drücken.

  5. Kopiere den VBA-Code ganz unten in das Fenster Normal - New Macros (Code).

  6. (optional) Weise dem Makro eine Tastenkombination zu, indem du auf DateiOptionenMenüband anpassenTastenkombinationen: Anpassen gehst. Hier kannst du unter KategorienMakros bei Befehl das Makro aussuchen. Jetzt drücke die Tastenkombination, die du haben magst (z. B. Strg + M). Als Letztes klickst du auf Zuordnen.

Makros für Veränderungen im Text

Die erste Makro-Kategorie erleichtert das Lektorieren, indem mehrere Tastenbewegungen zu einer zusammengefasst werden. Ich nutze sie während der detaillierten Textarbeit.

AddM

Dieses Makro ersetzt den letzten Buchstaben eines Wortes durch m. Wenn der letzte Buchstabe e ist, wird hinten ein m hinzugefügt.

Tip

Dieses Makro verwendet das MoveToEndOfWord-Makro. Bitte installiere es daher gemeinsam mit diesem Makro.

VBA-Code zeigen
Sub AddM()
' Sarah Zeller
' Version 22.03.2023
' Setze ein Wort in den Akkusativ

If Not Selection.End = Selection.Start Then Exit Sub
    MoveToEndOfWord
    Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    'Plural to Singular
    If Selection = "e" Or Selection = "u" Or Selection = "i" Then
        MoveToEndOfWord
        Options.ReplaceSelection = False
        Selection.TypeText Text:="m"
        Options.ReplaceSelection = True
    Else
    Selection.TypeBackspace
    Selection.TypeText Text:="m"
    End If
    
    Selection.MoveLeft Unit:=wdWord

End Sub

eines
einen
einer

eine

einem
einem
einem

einem

AddN

Dieses Makro ersetzt den letzten Buchstaben eines Wortes durch n. Wenn der letzte Buchstabe e ist, wird hinten ein n hinzugefügt. Wenn der letzte Buchstabe n ist, wird stattdessen en hinten an das Wort angefügt.

Tip

Dieses Makro verwendet das MoveToEndOfWord-Makro. Bitte installiere es daher gemeinsam mit diesem Makro.

VBA-Code zeigen
Sub AddN()
' Setze ein Wort in den Akkusativ
' Sarah Zeller, Version 16.10.2022

If Not Selection.End = Selection.Start Then Exit Sub
    MoveToEndOfWord
    Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    'Plural to Singular
    If Selection = "e" Or Selection = "l" Then
        MoveToEndOfWord
        Options.ReplaceSelection = False
        Selection.TypeText Text:="n"
        Options.ReplaceSelection = True
    ElseIf Selection = "n" Then
        Selection.InsertAfter Text:="en"
    Else
        Options.ReplaceSelection = True
        Selection.TypeText Text:="n"
    End If
    
    ' Selection.StartOf Unit:=wdWord
    ' MoveToEndOfWord
    Selection.MoveLeft Unit:=wdWord

End Sub

eines
einem
einer

ein
eine

einen
einen
einen

einen
einen

AddR

Dieses Makro ersetzt den letzten Buchstaben eines Wortes durch r. Wenn der letzte Buchstabe e ist, wird hinten ein r hinzugefügt. Wenn der letzte Buchstabe n ist, wird stattdessen er hinten an das Wort angefügt.

Tip

Dieses Makro verwendet das MoveToEndOfWord-Makro. Bitte installiere es daher gemeinsam mit diesem Makro.

VBA-Code zeigen
Sub AddR()
' Setze ein Wort in den Nominativ
' Sarah Zeller
' Version: 31.03.2023

If Not Selection.End = Selection.Start Then Exit Sub
    MoveToEndOfWord
    Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    'Plural to Singular
    If Selection = "e" Or Selection = "u" Or Selection = "a" Then
        MoveToEndOfWord
        Options.ReplaceSelection = False
        Selection.TypeText Text:="r"
        Options.ReplaceSelection = True
    ElseIf Selection = "r" Then
        MoveToEndOfWord
        Options.ReplaceSelection = False
        Selection.TypeText Text:="er"
        Options.ReplaceSelection = True
    Else
    Selection.TypeBackspace
    Selection.TypeText Text:="r"
    End If
    
    Selection.MoveLeft Unit:=wdWord

End Sub

letztes
letztem
letzten

letzter
letzte

letzter
letzter
letzter

letzterer
letzter

AddS

Dieses Makro fügt an ein Wort den Buchstaben s an. Wenn der letzte Buchstabe s ist, wird hinten ein es hinzugefügt.

Tip

Dieses Makro verwendet das MoveToEndOfWord-Makro. Bitte installiere es daher gemeinsam mit diesem Makro.

VBA-Code zeigen
Sub AddS()
' Setze ein Wort in den Genitiv
' Sarah Zeller
' Version: 20.07.2022

If Not Selection.End = Selection.Start Then Exit Sub

    MoveToEndOfWord
    Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    'Plural to Singular
    If Selection = "ß" Or Selection = "s" Then
        Selection.InsertAfter Text:="es"
    Else
    Selection.InsertAfter Text:="s"
    End If
    
    Selection.MoveLeft Unit:=wdWord

End Sub

letzten
letzte
dies

letztens
letztes
dieses

geschuetztesLeerzeichen

Dieses Makro ersetzt das nächste normale Leerzeichen durch ein geschütztes. Dafür bewegt es sich um ein Wort nach rechts vom Cursor. Wenn dort noch kein Leerzeichen steht, setzt es ein geschützes ein; ansonsten ersetzt es das normale Leerzeichen durch ein geschütztes.

VBA-Code zeigen
Sub geschuetztesLeerzeichen()
'
' geschütztesLeerzeichen Makro
' ersetzt das nächste normale Leerzeichen durch ein geschütztes
' Sarah Zeller, 16.10.2022

With ActiveWindow.View.RevisionsFilter
    .Markup = wdRevisionsMarkupSimple
End With

Selection.MoveRight Unit:=wdWord, Count:=1
Selection.MoveLeft Unit:=wdCharacter, Count:=1

If Selection = " " Or Selection = ChrW(160) Then
    Selection.MoveRight
    Selection.TypeBackspace
Else: Selection.MoveRight
End If

Selection.TypeText Text:=ChrW(160)

End Sub

35g
84,7 km

35 g
84,7 km

MoveToEndOfWord

Dieses Makro bewegt den Cursor an das Ende des Worts. Wenn man bei Word Strg + → drückt, wird der Cursor an den Beginn des nächsten Worts gebracht, d. h. die Leerzeichen werden übersprungen. Dieses Makro ist eine Alternative.

VBA-Code zeigen
Sub MoveToEndOfWord()
' moves to the end of a word
' regardless of any potential whitespaces before the next word

If Selection.Text = " " Then
    Selection.MoveRight Unit:=wdWord, Count:=1
End If

Selection.MoveRight Unit:=wdWord, Count:=1
Selection.MoveLeft Unit:=wdCharacter, Count:=1

If Selection.Text <> " " Then
    Selection.MoveRight Unit:=wdCharacter, Count:=1
End If
End Sub

|eines Tages

eines| Tages

ZitatKlammernZuText

Dieses Makro verwandelt eine Referenz, die in Klammern steht, in eine Referenz, die im Text steht.

VBA-Code zeigen

Sub ZitatKlammernZuText()
'
' ZitatKlammernZuText Makro
' Ändert ein Zitat um: von in Klammern gesetzt zu im Fließtext eingebettet
' 

'
Dim i
Dim j
Dim k
i = 0
j = 0
k = 0

' Make sure I can jump back if I want to
ActiveDocument.Bookmarks.Add Name:="temp"

' Check for parenthesis
Do Until i >= 10
    Selection.MoveRight Unit:=wdWord
    Selection.Expand Unit:=wdCharacter
    If Selection = "(" Then
        Selection.Delete
        i = 11
    Else: i = i + 1
    End If
Loop

' jump back if no parenthesis
If i = 10 Then
    ActiveDocument.Bookmarks("temp").Select
    ActiveDocument.Bookmarks("temp").Delete
    Exit Sub
End If

' Delete comma and set parenthesis
Do Until j >= 15
    Selection.MoveRight Unit:=wdWord
    Selection.Expand Unit:=wdCharacter
    If IsNumeric(Selection) Then
    ' Place parenthesis
        Selection.InsertBefore Text:="("
        j = 16
        ' Delete comma
        Do Until k = 4
        Selection.MoveLeft Unit:=wdCharacter
        If Selection = "," Then
            Selection.Delete
            k = 4
        ElseIf Selection = " " Then k = k + 1
        ElseIf Selection = "," Then k = k + 1
        Else: k = k + 1
        End If
        Loop
        
    Else: j = j + 1
    End If
Loop

End Sub

Nach (Jack und Jones, 2023) ist dies ein Beispielsatz.

Nach Jack und Jones (2023) ist dies ein Beispielsatz.

Makros für Navigation

HoldMySpot

Manchmal ist es nötig, im Text herumzuspringen, etwa um Textstellen miteinander zu vergleichen. Danach ist es nicht immer leicht, die Stelle wiederzufinden, von der ich gestartet bin. Dieses Makro setzt zuerst ein Lesezeichen und springt dann wieder zu diesem Lesezeichen zurück, wenn ich es wieder ausführe.

VBA-Code zeigen
Sub HoldMySpot()
' Add Bookmarks
' Version: 20.07.2022
' Sarah Zeller
' Original: Shane Bryson

Dim temp As String

temp = "holdMySpot"

With ActiveDocument
If .Bookmarks.Exists(temp) Then
    .Bookmarks(temp).Select
    .Bookmarks(temp).Delete
Else: .Bookmarks.Add Name:=temp
    MsgBox "Bookmark set"
End If
End With

End Sub