excel_vba_编程教程(完整版)-第89章
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
文件夹。双击ThisWorkbook并 且输入示例程序于ThisWorkbook代码窗口。切换到Excel窗口,并且
在工作表标签的任意地方单击右键,从快捷菜单上选择插入, 选择你想要插入的工作表类型,并
点击确定。Excel将会问你将新建的工作表放置到什么地方。下面是一个Excel工作表可以响应的
事件列表。
事件名称 描述
SheetActivate 当用户激活当前工作簿里的任何工作表发
生该事件。SheetActivate事件 同样也可
以发生在应用软件级别,当你激活任意打
开的工作簿里的任意 工作表时,都会激活
该事件
SheetDeactivate 当用户激活工作簿里一个不同的工作表时,引发该事件
SheetSelectionChange 当用户选择不同单元格时,引发该事件。
该事件发生在该工作簿里的每 个工作表
上
SheetChange 本事件发生在用户更改单元格内容时
SheetCalculate 本事件发生在用户重新计算工作表的时候
SheetBeforeDoubleClick 当用户双击工作表上的单元格时,引发该事件
SheetBeforeRightClick 当用户在工作表单元格上单击右键时,引发该事件
事件名称 激活窗口
事件描述 示例19
当用户激活任何显示该工作簿的
窗口时,引发该事件 Private Sub Workbook_WindowActivate(ByVal _
Wn As Window)
Wn。GridlineColor = vbYellow
End Sub
当用户激活包含Workbook_WindowActivate程序的工作簿时,示例程序将更改工作表的网格线颜色
为黄色
示例19 – 试验:在VB编辑器窗口,激活工程浏览器窗口并打开Excel对象文件夹。双击
ThisWorkbook,并输入示例程序。切换 到Excel窗口,打开一个全新的工作簿。使用窗口菜单将
Excel工作簿设置为竖直并排排列。当你激活含有示例程序的工作簿时, 网格线应该会变为黄色
了。
事件名称 窗口失活
事件描述 示例20
280
… 页面 297…
当用户将焦点从该工作簿窗口移 走时,引发该事件
Private Sub Workbook_WindowDeactivate(ByVal _
Wn As Window)
Wn。GridlineColor = vbRed
End Sub
当用户从包含Workbook_WindowActivate过程代码的工作簿切换到另外一个
工作簿时,示例程序将其网格 线设置为红色
示例20 – 试验:在VB编辑器窗口,激活工程浏览器窗口并打开Excel文件夹,双击ThisWorkbook
并输入示例程序。切换到Excel 窗口,打开一个全新的工作簿。使用窗口菜单将所有Excel工作簿
设置为竖直排列。当你失活包含Workbook_WindowDeactivate 事件代码的工作簿并切换到空工作
簿时,被失活地工作表里的网格线就会被变为红色。
事件名称 窗口调整大小
事件描述 示例21
当用户打开窗口,调整窗口大小, 最大化或者最小化窗口时,引发 该事件
Private Sub Workbook_WindowResize(ByVal Wn As Window)
If Wn。WindowState xlMaximized Then
Wn。Left = 0
Wn。Top = 0
End If
End Sub
当用户调整窗口大小时,示例程序将工作簿窗口移至屏幕的左上角
示例21 – 试验:在VB编辑器窗口,激活工程浏览器窗口并且打开Excel对象文件夹。双击
ThisWorkbook并输入示例程序。切换 到Excel窗口并且点击还原按钮(工作簿,非Excel应用软件)。
通过拖曳窗口内部边框改变当前活动窗口大小时,一旦你完成大 小调整操作,该工作簿窗口会
自动跳到屏幕的左上角(Excel应用软件窗口的左上角)。
下述表格描述了Excel 2002里增加的工作簿事件。
事件名称 描述
PivotTableOpenConnection 当数据透视表报告打开对其数据源的连接时发生该事件。该事件
要求你 在类模块里面使用WithEvents关键字声明一个
Application或者Workbook类型对象。(参见“图表事件”和“应
用程序对象识别的事 件”部分有关该关键字使用的示例)
PivotTableCloseConnection 当数据透视表报告关闭对其数据源的连接
后发生该事件。该事件要求你 在类模块里
面使用WithEvents关键字声明一个
Application或者 Workbook类型对象。
(参见“图表事件”和“应用程序对象识
别的事 件”部分有关该关键字使用的示
例)
SheetPivotTableUpdate 当数据透视表报告被更新后发生该事件。该事件要求你在类模块里使
需要下述两个参数: 用 关键字WithEvents声明一个Application或者Workbook的type对
Sh – 被选择的工作表 象(参 见示例 9,需要使用关键字WithEvents设置事件处理的相关
Target – 被选择的数据透视表 信息)。该 事件处理可以在附带CD里的PivotReport。xls里找到。
报 告 Private Sub App_SheetPivotTableUpdate( _
ByVal Sh As Object; ByVal Target As PivotTable)
MsgBox 〃Pivot Table has been updated。〃
End Sub
281
… 页面 298…
6。图表事件
众所周知,你可以创建一个内嵌在工作表里的图表,也可以创建一个单独的图表工作表。在本节,
你将学习如何控制图表事件, 不管你决定了将你的图表放在哪里。在你试验图表事件之前,做以
下几件事情:
1。 打开一个新Excel工作簿,并且保存为ChartEvents。xls
2。 输入示例数据,如图14…6所示
3。 选择单元格区域A1:D4,并点击工具栏上的图表按钮
4。 准备一个柱型图,如图14…6所示,并将其内嵌于工作表内
5。 使用相同的数据,创建一个折线图于一个单独的图表工作表(参见图14…7)
6。 将图表工作表名称改为Sales Analysis Chart。
图14…6 内嵌于工作表的柱型图
图14…7 置于图表工作表里的折线图
下面的表格列出了图表对象的事件。在该表格里示范的示例程序应该在你刚才放置在图表工作表里
的折线图上试验(参见图
14…7)。内嵌于工作表里的图表的事件需要特别设置,本章稍候将讲解。
1。 在VB编辑器窗口,激活工程浏览器窗口并打开Excel对象文件夹
2。 双击图表对象Chart1 (Sales Analysis Chart)
3。 在代码窗口,输入事件程序,如下表所示
4。 激活图表工作表,并执行一些将引发事件过程的操作。例如,点击图表标题后,
282
… 页面 299…
Chart_MouseDown和Chart_Select事件就 会被引发。
事件名称 描述
Activate 当用户激活图表工作表时引发该事件
Private Sub Chart_Activate()
MsgBox 〃You've activated the chart sheet。〃
End Sub
Deactivate 当用户离开该图表时引发该事件(进入其它工作表)
Private Sub Chart_Deactivate()
MsgBox 〃It looks like you want to leave the chart sheet。〃
End Sub
Select 当用户选择了某个图表成员时引发该事件
Private Sub Chart_Select(ByVal ElementID As Long; _
ByVal Arg1 As Long; ByVal Arg2 As Long)
If Arg1 0 And Arg2 0 Then
MsgBox ElementID & 〃; 〃 & Arg1 & 〃; 〃 & Arg2
End If
If ElementID = 4 Then
MsgBox 〃You've selected the chart title。〃
ElseIf ElementID = 24 Then
MsgBox 〃You've selected the chart legend。〃
ElseIf ElementID = 12 Then
MsgBox 〃You've selected the legend key。〃
ElseIf ElementID = 13 Then
MsgBox 〃You've selected the legend entry。〃
End If
End Sub
ElementId返回一个代表所选图表成员的常数。参数Arg1和Arg2用于某些相关的
图表成员上。例如,图表坐 标轴(ElementId=21),可以明确是主坐标轴(Arg1=0)
或者次坐