L'utilisation de VBA pour modifier les couleurs de glisser des éléments dans Powerpoint 2013
J'ai un 150-diapositive de la présentation powerpoint que j'ai envie de réviser en raison d'une société de la nouvelle image de l'effort. Notre précédent couleur turquoise a été utilisé sur le texte, des lignes, des formes et de la forme des remplissages. Je voudrais construire un script VBA qui traverse l'ensemble de la présentation, et d'un seul coup modifie toutes les diapositives et remplace cette couleur bleutée avec notre nouvelle couleur gris foncé.
L'ancienne couleur de l'entreprise a été RGB(0, 176, 240) - turquoise
La nouvelle entreprise est RGB(71, 67, 65) - gris foncé
J'ai essayé une multitude de différentes vba à travers l'internet, mais ne peut pas l'obtenir pour fonctionner correctement. Voici une capture d'écran typique d'une diapositive à partir de la couleur vieux - tous les items bleus devrait être changé en gris foncé:
Ce morceau de code VBA à partir d'un utile membre du forum a vraiment bien travaillé pour la forme remplit - si cela pouvait être re-travaillé pour inclure n'importe quel texte et de la forme des contours et des lignes ainsi, il serait parfait.
Sub ChangeShapeColor()
Dim oSh As Shape
Dim oSl As Slide
' Look at each slide in the current presentation:
For Each oSl In ActivePresentation.Slides
' Look at each shape on each slide:
For Each oSh In oSl.Shapes
' IF the shape's .Fill.ForeColor.RGB = turqoise color:
If oSh.Fill.ForeColor.RGB = RGB(0, 176, 240) Then
' Change it to corporate dark grey:
oSh.Fill.ForeColor.RGB = RGB(71, 67, 65)
End If
Next oSh
Next oSl
End Sub
Merci d'avance,
Les images sont blancs décrit images/logos, résidant à l'intérieur de la normale powerpoint avec des formes de remplissage ou de contours en bleu. Il est de la couleur bleue, je veux changer. Le cercle et de "rayons" sont également normal powerpoint lignes que j'ai envie de nouvelles couleurs. En fait tout ce qui est en bleu sur la capture d'écran est ce que je veux changer.
Qu'avez-vous essayé jusqu'à présent et ce qui n'a pas fonctionné correctement? Ce qui se passe qui ne le sont pas, ce qui ne se produit pas cela devrait? Et comme suggestion: pensez à utiliser un thème de couleur plutôt qu'une couleur codée en RGB; puis, à l'avenir, tous vous avez besoin à faire est de changer la eux et PPT automatiquement recolorer rien affecté le thème de la couleur.
Bonne idée avec le thème de la couleur, merci pour cette astuce. Je vais ajouter de la venue du code VBA qui a fonctionné pour moi jusqu'à la réponse - merci pour la suggestion.
OriginalL'auteur Henrik Söderlund | 2015-03-18
Vous devez vous connecter pour publier un commentaire.
Cela devrait vous obtenez un pas de plus, bien que j'avais probablement réécrire sous la forme d'une fonction que vous pouvez passer lFindColor et lReplaceColor.
Quel genre de forme est-il le traitement à ce point? Après "Avec la sst" ajouter "Debug.D'impression .Nom" (ne pas inclure les guillemets). Appuyez sur Ctrl+G dans le VBA IDE pour afficher la fenêtre d'exécution avant d'exécuter le code. Le Débogage.Imprimer les résultats s'affichent.
Fantastique, qui a travaillé, et j'ai trouvé le coupable étant le "Tableau 1". J'ai simplement supprimé les quelques tableaux que j'ai eu et le script terminé. Seriez-vous en mesure d'ajouter de la couleur des remplacements à tous "Ovale", "Rectangle" et "Graphique"? Ou tout simplement l'ensemble des formes peut-être même?
Cela devrait déjà travailler avec toutes les formes usuelles que vous ajoutez de l'Insert de Forme de menu. Les graphiques sont tout un niveau supplémentaire de complexité; possible, mais beaucoup plus de travail que j'ai du temps à résoudre. Mais pour éviter d'autres problèmes, vous pouvez ajouter un sélecteur: Sélectionnez Cas de la sst.Type, puis de l'ignorer formes de type de Graphique, les Médias et ainsi de suite. Vous voulez également ajouter un test pour Si la sst.HasChart ou de la sst.HasTable Puis " Ignorer, ne pas essayer de le recolorer
Merci pour vos idées, ce que je sorte au-dessus de moi déjà. 🙂
OriginalL'auteur Steve Rindsberg