■ フォームをアニメーション化して表示する (2000,2002,2003,2007)

図 カーテンを開けるような感じでフォームをアニメーション化して開く
フォームをアニメーション化して開閉します。オプショングループの[垂直方向]のラジオボタンをクリックすると、上から下方向にゆっくりフォームが開きます。フォームの閉じるボタン
をクリックすると、下から上方向にゆっくりフォームが閉じられます。[水平方向]のラジオボタンをクリックすると、フォームが左から右方向にゆっくり開きます。フォームを閉じると、右から左方向にフォームが閉じられます。
1. 新規データベース作成
Accessを起動したら、ツールバーから新規作成のアイコン
をクリックして、作業フォルダworkにW099.mdbを作成します。
2. モジュールをインポート
Windowsのエクスプローラから、099.mdbをダブルクリックして開きます。データベースウィンドウのオブジェクトから[モジュール]をクリックしたら、クラスモジュールclsFormAnimateをドラッグしてW099.mdbのデータベースウィンドウにドロップします。クラスモジュールをインポートしたら、099.mdbを閉じます。
3. 新規フォーム作成
データベースウィンドウのオブジェクトから[フォーム]を選択したら、右側の新規オブジェクトのショートカットから[デザインビューでフォームを作成する]をダブルクリックします。
4. オブショングループ作成
フォームのデザインビューが表示されたら、ツールボックスのコントロールウィザードのアイコン
をクリックして、コントロールウィザードを有効にします。ツールボックスからオプショングループのアイコン
をクリックして、フォームの詳細セクションにドラッグします。「オプショングループウィザード」が表示されたら、ラベル名の1行目に「垂直方向」、2行目に「水平方向」を入力します。[次へ]のボタンをクリックして続行します。

図 オプショングループウィザード(1/5)
2ページ目が表示されたら[次のオプションを既定にする]をチェックして、[次へ]のボタンをクリックします。

図 オプショングループウィザード(2/5)
3ページ目が表示されたら、垂直方向の値に「3」、水平方向の値に「5」を入力して[次へ]のボタンをクリックします。

図 オプショングループウィザード(3/5)
4ページ目が表示されたら、既定値の状態で[次へ]のボタンをクリックします。

図 オプショングループウィザード(4/5)
最終ページが表示されたら、標題に「方向」を入力して[完了]ボタンをクリックしてウィザードを終了します。

図 オプショングループウィザード(5/5)
オプショングループをダブルクリックしてプロパティウィンドウを表示したら、名前を「fraAminationType」に書き換えます。
5. コードビューに切り替えて各種イベントを登録
ツールバーからコードのアイコン
をクリックしてVBE(Visual Basic Editor)を表示します。コードビューが表示されたら、Option Explicitの直後にモジュールレベルの変数を宣言します。
Private mobjAnimate As clsFormAnimate
コードビューのオブジェクトのドロップダウンリストから[Form]、プロシージャのドロップダウンリストから[Open]を選択します。フォームのOnOpenイベントが生成されたら、次のコードを追加します。
Private Sub Form_Open(Cancel As Integer)
Set mobjAnimate = New clsFormAnimate
With mobjAnimate
Set .AnimationForm = Me
.AnimationType = Me.fraAnimationType
.FormSpeed = 3
.FormHeight = Me.WindowHeight
.FormWidth = Me.WindowWidth
.NoCloseAnimation = False
.NoOpenAnimation = False
End With
End Sub
コードビューのオブジェクトのドロップダウンリストから[fraAnimationType]、プロシージャのドロップダウンリストから[AfterUpdate]を選択します。オプショングループのOnAfterUpdateイベントが生成されたら、次のコードを追加します。
Private Sub fraAnimationType_AfterUpdate()
With mobjAnimate
.AnimationType = Me.fraAnimationType
.AnimateForm
End With
End Sub
6. フォームを開く
VBEのツールバーから表示(Access)のアイコン
をクリックして、Accessのウィンドウに切り替えます。Accessのツールバーからフォームビューのアイコン
をクリックしてフォームを開きます。フォームが上から下方向にゆっくりアニメーション化されて開きます。オプショングループから[水平方向]をクリックすると、フォームが左から右方向にゆっくり開きます。フォームの閉じるボタン
をクリックすると右から左方向にゆっくり閉じます。

図 フォームがアニメーション化されて表示される
●解説
フォームをアニメーション化するには、クラスモジュールclsFormAnimateのインスタンスを生成して各種プロパティを設定します。AnimationFormプロパティには、対象となるフォームのオブジェクトを設定します。AnimationTypeプロパティには、アニメーションタイプを1~6の数値で設定します。FormSpeedプロパティには、フォームを開閉するときのスピードを1~5の数値で設定します。FormHeight、FormWidthにはフォームの高さと幅をtwipの単位で設定します。
NoCloseAnimationプロパティには、フォームを閉じるときにアニメーションを適用するかどうかをTrue/Falseで設定します。NoOpenAnimationプロパティには、フォームを開くときにアニメーションを適用するかどうかをTrue/Falseで設定します。
Private mobjAnimate As clsFormAnimate
Set mobjAnimate = New clsFormAnimate ‘ クラスモジュールのインスタンス生成
With mobjAnimate
Set .AnimationForm = Me ‘ 対象となるフォームを設定
.AnimationType = Me.fraAnimationType ‘ アニメーションのタイプ設定(1~6)
.FormSpeed = 3 ‘ フォームを開閉するスピード設定(1~5)
.FormHeight = Me.WindowHeight ‘ フォームの高さ設定
.FormWidth = Me.WindowWidth ‘ フォームの幅設定
.NoCloseAnimation = False ‘ フォームを閉じるときにアニメーション化する
.NoOpenAnimation = False ‘ フォームを開くときにアニメーション化する
End With
フォームがすでに開かれた状態で、アニメーションタイプを変更して開くにはAnimateFormメソッドを実行します。アニメーションタイプの説明は割愛しますので、アニメーションタイプに1~6の数値を設定して実際に体験してみてください。
With mobjAnimate
.AnimationType = Me.fraAnimationType ‘ アニメーションタイプ変更(1~6)
.AnimateForm ‘ フォームをアニメーション化して開く
End With