ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2258|回复: 4

类模块求助:如何实现在窗体指定的区域内添加的标签控件与区域外的标签控件有各自不

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-8-16 09:16 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

上传的文档是我借鉴 清风 老师 的类作品制成而成,实现的目的是窗体上左边和右边的5个标签控件在加载窗体、按下(释放)鼠标按键时,同一区域的控件表面的颜色变化是一致。但是代码的通用性不强,在不修改代码的情况下,如果修改标签控件的名称(不采用默认的名称)后程序出错、任意添加或删除标签控件,也出错。

有两个问题想请教大家:

1、上传文档的代码如何再精简一下。

2、如何在类模块中实现:在不修改代码的情况下,在窗体的左边或右边的区域任意添加或删除标签控件、修改标签控件的名称,所添加(或修改名称后)的标签控件颜色变化的功能均与该区域其它的标签控件一样?

vpXaz7JL.rar (35.5 KB, 下载次数: 19)
[此贴子已经被作者于2005-8-16 9:22:50编辑过]

类模块求助:如何实现在窗体指定的区域内添加的标签控件与区域外的标签控件有各自不同的属性值?

类模块求助:如何实现在窗体指定的区域内添加的标签控件与区域外的标签控件有各自不同的属性值?

dwTHPGQK.rar

35.61 KB, 下载次数: 14

类模块求助:如何实现在窗体指定的区域内添加的标签控件与区域外的标签控件有各自不同的属性值?

TA的精华主题

TA的得分主题

发表于 2005-8-16 10:00 | 显示全部楼层

Option Explicit Dim Mylbl() As New LblClass

Private Sub UserForm_Initialize() Dim i As Integer Dim n As Integer Dim mycon As MSForms.Control For Each mycon In Me.Controls If TypeName(mycon) = "Label" Then If IsEmpty(Mylbl) Then ReDim Mylbl(0) Else ReDim Preserve Mylbl(UBound(Mylbl) + 1) If mycon.Left < Me.Width / 2 Then Mylbl(UBound(Mylbl)).Attach1 mycon mycon.Picture = Me.Image11.Picture Else Mylbl(UBound(Mylbl)).Attach2 mycon mycon.Picture = Me.Image14.Picture End If mycon.PicturePosition = fmPicturePositionCenter End If Next

end sub
[此贴子已经被作者于2005-8-16 10:01:45编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-8-16 10:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

asdf1001 兄的代码很好,但是如果我修改标签控件的名称后(如改成a或aa),UserForm_MouseMove的代码就出现问题了,再修改一下UserForm_MouseMove事件中的代码,请大家再测试一下,还有哪此地方需要改进的,通用性是否够强,谢谢!

另外还想请教:类模块中的左、右两边的标签控件的MouseDown、MouseMove、MouseUp事件中的代码能分别合并简化吗?如果不能简化合并代码,如果要求在窗体上有六组标签控件,每组标签控件的颜色各不相同,哪岂不是要写六组MouseDown、MouseMove、MouseUp事件的代码。

Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If ActLabel1 <> "" Then Me.Controls(ActLabel1).Picture = Me.Image11.Picture If ActLabel2 <> "" Then Me.Controls(ActLabel2).Picture = Me.Image14.Picture End Sub

BBfYP5o7.rar (20.71 KB, 下载次数: 21)
[此贴子已经被作者于2005-8-16 10:52:50编辑过]

TA的精华主题

TA的得分主题

发表于 2005-8-16 10:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
cX791dLK.rar (35.3 KB, 下载次数: 73)

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-8-17 11:26 | 显示全部楼层
非常感谢 asdf1001 兄倾力相助,代码很好用!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-15 12:24 , Processed in 0.039290 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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