ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] VBA 也能玩滑屏 附 源码

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-6-5 03:09 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:类和类模块
本帖最后由 ldy 于 2013-10-7 23:11 编辑

大屏幕智能手机都有哈,滑屏就是模仿的手机的滑屏。
纯VBA代码, 先看看效果先。
滑屏.gif

改编成VB ,编译的EXE 仿滑屏效果.rar (12.77 KB, 下载次数: 380)


------------------------------------------------------------------------------2013-10-7----------------------------------------------------------
本来 在写一篇教程,分享一下如何编写一个基于数据库的管理系统,想写完了一起发的,结果过去4个月了,也没时间来续写后面的内容。
这了滑屏菜单仅仅是界面设计的第一步,看来还是有不少朋友喜欢的 我把源码放上来给大家参考下,简单说下:
做这个肯定要用到类模块的,麻烦的是在移动一个控件的时候如何让其他控件按照要求一起移动,通常的做法是遍历循环的方法,这样的做法执行简单的动作是可以的,
稍微复杂些的动作,比如双击绿色按钮后 上面的按钮不动,下面绿色按钮要往下移动 腾出空间来显示 蓝色的子按钮,如果用循环的方式 代码写起来就会非常复杂,维护起来也很麻烦。
这种情况下就如同你是个队长,在对队伍发出指令 “向前一步走”,问题是每个队员都不是真人,而是人体模型,你要一个个的去搬(循环遍历)。
如果是想如同真人队员一样 队长发出指令,每个队员都会自动执行,那么 类与类之间的通讯 就非常必要了。
想必都听说过 windows系统 是通过消息和事件来运行的说法,我们可以借助这个思路来实现 类之间的通讯。
建立一个公共消息类,在其中写事件代码,,公共消息 你可以把他看做是一个对讲机总台
Public Event moveUp(y As Long)
Public Sub moveUp(y As Long)
    RaiseEvent moveUp(y)
End Sub

在模块中定义一个 公共消息类的公共变量  public 公共消息 as 公共消息类
在控件类模块和窗体中都 dim withevents 消息 as 公共消息类
然后你会发现 在类模块代码窗口 和窗体代码窗口中 的对象下拉菜单中 多了一个 “ 消息”选项,选中后 右边的事件选项中出现 moveUp,点选moveUp会自动生成代码
Private Sub 消息_moveUp(y as long)
'
End Sub
就如同写其他事件代码一样。

在窗体启动时 实例化公共消息类  set 公共消息 = new 公共消息类
然后 窗体执行 set 消息 = 公共消息  相当于有了一个新的对讲机,并且与总台设定了相同的频道,双方已经可以沟通了
继续运行代码 创建按钮类了 同样的 执行  set 消息 = 公共消息
控件加载完毕后,每一个实例控件类都有一个相同的 公共消息类(每个队员都有了一个同频率的对讲机)
在任何地方执行语句  公共消息.moveUp y
所有类包括窗体都会收到  消息_moveUp 事件,并运行其中的代码。如同某队员在对讲机中说了一句话,所有队员都会听到,并根据其内容做出相应的动作。
这只是一个简单的说明 具体的还是看源代码吗。


滑屏源码.zip (59.83 KB, 下载次数: 264)




点评

好久没有露面了,这几年都忙啥呢?  发表于 2013-10-8 10:04

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-6-5 05:44 | 显示全部楼层
谢谢版主
您的网页分析,是我在论坛中看到的最好的一篇,作用具大

点评

ldy
很久没回论坛了,谢谢您的肯定。  发表于 2013-6-5 10:52

TA的精华主题

TA的得分主题

发表于 2013-6-5 07:45 | 显示全部楼层
本帖最后由 chen7806 于 2013-6-5 07:50 编辑

俺是03版的,有界面,点击以后没有象楼主一样的滑屏效果。偶然会这样出现,估计是电脑问题还是什么。

-------------再后来,发现一定得双击才出效果。收藏了。

TA的精华主题

TA的得分主题

发表于 2013-6-5 08:29 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
的确很强大,如果可以拖任意地方滑动就更好了,现在好像只能拖绿色文字区域才能有效

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-6-5 10:55 | 显示全部楼层
fankairong 发表于 2013-6-5 08:29
的确很强大,如果可以拖任意地方滑动就更好了,现在好像只能拖绿色文字区域才能有效

可以拖到任意地方,但是作为菜单,慢屏幕乱跑,也不是太好

TA的精华主题

TA的得分主题

发表于 2013-9-25 21:56 | 显示全部楼层
ldy 发表于 2013-6-5 10:55
可以拖到任意地方,但是作为菜单,慢屏幕乱跑,也不是太好

有没有源码提供?可以入知识树

TA的精华主题

TA的得分主题

发表于 2013-9-25 23:16 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-9-25 23:24 | 显示全部楼层
本帖最后由 老谭酸菜 于 2013-9-25 23:30 编辑

哈!好玩!到底是EXCEL VBA的还是VB的呢?
看界面象VB的,查进程也没发现EXCEL。
仔细观察了下,应该是VB做的。

TA的精华主题

TA的得分主题

发表于 2013-9-25 23:37 | 显示全部楼层
本帖最后由 老谭酸菜 于 2013-9-25 23:42 编辑

上当啦!VB6.0做的,不是VBA!

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-10-5 17:23 | 显示全部楼层
HHAAMM 发表于 2013-9-25 23:16
我猜想这是js特效

再猜{:soso_e113:}
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-24 06:55 , Processed in 0.042922 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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