《excel_vba_编程教程(完整版)》

下载本书

添加书签

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) 
或者次坐
小提示:按 回车 [Enter] 键 返回书目,按 ← 键 返回上一页, 按 → 键 进入下一页。 赞一下 添加书签加入书架