trouver PowerPoint et animation par programmation suppression / effet
-
03-10-2019 - |
Question
I ai programmation (VSTO) animations ajouté à la diapositive PowerPoint en utilisant le code suivant
activeSlide.TimeLine.InteractiveSequences.Add().AddTriggerEffect(
textBox2,
MsoAnimEffect.msoAnimEffectFade,
MsoAnimTriggerType.msoAnimTriggerOnMediaBookmark,
selectedShape,
"Bookmark A",
MsoAnimateByLevel.msoAnimateLevelNone);
activeSlide.TimeLine.InteractiveSequences.Add().AddTriggerEffect(
textBox2,
MsoAnimEffect.msoAnimEffectFade,
MsoAnimTriggerType.msoAnimTriggerOnMediaBookmark,
selectedShape,
"Bookmark B",
MsoAnimateByLevel.msoAnimateLevelNone).Exit = MsoTriState.msoTrue;
Alors, comment pourrais-je aller sur la suppression de l'animation sans supprimer textBox2
? Est-il possible de traverser à travers les animations et trouver ceux que je dois supprimer qui sont associés à textBox2
?
La solution 2
Merci à Shyam Pillai pour la réponse, je l'ai traduit son code vba comme suit:
private void DeleteAnnimations(Slide slide, Shape shape)
{
for (int i = slide.TimeLine.InteractiveSequences.Count; i >= 1; i--)
{
Sequence sequence = slide.TimeLine.InteractiveSequences[i];
for (int x = sequence.Count; x >= 1; x--)
{
Effect effect = sequence[x];
if (effect.Timing.TriggerType == MsoAnimTriggerType.msoAnimTriggerOnMediaBookmark)
{
if (effect.Shape.Name == shape.Name)
effect.Delete();
}
}
}
}
Autres conseils
Pardonnez-moi parce que je n'ai pas PPT 2010 à portée de main (vous devriez noter dans votre question, il est cette version), mais cela devrait vous aider à démarrer dans la bonne direction.
InteractiveSequences
est une collection de Sequence
objets
objet Sequence
est vraiment une collection de Effect
objets
objets Effect
ont une propriété Shape
foreach (Sequence seq in activeSlide.TimeLine.InteractiveSequences)
foreach (Effect eff in seq)
if (eff.Shape == "target shape")
...
Je crois qu'il ya un supprimer ou peut-être une fonction de suppression de l'objet lui-même effet.
il est la simple suppression de l'animation sans supprimer zone de texte:
dim osh as shape
set osh = .....
oSh.AnimationSettings.Animate = 0 => deleting the animation of osh