如何使用Excel编程实现自定义报表.pdf
文本预览下载声明
VBA编程-Excel加载宏
用VisualBasic、VisualC++ 等开发工具编程时,经常会遇到打印报表的问题。虽然这些开发工具也
提供报表设计功能,但是难以实现一些复杂的功能。一些著名软件公司采用专用的ActiveX控件,如华表
控件 (cell),来让用户能够自定义报表,其风格类似Excel,但是对于一些具有特殊要求的软件项目就不适
用了。利用Microsoft 的VBA对Office稍稍改造,让报表样式的设计和报表的创建都在Office 中进行。
才能真正做到贴身订做、随心所欲的目的。
电能表检定软件的数据库格式是已定的,但是因为用户太多(分布在全国),这些用户对打印格式要求
都不一样,而且还需要经常修改,不仅要修改原始的报表模板,还要对创建出的报表再进行编辑。于是我
们想了一个办法,利用Excel模板(*.dot)来代替报表模板,在Excel模板里,把含有SQL 语句Where
子句的参数的字母和符号放到对应单元格的批注里(如下图)。
然后在VB或VC里控制Excel来替换这些批注。《电脑编程技巧与维护》以前的文章里曾介绍过这方面
的实现方法。这个方法解决了报表灵活修改的问题,但是还存在下面2个难题:
1、批注的难以理解:这些批注由只能由程序员或软件维护人员来添加,因为这些批注是含有字段、SQL子
句参数的字母和符号,对于用户来说是难以理解的,无法做到让用户自己去随意修改。
2、手工操作的困难:当批注很多时,逐个输入这些标记,容易出错的,并且工作量很大。
那么本程序实现的功能就是,通过编写Excel加载宏对Excel功能进行扩展,让Excel具有翻译这些批
注的功能,并且提供一些方法,能够快速设置批注,成批的设置批注,并具有查错功能,让用户只需按照
中文提示点鼠标就可以轻松完成模板的制作。其中效果图如下:
1 6
第 页 共 页
在实现该功能之前,先介绍一下Excel 的VBA和加载宏。加载宏程序是一类程序,它们为 Microsoft
Excel 添加可选的命令和功能。可以这样理解 “加载宏”,它是一个含有VBA代码的Excel文件,后缀名
为 “.xla”,区别于Excel文档 (.xls)和Excel模板 (.xlt),我们制作好该文件后通过 【工具 (T)】【加载宏
(I)】把它加载到内存,从而成为Excel本身的一部分,增强Excel 的功能,加载宏只在后台运行,并且只
加载一次,以后每次启动时都会自动加载。加载宏可以获得对Excel 的整体控制权。
下面开始逐步示范加载宏程序
1. 首先打开Excel, Excel 自动出现一个新建文档,默认名称为“Book1”
2. 选择另存,保存类型选择最后一项 “Microsoft Excel 加载宏”,保存后自动添加后缀名 “.xla”,这
时已经建立了一个空的加载宏文件,假设取名为Sample.xla。有两点需要注意,第一:这个加载宏文
件并没有加载,第二:Book1依然存在,与Sample.xla没有任何关系。如果关闭Excel,然后再打开
Sample.xla,你会发现什么也没有,因为加载宏只在后台出现,在前面没有对应的文档。
3. 关闭Excel,再次打开Excel,然后加载宏,并选择Sample.xla,这样就把Sample.xla加载到了内存,
我们就可以边调试边写程序了。以后再打开Excel就无需再次加载。
4. 按Alt +F11 或选择 【工具(T)】【宏(M)】【Visual Basic 编辑器(V)】进入代码调试界面。
5. 首先我们希望修改Excel菜单,Excel和Word不同,在Excel里通过自定义工具栏对菜单的修改,只
会影响本计算机的Excel,不能通过Excel文件带到另一计算机上,所以必须编写代码,来动态修改菜
单Excel,代码如下。
5.1修改主菜单。
Public Sub 修改菜单栏()
Dim C
Dim x1
Dim Str1 As String
Str1 = Worksheet Menu Bar
Application.CommandBars(Str1).Reset
Set C = Application.CommandBars(Str1).Contro
显示全部