質問

次のコードを使用して、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 
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top