VBA ユーザーフォームのデザインを考えてみる(アニメーション効果作成)

スポンサードリンク

VBAのユーザーフォームのデザインを考えてみる

どうもtakaです、Excel VBAでは自分自身のオリジナルなダイアログボックス(ユーザーフォーム)を作成することができます。このダイアログボックスは自分自身でデザインを作成することができすごく便利な機能です。

ですがこの素晴らしいユーザーフォームですが、すごく残念なことにデザインがダサい物が多いです←

でも実際↓このようなデザインが多いのも事実ではないでしょうか?

まあ業務で使用するシステムがほとんどでのはずのExcel VBAのシステムですので、あまりデザインにこだわる必要もないのですが・・・でもやはりこのような残念なデザインでは使用する側もつまらないですよね(。-∀-)

なので今回は少しでもユーザーフォームのデザインをマシにする方法を考えみましたのでお付き合いください。

今回作るフォーム

今回作るフォームは【frameコントロール】と【commandbuttonコントロール】を使用します。

下の画像のように【frameコントロール】を普段は閉じた状態にしておいて、マウスがコントロール上に来た時に広がるようにしてアニメーション効果を表すようにしてみました。

 

  1. frameコントロール:適量
  2. commandbuttonコントロール:適量

プログラムの流れ

今回のデザインの流れは各コントロールの【MouseMoveイベント】を使用して、

  1. コントロール上にポインターが来たら高さ・幅を変更する
  2. コントロール上から離れたら高さ・幅を戻す

の繰り返しをすることで簡単なアニメーション効果を得るようにしました。
※普通に【DO~LOOP】処理してしまうと高速すぎて【アニメーション】としては役に立たないのでSleep APIを使用して処理速度を調整しています。
※ループ処理で動いているのでパソコンのスペックによっては重くなる可能性がありますのでご留意ください。

デザインを変更するコード

今回の処理のコードをご紹介します。はっきり言ってキレイなコードではありません(笑)ですのでアイデアとして受け取っていただき、ご自由に改変してください(。-∀-)

処理イメージが想像つかない場合はダウンロードファイルで確認してください(。-`ω-)

 

ダウンロード

当サイトの免責事項をお読みになってからお使いください。

ブログランキング


【E-VBA】はブログランキングに登録しています(∩´∀`)∩


にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

人気ブログランキングへ

ファイルやコードの利用について

サンプルコードなどは当サイトの免責事項をよくお読みになってからお使いください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ABOUTこの記事をかいた人

あることがキッカケでVBAを独学で勉強している、非IT企業の会社員。
今はVBAで出来ることを模索しながら別の開発言語の取得、基本情報技術者試験合格が目標