ショートプログラム

タイマーを使ったシェイプアニメーション  
Visio2019に対応していますVisio2016に対応していますVisio2013に対応しています

今回は、タイマーを使ったシェイプアニメーションを紹介します。(2017.12.14更新)

テンプレートファイルはworldtime.zip(164KB)からダウンロードして下さい。

ダウンロードした圧縮ファイルは解凍し、適当なフォルダへ入れて下さい。

ダウンロードしたテンプレート(worldtime.vstm)をVisioで開くと、世界地図と4つの時計が現れます。
4つの地域の時差を表した図形のようです。

しかし、時計が動いていません。
時計が止まっていても時差の関係はわかりますが、時計の役割を果たしていません。

では、[表示]タブの[マクロ]グループから[マクロ]をクリックしダイアログに表示されている[ThisDocument.cstart] を選択して[実行]ボタンをクリックして下さい。時計が動き出します。

(止めたいときは[ThisDocument.cstop]を実行して下さい。)

本題

はてさて、でもどんな仕組みで時計が動いているのでしょう?
動かすのにマクロを使っていることはバレバレですが、それがどうシェイプを動かしているのでしょうか。

答えは、マクロで計算された現在の時刻を、針を表す直線の角度に置き換えて動かしています。

例えば、短針の角度を出す式は
  (90 - 0.5 * ((時 * 60) + 分))
というふうになります。
時差がある場合は、
  (90 - 0.5 * (((時 + 時差) * 60) + 分))
になります。

この計算で出た値を、それぞれのシェイプの「Shape Transform」にあるセル「Angle」に反映させて動かしているわけです。

マクロの概要

大きく分けて2つのマクロがあります。
1つはcstartとcstop、もう1つがTimeProcというマクロです。

cstartは、時計を動かし始めるための初期設定と、1/1000秒毎にTimeProcを呼び出すという関数からなり、cstopはそれを停止させます。
TimeProcは、内容はcstartの初期設定の部分とほぼ同じですが、それをcstartから呼び出すことによりリアルタイムで時計を動かしています。

今回はシェイプアニメーションの一例として、タイマーを使ったシェイプアニメーションを挙げてみました。
時計が動くだけでは物足りない、という方は、次回にご期待ください。

このページの先頭へ