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



The following two tabs change content below.

taka

あることがキッカケでVBAを独学で勉強しました、今ではブログを通してVBAでできることを解説しつつ、VBAや他の言語の勉強、ブログ運営の勉強をしています(^^♪

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

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

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

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

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

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

今回作るフォーム

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

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

 

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

プログラムの流れ

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

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

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

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

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

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

 

ダウンロード

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

ファイルやコードの利用、WEBサイトの利用について

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

Twitterフォロー

 

Twitterもやってます(^^♪ Excelについてはあまり触れませんがブログの更新のお知らせはツイートしています(^^♪

 

コメントを残す

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