Tutorial: Abhängige Dropdown-Listen in Microsoft Word erstellen

Melden

Dieses Tutorial zeigt Ihnen, wie Sie in Microsoft Word eine abhängige Dropdown-Liste erstellen. Das bedeutet: Je nachdem, was Sie im ersten Dropdown-Menü auswählen, ändern sich die Auswahlmöglichkeiten im zweiten Menü.

Wichtig: Im Gegensatz zu Excel benötigt Word für diese Funktion ein kleines Stück VBA-Code (Makro).


Schritt 1: Registerkarte „Entwicklertools“ aktivieren

Falls Sie die Registerkarte Entwicklertools oben im Menüband noch nicht sehen, müssen Sie diese zuerst aktivieren:

  1. Klicken Sie mit der rechten Maustaste irgendwo auf das Menüband (Ribbon) und wählen Sie Menüband anpassen.
  2. Setzen Sie in der rechten Spalte ein Häkchen bei Entwicklertools.
  3. Bestätigen Sie mit OK.

Schritt 2: Die Dropdown-Inhaltssteuerelemente einfügen

Nun erstellen wir die beiden Listen.

  1. Gehen Sie zur Registerkarte Entwicklertools.
  2. Klicken Sie in der Gruppe „Steuerelemente“ auf das Symbol für Dropdown-Inhaltssteuerelement (ein kleines blaues Symbol mit einer Liste).
  3. Wiederholen Sie dies, um ein zweites Dropdown-Menü direkt daneben oder darunter einzufügen.

Schritt 3: Namen (Tags) für die Listen vergeben

Damit Word weiß, welche Liste welche ist, müssen wir ihnen Namen geben:

  1. Klicken Sie auf das erste Dropdown.
  2. Klicken Sie in den Entwicklertools auf Eigenschaften.
  3. Geben Sie bei „Titel“ und „Tag“ jeweils Kategorie ein.
  4. Fügen Sie über die Schaltfläche „Hinzufügen“ Ihre Hauptpunkte ein (z. B. „Obst“ und „Gemüse“).
  5. Klicken Sie auf das zweite Dropdown.
  6. Klicken Sie auf Eigenschaften und geben Sie bei „Titel“ und „Tag“ jeweils Unterkategorie ein. (Hier fügen wir noch keine Auswahlmöglichkeiten hinzu, das erledigt später der Code).

Schritt 4: Den VBA-Code hinzufügen

Jetzt programmieren wir die Abhängigkeit:

  1. Drücken Sie ALT + F11, um den VBA-Editor zu öffnen.
  2. Suchen Sie links im Projekt-Explorer Ihr Dokument und klicken Sie doppelt auf ThisDocument (oder DiesesDokument).
  3. Kopieren Sie den folgenden Code und fügen Sie ihn in das weiße Fenster ein:
Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
    Dim subList As ContentControl
    Dim i As Integer

    ' Nur reagieren, wenn die Liste "Kategorie" verlassen wird
    If ContentControl.Tag = "Kategorie" Then
        ' Die abhängige Liste finden
        Set subList = ActiveDocument.SelectContentControlsByTag("Unterkategorie").Item(1)

        ' Vorhandene Einträge in der zweiten Liste löschen
        subList.DropdownListEntries.Clear
        subList.DropdownListEntries.Add "Bitte wählen...", ""

        ' Einträge basierend auf der Auswahl der ersten Liste hinzufügen
        Select Case ContentControl.Range.Text
            Case "Obst"
                subList.DropdownListEntries.Add "Apfel"
                subList.DropdownListEntries.Add "Banane"
                subList.DropdownListEntries.Add "Erdbeere"
            Case "Gemüse"
                subList.DropdownListEntries.Add "Karotte"
                subList.DropdownListEntries.Add "Brokkoli"
                subList.DropdownListEntries.Add "Paprika"
        End Select

        ' Ersten Eintrag ("Bitte wählen") standardmäßig anzeigen
        subList.Range.Text = ""
    End If
End Sub

Schritt 5: Funktionsweise testen

  1. Schließen Sie den VBA-Editor (ALT + Q).
  2. Wählen Sie im ersten Dropdown (Kategorie) z. B. „Obst“ aus.
  3. Wichtig: Klicken Sie mit der Maus irgendwo außerhalb des Dropdown-Feldes in das Dokument. Der Code wird in Word erst ausgeführt, wenn man das Steuerelement verlässt („OnExit“).
  4. Klicken Sie nun in das zweite Dropdown (Unterkategorie). Sie sehen nun die spezifischen Einträge für „Obst“.

Schritt 6: Das Dokument richtig speichern

Damit die Funktion erhalten bleibt, müssen Sie das Dokument in einem speziellen Format speichern:

  1. Gehen Sie auf Datei > Speichern unter.
  2. Wählen Sie als Dateityp Word-Dokument mit Makros (.docm).

Hinweis zur Anpassung: Wenn Sie Ihre eigenen Begriffe verwenden möchten, müssen Sie im Code lediglich die Begriffe in den Case-Zeilen (z. B. "Obst") und die dazugehörigen subList.DropdownListEntries.Add-Zeilen anpassen.

0