蚂蚁文库
换一换
首页 蚂蚁文库 > 资源分类 > PDF文档下载
 

VBA中的控件数组

  • 资源ID:55603733       资源大小:131.23KB        全文页数:8页
  • 资源格式: PDF        下载权限:游客/注册会员    下载费用:10积分 【人民币10元】
快捷注册下载 游客一键下载
会员登录下载
三方登录下载: 微信快捷登录 QQ登录  
下载资源需要10积分 【人民币10元】
邮箱/手机:
温馨提示:
支付成功后,系统会自动生成账号(用户名和密码都是您填写的邮箱或者手机号),方便下次登录下载和查询订单;
支付方式: 微信支付    支付宝   
验证码:   换一换

 
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,既可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰   

VBA中的控件数组

VBA 中的控件数组 VBA 中的控件数组 2009 年 2 月 28 日 评论 发表评论大家都知道,和 VB 不一样,VBA 中不能直 接创建控件数组。 然而可以使用 WithEvents 来模拟相同的功 能。我们需要一个类来处理控件的事件,而每一个控件需要 一个类实例。对于不同控件的类实例,我们可以使用一个对 象数组或者集合来实现。 这里使用按钮控件做为例子来介绍怎样在窗体和工作表中 创建控件数组。 创建类 创建控件数组之前,我们需要一个类来处理控件的事件。 在 VBE 窗口中, 单击菜单插入- 类模块,在属性窗口中将类的名称改为 cCB。 在类模块中添加下面这一行 Private WithEvents m_CB As MSs.CommandButton 这样你就可以从代码栏的顶部左边下拉列表中选择 m_CB并 选择右边下拉列表中相应的事件。 完整的代码如下 Private WithEvents m_CB As MSs.CommandButton 初始化,将控件绑定到类 Public Sub Initctl As MSs.CommandButton Set m_CB ctl End Sub 控件的 Click 事件 Private Sub m_CB_Click MsgBox “你点击了“ m_CB.Caption End Sub 注销类 Private Sub Class_Terminate Set m_CB Nothing End Sub 窗体中的控件数组 然后创建一个窗体,在窗体中添加两个CommandButton,将 这两个按钮控件分别命名为 1 和 2, 然后在窗体中的 初始化事件中添加代码如下 Private ctlCB1 To 2 As cCB 以对象数组保存类的实例 Private Sub User_Initialize Set ctlCB1 New cCB 将按钮 1 赋给类的实例 ctlCB1.Init 1 Set ctlCB2 New cCB ctlCB2.Init 2 End Sub 这里使用对象数组 ctlCB1 to 2来保存类实例。每当使用Set 语句创建一个类实例,然后使用类的 Init 方法将按钮控件赋 给这个实例。 也可以使用集合来保存这个类的实例。代码如下 Private colCB As New Collection Private ctlCB As cCB 以集合保存类的实例 Private Sub User_Initialize Set ctlCB New cCB 将按钮 1 赋给类的实例 ctlCB.Init 1 将类的实例加入到集合中 colCB.Add ctlCB Set ctlCB New cCB ctlCB.Init 2 colCB.Add ctlCB End Sub 点击按钮,将弹出对应的消息框。 上面的例子是将手动添加的控件添加到控件数组中。也可以 动态创建控件数组。 创建一个新的窗体,然后在窗体的初始化事件中使用 Controls 集合的 Add 方法添加 CommandButton 控件, 再将创 建好的控件赋给类实例。完整代码如下 Private ctlCB1 To 3 As cCB Private Sub User_Initialize Dim nCtr As MSs.CommandButton For i 1 To 3 添加按钮控件 Set nCtr Me.Controls.Add“s.CommandButton.1“, “Test“ i 设置按钮控件标题和位置 With nCtr .Caption “CommandButton_“ i .Move 10, 10 i - 1 * 40, 80, 30 End With 创建 cCB 类实例 Set ctlCBi New cCB 将控件赋给类实例 ctlCBi.Init nCtr Next i End Sub 工作表中的控件数组 同样,在工作表中也可以创建控件数组(但和窗体有些不 同) 。在工作表中分别创建一个 Label 控件和三个 CommandButton 控件,如下图 然后在 Label 控件的 Click 事件中添加如下代码 Dim Ctl As cCB 标签控件的 Click 事件 Private Sub Label1_Click Dim As OLEObject 所有 OLE 对象 Dim i As Integer 重新定义数组 ReDim Ctl1 To Sheet2.OLEObjects.Count As cCB i 1 循环所有的 OLE 对象 For Each In Sheet2.OLEObjects 只有 CommandButton 控件才可以加入到控件数组 If .progID “s.CommandButton.1“ Then Set Ctli New cCB Ctli.Init .Object i i 1 End If Next MsgBox “已经将工作表中所有 CommandButton 控件建成控 件数组“, vbInation End Sub 值得注意的是使用类 cCB 的 Init 方法时,不能直接使用 变量,因为 变量是 OLEObject 类型。需要使用 变 量的 Object 属性返回 MSs.CommandButton 变量。 然而在工作表中对于动态创建的控件使用同样的方法创建 控件数组时,动态创建的控件并不响应类实例的事件。代码 如下 Dim Ctl1 To 5 As cCB 标签控件的 Click 事件 Private Sub Label1_Click Dim i As Integer Dim As OLEObject For i 1 To 5 Set Sheet3.OLEObjects.AddClassType“s.CommandButton. 1“, _ LeftCellsi * 3 3, 2.Left, TopCellsi * 3 3, 2.Top, WidthCells1, 1.Width * 2, HeightCells1, 1.Height * 1.5 Set Ctli New cCB Ctli.Init .Object Next i MsgBox “已经成功动态创建控件数组“, vbInation End Sub 类的实例应该是创建成功了(可以在 Init 方法中添加一些语 句来验证) ,但就是不响应 Click 事件,不知道是什

注意事项

本文(VBA中的控件数组)为本站会员(sunhongz119)主动上传,蚂蚁文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知蚂蚁文库(发送邮件至2303240369@qq.com或直接QQ联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们


网站客服QQ:2303240369

copyright@ 2017-2027 mayiwenku.com 

网站版权所有  智慧蚂蚁网络

经营许可证号:ICP备2024020385号



收起
展开