Knowledge-Base-Artikel (KB0206)

think-cell verwendet falsche Schriftfarbe

Problem

think-cell verwendet nicht die in meiner PowerPoint-Vorlage definierte Haupttextfarbe.

Lösung

Das Problem wurde von einem Fehler in PowerPoint verursacht. Seit Juli 2017 hat Microsoft das Problem in Office 365 und Office 2016 behoben. Office 365 und die Office 2016 Klick-und-Los-Versionen haben die Korrektur mit dem Update auf Version 1706 (Build 8229.2073) erhalten. Die Korrektur für die MSI-basierte Version von Office 2016 war im KB3203481 enthalten.

Erklärung und Workaround für den Fall, dass Ihre Office-Version nicht korrigiert wurde

think-cell versucht, die korrekte Schriftfarbe aufgrund der Schriftfarben in Ihrer PowerPoint-Vorlage zu erkennen. PowerPoint-Versionen, die den Fehler enthalten, teilen think-cell falsche Werte für die Schriftfarbe mit, wenn in der obersten Folie des Folienmasters bestimmte Platzhalter fehlen. Dieser Fehler lässt sich ohne think-cell reproduzieren.

Reproduktion ohne think-cell

Das folgende Makro fügt eine neue Folie mit einem Textfeld ein, das die Werte für Schriftfarben anzeigt, die aus der jeweiligen TextStyleLevel im Folienmaster Ihrer PowerPoint-Installation hervorgehen. "TextStyleLevel[1]" zeigt die Hauptschriftfarbe an, die PowerPoint ausgibt.

  1. Öffnen Sie eine betroffene PowerPoint-Datei und öffnen Sie den VBA-Editor mit Alt + F11
  2. Wählen Sie im VBA-Editor Ihre Präsentation aus und klicken Sie auf EinfügenNeues Modul
  3. Fügen Sie das folgende Makro ein und schließen Sie den VBA-Editor
  4. Drücken Sie im Präsentationsfenster von PowerPoint auf Alt+F8, um das Makrofenster zu öffnen.
  5. Wählen Sie Vorführen und klicken Sie auf Ausführen
Function AppendToTextRange(txtfrm2 As PowerPoint.TextFrame2) As Office.TextRange2
    Set AppendToTextRange = _
	txtfrm2.TextRange.Characters(txtfrm2.TextRange.Length + 1, 0)
End Function

Sub Demonstrate()
    Dim pres As PowerPoint.Presentation
    Set pres = ActivePresentation
    
    Dim sld As PowerPoint.Slide
    Set sld = pres.Slides.Add(pres.Slides.Count + 1, PowerPoint.ppLayoutBlank)
    sld.Select
    
    Dim mstr As PowerPoint.Master
    Set mstr = sld.Master
    
    Dim shp As PowerPoint.Shape
    Set shp = sld.Shapes.AddShape(Office.msoShapeRectangle, 50, 50, _
    pres.PageSetup.SlideWidth / 2 - 50, pres.PageSetup.SlideHeight - 100)
    shp.Fill.ForeColor.RGB = RGB(255, 255, 122) 'light yellow backgound

    Dim txtfrm2 As PowerPoint.TextFrame2
    Set txtfrm2 = shp.TextFrame2
    
    Dim txtrng2 As Office.TextRange2
    Dim i As Integer
    i = 1
    Dim txtlvl As PowerPoint.TextStyleLevel
    For Each txtlvl In mstr.TextStyles(PowerPoint.ppBodyStyle).Levels
        Set txtrng2 = AppendToTextRange(txtfrm2)
        txtrng2.Text = "TextStyleLevel[" & i & "] has color " & vbCrLf
        txtrng2.Font.Fill.Solid
        txtrng2.Font.Fill.ForeColor.ObjectThemeColor = Office.msoThemeColorText1
        
        Set txtrng2 = AppendToTextRange(txtfrm2)
        Dim col As PowerPoint.ColorFormat
        
        Set col = txtlvl.Font.Color
        If PowerPoint.ppSchemeColorMixed = col.Type Then
            txtrng2.Text = "MIXED (should not occur)" & vbCrLf & vbCrLf
        Else
            If Office.msoNotThemeColor = col.ObjectThemeColor Then
                Dim nRgb As Long
                nRgb = col.RGB()
                txtrng2.Text = "RGB: " & (nRgb Mod 256) & "/" & ((nRgb \ 256) _
                Mod 256) & "/" & (nRgb \ 256 \ 256) & vbCrLf & vbCrLf
                txtrng2.Font.Fill.ForeColor.RGB = nRgb
            Else
                txtrng2.Text = "ObjectThemeColor: " & col.ObjectThemeColor _
                & vbCrLf & vbCrLf
                txtrng2.Font.Fill.ForeColor.ObjectThemeColor = col.ObjectThemeColor
            End If
        End If
        i = i + 1
    Next txtlvl
End Sub

Workaround

Fügen Sie fehlende Platzhalter in den Folienmaster Ihrer PowerPoint-Präsentation ein:

  1. Öffnen Sie den Folienmaster: PowerPoint → AnsichtMasteransichtenFolienmaster
  2. Wählen Sie in der Miniaturansicht die oberste Folie aus
  3. In den meisten Fällen können Sie den Fehler beheben, indem Sie den fehlenden Platzhalter für Text und/oder Titel einfügen:
    MasterlayoutMasterlayoutText und/oder Titel ankreuzen → OK
  4. Schließen Sie den Folienmaster: SchließenMasteransicht schließen
  5. Fügen Sie ein neues Diagramm ein oder aktualisieren Sie bestehende Diagramme, indem Sie sie beispielsweise auf eine neue Position verschieben.

Sollte das Problem weiterhin bestehen, wiederholen Sie bitte diese Schritte und kreuzen Sie in Schritt 3 alle fehlenden Platzhalter an. Vorlagen oder Präsentationen können auch mehrere betroffene Folienmaster enthalten. Wenden Sie dann den Workaround auf alle betroffenen Folien an.

Sie können diesen Workaround in Ihre PowerPoint-Vorlage einfügen oder Ihre Standardvorlage von dem für Ihre PowerPoint-Vorlagen zuständigen Kollegen aktualisieren lassen.

Wenn Ihr Unternehmen einen Supportvertrag für Microsoft Office abgeschlossen hat und Sie sich an Microsoft wenden möchten, damit auch Ihre Office-Version korrigiert wird, geben Sie bitte die Microsoft-interne Fallnummer „REG:116080514511540“ an.

Support kontaktieren

Wenn think-cell auch weiterhin die falsche Schriftfarbe verwendet, nachdem Sie Ihre Office-Version korrigiert oder den Workaround vorgenommen haben, senden Sie bitte eine Beispielfolie an unser Supportteam und teilen Sie uns dabei Ihre bevorzugte Schriftfarbe mit.