2

VSTO と PowerPoint 2010 を使用して、音声ファイルを PowerPoint スライドに挿入し、スライドが表示されたときに自動的に再生されるようにしようとしています。以下のコードでここまで来ました:

var presentation = Gobals.ThisAddIn.Application.ActivePresentation;
var slide = presentation.Slides[1];
var audioShape = slide.Shapes.AddMediaObject2( audioFilePath );
var audioShape.AnimationSettings.PlaySettings.PlayOnEntry = Microsoft.Office.Core.MsoTriState.msoTrue;

ここで、スライドには箇条書きのアニメーション (Effect オブジェクトで表される) が既にあります。箇条書きごとに 1 つの Effect オブジェクトがあります。私のアドインは、それらをクリックによるトリガーから自動的に実行するように変換します。これは、次のようなコードで実現されます。

var effect = slide.TimeLine.MainSequence[1];
if ( effect.Timing.TriggerType == PowerPoint.MsoAnimTriggerType.msoAnimTriggerOnPageClick )
{
   effect.Timing.TriggerType = PowerPoint.MsoAnimTriggerType.msoAnimTriggerWithPrevious;
   effect.Timing.TriggerDelayTime = delay;
}

箇条書きアニメーションの最終的な目標は、特定の遅延の後にそれぞれを個別に表示することです。

私の問題は、オーディオシェイプを自動的に開始するように設定することにあります。これにより、箇条書きごとに個別の Effect オブジェクトが、すべての箇条書きの 1 つの Effect に置き換えられます。そのため、すべての箇条書きが画面上に表示されるまでに時間がかかるのではなく、一度に表示されます。最初にオーディオを挿入するか、最初に弾丸エフェクトを変更するかは問題ではありません。

GUIでできるので、他のエフェクトを台無しにすることなく、オーディオを自動的に再生するように設定する方法が必要です。誰でも助けることができますか?前もって感謝します。

4

1 に答える 1

1

(これがコメントとしてより適している場合はお詫び申し上げます-私はまだそれらを追加する能力がありません。また、この質問はかなり時代遅れになっていることも認識しています。)

同様の問題が発生しました。いずれかのPlaySettingsプロパティを設定した後、スライドのすべての終了アニメーションが削除され、「前に」に設定されたすべてのアニメーションが代わりに「前に」になりました。

このリンクに遭遇しました。これは、AnimationSettingsオブジェクトが古いバージョンの PowerPoint からの持ち越しであり、新しいバージョンでは混乱する可能性があることを示しています。すなわち、

新しいバージョンの AnimationSettings オブジェクトを使用してアニメーション プロパティを設定すると、Microsoft PowerPoint は、以前のバージョンでサポートされていなかったすべてのアニメーションを、スライドに既に設定されているアニメーションから削除します。

(リンクでは XP/2003 を「新しいバージョン」としていますが、この動作は 2013 年でも一貫しているようです。)

基本的に、オーディオ設定をAnimationSettings.PlaySettingsトリガーすると、以前のバージョンの PowerPoint では利用できなかったアニメーションが削除されます。残念ながら、これ以外の方法はないようです。

于 2014-01-10T09:14:46.597 に答える