В настоящее время мы пересматриваем рекомендации нашей компании для нашей ERP-системы. У нас есть более 200 рекомендаций, разработанных в PowerPoint, и все они должны быть стандартизированы и обновлены, чтобы соответствовать новому стандарту.
Основная проблема заключается в том, что мне нужно изменить цвет всех фигур. В зависимости от цвета фона или отсутствия цвета фона мне нужно установить разные цвета темы для фона и шрифтов.
Мой первоначальный план состоял в том, чтобы сделать это с помощью петель, основанных на типах фигур. Я написал код, который изменил все формы на правильный цвет, если это не было название. Это не прошло хорошо. Есть только много форм, и я не мог заставить это работать должным образом. Заголовок внезапно будет иметь форму прямоугольника вместо заголовка, и пустые поля также будут заполнены. Мне нужно было что-то еще.
Мой план таков: выясните, имеет ли форма цвет заливки и текст, используя вложенные циклы, если да. Установите соответствующий цвет темы компании. Затем проверьте, есть ли у него текст, и установите его соответствующим образом. Есть только два цвета: синий для фона и белый для текста.
Sub Change_bgcolor_if_shape_has_solid_color_and_text()
Dim oSl As Slide
Dim oSh As Shape
With ActivePresentation
For Each oSl In .Slides
For Each oSh In oSl.Shapes
With oSh
If .Fill.Type = msoFillSolid Then
oSh.Fill.ForeColor.ObjectThemeColor = msoThemeColorAccent1
If oSh.TextFrame.HasText Then
oSh.TextFrame.TextRange.Font.Color.ObjectThemeColor = msoThemeColorBackground1
End If
End If
End With
Next
Next
End With
End Sub
Я написал код, который почти работает, название почему-то тоже изменилось. Я ожидал, что формы без заливки останутся неизменными.
Любое указание в правильном направлении будет высоко ценится