WordBasic 和 Visual Basic 在概念上的区别

Visual Basic for Applications (VBA) 与 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。) BoldFont 对象的属性。 同样, FontSelection 对象的属性,该对象返回 Font 对象。 在对象层次结构之后,可以生成指令以对所选内容应用加粗格式。 Bold 属性是一个 Boolean 类型的可读写属性。 这意味着可将 Bold 属性设为 TrueFalse(开或关),也可返回其当前值。 下列 WordBasic 指令的返回值表明是否对所选内容应用了加粗格式。

x = Bold()

下面的示例是返回所选内容的加粗格式状态的等效 Visual Basic 语句。

x = Selection.Font.Bold

使用 Visual Basic 的思路

To perform a task in Visual Basic, you need to determine the appropriate object. For example, if you want to apply character formatting found in the Font dialog box, use the Font object. Then you need to determine how to "drill down" through the Word object hierarchy from the Application object to the Font object, through the objects that contain the Font object you want to modify. 确定对象的路径 (例如,) 后,使用对象浏览器、帮助或 Visual Basic 编辑器中的自动列表成员等功能来确定哪些属性和方法可以应用于对象。 有关使用属性和方法深入查找对象的详细信息,请参阅理解对象、属性和方法

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

ActiveDocument.Content.Bold = True

此外,对象本身通常存在于对象层次结构中的多个位置。

Selection 和 Range 对象

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

下面的 Visual Basic 示例在所选内容之后插入文本和一个新段落。

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

除了处理所选内容,还可以定义并处理文档中不同区域的文本。 Range 对象是指文档中具有起始字符位置和结束字符位置的连续区域。 与在文档中使用书签的方式类似,可在 Visual Basic 中用 Range 对象标识文档的某些部分。 但是,与书签不同,除非使用 Select 方法选择了 Range,否则 Range 对象对用户不可见。 例如,可以使用 Visual Basic 在文档中的任何位置应用加粗格式,而不更改所选内容。 下面的示例对活动文档的前 10 个字符应用加粗格式。

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

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

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

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

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。