在Excel中,有两种控件,表单控件和ActiveX控件,这两种控件都可以插入在工作表中用来运行程序,至于区别,只需要简单的知道ActiveX控件更复杂一些,可设置的东西也更多,其中也包括了ActiveX控件具有事件。
在工作表中插入1个ActiveX控件命令按钮:

这时候会进入设计模式,双击命令按钮:
Private Sub CommandButton1_Click()
End Sub会自动跳转到当前工作表的代码编辑页面,同时自动输入了上面的代码,这时候,下拉框里也多了一个CommandButton1:

从右侧的下拉框里可以看到这个CommandButton1所具有的事件,很明显那个自动插入的代码CommandButton1_Click就是鼠标左键单击时候的事件。随便在那里面输入一些代码:
Private Sub CommandButton1_Click()
MsgBox "CommandButton1_Click"
End Sub回到Excel工作表界面,点击开发工具下的设计模式,退出设计模式,这时候就可以点击CommandButton1了:

这就是它的1个单击事件,比较简单,和普通的窗体控件的指定宏差不多。
演示一个MouseMove事件:

鼠标移动到它上面,它自动就跑远了。这个就是利用了MouseMove事件,重新设置CommandButton的位置:
Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'初始化随机种子
VBA.Randomize
'设置按钮的Top属性
CommandButton1.Top = Int(Rnd() * 300)
'设置按钮的Left属性
CommandButton1.Left = Int(Rnd() * 500)
End Sub这样就达到了位置随机设置的目的。