YAS's VB.NET Tips
 
ExcelVBA Tips
ExcelVBA Tips >> 記事詳細

2018/05/23

マウスがのると,一回り大きくなるボタン

Tweet ThisSend to Facebook | by:YAS
 ユーザーフォームに,マウスがのったら一回り大きくなるボタンをつくる。ボタンそのものは,Imageコントロールにボタンのイメージを表示しているだけで,ImageコントロールのMouseMoveイベントでボタンを大きくしている。
 ただ,VBAにはVB.netで言うところのMouseLeaveがないため,マウスがImageコントロールから離れたことが検出できない。そこで,擬似的にUserFormのMouseMoveをImageコントロールのMouseLeaveとしている。そのため,マウスをUserFormの外に素早く動かすと,UserFormのMouseMoveイベントが発生せず,ボタンが小さくならないときがある。その場合にはUserForm上にマウスを移動すると,ボタンが小さくなる。

下のコードを含むマクロ有効のExcelファイル


 「オートシェイプを図(拡張メタファイル)に変換する」のコードを流用している。VBEでクラスモジュールを挿入し,「EffectiveButton」と名前をつけて,下のコードをクラスモジュールにコピー貼り付けをする。

 上のクラスを次のように標準モジュールやシートモジュールから使用する。
 CreateEmfFromRange関数については,「オートシェイプを図(拡張メタファイル)に変換する」を参照。

16:00 | 投票する | 投票数(0) | コメント(0)