乐于分享
好东西不私藏

手把手教你做Excel VBA系统:新增模块集成方法

手把手教你做Excel VBA系统:新增模块集成方法

立即添加星标

每天学好教程

前文以报税记账系统为例,详细介绍基于Excel + vba+mysql的系统搭建和开发方法以及权限控制的实现逻辑及打包安装方法。本文介绍集成到该系统中的个税计算模块的集成和实现方法。

猜您喜欢
往期精选▼

手把手教你做一套Excel VBA系统

继续手把手教你做Excel VBA系统

20年VBA开发经验总结47条万字原创长文,刷新你对Excel的认知!

一、功能菜单追加

新增功能模块首先需要创建功能入口,对于ribbon来说,增加一个菜单意味着三件事:功能图标、菜单和回调事件。
1、去任一你常用的图标网站下载你中意的48*48尺寸的图标,直接拷贝放置到如下路径:
2、在customerUI.xml文件中相应位置增加button节点,该节点包含图标的引用id以及功能对应的action事件。
3、引用的图标id并不是图片的名称,而是需要先做映射,将图标id和图片名称对应起来,这需要在customUI.xml.rels文件中来实现。
二、回调事件实现
当菜单入口建立起来后,就相当于把系统与用户的交互通道建立了起来,接下来需要做的是进入通道以后要做的事情,这里的action其实很简单,只是把目标窗体给调出来。显著标志就是control As IRibbonControl参数,代表接受Ribbon区域发起的请求。
这段代码已经是在标准模块中来实现了,也就是说以xml为标志的ribbon区域过渡到了真正的VBA编程。
三、窗体设计
上述回调代码首先会判断用户登陆的状态,如果未登录,则会跳到登陆窗体,只有处于登陆状态是才可以直接吊起个险计算器窗体,这是权限控制的要求。
窗体设计要沿用系统的整体基调,不能风格太迥异而让人觉得太突兀,所以背景信息使用其它窗体即可。
基本上用的都是常用控件,如CheckBox,ComboBox,TextBox已经CommandButton。
设计逻辑:以月收入为起点,扣除项包括五险一金、专项附加以及起征点,并进一步将扣除项细化,每一个细化项是最基本的计算要素,这些要素是需要手工录入的,手工录入后进行自动汇总,根据月收入自动计算应纳税所得额,根据应纳税所得额自动匹配适用费率,进而算出应交税额。
四、核心逻辑
整个计算器的核心逻辑其实全部依赖于各个控件的change事件。
1️⃣社会保险+公积金➡️五险一金合计
2️⃣子女教育+继续教育+大病医疗+房贷支出+住房租金+赡养老人➡️专项附加扣除合计
3️⃣起征点(相对固定)
核心代码:扣除细项的内容变化直接触发change事件,实时计算扣除项的合计结果。
扣除项合计结果的变化直接触发change事件,实时计算应纳税所得额。
应纳税所得额的改变直接触发change事件,实时匹配税率档并计算应交税额。
为避免太多容易重复性代码出现,创建通用过程有利于降低代码冗余,提升可读性。
五、效果演示
六、写在最后
还是那句老话:无论设计得多完美的系统、思考的多周到的设计,都会有不足之处.
当你通过这样一个简易的系统把前中后端打通,那么你就是一个真正的系统开发者而不是表格制作者了。

言尽于此,拙见浅薄,倘能于君有万一之益,则幸甚。

猜您喜欢
往期精选▼

VBA工具合集,复杂工作一键搞定,让同事目瞪口呆的Excel自动化

一键搞定!VBA自动化工具合集

一键全自动!基于Excel VBA的智能工具集,90%工作秒级完成

精选VBA工具合集,从此告别手工操作

数据为刃,玉麟擒牛—玉麒麟智选系统详细介绍

单据模板库:一键拿来,3秒搞定所有格式!

长按

关注

立即添加星标

每天学好教程