按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
示例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)
或者次坐标轴 (Arg1=1),而坐标轴的类型则由 参数Arg2确定,它可以是下述
三种之一:
0 – 分类轴,1 – 数值轴,或者3 – 系列轴
SeriesChange 当用户更改图表数据点时,引发该事件。图表对象应该在类模块
里使用 关键字WithEvents进行声明。
Calculate 当用户选择新数据或者改变图表数据时,引发该事件。
Private Sub Chart_Calculate()
MsgBox 〃The data in your spreadsheet has 〃 & vbCrLf _
& 〃changed。 Your chart has been updated。〃
End Sub
Resize 当用户改变图表大小时,引发该事件。该图表对象应该在类模块
里面使 用WithEvents关键字来声明
DragOver 当用户拖曳数据到该图表时,引发该事件。该图表对象应该在类
模块里 面使用WithEvents关键字来声明
DragPlot 当用户拖曳单元格区域到图表时,引发该事件。该图表对象应
该在类模 块里面使用WithEvents关键字来声明
BeforeDoubleClick 当用户双击图表时,引发该事件
BeforeRightClick 当用户右键单击图表时,引发该事件
Private Sub Chart_BeforeRightClick(Cancel As Boolean)
Cancel = True
End Sub
当你将参数Cancel设置为True后,你就不能访问图表区域快捷菜单了
MouseDown 当光标在图表之上并按下鼠标时,引发该事件
Private Sub Chart_MouseDown(ByVal Button As Long; _
ByVal Shift As Long; ByVal x As Long; ByVal y As _
Long)
If Button = 1 Then
MsgBox 〃You pressed the left mouse button。 〃
ElseIf Button = 2 Then