设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1972|回复: 0
打印 上一主题 下一主题

[VBA编程/宏] ActiveX控件在Excel97中的运用

[复制链接]
跳转到指定楼层
1#
发表于 2004-7-25 20:17:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ActiveX控件在Excel97中的运用

       Excel97在工作表或图表上可使用ActiveX控件,根据我使用的体会,在工作上处理控件时,必须注意和了解如下事项:

  (一)用Excel5.0/95工作簿文件格式保存Excel97工作簿时,将选择ActiveX控件信息。当用户通过双击鼠标来编辑内嵌在其它应用程序文档中的Excel97工作簿时,该工作簿上的控件将不会正常工作。如果用户是通过用右键单击工作簿,然后选中快捷菜单上的“打开”命令来编辑工作簿的话,工作簿上的控件就能正常工作了。

  (二)当ActiveX控件处于激活状态时,将禁用某些Microsoft Excel Visual Basic方法和属性。

  例如,当某一控件激活时,就不能使用Sort方法,故下述按钮单击事件处理过程中的代码将失败(因为用户单击按钮后,该按钮就处于激活状态)。

  PrivateSubCommandButton1?Click

  Range("a1:a10")?SortKey1:=Range("a1")

  EndSub

  解决办法是通过选激活工作表上其它元素的方法来绕过这种问题。例如,可用下列代码对单元格区域排序:

  PrivateSubCommandButton1?Click

  Range("a1")?Activate

  Range("a1:a10")?SortKey1:=Range("a1")

  CommandButton1?Activate

  End Sub

  (三)在MicrosoftExcel中,用OLEObjects集合中的OLEObject对象代表ActiveX控件。

  如果要用编程的方式向工作表添加ActiveX控件,可用OLEObjects集合的Add方法。例如向第一张工作表添加命令按钮。

  Worksheets(1)?OLEObjects?Add"Forms?CommandButton?1",_

  Left:=10,Top:=10,Height:=20,Width:=100

  因为ActiveX控件也可用OLEObjects集合中的OLEObject对象代表,所以也可用该集合中的对象来设置控件的属性。例如要设置控件“CommandBotton1”的“左边位置”属性。

  Worksheets(1)?OLEObjects("CommandButton1")?Left=10

  那些不属于OLEObject对象属性的控件属性,可通过由Object属性返回的实际控件对象来设置。例如要设置控件“CommandButton1”的标题。

  Worksheets(1)?OLEObjects("CommandButton1")?

  Object?Caption="runme"

  因为所有的OLE对象也是Shapes集合的成员,所以也可用该集合设置若干控件的属性。例如要对齐第一张工作表上所有控件的左边框。

  ForEachsInWorksheets(1)?Shapes

  Ifs?Type=msoOLEControlObjectThens?Left=10

  Next

  请注意,当在控件所在工作表的类模块之外使用控件的名称时,必须用工作表的名称限定该控件的名称。在工作表上ActiveX控件的事件处理过程中,Me关键字所指向的是工作表,而非控件。  



作者:不详
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-15 09:56 , Processed in 0.085553 second(s), 24 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表