ユーザーフォーム上のボタンを凹ませるのをお手軽にしようと思えば、ユーザーフォームの SpecialEffect の Sunken 効果を利用する手もあります。
TestClickAction() は、このユーザーフォームを表示するものです。これが表示されてどれかのコントロールがクリックされると、、それぞれの Click イベントが ClickAction() を呼び出して、ちょっと音を出してボタンを凹ませます。音を出す ButtonChick() 関数は、こちらを使ったものです。 凹む時間は、定数 delaySec で 0.15 秒 と設定しました。 ユーザーフォームでは、それぞれの Image のクリックイベントでこの ClickAction を呼び出します。
標準モジュール ClickAction()
Private Const delaySec = 0.15
Public Sub TestClickAction() ConsoleForm.Show vbModeless End Sub
'----- Image Click 時のアクション Public Sub ClickAction(ctr As Control) ButtonChick With ctr .SpecialEffect = fmSpecialEffectSunken Application.Wait [now()] + delaySec / 86400 .SpecialEffect = fmSpecialEffectFlat End With End Sub
ユーザーフォーム ConsoleForm
Private Sub DeleteImage_Click()
ClickAction DeleteImage
testMsg "DeleteImage"
End Sub
Private Sub DrawAreaImage_Click()
ClickAction DrawAreaImage
testMsg "DrawAreaImage"
End Sub
Private Sub DrawImage_Click()
ClickAction DrawImage
testMsg "DrawImage"
End Sub
Private Sub OptionImage_Click()
ClickAction OptionImage
testMsg "OptionImage"
End Sub
Private Sub CreditImage_Click()
ClickAction CreditImage
testMsg "CreditImage"
End Sub
Private Sub HelpImage_Click()
testMsg "HelpImage"
End Sub
Private Sub InfoImage_Click()
testMsg "InfoImage"
End Sub
Private Sub testMsg(msg)
MsgBox msg & "がクリックされた", vbOKOnly, "クリックのテスト"
End Sub