PowerPointプログラムでアニメーション/効果を見つけて削除します
-
03-10-2019 - |
質問
次のコードを使用して、Programmetally(VSTO)PowerPointスライドにアニメーションを追加しました
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;
では、削除せずにアニメーションを削除するにはどうすればよいですか textBox2
?アニメーションを通過して、関連付けられているアニメーションを削除する必要があるアニメーションを見つける方法はありますか textBox2
?
解決 2
回答をしてくれたShyam Pillaiに感謝します。私は彼のVBAコードを次のように翻訳しました。
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();
}
}
}
}
他のヒント
私はPPT 2010 Handyを持っていないので私を許してください(あなたの質問ではそのバージョンであることに注意する必要があります)が、これはあなたが正しい方向に始めるべきです。
InteractiveSequences
のコレクションです Sequence
オブジェクト
Sequence
オブジェクトは本当にのコレクションです Effect
オブジェクト
Effect
オブジェクトにはを持っています Shape
財産
foreach (Sequence seq in activeSlide.TimeLine.InteractiveSequences)
foreach (Effect eff in seq)
if (eff.Shape == "target shape")
...
Effectオブジェクト自体の削除または削除関数があると思います。
テキストボックスを削除せずにアニメーションを削除するだけです。
dim osh as shape
set osh = .....
oSh.AnimationSettings.Animate = 0 => deleting the animation of osh
所属していません StackOverflow