游客:
注册
|
登录
|
帮助
网友俱乐部
»
Windows应用
»
EXCEL
» Excel编程概念之:【在工作表上使用 ActiveX 控件】
网友生活网
|
网友学堂
如何获得金币?
诚招斑竹
IP归属地查询 PR查询 收录查询 whois查询
免费超短2级域名,your.jpy.cc
传世私服
|
传奇世界私服
注册亚洲交友中心,找个人来同居吧!
7CODE查杀恶意代码,守护您的电脑
‹‹ 上一主题
|
下一主题 ››
投票
交易
悬赏
活动
打印
|
推荐
|
订阅
|
收藏
标题: Excel编程概念之:【在工作表上使用 ActiveX 控件】
ljjk5
元帅
UID 46706
精华
1
积分 99426
帖子 49691
威望 554
金币 48489
热心 505
阅读权限 100
注册 2007-2-25
状态 离线
#1
使用道具
发表于 2008-1-1 21:13
资料
个人空间
主页
短消息
加为好友
Excel编程概念之:【在工作表上使用 ActiveX 控件】
本主题包括了在工作表或图表工作表上使用 ActiveX 控件的特定信息。有关添加和处理控件的一般信息,请参阅在文档中使用 ActiveX 控件和创建自定义对话框。
在工作表上处理控件时,必须记住以下几点。
除 ActiveX 控件可用的标准属性之外,在 Microsoft Excel 中还可使用 ActiveX 控件的下列属性:BottomRightCell、LinkedCell、ListFillRange、Placement、PrintObject、TopLeftCell 和 ZOrder。
这些属性可用 ActiveX 控件的名称来设置和返回。下例滚动工作簿窗口,使 CommandButton1 位于窗口的左上角。
Set t = Sheet1.CommandButton1.TopLeftCell
With ActiveWindow
.ScrollRow = t.Row
.ScrollColumn = t.Column
End With
当 ActiveX 控件处于激活状态时,将禁用某些 Microsoft Excel Visual Basic 方法和属性。例如,当某一控件处于激活状态时,就不能使用 Sort 方法,故下述按钮单击事件过程中的代码将无效(因为用户单击按钮后,该按钮将处于激活状态)。
Private Sub CommandButton1.Click
Range("a1:a10").Sort Key1:=Range("a1")
End Sub
在使用无效的属性或方法之前,可通过激活工作表上的其他一些元素来避免该问题。例如,下列代码可对单元格区域排序:
Private Sub CommandButton1.Click
Range("a1").Activate
Range("a1:a10").Sort Key1:=Range("a1")
CommandButton1.Activate
End Sub
当用户通过双击嵌入在其他应用程序的文档中的 Microsoft Excel 工作簿来对其进行编辑时,该工作簿上的控件无法正常工作。如果用户用鼠标右键单击工作簿,然后选中快捷菜单上的“打开”命令,工作簿上的控件将正常工作。
用 Microsoft Excel 5.0/95 工作簿文件格式保存 Microsoft Excel 工作簿时,将丢失 ActiveX 控件信息。
工作表上 ActiveX 控件的事件过程中的 Me 关键字引用的是工作表,而非控件。
用 Visual Basic 添加控件
在 Microsoft Excel 中,用 OLEObjects 集合中的 OLEObject 对象代表 ActiveX 控件(所有的 OLEObject 对象也包含在 Shapes 集合中)。若要用编程的方式向工作表添加 ActiveX 控件,请用 OLEObjects 集合的 Add 方法。下例向第一张工作表添加命令按钮。
Worksheets(1).OLEObjects.Add "Forms.CommandButton.1", _
Left:=10, Top:=10, Height:=20, Width:=100
通过 Visual Basic 使用控件属性
绝大多数情况下,Visual Basic 代码可用名称引用 ActiveX 控件。下例更改了控件“CommandButton1”的标题。
Sheet1.CommandButton1.Caption = "Run"
请注意,当在控件所在的工作表的类模块之外使用控件的名称时,必须用工作表的名称限定该控件的名称。
若要更改在 Visual Basic 代码中所用的控件的名称,请先选定该控件,然后在“属性”窗口中设置控件的“(名称)”属性。
因为 ActiveX 控件也可用 OLEObjects 集合中的 OLEObject 对象代表,所以也可用该集合中的对象来设置控件的属性。下例设置了控件“CommandButton1”的左边位置。
Worksheets(1).OLEObjects("CommandButton1").Left = 10
没有显示为 OLEObject 对象属性的控件属性可通过由 Object 属性返回的实际控件对象来设置。下例设置了控件“CommandButton1”的标题。
Worksheets(1).OLEObjects("CommandButton1"). _
Object.Caption = "run me"
因为所有的 OLE 对象也是 Shapes 集合的成员,所以也可用该集合设置若干控件的属性。下例对齐第一张工作表上的所有控件的左边缘。
For Each s In Worksheets(1).Shapes
If s.Type = msoOLEControlObject Then s.Left = 10
Next
使用 Shapes 和 OLEObjects 集合的控件名称
工作表上的 ActiveX 控件具有两个名称:包含控件的图形的名称(当查看工作表时,可在“名称”框中看到此名称);控件的代码名称(在“属性”窗口的“(名称)”右边的单元格中可看到此名称)。第一次向工作表中添加控件时,图形名称和代码名称是匹配的。但是,如果更改其中之一(图形名称或代码名称),另一个名称不会自动随之更改。
在控件的事件过程名称中使用的是控件代码名称,但是,当您从工作表的 Shapes 或 OLEObjects 集合中返回控件时,必须使用图形名称而不是代码名称来通过名称引用控件。例如,假定要向工作表中添加一个复选框,其默认的图形名称和代码名称都是 CheckBox1。如果通过在“属性”窗口的“(名称)”旁边键入“chkFinished”而更改了控件代码名称,则在事件过程名称中必须使用“chkFinished”,但是您仍然需要使用 CheckBox1 来从 Shapes 或 OLEObject 集合中返回控件,如下例所示。
Private Sub chkFinished_Click()
ActiveSheet.OLEObjects("CheckBox1").Object.Value = 1
End Sub
网友
ljjk5
签名 - 网友社区
===
[广告]
免费域名(Free Subdomain)
免费空间(Free hosting)
PR查询(Google Pagerank)
投票
交易
悬赏
活动
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
个人空间管理
基本概况
流量统计
客户软件
发帖量记录
论坛排行
主题排行
发帖排行
积分排行
在线时间
管理团队
管理统计
当前时区 GMT+8, 现在时间是 2008-9-8 10:07
信产部ICP备案:
京ICP备05066424号
北京市公安局网监备案:1101050648号
Powered by
Discuz!
5.5.0
TOP
清除 Cookies
-
联系我们
-
网友俱乐部
-
Archiver
-
WAP