« 名前を使う | メイン | フォーム上のオブジェクトを動かす »

Imageボタンを作成する

VBAの無骨なコマンドボタンに魔法をかけます。
eX-file2ではラベルを利用してボタンを作成しましたが、
ここではImageを使いましょう。

※下のフォームは画像サンプルです。ボタンを押しても反応しません。実物をダウンロードしてお試しください。
imagebutton.gif

左側に並んでいるのがボタンです。
ボタン1つについて、2つのイメージが必要です。
青いボールと赤いボールです。
普段は青いボールを表示させて、マウスが近づいたら赤いボールに切り替えます。
(実際には、赤いボールが上にあるので、この.visibleで切り替えます)

オブジェクトの名前は下記のとおりです。以下のマクロで使用していますので、参考にしてください。
Image1--上のボタン(青)
Image2--上のボタン(赤)
Image3--上のボタン(青)
Image4--上のボタン(赤)

フォームに下記のコードを記述します。

1.フォーム表示時の仕掛け


Private Sub UserForm_Initialize()
Me.Image2.Visible = False
Me.Image4.Visible = False
End Sub

フォーム実行時に、赤いボールを隠して、青いボールを表示させます。

2.イメージの色を変える仕掛け


Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Me.Image2.Visible = True
Me.Image4.Visible = False
End Sub

Private Sub Image3_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Me.Image2.Visible = False
Me.Image4.Visible = True
End Sub

Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Me.Image2.Visible = False
Me.Image4.Visible = False
End Sub

マウスの動きを捉えて、それぞれの場所に相応しい表示をします。
Image1_MouseMoveが上のボタン、Image3_MouseMoveが下のボタン、にマウスが近づいたときです。
UserForm_MouseMoveは、マウスがボタンを離れたときのことです。

3.クリックを検知する仕掛け


Private Sub Image2_Click()
MsgBox ("click A")
End Sub

Private Sub Image4_Click()
MsgBox ("click B")
End Sub

マウスクリックをトラップするイベントです。
なおイメージには透明gifを使用しています。

ひとつ前の投稿は「名前を使う」です。
次の投稿は「フォーム上のオブジェクトを動かす」です。

トラックバック

このエントリーのトラックバックURL:
http://www.xillion.net/mova/mt-tb.cgi/67

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2004年07月03日 00:00に投稿されたエントリーのページです。

メインページアーカイブページも見てください。

Powered by
Movable Type 3.34