继续手把手教你做Excel VBA系统
- 2026-11-09 06:13:51
继续手把手教你做Excel VBA系统猜您喜欢 往期精选▼ 一套系统,往往有不同组织、不同角色、不同用户同时使用,这势必会有权限的限制与要求,权限一般包括功能权限和数据权限,本文示例为简易系统,所以这里的功能权限特指菜单权限和按钮权限,而数据权限主要指数据的查看范围,一般和组织机构挂钩。 
如上图,当系统未登录时,任何人是看不到内部功能的,这在一定程度上确保了安全性,当登录成功以后就可以根据不同用户所属的不同角色展开不同的功能菜单,从而达到权限控制的目的。如下图 
操作效果如图: 
实现逻辑: Excel vba的菜单是通过Ribbon来实现的,其语法遵循xml语言的语法,但并不意味着你需要精通xml,只需记住几个节点,并照葫芦画瓢的写即可。 
Ribbon是可以调用模块中的方法的,从而奠定了通过vba模块方法来实现对菜单的控制的基础。 下图的RibbonOnload主要实现在Excel自定义功能区(Ribbon)加载时自动执行的回调函数。它的主要作用是保存Ribbon对象的指针,以便在后续代码中可以操作功能区。核心是将传入的Ribbon对象保存到全局变量myRibbon中。 
下面两个函数是关键函数,主要控制菜单的可见性以及显示的内容。其中getLabelText会从字典表中查询功能菜单id与内容的映射关系,然后根据xml中定义的id显示对应的内容,据此还可以进一步控制让谁显示不让谁显示,本简易系统暂不涉及这种复杂功能,有兴趣的可以自行实现,有问题可以在文末留言。 
下面的RefreshRibbon函数主要作用是刷新Ribbon的状态,因为当不同用户登录或者登录状态发生变化时,需要通过刷新Ribbon状态才能生效,此时就需要调用该函数。 
如登录成功时就调用该函数将相应的功能菜单给刷出来。退出登录时也需要。 
1、首次登录系统时用户名和密码为空对用户来说是可以接受的,但是如果就是自己的电脑,使用固定的账户,如果每次登录都需要输入用户名和密码体验就不那么好了,所以本系统支持自动记录最近一次登录成功的用户名和密码。 
操作演示效果: 
2、支持窗体最大化以及鼠标划过功能按钮时的凹凸效果 
3、支持录入错误时的醒目提醒 
六、打包发布及安装 很多人对vba开发的东西抱有刻板的印象,一说就是表格,宏文件、模板,其实它完全也可以是工具、系统和软件,比如完全也可以打成安装包,像普通的桌面端软件一样下载、安装和使用。 看效果: 
6、写在最后 还是那句老话:无论设计得多完美的系统、思考的多周到的设计,都会有不足之处. 当你通过这样一个简易的系统把前中后端打通,那么你就是一个真正的系统开发者而不是表格制作者了。 猜您喜欢 往期精选▼ 


立即添加星标

每天学好教程
前文以报税记账系统为例,详细介绍基于Excel + vba+mysql的系统搭建和开发方法,本文进一步介绍权限控制的实现逻辑及打包安装方法。
四、权限控制








五、几个彩蛋





言尽于此,拙见浅薄,倘能于君有万一之益,则幸甚。
VBA工具合集,复杂工作一键搞定,让同事目瞪口呆的Excel自动化



识别二维码
关注视频号
Excel
加油站





长按
关注
立即添加星标

每天学好教程
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。
