VBA对象引用的前期绑定与后期绑定

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VBA对象引用的前期绑定与后期绑定

编辑:madmlwt

前言

系列问题涉及:

1.操作环境是:Ofeice 2003完整版,Win XP操作系统。

2.探讨主方向:在EXCEL中用VBA操作WORD表格,进行EXCEL数据与WORD数据的相互读写及相应格式设置。

3.引用WORD程序的方法:后期绑定。不需要在对象库中去勾选Microsoft Word 11.0 Object Library对象。

4.资料收集整理:网络查询、Ofeice 2003相关程序自身的VBA帮助、个人理解,本人是个编辑者。

5.相关实例:网络搜索引用、个人原创,在EXCEL中实际操作通过。

综上,在后续的系列文章中的诸多说法、实例中,不再一一重复阐述说明。编辑此系列问题,可能已经滞后,仅供有此需要的朋友参考借鉴!

如有雷同,敬请见谅、免责!

一、问题的提出

试图在EXCEL中用VBA操作WORD文档,结果在WORD中能够正常使用的一些方法或属性,在EXCEL中不能使用或使用后没有达到应该有的效果。

【例子】

在EXCEL中用VBA操作。

首先创建一个空白的新WORD文档,再写入2句话(作为2个段落),然后分别对这二个段落进行字体、字号和居中设置。

【要求】

在EXCEL中用VBA操作WORD文档时,VBA代码编辑过程中,不直接引用Microsoft Word 11.0 Object Library对象,采用后期绑定Set wordAppl = CreateObject("Word.Application") 定义一个Word对象变量。

【操作】

1.直接在WORD文档中运行代码

⑴在已经存在的操作

假定上面要求的WORD文档已经创建,打开该文档。在键盘上按组合键Alt+F11,打开WORD代码编辑窗口。在左边的“工程-Normal”下面窗格中双击“Project(当前打开的WORD文档名称)”下面的“引用Normal”图标,右边显示当前WORD文档的代码编辑窗口,复制并粘贴下面的代码。

Sub 设置()

With ActiveDocument.Paragraphs(1).Range

.Font.Size = 18 '字号

= "黑体" '字体

.Font.Bold = wdToggle '字型加粗

.ParagraphFormat.Alignment = wdAlignParagraphCenter '水平居中End With

End Sub

单击代码编辑窗口上方工具栏上的绿色三角形按钮(或按键盘上的F5),运行上述代码,可以看到你打开的WORD文档中的第一段文本,按要求进行了字体设置和水平居中。

可见,代码正常运行且达到预期目标!

⑵创建一个新的WORD文档

打开一个任意已经存在的WORD文档,在键盘上按组合键Alt+F11,打开WORD代码编辑窗口。在左边的“工程-Normal”下面窗格中双击“Project(当前打开的WORD文档名称)”下面的“引用Normal”图标,右边显示当前WORD 文档的代码编辑窗口,复制并粘贴下面的代码。

Sub 设置()

Application.ScreenUpdating = False '关闭屏幕刷新

Documents.Add '创建一个新的Word文档

Selection.TypeText Text:="创建WORD表格模型"'写入第一段文字

…………

With ActiveDocument.Paragraphs(1).Range'对第一个段落进行格式设置

.Font.Size = 18 '字号

= "黑体" '字体

.Font.Bold = wdToggle '字型加粗

.ParagraphFormat.Alignment = wdAlignParagraphCenter '水平居中(问题代码)

End With

ActiveDocument.SaveAs FileName:=ThisDocument.Path & "\新建WORD文档.doc" '保存新建Word文档与当前WORD文件相同位置

ActiveWindow.Close '关闭新建文档

Application.ScreenUpdating = False '关闭屏幕刷新

End Sub

2.在EXCEL中运行代码

打开一个EXCEL工作簿,任指定一个名字保存打开的工作簿于任意位置(为便于操作最后就保存到桌面)。在键盘上按组合键Alt+F11,打开EXCEL代码编辑窗口。在菜单命令中单击“插入”打开列表命令后再单击“模块”,显示当前EXCEL文档的代码编辑窗口,复制并粘贴下面的代码。

⑴创建一个新的WORD文档

Sub 设置()

Application.ScreenUpdating = False '关闭屏幕刷新

Set wordAppl = CreateObject("Word.Application") '定义一个Word对象变量

dqM= '当前工作簿名称

With wordAppl

.Documents.Add '创建一个新的Word文档

.Selection.TypeText Text:="创建一个WORD表格模型" '写入第一个段落文本

…………

With .ActiveDocument.Paragraphs(1).Range'对第一个段落进行格式设置

.Font.Size = 18 '字号

= "黑体" '字体

.Font.Bold = wdToggle '字型加粗

.ParagraphFormat.Alignment = wdAlignParagraphCenter '水平居中(问题代码)

End With

.ActiveDocument.SaveAs ThisWorkbook.Path & "\" & Left(dqM, Len(dqM) - 4) & ".doc" '保存新建Word文档与当前工作簿相同名称和位置.Documents.Close '关闭新建文档

.Quit '关闭新建文档窗口

End With

Set wordAppl = Nothing '释放存储空间

Application.ScreenUpdating = False '关闭屏幕刷新

End Sub

单击代码编辑窗口上方工具栏上的绿色三角形按钮(或按键盘上的F5),运行上述代码。

最小化当前工作簿窗口,在当前工作簿保存的桌面上,找到以当前工作簿名称命名的WORD文件,双击打开这个WORD文档。

效果一目了然,第一段落仅设置了字体格式,但并没有水平居中!

换句话说,代码.ParagraphFormat.Alignment = wdAlignParagraphCenter 虽然运行通过,但没有产生本质的属性功能。

⑵打开一个已经存在的WORD文档

相关文档
最新文档