日期:2023-01-12 阅读量:0次 所属栏目:审计会计
文献标识码:A
doi:10.19311/j.cnki.16723198.2017.13.093
1什么是VBA和结构化数据
VBA是“Visual Basic for Applications”的简称,它是微软 Visual Basic 的宏语言版本,也可以说是一种应用程式视觉化的Basic脚本,用于编写基于Windows 的应用程序,内置于多个微软程序,特别是office系列的excel、word、power point中。通过Visual Basic 编辑器可以通过编写或修改代码来创建宏,宏是一系列命令和指令的组合,可以作为单个命令执行来自动完成某项任务,特别是需要频繁使用的任务。掌握了VBA,可以将多个步骤的手工操作变得简单迅速,而且通过可视化的界面,可以将结果更清晰的呈现出来。例如,企业的销售部门有统计合同信息的excel表格,相应的采购、生产仓储部门都有自己的统计信息表格,每月为了统计合同执行情况,分析人员可以先抓取合同统计表中的合同号,然后在其他表格中按合同号筛选对应记录,再把相关信息手工粘贴到新的表格中,如果合同较多的话,这一过程将十分繁琐。如果使用了VBA编制的宏,可以从多个表中,自动生成按合同号来跟踪采购量、入库量、出库量、生产量、销售量和库存量的统计清单,统计分析任务将会十分轻松。
结构化数据是信息的集合,这类信息能够用数据或同一的结构来表示,如典型的excel表格中,一行或一列是一类数据,行首或列首为标题栏,列出的是这类数据的属性,如“姓名、年龄”等,下面是具体数据,如“张三、李四”等。对应的是非结构化数据,这类数据无法构成典型的表格,而是离散的,如视频、音频、图片等形式。
2利用VBA进行结构化数据审计的优势
(1)功能强大。企业财务或业务系统不论使用的是ERP系统还是用友或其他系统,数据都是存储在数据库中的,典型的数据库如SQL Server、Oracle存储的都是结构化数据。为发现问题或疑点,审计人员往往要从大量结构化数据中寻找线索,确定审计重点和方向,进行数据分析、比对,完成审计目标。这一过程可以通过审计软件完成,同样也可以通过VBA完成,因为VBA是结构化数据处理的利器,它的设计初衷就是自动处理大量重复的工作,这与审计工作需求相一致。可以说,使用VBA可以处理结构化数据审计中的绝大部分工作。
(2)简单易用。审计软件要使用专门的数据抓取工具?钠笠档男畔⑾低持刑崛∈?据,再转化为审计软件可以识别的数据,这一过程非常复杂,且耗时较长;使用VBA可以直接在excel上操作,只要从企业信息系统中把数据导出到excel表格即可,审计人员均可操作,简单快捷。审计软件往往甚至很多功能,如果没有较好的操作手册,很难完全掌握,容易给人复杂难用的印象;使用VBA可以就一项功能编写一个宏,通过增加注释可以进行傻瓜操作,目的性强,操作直接。
(3)易于开发。审计软件功能固化、系统封闭,使用者无法接触原始代码,如果想要增加新的功能,只能求助于原开发者继续开发或购买新的升级版本;VBA是完全开放的,只要需求发生改变,任何人、任何时间都可以修改或新建代码去满足需求,而且因为VB语言逻辑性强,开发者并不需要特别高的要求,经过一定学习就能掌握,也利于开发新的应用。
(4)节省资金。审计信息化建设必须足够的建设经费作保障,购买服务器和软件、搭建审计信息化网络、网络维护等都需要大量资金投入。而且,重建设、轻应用,重硬件、轻软件等现象普遍存在,相关硬件与软件购置之后束之高阁,造成很大的浪费。VBA是基于office办公软件的编程工具,只要有可以正常使用的excel或word软件,除了编写VBA程序的投入外,几乎不需要多余投入。
3应用举例
3.1对应科目分析
在财务报表审计中,审计人员往往需要查找某科目的对应科目,以判断会计处理是否正确、是否使用正确科目、是否存在疑点等,如“收入”、“应收(付)账款”、“银行存款”、“其他应收(付)款――其他”等。在excel中可以先筛选出包含本科目的记录,再查找凭证号,然后通过具体凭证看到对方科目,这一过程繁琐低效,容易出错。使用VBA可以实现这一功能,
代码中sRow代表数据起始行,初始值=2,eRow代表数据终止行,Range(i,3)代表月份,Range(i,4)代表凭证号,kName代表拟查询的科目名称,sTure为判断标志,i为查凭开始数,j为查凭结束数,初始值均为sRow。
内在逻辑为:从sRow开始,如果下一行的月份加凭证号=本行的月份加凭证号,说明它们是一张凭证上的,此时查凭结束数j+1,指向下一行,同时再判断本行或下一行的科目名称是否等于kName,如果等于,sTure=1,表示这张凭证是要抽取的;如果下一行的月份加凭证号不等于本行的月份加凭证号,说明一张凭证查完了,此时判断sTure如果等于1,把第sRow行到第j行的第9列都设为1,然后让sRow指向i+1行,同时清零sTure,如果sTure不等于1,不做操作。如此循环一遍,包含科目名为kName的凭证都被标记出来,就可以很轻松的看到对方科目了。
3.2生成询证函
当企业客户、供应商、银行账户较多时,可能需要编制上百件询证函,通过手工复制、粘贴耗时耗力,此时可以使用VBA自动插入功能。首先设计好询证函模板,如单元格h3代表编号,单元格a5代表单位名称,单元格c12代表金额;然后把统计信息填入“函证信息”表格,每行第1列代表编号,第2列代表单位名称,第3列代表金额。在询证函模板后面复制一张新表,在新表单元格h3、a5、c12分别赋值函证信息中的一行数据,然后打印新表,打印后删除,完成一份询证函后,计数器加1,再循环生成下一张询证函。主要代码如下:
除了上面举例以外,VBA还可以应用于审计抽样、实质性测试、审计底稿编制等方面,如果用好用精,可以帮助审计人员从庞大的数据梳理出审计疑点,锁定审计目标,通过实时的或动态的检查和监控,大幅提高审计效率和质量。
本文链接:http://www.qk112.com/lwfw/huijilunwen/shenjihuiji/146441.html下一篇:环境绩效审计回顾及未来的发展方向