Unsere Webseiten benötigen JavaScript. Dies scheint in Ihrem Browser jedoch deaktiviert zu sein.

News & Tipps zu Microsoft Word

Lesen Sie hier einige der besten Beiträge aus SmartTools Word Weekly sowie ausgewählte Inhalte anderer E-Mail-Newsletter von SmartTools Publishing rund um Microsoft Word.

Beitrag aus SmartTools Word Weekly

Automatische Farbkennzeichnung in Formularen, Teil 2

Word 365 2024 2021 2019 2016 2013

Eine automatische Formatierung ist in Word-Formularen nicht vorgesehen, aber mit einem kleinen Trick kommen Sie dennoch zum Ziel. Nehmen wir beispielsweise an, dass Sie einen Fragebogen erstellen möchten, in dem die Probanden jede Frage mit drei vorgegebenen Auswahlmöglichkeiten beantworten können - zum Beispiel per Dropdownfeld. Die Auswahlmöglichkeiten fallen immer in die Kategorien "gut", "mittel" und "schlecht". Um dann schon auf den ersten Blick eine Tendenz zu erkennen, wäre es praktisch, wenn Antworten der Kategorie "gut" grün hinterlegt würden, Antworten der Kategorie "mittel" gelb und Antworten der Kategorie "schlecht" rot.

Realisieren ließe sich so ein Fragebogen mit Dropdownlisten-Inhaltssteuerelementen, die Sie in eine Tabelle einfügen. Dann könnten Sie in Abhängigkeit von der Dropdownlistenauswahl die jeweilige Tabellenzelle grün, gelb oder rot einfärben. Eine eingebaute Funktion gibt es dafür allerdings nicht. Sie müssen mit VBA-Code nachhelfen.

Der Fragebogen lässt sich nach dem ersten Teil schon bequem mit Hilfe von Dropdownlistenfeldern beantworten. Sie müssen nur die Felder mit dem Text "Wählen Sie ein Element aus" anklicken und die gewünschte Antwort aus der Liste auswählen.

Damit die jeweilige Tabellenzelle nach Auswahl einer Antwort automatisch eingefärbt wird, fügen Sie VBA-Code hinzu:

  1. Drücken Sie Alt + F11, um in die Entwicklungsumgebung von Word zu wechseln.
  2. Aktivieren Sie mit Strg + R den Projekt-Explorer und suchen Sie darin den Projektzweig des Dokuments mit dem Fragebogen - erkennbar am Dateinamen.
  3. Öffnen Sie den Projektzweig sowie die untergeordnete Ebene "Microsoft Word Objekte" und doppelklicken Sie dann auf den Eintrag "ThisDocument".
  4. Auf diese Weise öffnen Sie das zugehörige Codefenster, in das Sie folgenden VBA-Code eingeben:
Private Sub Document_ContentControlOnExit( _
    ByVal ContentControl As ContentControl, _
    Cancel As Boolean)

  ContentControl.Range.Cells(1).Shading _
      .BackgroundPatternColor = _
      GetCellColor(ContentControl)

End Sub

Private Function GetCellColor( _
    cc As ContentControl) _
  As Long
Dim ccListEntry As ContentControlListEntry
Dim strTextValue As String
Dim lngResult As Long

  strTextValue = ""

  For Each ccListEntry In cc.DropdownListEntries
    If ccListEntry.Text = cc.Range.Text Then
      strTextValue = ccListEntry.Value
      Exit For
    End If
  Next

  Select Case strTextValue
    Case "1"
      lngResult = wdColorLightGreen
    Case "2"
      lngResult = wdColorYellow
    Case "3"
      lngResult = wdColorLightOrange
    Case Else
      lngResult = wdColorAutomatic
  End Select

  GetCellColor = lngResult

End Function
  1. Verlassen Sie die Entwicklungsumgebung per Datei-Schließen und zurück zu Microsoft Word.

Sie können das Dokument jetzt speichern. Beachten Sie aber, dass Sie es jetzt als "Word Dokument mit Makros (*.docm)" speichern müssen. DOCX-Dateien können keinen VBA-Code enthalten.

Ansonsten erhalten Sie durch den VBA-Code den gewünschten Farbeffekt: Sobald Sie in den Dropdownlisten eine Antwort auswählen und zum nächsten Feld gehen, wird die jeweilige Tabellenzelle je nach Antwortkategorie grün, gelb oder orange eingefärbt.

Das Ganze funktioniert mit Hilfe der Ereignisprozedur "ContentControlOnExit", die automatisch beim Verlassen eines Inhaltssteuerelements ausgeführt wird. Die Prozedur setzt die Hintergrundfarbe der Tabellenzelle, in der sich das Steuerelement befindet.

Die Farbe wird durch die benutzerdefinierte Funktion "GetCellColor" bestimmt. Dabei prüft die Funktion zuerst in einer For Each-Next-Schleife, welcher Anzeigetext im Dropdownlistenfeld ausgewählt ist. Zum gefundenen Eintrag wird der zugeordnete Wert ermittelt, der laut unserer obigen Anleitung entweder 1, 2 oder 3 ist.

Somit kann in einem Select-Case-Ausdruck die passende Farbe bestimmt werden - zum Beispiel "wdColorLightGreen" (helles Grün) für eine Dropdownlistenauswahl mit dem Wert 1.