admin 管理员组

文章数量: 887021


2023年12月18日发(作者:vue打包静态资源)

WordVBA---内容控件

一、内容控件是什么?

内容控件是绑定,可能带有标记的文档作为容器的特定类型的内容的区域。单个内容控件可能包含日期、 列表或带格式文本段落等内容。在某些情况下,内容控件可能会是提醒您的窗体。但是,它们是功能更强大,灵活和有用的,因为它们使您能够创建丰富的、 结构化的内容块。 内容控件使您可以创建模板,您的文档中插入定义完善的块。

使用内容控件,您可以:

• 在模板中指定结构化区域。每个结构化区域都有自己唯一的 ID,以便对它进行读写。例如,组合框、图片、文本块和日历均为结构化区域类型(或内容控件)。

• 确定内容控件的行为。每个内容控件都组成文档的一部分,作为模板的创建者,您可以指定每个区域的功能。例如,如果希望模板的某个区域为日历,就可以在文档的该区域中插入一个日历内容控件,该内容控件将自动决定该内容块的功能。同样,如果希望模板的某个部分显示图像,则可以在该区域创建一个图片内容控件。按照此方式,可以用预定义的块类型创建模板。

• 限制修改文档中的内容控件的能力。每个内容控件可以限制,以使它不能删除或编辑。这是很有用,例如,你的模板中版权信息,用户应该能够读取但不是能编辑。或者,作为另一个示例,您可以锁定在模板的文档中内容控件的位置,以便用户不会意外地删除包含内容控件的内容。这使模板比以前的版本更强大。

• 将内容控件的内容映射到自定义 XML 部件中的数据。例如,如果将纯文本内容控件插入股票价格表的单元格中,可以将表格单元格中的内容控件映射到包含当前的股票价格的 XML

文件中的节点。当价格发生变化时,外接程序可以以编程方式更新附加的 XML 文件绑定到每1 / 6

个纯文本内容控件,并自动表中出现的新的、 更新后的价格。

虽然您也可以以编程方式创建它们,但创建一个内容控件的最简单方法是通过用户界面。若要通过用户界面 (UI)创建一个内容控件,选择您想要变成一个内容控件的内容 (例如,某些文本或图片),然后从开发人员功能→区内容控件组→选择您想要内容控件类型。这将创建一个内容控件围绕在所选内容的周围。

二、Word 对象模型中的内容控件

下表显示在 Word 对象模型中与内容控件相关的对象。

名称

ContentControl

说明

每个ContentControl对象代表文档中的各个内容控件。 若要访问单个ContentControl对象,请使用ContentControls集合。

ContentControls Document 、Range和Selection对象的ContentControls属性可用来访问内容控件的集合。使用Document对象的SelectContentControlsByTitle方法和SelectContentControlsByTag方法的来访问其中包含所有具有相同的标题或标签值的特定内容控件ContentControls集合。

ContentControlListEntry 当内容控件是下拉列表或组合框时, ContentControlListEntry对象表示列表中的单个项。

ContentControlListEntries 使用ContentControl对象的DropdownListEntries属性用于访问单个的下拉列表或组合框中的所有项。

每个对象或集合具有方法和属性,您可以使用内容控件单独并以集合的形式。因为有各种类型的内容控件 (请参阅以下部分"内容控件类型"), ContentControl对象都有成员可能无法适用于所有不同类型的内容控件。 下表显示了这些属性和方法的ContentControl对象仅适用于某些类型的内容控件。

注释:

2 / 6

所有的属性和方法ContentControl对象的完整列表,请参见ContentControl 成员。

属性/方法

BuildingBlockCategory 属性

BuildingBlockType 属性

DateDisplayFormat 属性

DateDisplayLocale 属性

DateStorageFormat 属性

DropdownListEntries 属性

BuildingBlock 库内容控件 (wdContentControlBuildingBlockGallery)

日期内容控件 (wdContentControlDate)

日期内容控件 (wdContentControlDate)

日期内容控件 (wdContentControlDate)

组合框和下拉列表内容控件 (wdContentControlComboBox和wdContentControlDropdownList)

MultiLine 属性

Ungroup 方法

SetCheckedSymbol 方法

SetUncheckedSymbol 方法

纯文本内容控件 (wdContentControlText)

组内容控件 (wdContentControlGroup)

复选框内容控件 (wdContentControlCheckBox)

复选框内容控件 (wdContentControlCheckBo

适用范围

BuildingBlock 库内容控件 (wdContentControlBuildingBlockGallery)

三、内容控件类型

有八个不同类型的内容控件,可以将其添加到文档,其中每个都在一个名为WdContentControlType的新枚举。

内容控件类型

日历Calendar

构建基块Building Block

下拉列表Drop-Down

List

说明

复选框

日期时间选取器。

允许用户从指定构建基块中选择。

下拉列表。

3 / 6

WdContentControlType 常量

wdContentControlCheckBox

wdContentControlDate

wdContentControlBuildingBlockGallery

wdContentControlDropDownList

Group

组合框Combo Box

图片Picture

格式文本Rich Text

纯文本Plain Text

四、内容控件事件

定义用户无法编辑或wdContentControlGroup

删除文档的受保护的区域。组控件可包含任何文档项,如文本、

表格、 图形和其他内容控件。

组合框。 wdContentControlComboBox

图片。

格式文本块。

纯文本块。

wdContentControlBlockPicture

wdContentControlRichText

wdContentControlText

除了属性和方法使用Word中的内容控件对象模型,还可以使用多个事件,在添加或删除内容控件时,或当用户编辑内容控件时运行代码。下面的列表描述了每个事件以及事件代码运行。所有这些事件都是Document对象的成员。

事件名称

ContentControlAfterAdd

说明

在向文档添加新内容控件之后发生。无论用户是使用用户界面中的工具添加内容控件,还是使用代码添加内容控件,此事件都会运行。

ContentControlBeforeContentUpdate 在 Word 更新内容控件中的内容之前发生。

ContentControlBeforeDelete 在用户删除内容控件之前发生。无论用户是使用用户界面中的工具删除内容控件,还是使用代码删除内容控件,此事件都会运行。

在 Word 根据文档数据存储区中的数据更新内容控件中的内容之前发生。

当用户进入内容控件时发生。

当用户退出内容控件时发生。

ContentControlBeforeStoreUpdate

ContentControlOnEnter

ContentControlOnExit

4 / 6

五、使用代码

无论是添加内容控件、删除内容控件,还是访问现有内容控件和对现有内容控件进行操作,都可以通过代码来完成。以下部分仅列出了用代码执行操作的少数几个示例。

例1:添加内容控件

如上文所述,有八个不同类型的内容控件可以添加到您的文档。使用ContentControls集合的Add方法可向文档中添加内容控件。下面的示例向活动文档中添加日期选取器,设置为当前日期的日期值。

Sub AddDatePicker()

Dim objCC As ContentControl

Dim objDate As Date

Set objCC = tControls _

.Add(wdContentControlDate)

objDate = Date

= objDate

End Sub

可以使用相同的基本构造向文档添加任意不同类型的内容控件。

例2:向内容控件添加标题

可以使用 Title 属性向内容控件添加标题。标题是用户所见到的文本,可以帮助用户了解要向内容控件输入哪种数据类型。以下示例向活动文档添加一个新的纯文本内容控件,并设置控件的标题或显示控件的文本。

Sub SetTitleForContentControl()

Dim objCC As ContentControl

Set objCC = tControls .Add(wdContentControlText)

= "Please enter your name"

End Sub

5 / 6

例3:修改内容控件的占位符文本

占位符文本是临时性的文本。它可以是任何内容,从一到两个简单的字词说明(如标题)到详细的说明(如编号的步骤)。无论内容控件的类型或内容控件的预期内容如何,对占位符文本的修改都是一样的。以下示例向活动文档添加一个下拉列表,并为控件设置占位符文本,然后用多个动物名称填充列表。

Sub SetPlaceholderText()

Dim objCC As ContentControl

Set objCC = tControls _

.Add(wdContentControlComboBox)

= "Favorite Animal"

ceholderText _

Text:="Please select your favorite animal "

'List entries

"Cat"

"Dog"

"Horse"

"Monkey"

"Snake"

"Other"

End Sub

6 / 6


本文标签: 内容 控件 文档