find PowerPoint di programmazione e cancellazione animazione / effetto
-
03-10-2019 - |
Domanda
Ho programmazione (VSTO) animazioni aggiunto alla diapositiva di PowerPoint utilizzando il seguente codice
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;
Quindi, come potrei fare per l'eliminazione l'animazione senza eliminare textBox2
? C'è un modo per attraversare attraverso le animazioni e trovare quelli che ho bisogno di eliminare, che sono associati con textBox2
?
Soluzione 2
Grazie a Shyam Pillai per la risposta, ho tradotto il suo codice VBA come segue:
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();
}
}
}
}
Altri suggerimenti
Perdonami, perché non ho PPT 2010 a portata di mano (si dovrebbe notare nella tua domanda è che la versione), ma questo dovrebbe iniziare nella giusta direzione.
InteractiveSequences
è una collezione di oggetti Sequence
oggetto Sequence
è davvero una collezione di oggetti Effect
oggetti Effect
hanno una proprietà Shape
foreach (Sequence seq in activeSlide.TimeLine.InteractiveSequences)
foreach (Effect eff in seq)
if (eff.Shape == "target shape")
...
Credo che ci sia un rimuovere o forse una funzione di eliminazione per l'oggetto Effect stesso.
è semplicemente cancellando l'animazione senza eliminare casella di testo:
dim osh as shape
set osh = .....
oSh.AnimationSettings.Animate = 0 => deleting the animation of osh