用Excel轻松实现财务凭证封面套打[摘要]本文利用Excel的VBA功能配合相关控件工具箱实现对财务凭证的封面进行套打操作,能方便快速地打印出作凭证封面。[关键词]凭证封面套打ExcelVBA前言我院财务上的凭证封面一直以来都是用手工号码印章的方法来处理的,虽然完成的效果很好,但是这种方法处理起来却费时费力。有没有更好的简洁快速的方法来实现财务凭证封面的套打功能呢?经过认真的研究,决定采用Excel的VBA功能配合相关控件工具箱来处理该问题。一、方法简介扫描凭证封面原件形成电子图片文档,在Excel中利用扫描得到的图片,在封面需要填写的位置利用VBA的相关功能实现相应内容的输入填写,从而实现对凭证封面的快速编辑及打印。二、实现步骤(一)准备图形:用扫描仪对凭证封面原件扫描并用图形工具处理多余空白部分后保存成扩展名为JPG格式的图片(如凭证.JPG)。(二)插入图形:新建一个电子表格,工作薄名:记账凭证套打.xls,工作表名:凭证套打,打开菜单“插入→图片→来自文件”,在弹出的对话框中选取扫描所得的图片凭证.JPG,即可在凭证套打表中看到该图片,双击图片在“设置图片格式→大小”中按套打的凭证封面原样张大小设设置好高度和宽度(如图片处理)。(三)添加工具栏:点击菜单栏“视图→工具栏”选“控件工具箱”及“VisualBasic”,如图1所示。图1控件工具箱及VisualBasic工具(四)设计控件属性:在控件工具箱选设计模式,在凭证需要填写的地方分别插入标签控件,在空白的区域分别插入标签控件、文本框控件、组合框控件及其他控件中的日期选取控件(MicrosoftDateandTimePickerContorl6.0(SP4))。如图3所示。在控件上右击后在弹出的菜单上选择属性,将各控件的名称改为如图3所示名称(非图片区的说明性的标签控件名称不变),须调整的控件其他属性设计如下:⑴标签控件:BackStyle为0-frmBackStyleTranparent;BoardStyle为0-frmBoardStyleNone;TextAlign为2-frmTextAlignCenter;Font(字体)根据需要调整。⑵文本框控件:TextAlign为2-frmTextAlignCenter;Font(字体)根据需要调整。(五)添加代码:打开VisualBasic工具栏中的VisualBasic编辑器,添加代码如下:⑴Sheet1(凭证套打)中代码:PrivateSubcbo保管_Change()Me.lbl保管.Caption=Me.cbo保管.TextEndSubPrivateSubcbo保管_Click()Me.lbl保管.Caption=Me.cbo保管.TextEndSub图2凭证封面套打设置界面及控件名称PrivateSubcbo复核_Change()Me.lbl复核.Caption=Me.cbo复核.TextEndSubPrivateSubcbo复核_Click()Me.lbl复核.Caption=Me.cbo复核.TextEndSubPrivateSubcbo装订_Change()Me.lbl装订.Caption=Me.cbo装订.TextEndSubPrivateSubcbo装订_Click()Me.lbl装订.Caption=Me.cbo装订.TextEndSubPrivateSubDTPickerStart_CloseUp()Me.lblSYear.Caption=Format(DTPickerStart.Value,“yyyy”)Me.lblSMonth.Caption=Format(DTPickerStart.Value,“mm”)Me.lblSDay.Caption=Format(DTPickerStart.Value,“dd”)EndSubPrivateSubDTPickerEnd_CloseUp()Me.lblEYear.Caption=Format(DTPickerEnd.Value,“yy”)Me.lblEMonth.Caption=Format(DTPickerEnd.Value,“mm”)Me.lblEDay.Caption=Format(DTPickerEnd.Value,“dd”)'日期错误提醒IfDTPEnd.ValueDTPBegin.ValueThenMsgBox凭证截止日期不能小于凭证起始日期,请重设!,vbCritical+vbOKOnly,凭证封面套打EndSubPrivateSubtxt册数编号_Change()Me.lbl册数编号.Caption=txt册数编号.TextEndSubPrivateSubtxt册数_Change()Me.lbl册数.Caption=txt册数.TextEndSubPrivateSubtxt附件张数_Change()Me.lbl附件张数.Caption=txt附件张数.TextEndSubPrivateSubtxt凭证张数_Change()Me.lbl凭证张数.Caption=txt凭证张数.TextEndSubPrivateSubtxt起讫号_Change()Me.lbl起讫号.Caption=txt起讫号.TextEndSubPrivateSubtxt总册数_Change()Me.lbl总册数.Caption=txt总册数.TextEndSub⑵ThisWorkBook中代码:PrivateSubWorkbook_Open()'可根据需要添加更多人员供选择Sheet1.cbo装订.AddItem张三Sheet1.cbo复核.AddItem李四Sheet1.cbo保管.AddItem王五lbl单位.Caption=×××人民医院EndSub(六)设计对象属性:将所有对象的“设置控件格式”中“属性”选项卡上,对象位置选择“大小、位置均固定”(目的是防止对象随单元格大小改变而改变)。将空白部分对象和和凭证封面图片的“设置控件格式”中“属性”选项卡上“打印对象(P)”去掉“√”。(七)保护工作表:选择菜单“工具→保护→保护工作表”,在弹出的对话框中输入密码,确定即可。退出设计模式并关闭VisualBasic工具栏,保存工作表。(八)宏安全性处理:选择菜单“工具→宏→安全性”,在“安全级”选项卡中选择“低”或“中”,保证Excel启动时能运行宏。(九)打印设置并输入内容:在系统开始菜单中选“控制面板→打印机和传真→服务器属性”,创建新格式“凭证封面”,大小要设成与实际纸张大小一致,在Excel中页面设置中页面新建成的“凭证封面”,页边距设到最小。在空白部分文本框控件、组合框控件及日期选取控件中选择或输入相关内容后,选择菜单“文件→打印”,打印出凭证封面即可。注意:因打印页边距不可能到边,所以在实际使用中会出现实际打印位置不对位现象,出现这种情况时,只需对控件作整体(为防止移动时改变相对位置,最好将图片区域的控件全部选中后组合成一个整体)的上下及左右移动,直到打印的效果满意为止。三、小结通过上述步骤,打印出凭证封面质量既好又快,还可以随时修改。本例在WindowsXP+Excel2003界面下运行通过,经测试在Excel2000下也能正常使用。依据同样方法也用于其他类型格式卡片的套打,使用起来很方便。注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文