Excel VBA事件——ActiveX控件

时间:2022-07-22
本文章向大家介绍Excel VBA事件——ActiveX控件,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

在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
  • Rnd函数返回一个0到1之间的随机小数
  • Int取小数的整数部份

这样就达到了位置随机设置的目的。