Excel VBA 在农业审计中的一个应用
王 楠(审计署驻广州特派办)
【发布时间:2010年12月10日】
字号:【大】 【中】 【小】
    
      
                          
    作为当前最流行的电子表格应用程序,Microsoft Excel以其强大的数据分析和处理能力,在审计业务中发挥了巨大的作用。特别是引入VBA后,极大地提升了Excel的能力,使其由一个单纯的数据分析处理软件上升到了一个具有独特优势的优秀的应用程序开发平台。笔者在参加某农业审计项目时,应用Excel VBA的方法,查出某县农业局利用重复申报的方式,套取中央补助农户资金208000元的事实。现将方法介绍如下,供审计人员参考。
    一、 项目背景
    2008年,在全球金融危机的影响下,为抵御国际经济环境的不利影响,有效拉动中国国内消费需求,国务院出台了约4万亿元人民币的经济刺激方案,其中提出“加快农村基础设施建设,加大农村沼气、饮水安全工程和农村公路建设力度。”在中央和地方财政的支撑下,各地政府纷纷上马,开展了农村户用沼气工程建设,对促进农业和农村经济持续发展,建设社会主义新农村,推进农村小康进程发挥了十分重要的作用。然而,由于项目的快速上马可能超过农村户用沼气建设能力,一些地方政府为完成任务,不向上级汇报实际情况以求解决问题,而不惜采用农户重复申报的方式,套取中央和地方补助农户的资金,造成了较为恶劣的影响。审计人员必须从地方和中央不同年度、不同批次的项目档案中查找出互相重复的农户名单,才能精确计算出套用的资金数额,从而继续查找资金的流向。在传统手工审计模式下,审计人员只能通过手工翻阅纸质档案查找和计算,既费时又费力,而且出错率高。引用EXCEL VBA后,大大提高了工作效率,在短时间内迅速解决了问题。
    二、 Excel VBA简介
    VBA(即Visual Basic for Application)是集成在Microsoft Office应用程序中的一种程序设计语言,能够实现Office自动化,从而极大地提高工作效率。它与VB的开发环境相似,基本的语法原理相同,具有与VB 编程系统相同的强大功能。EXCEL VBA能自动执行程序化的数据输入和分析工作,增强Excel内置功能,并有效地组合其他各种内置功能。
    对于审计业务的一般应用来说,审计人员只需掌握EXCEL录制宏功能,将复杂的EXCEL操作转换成VBA代码,即可实现相应操作,而勿需从头学习复杂的代码。进一步,如审计人员熟练掌握EXCEL VBA编程技术,则能够以EXCEL作为数据分析和处理的平台,充分利用各种工具和接口,与其他应用程序协同工作,达到数据精确分析的目的。在本项目中,笔者仅采用了VBA的初级功能,即宏编辑功能,来实现不同数据重复筛选的目的。
    我们可将“宏”理解为一组复杂任务的集合体,它的内容为一系列VBA代码,通过自动执行这组代码可达到审计人员预先设想的目的。比如,在该项目中,要求从不同的文档中筛查出重复的农户名单,我们可以编写一组VBA代码,将其录制到宏中,在使用时自动执行,即可令EXCEL按照审计人员的意图对数据进行自动筛查。在下次使用时,即便不熟悉底层代码的审计人员亦可利用已经编制好的宏,轻松实现相应操作。
    三、 Excel VBA在本项目中的应用过程
    由于国家对农村户用沼气工程建设建立相应的管理系统,审计人员首先从该系统中下载07、08、09年三年的申报中央及地方项目的农户名单,共6批次,以村为单位整理成txt文档。将同一村不同年度的农户名单的txt文档导入EXCEL文件中,以竖列形式排列。现以两批次名单比较为例:将A村07年中央项目申报农户名单导入工作簿A1至An单元格(n为导入名单的最后一列序号),将A村08年中央项目申报农户名单导入C1至Cm单元格(m为导入名单的最后一列序号),同时保持B列为空。在宏录制器中定义该宏为“Display_matches”,编写VBA语句(限于本文篇幅,本文略去VBA语法解释)。如下:
    Sub Display_matches ()
        Dim CompareRange As Variant, x As Variant, y As Variant
    Set CompareRange = Range("C1:Cm")
    For Each x In Selection
    For Each y In CompareRange
    If  x = y Then x.Offset(0, 1) = x
    Next y
    Next x
    End Sub
    在B列中启动该宏,可迅速筛选出A列和C列中重复农户名单,即同一村在不同项目中申报的农户名单。同理,通过交叉组合,可筛选出不同村在同一项目或者不同项目中的重复名单。根据每一农户在不同项目中获得的补助金额,可计算出农业部门套取的金额。
    四、Excel VBA应用体会
    本例亦可采用EXCEL嵌套函数形式实现。比起函数,笔者认为VBA编程更易于理解,并且出错率低。相比其他数据分析软件和开发平台,EXCEL更易被审计人员接受,在审计项目中应用性更强。而VBA编程大大扩展了EXCEL的分析能力,使其可按照审计人员的意图开发出功能强大的应用程序解决方案,具有较强的灵活性,值得审计人员认真思考和学习。(王楠)
【关闭】    【打印】