2、“事件”像萤火虫,有心看它,总想知道它在哪发光。 在第一个工作表中,有两个按钮,当你把鼠标移到它上面时,它就移动一个位置。第二个工作表中,用左键和右键得到不同的运行效果。这都是运用“事件”的效果。 ①鼠标单击事件Click。 实际上,我们从第一讲开始就接触了“事件”,只是没有提它,你也可能没有在意。打开你编写过代码的工作簿,在VBE编辑窗口中可以看到,无论按钮的名称是CommandButton1,还是CommandButton2,代码第一行的后面都是“_Click()”: Private Sub CommandButton1_Click() MsgBox "哈哈,我会 VBA 啦……" End Sub 这个“Click”表示“鼠标的单击事件”。 就像你家的开关不能控制他家的灯一样,用鼠标单击不同的控件,都发生“Click”事件,但触发运行的代码却各不相同,点击CommandButton1,运行: Private Sub CommandButton1_Click() End Sub 点击CommandButton2,运行: Private Sub CommandButton2_Click() End Sub ②鼠标移动事件。 单击控件时,触发“Click”事件,除了该事件,还有哪些“事件”呢? 在上面附件中找到如下代码(如果找不到,先到楼下看看,记着回来哦): Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) '当鼠标移动到按钮CommandButton1上面时,发生本事件,执行下面代码: CommandButton1.Top = CommandButton1.Top + 10 CommandButton1.ForeColor = Int(Rnd * 16777215) End Sub “MouseMove”是移动鼠标事件。如果你想在鼠标移动到CommandButton2时返回什么信息或者修改某单元格的值,那么你应该把代码写在: Private Sub CommandButton2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) '这里写代码 End Sub ③点击鼠标按钮事件。
哄小孩子的把戏结束了,小孩子不会知道这是点击鼠标按钮事件“MouseDown”,但你会知道,应该知道。 Private Sub Image1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) '在控件 Image1 上按下鼠标按钮时,触发本事件,运行如下代码: MsgBox "回答" & Mid("对错", Button, 1) & "了。 ", 64 - (Button - 1) * 16, "蓝猫告诉你" [c3] = Int(Rnd * 20) [e3] = Int(Rnd * 20) End Sub MouseDown 与 Click 好像是同一回事,点击鼠标左键既触发“Click”事件,又触发“MouseDown”事件,它们之间的区别是,“MouseDown”发生在鼠标按下按钮还没有松开的那一段时间,接着松开鼠标又触发“MouseUp”事件,“Click”是整个过程,点击过按钮后,先触发“MouseDown”事件,后触发“Click”事件。另一个区别是,鼠标右键点击控件,不触发“Click”事件。 除了以上介绍的“事件”,还有许多: 激活工作表的时候,触发Activate事件。 当用鼠标右键单击工作表时产生BeforeRightClick事件。 打开工作簿时,触发Open事件。 打印工作表时,触发BeforePrint事件。 等等 不同对象间的事件不一定相同,如按钮有13个事件,工作表有9个事件,工作簿有28个事件,以后会掌握的。 |