надстройка think-cell использует неправильный цвет шрифта
Проблема
Надстройка think-cell не использует основной цвет шрифта, заданный в моем шаблоне PowerPoint.
Решение
Эта проблема возникает из-за программной ошибки в PowerPoint. В июле 2017 г. компания Microsoft исправила проблему в Office 365 и Office 2016. Выпуски Office 365 и Office 2016 «Нажми и работай» получили исправление с обновлением до версии 1706 (сборка 8229.2073). Исправление для выпуска Office 2016 на основе MSI было включено в состав KB3203481.
Пояснение и обходное решение, если ваша версия Office не получила исправление
Надстройка think-cell пытается определить правильный цвет шрифта, опираясь на цвета шрифтов, указанных в вашем шаблоне PowerPoint. Версии PowerPoint с программной ошибкой, сообщают надстройке think-cell неправильные значения цвета шрифтов, если в слайде верхнего уровня образца слайдов отсутствуют некоторые замещающие тексты. Эту проблему можно воспроизвести и без надстройки think-cell.
Воспроизведение ошибки без think-cell
Следующий макрос вставляет новый слайд с текстовым полем, в котором отображаются итоговые значения с цветами шрифтов для каждого TextStyleLevel из вашего образца слайдов PowerPoint. "TextStyleLevel[1]" — здесь отображается основной цвет шрифта, предоставленный PowerPoint.
- Откройте проблемный файл PowerPoint и запустите редактор VBA сочетанием клавиш Alt + F11
- В редакторе VBA выберите свою презентацию и нажмите Вставка → Новый модуль
- Вставьте следующий макрос и закройте редактор VBA
- В окне презентации PowerPoint нажмите Alt + F8, чтобы открыть окно Макрос
- Выберите Демонстрация и нажмите кнопку Запустить
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.Design.SlideMaster
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 " & vbCr
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)" & vbCr & vbCr
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) & vbCr & vbCr
txtrng2.Font.Fill.ForeColor.RGB = nRgb
Else
txtrng2.Text = "ObjectThemeColor: " & col.ObjectThemeColor _
& vbCr & vbCr
txtrng2.Font.Fill.ForeColor.ObjectThemeColor = col.ObjectThemeColor
End If
End If
i = i + 1
Next txtlvl
End Sub
Обходное решение
Вставьте недостающий замещающий текст в образце слайдов своей презентации PowerPoint:
- Откройте образец слайдов: PowerPoint → Вид → Режимы образцов → Образец слайдов
- Перейдите к слайду верхнего уровня в боковой панели эскизов
- В большинстве случаев проблему можно решить, вставив недостающий замещающий Текст и/или Заголовок:
Главный макет → Главный макет → установите флажок Текст и/или Заголовок→ OK - Закройте образец слайдов: Закрыть → Закрыть режим образца
- Вставьте новую диаграмму или измените существующие диаграммы, например, перетащив их в новое место
Если проблема не разрешилась, пожалуйста, повторите описанные выше действия, но при этом установите флажки для всех недостающих замещающих элементов на шаге 3. Шаблоны и презентации могут содержать несколько проблемных образцов слайдов; примените обходное решение к каждому из них.
Вы можете добавить это обходное решение в свой шаблон PowerPoint или обратиться к человеку, ответственному за шаблоны PowerPoint, с просьбой обновить ваш стандартный шаблон.
Если у вашей компании есть контракт на поддержку Microsoft Office и вы хотите попросить компанию Microsoft исправить также и вашу версию Office, пожалуйста, укажите нашу заявку о поддержке Microsoft с номером 116080514511540.
Обратитесь в службу поддержки
Если надстройка think-cell все еще не использует правильный цвет шрифта, хоть вы и работаете в исправленной версии Office или применили обходное решение, то, пожалуйста, отправьте нам пример такого слайда в наша группа поддержки и сообщите о том, какой цвет шрифта там должен быть.