Knowledge base KB0206

think-cell utilizza un colore di carattere errato

Problema

think-cell non utilizza il colore di testo principale definito nel modello di PowerPoint.

Soluzione

Questo problema era causato da un bug in PowerPoint. A partire dal mese di luglio 2017, Microsoft ha risolto il problema in Office 365 e Office 2016. La soluzione è stata applicata a Office 365 e alle edizioni Office 2016 Click-to-Run con l’aggiornamento alla Versione 1706 (Build 8229.2073). La soluzione per l’edizione basata su MSI di Office 2016 era inclusa in KB3203481.

Spiegazione e soluzione alternativa nel caso in cui il problema con la versione di Office non sia stato risolto

think-cell tenta di determinare il colore di carattere corretto in base ai colori di carattere forniti dal modello di PowerPoint. Le versioni di PowerPoint che contengono il bug comunicano a think-cell valori errati per il colore del carattere se nella diapositiva di livello superiore dello schema di diapositiva mancano alcuni segnaposto. È possibile riprodurre il problema senza think-cell.

Riproduzione senza think-cell

La macro seguente inserisce una nuova diapositiva con una casella di testo che mostra i valori del colore di carattere risultanti per ogni TextStyleLevel dello schema di diapositiva di PowerPoint. "TextStyleLevel[1]" mostra il colore di carattere principale fornito da PowerPoint.

  1. Aprire un file PowerPoint interessato dal problema e aprire l'editor VBA premendo Alt + F11.
  2. Nell'editor VBA selezionare la presentazione, quindi fare clic su InserisciNuovo modulo
  3. Incollare la macro seguente, quindi chiudere l'editor VBA.
  4. Nella finestra presentazione di PowerPoint, premere Alt + F8 per aprire la finestra Macro
  5. Selezionare l'opzione di dimostrazione, quindi fare clic su Esegui
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

Soluzione alternativa

Inserire i segnaposto mancanti nello schema di diapositiva della presentazione PowerPoint:

  1. Aprire lo schema di diapositiva: PowerPoint → VisualizzaVisualizzazioni masterSchema diapositiva
  2. Passare alla diapositiva di livello superiore nella barra laterale delle miniature.
  3. Nella maggior parte dei casi, è possibile risolvere il problema inserendo il segnaposto Testo e/o Titolo mancante:
    Layout Schema diapositivaLayout Schema diapositiva → selezionare Testo e/o TitoloOK
  4. Chiudere lo schema diapositiva: ChiudereChiudi visualizzazione schema
  5. Inserire un nuovo grafico o aggiornare i grafici esistenti, ad esempio trascinandoli in una nuova posizione.

Se il problema persiste, ripetere i passaggi, ma selezionare tutti i segnaposto mancanti durante il passaggio 3. I modelli o le presentazioni possono contenere più di uno schema di diapositiva interessati. Applicare la soluzione alternativa a tutti gli elementi interessati.

Si consiglia di inserire questa soluzione alternativa nel modello di PowerPoint o di contattare la persona responsabile dei modelli di PowerPoint in modo che aggiorni il modello predefinito.

Se la società ha un contratto di assistenza Microsoft Office e si desidera chiedere a Microsoft di correggere anche la propria versione di Office, fare riferimento al nostro caso Microsoft numero 116080514511540.

Contattare l'assistenza

Se think-cell non utilizza il colore di carattere corretto anche quando si usa una versione di Office corretta o quando è stata applicata la soluzione alternativa, inviare una diapositiva campione a il nostro team di assistenza indicando il colore di carattere desiderato.