0
スライド上のいくつかの図形を選択して、選択したすべての図形にマクロを実行したいとします。たとえば、シェイプのアニメーションの遅延時間を一定の値だけ増やしたいとします。 注:一部の図形にはアニメーションが複数ある場合があります。選択した図形にPowerPoint VBAスクリプトを適用するにはどうすればよいですか?
これまでのところ、次のコードがあります。これはトリックですが、現在のスライド上のすべての図形に適用されます。
Sub ActiveSlideShapes_DelayInc()
Dim osld As Slide
Dim i As Long
Dim a As Integer
Dim oeff As Effect
Const sngDel As Single = 0.1
Set osld = ActiveWindow.Selection.SlideRange(1)
For i = osld.TimeLine.MainSequence.Count To 1 Step -1
Set oeff = osld.TimeLine.MainSequence(i)
With oeff
.Timing.TriggerDelayTime = .Timing.TriggerDelayTime + sngDel
End With
Next i
End Sub
もう1つの解決策は、シェイプの代わりに実際のタイムライン要素を選択することです。そして、それらの選択されたアニメーションに対してのみ、 "For ... Next"ループを実行します。これは、特定のシェイプに複数の異なるアニメーションが添付されている場合に、より洗練されたソリューションになります。これは可能ですか?
これにより、「メソッドまたはデータメンバーが見つかりません」というコンパイルエラーが表示されます。 2番目の ".Timing"がエラーとして強調表示されます。 (これは奇妙なことです...もしあれば、私は ".Timing"の最初のインスタンスがエラーを生成することを期待しています)。 – Wombat
sngDelは定数なので、コード内で0.1で置き換えることができますか? – mooseman
シェイプオブジェクトには.Timingプロパティがありません。これは、エラーメッセージがあなたに伝えようとしているものです。私は最初のインスタンスでそれを適用する前にそのプロパティの値を読み取るように求めているので、エラーが.Timingの2番目のインスタンスで発生すると思います。 –