Accessテクニックのホームへ戻る

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

 

カーテンを開けるような感じでフォームをアニメーション化して開く

 

フォームをアニメーション化して開閉します。オプショングループの[垂直方向]のラジオボタンをクリックすると、上から下方向にゆっくりフォームが開きます。フォームの閉じるボタンをクリックすると、下から上方向にゆっくりフォームが閉じられます。[水平方向]のラジオボタンをクリックすると、フォームが左から右方向にゆっくり開きます。フォームを閉じると、右から左方向にフォームが閉じられます。

 

 

1. 新規データベース作成

Accessを起動したら、ツールバーから新規作成のアイコンをクリックして、作業フォルダworkW099.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プロパティには、アニメーションタイプを16の数値で設定します。FormSpeedプロパティには、フォームを開閉するときのスピードを15の数値で設定します。FormHeightFormWidthにはフォームの高さと幅をtwipの単位で設定します。

 

NoCloseAnimationプロパティには、フォームを閉じるときにアニメーションを適用するかどうかをTrue/Falseで設定します。NoOpenAnimationプロパティには、フォームを開くときにアニメーションを適用するかどうかをTrue/Falseで設定します。

 

Private mobjAnimate As clsFormAnimate

 

Set mobjAnimate = New clsFormAnimate クラスモジュールのインスタンス生成

With mobjAnimate

  Set .AnimationForm = Me 対象となるフォームを設定

  .AnimationType = Me.fraAnimationType アニメーションのタイプ設定(16)

  .FormSpeed = 3 フォームを開閉するスピード設定(15)

  .FormHeight = Me.WindowHeight フォームの高さ設定

  .FormWidth = Me.WindowWidth  フォームの幅設定

  .NoCloseAnimation = False フォームを閉じるときにアニメーション化する

  .NoOpenAnimation = False フォームを開くときにアニメーション化する

End With

 

フォームがすでに開かれた状態で、アニメーションタイプを変更して開くにはAnimateFormメソッドを実行します。アニメーションタイプの説明は割愛しますので、アニメーションタイプに16の数値を設定して実際に体験してみてください。

 

With mobjAnimate

.AnimationType = Me.fraAnimationType アニメーションタイプ変更(16)

  .AnimateForm フォームをアニメーション化して開く

End With

 

ダウンロード (099.lzh)