Word VBA教程:WordBasic 和 Visual Basic 在概念上的区别

Visual Basic for Applications 和 WordBasic 之间主要的区别是,WordBasic 语言包含大约 900 个同级命令列表,而 Visual Basic 则包含处于分级结构中的多种对象,每种对象都具有一组特定方法和属性(类似于 WordBasic 中的语句和函数)。大多数 WordBasic 命令在任何时候都可运行,而在 Visual Basic 中,只能使用在给定时刻有效的对象的方法和属性。

对象是 Visual Basic 的基本元素;几乎在 Visual Basic 中进行的所有操作都与修改对象有关。Word 中的所有元素(文档、段落、域和书签等)都可用 Visual Basic 中的对象表示。与同级列表中的命令不同,部分对象只能通过其他对象进行访问。例如,只能从StyleSelectionFind 等其他对象访问Font对象。

以下两段程序中应用加粗格式的编程任务表明两种编程语言之间的区别。下面的 WordBasic 指令对所选内容应用加粗格式。


Bold 1

下列示例是等效的 Visual Basic 语句,同样对所选内容应用加粗格式。


Selection.Font.Bold = True

Visual Basic 不包含 Bold 语句和函数。但具有名为Bold 的属性(属性通常为对象的某种特性,例如大小、颜色或是否加粗等)。Bold 是 Font对象的属性。类似地,Font 是 Selection对象的属性,该属性返回一个 Font对象。依照对象的等级结构,可以生成将加粗格式应用于所选内容的指令。

Bold属性是一个 Boolean 类型的可读写属性。这意味着可将 Bold属性设为 True 或 False(开或关),也可返回其当前值。下列 WordBasic 指令的返回值表明是否对所选内容应用了加粗格式。


x = Bold()

下列示例为等效的 Visual Basic 语句,同样返回所选内容的加粗格式的状态。


x = Selection.Font.Bold

使用 Visual Basic 的思路

若要在 Visual Basic 中执行一项任务,需要确定合适的对象。例如,如果希望应用“字体”对话框中的字符格式,可使用 Font对象。然后需要逐级深入 Word对象分级结构,确定从Application对象开始,到达要修改的 Font对象所需要通过的对象,这些对象包含要修改的 Font对象。确定该对象的路径后(例如,Selection.Font),可使用“Visual Basic 编辑器”中的“对象浏览器”、“帮助”或“自动列表成员”等功能确定可应用于该方法的属性和方法。有关使用属性和方法深入查找对象的详细信息,请参阅理解对象、属性和方法

属性和方法通常对 Word对象分级结构中的多种对象有效。例如,下列示例将加粗格式应用于整篇文档。


ActiveDocument.Content.Bold = True

另外,对象本身通常存在于对象分级结构中的多个位置。有关 Word对象模型的图解说明,请参阅Microsoft Word对象

若要了解在 Word 2002 中完成所需任务的 WordBasic 命令,请参阅Visual Basic 和 WordBasic 命令对照表

Selection 和 Range对象

大部分 WordBasic 命令可修改所选内容。例如,Bold 命令可将所选内容设为加粗格式。InsertField 命令可在插入点插入域。任意时刻要在 Visual Basic 中处理所选内容时,可使用Selection属性返回 Selection对象。所选内容可以是一块文字区域或仅为插入点。

下列 Visual Basic 示例将在所选内容之后插入文字和一个新段落。


Selection.InsertAfter Text:="Hello World"
Selection.InsertParagraphAfter

除了处理所选内容,还可以定义并处理文档中不同区域的文本。Range对象用开始字符位置和结束字符位置引用文档中标识的连续区域。类似于在文档中使用书签的方式,在 Visual Basic 中用 Range对象标识文档中的某一部分。但不同于书签的是,用户看不到 Range对象,除非使用Select方法选定了该 Range对象。例如,可用 Visual Basic 在文档中的任何位置应用加粗格式,而不必更改所选内容。下列示例对活动文档的前 10 个字符应用加粗格式。


ActiveDocument.Range(Start:=0, End:=10).Bold = True

下列示例对第一个段落应用加粗格式。


ActiveDocument.Paragraphs(1).Range.Bold = True

这两个示例都更改了活动文档中的格式,且没有更改所选内容。有关 Range对象的详细信息,请参阅处理 Range对象

Word VBA教程

Word VBA参考教程:目录1 Word VBA参考教程:目录2
Word VBA参考教程:目录3 Word VBA参考教程:目录4
Word VBA参考教程:目录5 Word VBA参考教程:目录6
Word VBA参考教程:目录7 Word VBA参考教程:目录8
Word VBA参考教程:目录9 Word VBA参考教程:目录10
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号