Home » パワーポイントマクロ・PowerPoint VBAの使い方 » アニメーション » PowerPoint VBAでアニメーションを設定する

PowerPoint VBAでアニメーションを設定する

動作検証バージョン:64bit Windows 10 Pro + 32bit PowerPoint(バージョン2004 ビルド12730.20250 Microsoft Store)

拙著『いちばんやさしいPowerPoint VBAの教本』では、PowerPointのもっとも基本的なオブジェクトについてのみを解説し、アニメーションの設定には一切触れていません。

しかし、PowerPoint VBAでアニメーションを設定したいという要望は、結構あるようです。

「PPT マクロ アニメーション」
「パワポ VBA アニメーション」
「パワーポイント VBA アニメーション設定」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へのアクセスも時折あります。

そういった方に向けて、簡単なPowerPointマクロをご紹介しておきます。

アニメーションを設定するサンプル

アクティブなプレゼンテーションの、先頭スライドに、図形が1つだけ存在する状態で、以下のSubプロシージャを実行してください。
Sub アニメーションを設定する_先頭スライドの1つ目の図形に()
 With ActivePresentation.Slides(1)
  .TimeLine.MainSequence.AddEffect _
    Shape:=.Shapes(1), effectId:=msoAnimEffectFade
 End With
End Sub

開始アニメーション「フェード」が、
  .TimeLine.MainSequence.AddEffect _
    Shape:=.Shapes(1), effectId:=msoAnimEffectFade

設定されます。

Sequence.AddEffectでアニメーション効果を追加

Sequenceオブジェクトに用意されているAddEffectメソッドで、

図形にアニメーション効果を追加できます。

どの図形に設定するかは、引数Shapeで、
  .TimeLine.MainSequence.AddEffect _
    Shape:=.Shapes(1), effectId:=msoAnimEffectFade

どのような効果を設定するかは、引数effectIdで指定します。
  .TimeLine.MainSequence.AddEffect _
    Shape:=.Shapes(1), effectId:=msoAnimEffectFade

引数effectIdには、MsoAnimEffect列挙に定義されている定数を指定できます。

アニメーション設定はSlide下のオブジェクトで設定

PowerPoint上でアニメーションの設定操作は図形に対して行いますから、Shapeオブジェクト下の、いずれかのオブジェクトのプロパティまたはメソッドを利用すると考えてしまう方がいるかもしれませんが、違います。Slideオブジェクトからたどっていく、
  With ActivePresentation.Slides(1)

Sequenceオブジェクトを利用し、どの図形に設定するのかは、Sequence.AddEffectメソッドの引数で指定します。
   .TimeLine.MainSequence.AddEffect _
     Shape:=.Shapes(1), effectId:=msoAnimEffectFade

オブジェクトブラウザーを使って階層構造を確認しましょう

拙著でも繰り返し行っているように、オブジェクトブラウザーを使って、上記のコードで利用している、
    Slideオブジェクト
    └ TimeLineオブジェクト ← Slide.TimeLineプロパティ
      └ Sequenceオブジェクト ← TimeLine.MainSequenceプロパティ
        └ AddEffectメソッド
というオブジェクトモデルを理解しましょう。

Microsoftの公式ヘルプに、一応リンクを貼っていますけれど、日本語訳が残念な状態ですから、英語で読むことをおすすめします。

Slideオブジェクトに用意されているTimeLineプロパティで、
  With ActivePresentation.Slides(1)
   .TimeLine.MainSequence.AddEffect _

TimeLineオブジェクトを取得して、

TimeLineオブジェクトに用意されているMainSequenceプロパティで、
  With ActivePresentation.Slides(1)
   .TimeLine.MainSequence.AddEffect _

Sequenceオブジェクトを取得しています(MainSequenceオブジェクトではありません)。

最終更新日時:2020-05-20 17:48

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » アニメーション » PowerPoint VBAでアニメーションを設定する

「アニメーション」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.