Delphi中使用Office中VBA的优缺点
来源:互联网 发布:三星淘宝账号出售 编辑:程序博客网 时间:2024/05/13 03:20
在Delphi中使用OLE来与Office应用程序通讯,不外乎两种方式:直接使用VBA和使用Delphi的封装组(TExcelApplication,TExcelWorkbook,
TExcelSheet等等),两种方式各有优劣。这里简要谈谈直接VBA调用方式。
直接使用VBA的优点:
1、参数传递方面比较灵活。比如打开文档函数Workbooks.Open,它有很多可选参数(可以认为等同于默认参数),在VBA中定义如下:
Function Open(Filename As String, [UpdateLinks], [ReadOnly], [Format], [Password], [WriteResPassword],
[IgnoreReadOnlyRecommended], [Origin], [Delimiter], [Editable], [Notify], [Converter],
[AddToMru], [Local], [CorruptLoad]) As Workbook
在一般的编程语言中,是不可以跳过参数表中某个参数而传递后面的参数的,所以几乎所有的语言都要求例程的默认参数必须定义在参
数表的最后。而使用VBA可以做到参数的跳跃传递。比如要以只读方式打开文档“D:\Test.xls”,就可以这样调用Open函数:
xlApp:=CreateOleObject('Excel.Application');
xlApp.Caption:='Delphi中使用VBA与Excel通讯';
xlApp.Visible:=True;
xlApp.Workbooks.Open(FileName:='D:\Test.xls',ReadOnly:=True);
请注意,上面的调用在传递参数时跳过了参数UpdateLinks。我是在Excel中录制宏并参考其代码后才想到在Delphi中也这样写试试的,
结果运行通过。这种写法我从来没在Delphi中见过,感到不可思议。所以说,有想法就要实践!
2、可以在Office应用程序中录制宏,然后将生成的宏代码稍加修改就可以复制到Delphi中,简化了代码的编写。参考宏代码时要注意去
除无用的冗余代码。比如你打开字体对话框,仅改变字体大小,但是在录制的宏代码中会设置所有的字体选项,你需要删除冗余代码。
3、可以传递多种VBA能识别的格式的参数。比如:
xlSheet.Columns[1]表示第一列
xlSheet.Columns['A:G']表示1-7列
有优点自然也有缺点,直接使用VBA的缺点是:
1、使用Variant来代表OLE对象属于后期绑定方式,效率较低
2、手动编写代码时比较烦琐,因为没有了代码提示功能,并且不能使用with……do来简化代码
TExcelSheet等等),两种方式各有优劣。这里简要谈谈直接VBA调用方式。
直接使用VBA的优点:
1、参数传递方面比较灵活。比如打开文档函数Workbooks.Open,它有很多可选参数(可以认为等同于默认参数),在VBA中定义如下:
Function Open(Filename As String, [UpdateLinks], [ReadOnly], [Format], [Password], [WriteResPassword],
[IgnoreReadOnlyRecommended], [Origin], [Delimiter], [Editable], [Notify], [Converter],
[AddToMru], [Local], [CorruptLoad]) As Workbook
在一般的编程语言中,是不可以跳过参数表中某个参数而传递后面的参数的,所以几乎所有的语言都要求例程的默认参数必须定义在参
数表的最后。而使用VBA可以做到参数的跳跃传递。比如要以只读方式打开文档“D:\Test.xls”,就可以这样调用Open函数:
xlApp:=CreateOleObject('Excel.Application');
xlApp.Caption:='Delphi中使用VBA与Excel通讯';
xlApp.Visible:=True;
xlApp.Workbooks.Open(FileName:='D:\Test.xls',ReadOnly:=True);
请注意,上面的调用在传递参数时跳过了参数UpdateLinks。我是在Excel中录制宏并参考其代码后才想到在Delphi中也这样写试试的,
结果运行通过。这种写法我从来没在Delphi中见过,感到不可思议。所以说,有想法就要实践!
2、可以在Office应用程序中录制宏,然后将生成的宏代码稍加修改就可以复制到Delphi中,简化了代码的编写。参考宏代码时要注意去
除无用的冗余代码。比如你打开字体对话框,仅改变字体大小,但是在录制的宏代码中会设置所有的字体选项,你需要删除冗余代码。
3、可以传递多种VBA能识别的格式的参数。比如:
xlSheet.Columns[1]表示第一列
xlSheet.Columns['A:G']表示1-7列
有优点自然也有缺点,直接使用VBA的缺点是:
1、使用Variant来代表OLE对象属于后期绑定方式,效率较低
2、手动编写代码时比较烦琐,因为没有了代码提示功能,并且不能使用with……do来简化代码
0 0
- Delphi中使用Office中VBA的优缺点
- Delphi中使用Office中VBA的优缺点
- 如何在WPS Office 个人版中使用VBA语言
- 在 Office VBA 中使用由 Visual Basic Express 编写的DLL
- 金格office控件在js中对vba的操作
- Excel中VBA的使用
- excel中VBA的使用
- Delphi中控制VBA 宏
- Delphi中控制VBA 宏
- Delphi中控制VBA 宏
- Delphi中控制VBA 宏
- access中vba的使用举例
- VBA语法中括号的使用
- WPS中使用VBA的一些注意事项
- Delphi中如何调用Excel VBA
- Delphi中如何调用Excel VBA
- ASP中使用Session变量的优缺点
- ASP中使用Session变量的优缺点
- 14.2 位图尺寸
- web安全之token
- 模拟IC应届生都这么牛,我想到了崩溃
- 备份数据库中的表
- python进行crc校验的方法小感
- Delphi中使用Office中VBA的优缺点
- Oracle表空间管理
- CSP开发-CSP模块的实现
- MFC学习笔记1--数据格式之间的相互转换
- MIUI7的优化。
- python 看到的用法的记录
- Fragment和FragmentActivity的区别
- String - 大小比较,范围限制
- Python 字符编码学习-ascii编码,Unicode和UTF-8之间的关系