ノー実績ノー人権
はいさいまいど人権のないことに定評のある僕です。今日も人間性を捧げて醜く生きていきましょう!そんなわけでタイトル通り実績欲しいなーって愚痴をぼやきます。実績というとゲームやなんかの画面上の方にピロンとかでてくるアレが真っ先に思い浮かぶんですけど、現実世界の実績って言えばその人の生きてきた人間性の塊みたいなところありますよね。人生辛いね。
おしまい。
パワーポイントには実績機能が欲しい
というわけで、本日はパワポ使ってゲームとかでよく見かける実績機能を作ります。やはり僕は思うのですよ。パワポにはゲーム性が必要なのではと?
とりまプロトタイプとしてこんなのをつくってみる。
んで、こんなアニメーションをつくるためのVBA書いてみた。スライドとシェイプの指定がまだ定まってないので一番最初のやつを取得するような感じになってます。
Sub AddBouncingAnimation() Dim sldActive As Slide Dim shpSelected As Shape Set sldActive = ActiveWindow.Selection.SlideRange(1) Set shpSelected = ActiveWindow.Selection.ShapeRange(1) ' 開始アニメーション Set animations = sldActive.TimeLine.MainSequence.AddEffect(Shape:=shpSelected, effectId:=msoAnimEffectFly) With animations .Timing.Duration = 5 .Timing.Decelerate = 0.3 .EffectParameters.Direction = msoAnimDirectionLeft End With ' 終了アニメーション Set animations = sldActive.TimeLine.MainSequence.AddEffect(Shape:=shpSelected, effectId:=msoAnimEffectFly) With animations .Timing.Duration = 5 .Timing.Decelerate = 0.3 .Timing.TriggerDelayTime = 2 .EffectParameters.Direction = msoAnimDirectionLeft .Exit = msoTrue End With End Sub
とりあえずのコード。開始位置の指定とか、複数シェイプの場合の実装とか、クリック制御でない表示のカスタマイズ法とかそういう細かい課題が残ってるけどもまだいまいちどこまでいじれるのか理解できてないし、いったん動くものできたんでこれで。
参考:Timingオブジェクト
Timing オブジェクト (PowerPoint) | Microsoft Docs
おわり*1
*1:もしかしたら続くかもしれない