杨惠英1 任冬梅2 (1.东北电力学院,吉林市 132002; 2.吉林市实验职业高中,吉林市 132001) 摘 要:用具有强大表格设计和处理功能的Excel作VB应用程序的输入模板, 完成针对数据项较多、结构较复杂表格的数据输入,是一种行之有效且非常实用的好方法。编程实践证明此方法具有实现简单、输入方便、直观及屏幕利用率高等优点。本文较全面地介绍了此种方法的具体实现过程。 关键词:Excel;表格设计;VB编程;输入模板 中图分类号:G434 文献标识码:A 文章编号:1008-7508(2004)02-0111-02 在利用VB开发应用程序时,免不了要有数据输入的功能,这一功能一般用VB提供的有关控件来设计传统的录入界面实现。但这一方法对于存在复合表项的有比较复杂结构,或者表格数据量较大的原始表格,就显得不太实用。主要表现在界面较简单难于设计出与原始表格布局一致的录入界面,并且每屏界面的录入项也较少,因此效率也较低。 通过编程实践,我们感到利用office组件之一,具有强大表格设计和数据处理功能的Excel作为输入模板,完成针对数据项较多且结构较复杂表格的数据输入是一种行之有效的好方法。此方法具有实现简单、输入方便、界面直观、屏幕利用率高等优点。 利用Excel做VB应用程序的输入模板完成数据的录入,主要需做以下方面的工作: 1.用Excel按原始表格制作一工作表做为输入模板 为了使模板整洁有效,需要求用户只能在规定的输入编辑区输入和修改数据,而对栏目名等非输入区则无权编辑,也就是要对非输入区进行保护。这种对表格中有选择的部分单元格进行保护的实现过程是:分别选择输入区,选择菜单为格式→单元格格式,选保护标签,将“锁定”选项前的“√”去掉;再选择菜单:工具→保护→保护工作表;输入密码即可。最后将制作好的Excel文件做为输入模版命名保存,以便VB程序使用。 2.在VB应用程序中加入打开Excel及输入模板的程序代码段 Excel是支持ActiveX技术的应用程序,VB程序内部可以通过编程操纵它所提供的Excel电子表格对象。首先在VB应用程序中要添加对Excel类型库的引用。方法是:选择菜单“工程/引用”命令;弹出引用对话框,选择“Microsofte Excel9.0 object library”;单击“确定”即可。其次设计打开模板的程序代码: 其中“File Name"为已经设计好的输入模版文件名。 3.改变Excel菜单和标准按钮上的保存选项的功能 由于Excel菜单和标准按钮上保存选项的默认功能是保存整个模板,而不是把输入的数据按要求保存到指定的数据库中。因此要按要求改变Excel菜单和标准按钮上的保存选项的功能。在系统中应用程序除了响应VB对象发生的事件外,还可以响应部件提供的对象所引发的事件。但是,由部件提供的对象事件在VB中不是自动可用的,必须在模块的开头用With Events关键字定义事件变量。例如: 这样声明后,在代码窗口左边的对象下拉框中就出现了所声明的对象变量名,如:exbook和exsheet。选择这两个对象变量时,在代码窗口右边过程框下拉框中,可以看到excel中工作簿、工作表的所有事件。其中就有工作簿的beforesave事件,对该事件进行编码就可改变保存操作。如: ‘取消默认的保存操作自设的保存数据到指定数据库中的程序代码end sub 即当你在excel中点击保存按钮时,将触发该事件,执行你所设计的保存代码。不过在使用前要在VB 程序中设置exbook为输入模板的引用,如set exbook=mw。 另外要通过程序代码获得excel单元格的内容,可以用exbook.worksheets(1).cell(i,j).value,其中i、j为单元格的行号和列号。 4.按要求屏蔽掉Excel部分菜单的功能 因为只是利用Excel作为输入工具,我们应该把Excel菜单上的一些不用的选项屏蔽掉,以免干扰数据的正确输入和影响数据的安全。例如,若不想让用户查看或修改自己所编的VBA代码,也可把“工具”里的“宏”屏蔽掉。方法是利用DIM 语句定义一变量,再设置该变量为所选菜单项的引用,如: Dim eit Set eit = ma.CommandBars(“worksheet menu bar").Controls(“工具(&T)"). commandbar eit.Controls(“宏(&M)").Enabled = False 子菜单项Enabled属性设为false,则该项为不可用。其他菜单项也可类似的随你设置。 5.工作表上设计一个输入结束按钮。 在工作表上设计按钮的方法是:在excel中选择菜单:视图→工具栏→控件工具箱,在工作表上添加按钮;设caption属性值为“结束”name属性为“commond1",其他属性取默认值。 数据输入结束可通过单击所设计的“结束”按钮保存数据,然后退出输入模版和关闭excel。但VB没有提供对excel 按钮事件的引用,即VB应用程序不能直接检测到该按钮的Click()事件,但可以检测到工作簿的关闭事件。所以可通过单击该按钮引发关闭事件,在关闭事件过程中编写相应的代码,以便间接完成所要求的功能。如: Private Sub Command1_Click() Workbooks.Close End Sub Private Sub exbook_BeforeClose(Cancel As Boolean) Dim eit Set eit = ma.CommandBars(“worksheet menu bar").Controls(“工具(&T)"). CommandBars eit.Controls(“宏(&M)").Enabled =True ma.quit End Sub 由于篇幅所限,以上简单的介绍了用Excel作VB应用程序输入模板的具体实现过程。可以看出其具体实现过程是比较简单的,并且利用该技术所起到的作用也是比较明显的,确实补充了利用VB控件设计应用程序输入界面的某些不足,方法实用新颖。感兴趣的读者不妨试一试此方法,并将其应用到你的程序设计中去,定会收到不错的效果。本人在为某校开发的人事管理系统数据输入模块中,就应用了本方法,确实收到了很好的效果。另外在实际应用中,还要充分利用Excel本身的强大的制表、统计、函数计算等特有功能,最大限度地发挥其优势,以便能为你的程序开发带来极大的灵活性,从而达到提高你的工作效率和简化程序设计且提高软件质量之目的。 参考文献: [1]王成春.实战Excel 2002 VBA程序设计实务[M].北京:中国铁道出版社,2003,4. [2]高峰霞. Visual Basic 6.0中文版提高与应用[M]. 北京:电子工业出版社,1999,11. 收稿日期:2004-03-16 作者简介:杨惠英(1958—),女,吉林市人,东北电力学院讲师;任冬梅 (1963—),女,吉林市人,吉林市实验职业高中教师。 |
|
来自: 网络摘记 > 《VB-EXCEL知识》