Knowledge base KB0206

think-cell usa cor de fonte incorreta

Problema

O think-cell não usa a cor de texto principal definida no modelo do PowerPoint.

Solução

Esse problema é causado por um erro de programação do PowerPoint. A partir de julho de 2017, a Microsoft solucionou o problema no Office 365 e no Office 2016. As edições “Clique para executar” (Click-to-Run) do Office 365 e do Office 2016 receberam a correção com a atualização para a Versão 1706 (Build 8229.2073). A correção da edição baseada em MSI do Office 2016 foi incluída no KB3203481.

Explicação e solução alternativa caso sua versão do Office não tenha sido corrigida

think-cell tenta determinar a cor de fonte correta com base nas cores de fonte que o seu modelo de PowerPoint fornece. As versões do PowerPoint contendo erro de programação informam ao think-cell valores incorretos para a cor de fonte se estiver faltando alguns espaços reservados no slide de nível superior do slide mestre. Esse problema pode ser reproduzido sem o think-cell.

Reprodução sem o think-cell

A macro a seguir insere um novo slide com uma caixa de texto mostrando os valores da cor da fonte resultantes para cada Nível de Estilo de Texto do seu slide mestre do PowerPoint. "TextStyleLevel[1]" mostra a cor da fonte principal fornecida pelo PowerPoint.

  1. Abra o arquivo do PowerPoint afetado e abra o editor VBA com Alt + F11
  2. No editor VBA, selecione a sua apresentação e clique em InserirNovo módulo
  3. Cole a macro a seguir e feche o Editor VBA.
  4. Na janela de apresentação do PowerPoint, pressione Alt + F8 para abrir a janela Macro
  5. Selecione Demonstrar e clique em Executar
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

Solução alternativa

Insira os espaços reservados no slide mestre da sua apresentação do PowerPoint:

  1. Abra o slide mestre: PowerPoint → ExibirExibições mestresSlide mestre
  2. Vá para o slide de nível superior na barra lateral da miniatura
  3. Na maioria dos casos, o problema pode ser resolvido inserindo-se o Texto faltante e/ou o marcador de posição Título:
    Layout mestreLayout mestre → assinale Texto e/ou TítuloOK
  4. Feche o slide mestre: FecharFechar exibição mestre
  5. Insira um novo gráfico ou atualize os gráficos existentes, por exemplo, arrastando-os até uma nova posição

Se o problema persistir depois disso, repita essas etapas, mas assinale todos os marcadores de posição faltando na etapa 3. Os modelos ou apresentações podem conter mais do que um slide mestre afetado. Aplique a solução alternativa a todos eles.

Recomenda-se incluir essa solução alternativa ao seu Modelo de PowerPoint ou entrar em contato com a pessoa responsável pelos seus modelos de PowerPoint para atualizar o modelo padrão.

Se sua empresa tiver um contrato de suporte do Microsoft Office e você desejar entrar em contato com a Microsoft para solicitar uma correção, favor mencionar seu número de caso da Microsoft 116080514511540.

Entre em contato com o suporte

Se o think-cell ainda não usar a cor de fonte correta, embora você esteja usando uma versão do Office corrigida ou tiver aplicado uma solução alternativa, favor enviar um slide de exemplo para nossa equipe de suporte e nos informar a cor de fonte que prefere.