使用VBA技术开发企业融资台账系统
——以CT集团公司为例
2024-06-12毛雄
毛 雄
长江产业投资集团有限公司,湖北 武汉 430077
0 引言
随着我国经济发展目标从高速增长转向高质量增长,越来越多的企业将数字化转型作为提升企业核心优势和应对激烈市场竞争的重要手段嵌入到企业发展战略中。在企业数字化转型的众多领域中,融资管理因关系到企业的血液——资金,其数字化应用水平直接决定和反映了企业的发展质量。对于管理层级多、业务多元、地域分布广的集团公司而言,融资管理数字化转型更是重要。
目前已实行融资管理数字化的企业,其融资管理软件大多有2个来源:一是购买软件公司开发的标准化产品,这类软件大多由财务类软件公司开发,基本能够满足企业常规的标准化业务管理需要,但是个性化功能较少,不能满足企业的特定管理需求;另外一个来源是银行等金融机构与软件公司合作开发的软件,这类软件偏重金融机构端的业务逻辑,与企业的管理需求存在较大的偏差。这2类软件,都存在一些重大缺陷,那就是软件功能与企业实际需求存在较大差异,主要是业务单据填写不够人性化、数据标准不统一、软件功能固化未能与时俱进,造成了与实际管理需求脱节、功能较单一、软件运维门槛高等问题,由此导致融资管理软件在企业信息化建设的众多系统中逐渐被边缘化,变成了鸡肋系统。
企业迫切需要一款贴合企业实际业务逻辑、使用方便灵活、数据标准统一、功能与时俱进、运维门槛低的融资管理软件。笔者以CT集团公司融资业务实际运行情况为背景,设计和研究了一款融资台账系统,较好地满足了上述需求,对其他企业融资软件的开发也具有借鉴意义。
1 融资台账的业务流程及开发需求
开发应用软件,首先要做的就是与用户进行业务沟通和需求沟通,充分了解用户的业务逻辑和开发需求。笔者经过与相关业务人员沟通,查看历史业务资料、规章制度和业务操作流程表单,结合自身对集团融资业务的了解,发现CT集团公司的融资业务流程和开发需求主要有以下方面。
1.1 获取融资授信
此环节的业务主要是根据与银行签订的授信协议,录入授信相关数据。需要校验的数据如下:授信合同编号的唯一性;授信起止日期的先后顺序,即起始日期应早于终止日期;授信额度、已用授信额度与未用额度的勾稽关系,即“未用额度=授信额度-已用额度”。
1.2 签订贷款合同
此环节的业务主要是根据与银行签订的贷款合同,录入贷款合同相关数据。需要校验的数据如下:融资合同编号的唯一性;因为集团内绝大多数企业不具备直接融资的资格,所以为避免错选,融资方式需要默认为间接融资;合同金额应当设定为数值类型,即只能输入数值,而不能输入其他类型的数据。
1.3 签订担保合同
此环节的业务主要是对需要提供担保的融资签订担保合同,录入担保合同相关数据。需要校验的数据如下:担保合同编号的唯一性,因为存在为一笔融资合同签订多项担保合同的情况,所以可能存在一笔融资合同对应多个担保合同的情况,因为担保合同与融资合同的关联性,所以担保权人应为融资合同中的金融机构之一;担保合同签订时间与担保起止时间的勾稽关系,即担保合同签订时间一般应早于担保合同的起始时间;担保合同金额不应高于融资合同金额。
1.4 提取贷款
此环节的主要业务是根据贷款合同约定的提款方式向金融机构提取贷款,录入提款相关数据。需要校验的数据如下:根据与银行签订贷款合同的约定,对于多次提取的贷款,需要按提取的批次进行区分录入;如果贷款合同中约定了利率,同时又约定在满足某些条件时,企业提款时的利率可按照提款时的市场行情确定,此时提款利率可能与贷款合同约定的利率不同,需要在数据录入面板提示合同约定利率,同时在台账上对本次提款的利率进行批注和标色以示提醒。
1.5 还本付息
此环节的主要业务是根据贷款合同约定的还本付息方式,按时还本付息,录入还本付息相关数据。
2 开发语言及环境简介
笔者开发的融资台账管理系统,是基于Excel软件内置的VBA(visual basicfor application)语言。Excel诞生于1985年,作为微软公司历史上最成功的商业办公软件Office套件中的核心成员之一,Excel已被全世界各行各业的用户广泛使用,是目前全球最流行的电子表格软件之一,其内置的VBA目前的版本是7.1,成熟稳定,其语法完备、功能强大、扩展性强,极大地增强了Office软件的二次开发能力[1]。得益于Office软件的极高普及率,使用VBA开发的应用程序完全不用担心其运行环境,安装了Office软件的电脑即可运行VBA程序。
3 融资台账系统的开发逻辑及实现方式
开发逻辑主要是业务的信息化需求如何在满足业务逻辑的前提下,在开发层面实现。笔者开发的这套融资台账系统主要的开发逻辑及对应的实现方式主要有以下方面。
3.1 保持数据口径的一致
数据口径的一致,主要体现在2个方面:一是单个企业用户在系统填报时,不同表格之间对同一个数据的填报保持一致;二是相同的业务类型,不同的企业用户填报时应当保持一致。
在开发层面实现以上需求,主要采取以下方式。一是对单个企业用户,通过锁定表格,让用户仅能通过面板录入数据,避免随意录入数据,在面板录入数据时,对不同表格之间同一内容的数据,在前面填报后,后续相关业务再次填报时以下拉选项的方式进行选择填报[2]。例如,在授信业务面板中输入了授信协议编号,那么在贷款合同中录入授信协议编号时,将仅能通过下拉菜单选择之前已经填报过的协议编号,避免再次手工输入可能产生的前后不一致,同时也提高了录入效率。二是对不同企业用户填报相同的业务内容时,通过预置下拉菜单,让用户选择填报。例如,在融资提款录入面板中,通过预置下拉选项,设置了“1年 (含) 以内”“1~3年(含)”“3~5年(含)”“5年以上”等选项,用户在填报融资期限时,仅能在以上选项中进行选择。
3.2 合同编号等数据唯一性的校验
合同编号这类数据,相当于是数据库中记录的主键值,是检索记录的依据,应当保持唯一性[3]。系统对合同编号的填写没有特殊的格式要求,但是系统会在用户输入合同编号后自动与之前已经输入的合同编号进行查复校验,如果重复将拒绝录入。对符合要求的合同编号,系统会自动加上公司简称,以避免在汇总所有企业的数据时出现A公司合同编号与B公司合同编号重复的情况。
3.3 业务前后流程中各项数据之间逻辑关系的校验
同一个业务流程中的数据,或者前后流程的数据,存在一定的逻辑关系,如授信起始日和终止日,必定是起始日早于终止日;同一个贷款合同分次提款后还款时,必定是先贷先还,录入的后次还款日期不能早于前次还款日期,并且还款的总金额不能超过贷款合同未还本金额。这些数据的逻辑正确性,直接关系到融资业务的日常管理,必须进行强逻辑校验以保证数据的合理性。
3.4 数据填报过程中的关联数据提示
融资台账系统涉及到授信、担保、签订贷款合同、提款及还本付息等诸多环节,各环节间存在强逻辑关系,后续环节填报数据时,如能提示前面环节的数据或者提示逻辑校验结果,将对录入数据的便捷性和数据的准确性极为有利。例如在录入提款或还款数据时,提示前期提款或还款数据将有助于了解该贷款合同往期执行情况;当插入记录时,提示插入记录的情况;当提款数据与贷款合同签订的利率不一致时,将利率用红色标识以提醒利率的不同[2];当删除记录时,提示应先按照业务流程发生顺序从后往前依次删除关联数据,以关系型数据库的模式保证数据的完整性和有效性[4]。
3.5 根据录入数据自动生成债务统计报表
在融资各业务流程的数据录入以后,可以一键生成截止到当期末的债务统计数据,包括授信协议签订情况、融资合同签订情况、提款及还本付息情况、未还本金及距离目前时点的时长。这些数据,系统自动加上了超级链接,可链接到相应的表格查看具体业务情况。同时,还本付息数据中可以预警是否有逾期未偿还的贷款、未来到期的债务及距到期时长。
3.6 根据业务数据自动统计融资业务情况
随着业务的开展,系统中积累了一定的业务数据。以这些业务数据为基础,根据用户选择的起止日期,系统将自动统计该时间段内的融资业务开展情况,如授信合同、贷款合同及担保合同的签订份数、提款笔数及提款金额、还本付息笔数及金额、该期间内的加权占用资金数额及综合平均贷款利率等,这些数据将对企业进行融资决策起到重要作用。
4 系统界面美化
作为一套业务信息系统,除了便捷、实用的功能,系统的界面布局和美化也至关重要。设计精美、布局合理的界面,不仅体现了软件的专业性,而且也让用户在使用过程中操作方便,赏心悦目。前面介绍了融资的业务流程和需求开发逻辑,在使用VBA代码实现这些功能之后,就需要站在用户的角度,考虑如何让用户了解系统的功能及如何便捷地操作系统。
从Office 2007版开始,微软对Office软件进行了革命性的变革:引入了Ribbon功能区的概念,即将一系列相互关联的功能组合在一起,放在一个选项卡内,如在Excel中常见的“开始”“插入”“公式”“视图”等软件预置的选项卡[2]。使用VBA结合XML技术,可以订制自己的个性化选项卡[5]。笔者开发的这套融资台账系统,首先隐藏了Excel内置的常规选项卡;其次是将公司基础信息、统计信息、各个表单的填写按钮、修改按钮、删除按钮都布局在一个自定义选项卡内,并且设置了相应的按钮图标和文字;最后,增加了启动按钮来显示填表帮助及注意事项。
5 融资台账系统开发和应用情况
笔者于2018年完成了第1版的开发,后经持续更新,2023年底已经是第4版。从第1版问世以来,全集团有融资业务的企业均在使用该融资台账,企业用户数从最开始的50余家,已增加到目前的近100家。使用数年来,在子公司层面,用户普遍反映使用该系统显著提高了工作效率,特别是一些融资业务较多的企业,原本需要1 d才能填报完成的数据,现在仅需要30 min即可完成,并且降低了错误率,对提高企业融资业务管理水平起到了基础性作用。
正是因为功能的便捷性,用户对该软件逐渐形成了良性的依赖;在集团层面,有效规范了各项数据的填报口径,提高了数据的准确性,便于集团在整体层面对集团融资情况进行多维度的统计分析,如实时统计存量债务、统计授信额度、统计担保物权和担保债务、还本付息提前预警、计算综合融资成本,为集团融资决策和债务风险管控提供数据支撑。
该系统使用多年来,给用户填报数据、子公司和集团进行融资业务管理带来了方便,但也存在着诸多不足,主要体现在以下方面。该系统是单机系统,尚无法实现多人同时使用和联网使用,该台账系统目前只能单机单人操作,不利于提高填报效率和使用效率;该系统将数据直接存放在表格内,对数据的保护机制不够完善,虽然系统使用了表格自动锁定功能,但是Excel的表格保护功能较为脆弱,只需要简单的几步即可破解该保护[2],数据被篡改或者被泄露的风险加大;系统版本更新不够便捷,因为该系统是单机系统,尚未联网,导致每次版本更新,需要由集团本部集中使用另外的工具将历史数据导入新版本中,再将更新后的文件发给用户使用。
6 结束语
近年来,随着从中央到地方各级企业数字化转型步伐的加快,笔者所在的集团公司的信息化建设也正如火如荼进行,虽然各大软件商在不断开发出更加贴近用户需求的管理软件,但只要企业的管理需求在变化、业务在变化,软件商开发的软件,无论是通用软件,还是定制软件,就永远存在滞后于用户需求的情况。
未来,这套融资台账系统将继续优化,重点完善以下功能:一是借助云服务实现联网远程应用,将用户数据放在云端的数据库中,用户将Excel作为系统前端操作界面,通过在线更新Ribbon选项卡获取最新功能;二是增加用户身份确认机制,通过子公司向集团申请账号和权限,实现安全登录,保障数据安全;三是通过用户角色划分不同用户权限,增加数据录入、审核、提交和修改等审批流程,进一步提高数据的准确性[4]。