AppActivate 示例

如果“文件管理器”已经运行，那么本示例就使其成为活动窗口；如果“文件管理器”还没有运行，则启动它。

If AppIsRunning("File Manager") Then

AppActivate "File Manager"

Else

Shell "WINFILE.EXE"

End If


AppActivate

示例

AppActivate WindowName$ [, Immediate]

激活一个正运行着的窗口。

参数	解释
WindowName$	要激活的应用程序的窗口名，这个名称是指标题栏或“任务列表”中的应用程序名。 不必指定这个窗口的完整名称。比如，要指定一个名为 "记事本-FILES.TXT" 的窗口，可以用 "记事本-FILES.TXT"，"记事本"，或者 "记事"。本指令将在“任务列表”中寻找第一个与指定字符串的开头部分相匹配的窗口名。WindowName$ 中字符大小写无关紧要。
Immediate	指定何时转换到另一个应用程序： 0 或省略 如果 Word 不是活动窗口，那么 Word 将闪烁它的标题栏或图标，等待用户先激活它，然后再激活另一个应用程序。 1 即使 Word 不是活动的应用程序，也立即激活另一个应用程序。
_____________

请参阅

应用程序控制

AppClose

AppGetNames

AppIsRunning()

MicrosoftAccess

MicrosoftExcel

MicrosoftFoxPro

MicrosoftMail

MicrosoftPowerPoint

MicrosoftProject

MicrosoftPublisher

MicrosoftSchedule

Shell


AppClose 示例

如果 Microsoft Excel 正在运行，则本示例将使其关闭：

If AppIsRunning("Microsoft Excel") Then

AppClose "Microsoft Excel"

End If


AppClose

示例

AppClose [WindowName$]

关闭指定的应用程序。

参数	解释
WindowName$	一个应用程序窗口名开头部分的字符串，该窗口名一般出现在窗口的标题栏或“任务列表”中。如果省略，则假定为 Word。有关WindowName$ 的详细内容，请参阅AppActivate.。
_____________

请参阅

应用程序控制

AppActivate

AppIsRunning()

Shell


AppCount()

AppCount()

返回已打开的应用程序（包括未显示在“任务列表”中的隐藏的应用程序）的数目。有关示例，请参阅AppGetNames 示例。

_____________

请参阅

应用程序控制

AppGetNames


AppGetNames 示例

本示例在插入点插入一个应用程序窗口名的列表：

size = AppCount() - 1

Dim winnames$(size)

AppGetNames winnames$()

For i = 0 To size

Insert winnames$(i)

InsertPara

Next


AppGetNames, AppGetNames()

示例

AppGetNames ArrayVariable$()

AppGetNames(ArrayVariable$())

AppGetNames 语句用已打开的应用程序窗口（包括未显示在“任务列表”中的隐藏的应用程序）的名称填充一个已经定义的字符串数组。如果数组变量ArrayVariable$() 的元素数比已打开应用程序的数目要少，那么将尽可能地用应用程序名填充该数组，不会出错。

AppGetNames() 函数执行相同的操作，同时还返回已打开应用程序窗口的数目。AppGetNames() 的返回值与 AppCount() 返回值相同。

_____________

请参阅

应用程序控制

AppActivate

AppClose

AppCount()

AppIsRunning


AppHide

AppHide [WindowName$]

隐藏指定的应用程序并从“任务列表”中取消它的窗口名。

参数	解释
WindowName$	一个应用程序窗口名开头部分的字符串，该窗口名一般出现在窗口的标题栏或“任务列表”中。如果省略，则假定为 Word。有关窗口名 WindowName$的详细内容，请参阅 AppActivate。
_____________

请参阅

应用程序控制

AppClose

AppShow


AppInfo$() 示例

本示例显示一个包含 Word 版本号的消息框：

ver$ = AppInfo$(2)

MsgBox ver$, "Microsoft Word Version", 64


AppInfo$()

示例

AppInfo$(Type)

返回关于 Word 应用程序的 25 种信息中的一种。注意，GetSystemInfo$() 函数也返回类似的信息。您还可以用 GetSystemInfo 语句把系统信息填充入一个数组。

Type 是指下列数值代码之一，用来指定要返回的信息类型。

Type	解释

1	环境（比如，"Windows 3.10"）。

2	Word 版本号（如 "6.0"）。

3	如果 Word 在某一特殊状态（比如，“拷贝文本”或“移动文本”状态），那么返回 -1。

4	以磅为单位的从屏幕左边到 Word 窗口左边框的距离（72 磅 ＝ 1 英寸）。注意，当 Word 窗口最大化时，AppInfo$(4) 返回一个负值来指明该窗口边框已超出屏幕范围（这个值取决于边框的宽度）。

5	以磅为单位的从屏幕顶部到 Word 窗口顶部边框的距离。注意，当 Word 窗口最大化时，AppInfo$(4) 返回一个负值来指明该窗口边框已超出屏幕范围（这个值取决于边框的宽度）。

6	以磅为单位的工作空间的宽度。这个宽度随着隐藏 Word 屏幕元素或加宽 Word 窗口而增加。注意，增大缩放百分比将减小返回值；减小缩放百分比则增大返回值。

7	以磅为单位的工作空间的高度。这个高度随着隐藏 Word 屏幕元素或加高 Word 窗口而增加。注意，增大缩放百分比将减小返回值；减小缩放百分比则增大返回值。

8	如果应用程序处于最大化状态，则返回 -1。

9	按千字节计算的，全部基本内存。

10	按千字节计算的，可用基本内存。

11	按千字节计算的，全部扩充内存。

12	按千字节计算的，可用扩充内存。

13	如果安装了数学协处理器，则返回 -1。

14	如果安装了鼠标，则返回 -1。

15	按千字节计算的可用磁盘空间。

16	返回 Word 的语言版本号。比如，对 Word 的法语版本返回 "Fran鏰is" 。有关语言的列表，请参阅 ToolsLanguage.。

17	返回 WIN.INI 的 [intl] 部分中的列表分隔符设置("sList")。

18	返回 WIN.INI 的 [intl] 部分中的小数点设置("sDecimal")。

19	返回 WIN.INI 的 [intl] 部分中的千位分隔符("sThousand")。

20	返回 WIN.INI 的 [intl] 部分中的货币符号("sCurrency")。

21	返回 WIN.INI 的 [intl] 部分中的时钟格式("sTime")。

22	返回 WIN.INI 的 [intl] 部分中的 A.M. 字符串("s1159")。

23	返回 WIN.INI 的 [intl] 部分中的 P.M. 字符串("s2359")。

24	返回 WIN.INI 的 [intl] 部分中的时间分隔符("sTime")。

25	返回 WIN.INI 的 [intl] 部分中的日期分隔符("sDate")。

_____________

请参阅

应用程序控制

AppGetNames

GetSystemInfo


AppIsRunning()

AppIsRunning(WindowName$)

如果指定的应用程序正在运行，则返回 -1，否则返回 0。

参数	解释
WindowName$	一个应用程序窗口名开头部分的字符串，该窗口名一般出现在窗口的标题栏或“任务列表”中。如果省略，则假定为 Word。有关窗口名 WindowName$的详细内容，请参阅 AppActivate.。
有关示例，请参阅 AppActivate 示例。

_____________

请参阅

应用程序控制

AppActivate

AppClose


AppMaximize, AppMaximize()

AppMaximize [WindowName$] [, State]

AppMaximize([WindowName$])

AppMaximize 语句最大化或还原指定的应用程序。

参数	解释
WindowName$	一个应用程序窗口名开头部分的字符串，该窗口名一般出现在窗口的标题栏或“任务列表”中。如果省略，则假定为 Word。有关窗口名 WindowName$ 的详细内容，请参阅AppActivate。
State	指定是最大化还是还原指定的应用程序： 0 还原应用程序。 1 最大化应用程序。 省略 在还原和最大化两状态之间切换。 如果该应用程序的状态改变了，则它被激活。如果状态没有改变，（比如，如果您运行指令 AppMaximize "Microsoft Excel", 1 并且 Microsoft Excel 已经最大化了），那么该应用程序不被激活。
AppMaximize() 函数返回下列值。

值	解释
-1	如果应用程序处于最大化状态
0 (zero)	如果应用程序没有最大化
_____________

请参阅

应用程序控制

AppMinimize

AppMove

AppRestore

AppSize

DocMaximize


AppMinimize, AppMinimize()

AppMinimize [WindowName$] [, State]

AppMinimize([WindowName$])

AppMinimize 语句最小化或还原指定的应用程序。

参数	解释
WindowName$	一个应用程序窗口名开头部分的字符串，该窗口名一般出现在窗口的标题栏或           “任务列表”中。如果省略，则假定为 Word。有关窗口名 WindowName$的详细内容，请参阅 AppActivate。
State	指定是最小化还是还原指定的应用程序： 0 还原应用程序。 1 最小化应用程序。 省略 在还原和最小化两状态之间切换。 如果该应用程序从一个图标还原，则它被激活。如果状态没有改变，或应用程序处于最小化状态，那么该应用程序不被激活。
注意

如果在 Word 最小化时，在宏中产生一个未经处理的错误，那么这个宏就会中断，Word 图标开始闪烁。如果是在还原时发生，则它显示一个消息指出错误的性质。

AppMinimize() 函数返回下列值。

值	解释
-1	如果应用程序处于最小化状态
0	如果应用程序没有最小化
_____________

请参阅

应用程序控制

AppMaximize

AppMove

AppRestore

AppSize

DocMinimize


AppMove 示例

如果 Microfoft Excel 不在运行，那么本示例将启动它，然后把 Word 和 Microsft Excel 安排为非重叠窗口，各占据一半屏幕:

If AppIsRunning("Microsoft Excel") = 0 Then MicrosoftExcel

AppRestore

AppMove 0, 0

AppSize 480, 180

AppRestore "Microsoft Excel"

AppMove "Microsoft Excel", 0, 180

AppSize "Microsoft Excel", 480, 180


AppMove

示例

AppMove [WindowName$,] HorizPos, VertPos

把指定应用程序窗口或图标移动到相对屏幕左上角的一个位置。如果该应用程序已最大化，则出错。

参数	解释
WindowName$	一个应用程序窗口名开头部分的字符串，该窗口名一般出现在窗口的标题栏或“任务列表”中。如果省略，则假定为 Word。有关窗口名 WindowName$的详细内容，请参阅AppActivate。
HorizPos, VertPos	从屏幕左上角到应用程序窗口或图标左上角的水平距离 (HorizPos) 和垂直距离 (VertPos)，按磅数计算。（72 磅 ＝ 1 英寸）。只有在指定窗口名 WindowName$ 的情况下才允许负值出现。
_____________

请参阅

应用程序控制

AppRestore

AppSize

AppWindowPosLeft

AppWindowPosTop

DocMove


AppRestore, AppRestore()

AppRestore [WindowName$]

AppRestore([WindowName$])

AppRestore 语句把指定应用程序从最大化或最小化状态还原，并激活该程序。如果该应用程序已经还原，则 AppRestore 不起作用。

参数	解释
WindowName$	一个应用程序窗口名开头部分的字符串，该窗口名一般出现在窗口的标题栏或“任务列表”中。如果省略，则假定为 Word。有关 窗口名 WindowName$的详细内容，请参阅 AppActivate。
AppRestore() 函数返回下列值：

值	解释
-1	如果该应用程序被还原
0	如果该应用程序没有还原
有关示例，请参阅 AppMove 示例。

_____________

请参阅

应用程序控制

AppMaximize

AppMinimize

AppMove

AppSize

DocRestore


AppSendMessage 示例

本示例启动 Windows 帮助 应用程序，然后给它发送一个消息，显示一个“打开”对话框。数值 273 是与消息 WM_COMMAND 相关的十进制值，1101 是指定“打开”命令的参数，Lparam在本例中被忽略，但仍需指定为 0。

Shell "WINHELP.EXE"

AppSendMessage "Windows Help", 273, 1101, 0


AppSendMessage

示例

AppSendMessage [WindowName$,] Message, Wparam, Lparam

发送一个 Windows 消息及相关的参数到由窗口名 WindowName$所指定的应用程序。

参数	解释
WindowName$	一个应用程序窗口名开头部分的字符串，该窗口名一般出现在窗口的标题栏或“任务列表”中。如果省略，则假定为 Word。有关窗口名 WindowName$ 的详细内容，请参阅AppActivate。
Message	对应所要发送消息的十进制数值。如果您有 Microsoft Windows 3.1 软件开发工具 (SDK)，那么可以在 WINDOWS.H 中查找该消息的名称，然后可用“计算器”把相关的十六进制数转换为十进制数。
Wparam、Lparam	对应所发送消息的适当参数。有关这些值的含义的详细内容，请参阅《Microsoft Windows 3.1 程序员指南》第三卷中有关消息的参考主题，这本书可从 Microsoft Windows 3.1 软件开发工具 (SDK) 中或从 Microsoft 出版社得到。要跟踪某一数值，您可能会需要 Spy 工具（由 Microsoft Windows 3.1 SDK 附带）。
_____________

请参阅

应用程序控制

AppActivate

AppIsRunning

DDEExecute

DDEPoke


AppShow

AppShow [WindowName$]

使一个原来用 AppHide 隐藏的应用程序可见，并激活它，然后把该应用程序窗口名存入“任务列表”。如果该应用程序没有隐藏，则 AppShow 不起作用。

参数	解释
WindowName$	一个应用程序窗口名开头部分的字符串，该窗口名一般出现在窗口的标题栏或“任务列表”中。如果省略，则假定为 Word。有关 WindowName$ 的详细内容，请参阅AppActivate.
_____________

请参阅

应用程序控制

AppActivate

AppHide


AppSize

AppSize [WindowName$,] Width, Height

把一个应用程序窗口的尺寸调整到指定宽度和高度。如果该应用程序处于最大化或最小化状态，则出错。

参数	解释
WindowName$	一个应用程序窗口名开头部分的字符串，该窗口名一般出现在窗口的标题栏或“任务列表”中。如果省略，则假定为 Word。有关 WindowName$ 的详细内容，请参阅AppActivate.
Width, Height	以磅为单位的应用程序窗口的宽度和高度。（72 磅 = 1 英寸）。
有关示例，请参阅 AppMove 示例。

_____________

请参阅

应用程序控制

AppMove

AppRestore

AppWindowHeight

AppWindowWidth

DocSize


AppWindowHeight, AppWindowHeight()

AppWindowHeight [WindowName$,] Height

AppWindowHeight([WindowName$])

AppWindowHeight 语句把一个应用程序窗口的高度调整到指定磅数高度（如果 WindowName$ 省略，则假定为 Word）。AppWindowHeight 允许您修改一个窗口的高度而不影响它的宽度（与 AppSize 不同）。AppWindowHeight() 函数返回一个应用程序窗口的高度，以磅为单位。有关参数的描述，请参阅 AppSize。

_____________

请参阅

应用程序控制

AppSize

AppWindowPosLeft

AppWindowPosTop

AppWindowWidth


AppWindowPosLeft, AppWindowPosLeft()

AppWindowPosLeft [WindowName$,] HorizPos

AppWindowPosLeft([WindowName$])

AppWindowPosLeft 语句把一个应用程序窗口或图标移到以磅为单位的一个指定水平位置。（如果 WindowName$ i省略，则假定为 Word）。AppWindowPosLeft 允许您不影响一个窗口或图标的垂直位置而改变它的水平位置（与 AppMove 不同）。AppWindowPosLeft() 函数返回一个应用程序窗口或图标的水平位置，以磅为单位。有关参数的描述，请参阅 AppMove。

_____________

请参阅

应用程序控制

AppMove

AppWindowHeight

AppWindowPosTop

AppWindowWidth


AppWindowPosTop, AppWindowPosTop()

AppWindowPosTop [WindowName$,] VertPos

AppWindowPosTop([WindowName$])

AppWindowPosTop 语句把一个应用程序窗口或图标移到以磅为单位的一个指定垂直位置。（如果 WindowName$ 省略，则假定为 Word ）。AppWindowPosTop 允许您不影响一个窗口或图标的水平位置而改变它的垂直位置（与 AppMove 不同）。AppWindowPosTop() 函数返回一个应用程序窗口或图标的垂直位置，以磅为单位。有关参数的描述，请参阅 AppMove。

_____________

请参阅

应用程序控制

AppMove

AppWindowHeight

AppWindowPosLeft

AppWindowWidth


AppWindowWidth, AppWindowWidth()

AppWindowWidth [WindowName$,] Width

AppWindowWidth([WindowName$])

AppWindowWidth 语句把一个应用程序窗口的宽度调整到指定磅数宽度（如果WindowName$ 省略，则假定为 Word）。AppWindowWidth 允许您修改一个窗口的宽度而不影响它的高度（与 AppSize 不同）。AppWindowWidth() 函数返回一个应用程序窗口的宽度，以磅为单位。有关参数的描述，请参阅 AppSize。

_____________

请参阅

应用程序控制

AppSize

AppWindowHeight

AppWindowPosLeft

AppWindowPosTop


ControlRun 示例

本示例运行“控制面板”：

ControlRun .Application = 1


ControlRun

示例

ControlRun .Application = number

运行“剪贴板”或“控制面板”( Winodws)。如果您要运行一个不同的程序，请使用 Shell 语句。

参数	解释
.Application	要运行的应用程序： 0 “剪贴板” 1 “控制面板”
_____________

请参阅

应用程序控制

Shell


ExitWindows

ExitWindows

关闭所有打开的应用程序，退出 Windows。ExitWindows 不存储或提示您存储在Word 文档中所做的变动，但它提示您在其它打开的应用程序中所做的变动。

_____________

请参阅

应用程序控制

FileExit


FileExit

FileExit [Save]

退出 Word。

参数	解释

Save	确定在退出 Word 之前是否存储每一个自上次存储后又做了修改的文档：

0 或省略	提示用户存储每一个已做了修改的文档。

1	在退出前存储所有做了修改的文档。

2	不存储做了修改的文档，退出。

_____________

请参阅

应用程序控制

AppClose

ExitWindows

FileCloseAll


GetSystemInfo 示例

本示例在一个新文档中创建一个系统信息的表格。首先，本示例定义一个数组，并用每种类型系统信息的标签填充它。其次，打开一个新文档并定义 info$() 数组，用 GetSystemInfo 对其填充系统信息。最后，用 For...Next 循环插入信息的表格。

Dim a$(11)

a$(0) = "Environment" : a$(1) = "CPU" : a$(2) = "MS-DOS"

a$(3) = "Windows" : a$(4) = "% Resources" : a$(5) = "Disk Space"

a$(6) = "Mode" : a$(7) = "Coprocessor" : a$(8) = "Country"

a$(9) = "Language" : a$(10) = "Pixels High" : a$(11) = "Pixels Wide"

Dim info$(11)

GetSystemInfo info$()

FileNewDefault

FormatTabs .Position = "1.5 in", .Set

For i = 0 To 11

Insert a$(i) + Chr$(9) + info$(i)

InsertPara

Next

下面的示例在一个消息中显示可用磁盘空间的数量：

space$ = GetSystemInfo$(26)

MsgBox "Available disk space: " + space$ + " bytes."


GetSystemInfo, GetSystemInfo$()

示例

GetSystemInfo Array$()

GetSystemInfo$(Type)

GetSystemInfo 语句用关于 Word 运行环境的信息填充一个已定义的字符串数组。

GetSystemInfo$() 函数返回一条关于 Word 运行环境的信息。Type 是指指定所要返回信息的下列数码之一。

Type	解释
21	环境（比如，"Windows" 或 "Windows NT"）
22	中央处理器或 CPU 的类型（比如，"80286", "80386", "i486" 或 "Unknown"）。
23	MS-DOS 版本号
24	Windows 版本号
25	系统可用资源百分比
26	按字节计算的可用磁盘数量
27	Windows 运行模式：“标准”或 “386 增强方式”
28	是否安装了数学协处理器：“是”或“否”
29	WIN.INI 中 [intl] 部分的国家设置（"iCountry"）
30	WIN.INI 中 [intl] 部分的语言设置（"sLanguage"）
31	以象素为单位的垂直显示分辨率
32	以象素为单位的水平显示分辨率
_____________

请参阅

应用程序控制

AppInfo$()


MicrosoftAccess

MicrosoftAccess

如果 Microsoft Access 不在运行，则启动它；如果已经运行，则切换到它。

_____________

请参阅

应用程序控制

AppActivate

AppIsRunning()

MicrosoftExcel

MicrosoftFoxPro

MicrosoftMail

MicrosoftPowerPoint

MicrosoftProject

MicrosoftPublisher

MicrosoftSchedule


MicrosoftExcel

MicrosoftExcel

如果 Microsoft Excel 不在运行，则启动它；如果已经运行，则切换到它。

_____________

请参阅

应用程序控制

AppActivate

AppIsRunning()

MicrosoftAccess

MicrosoftFoxPro

MicrosoftMail

MicrosoftPowerPoint

MicrosoftProject

MicrosoftPublisher

MicrosoftSchedule


MicrosoftFoxPro

MicrosoftFoxPro

如果 Microsoft FoxPro 不在运行，则启动它；如果已经运行，则切换到它。

_____________

请参阅

应用程序控制

AppActivate

AppIsRunning()

MicrosoftAccess

MicrosoftExcel

MicrosoftMail

MicrosoftPowerPoint

MicrosoftProject

MicrosoftPublisher

MicrosoftSchedule


MicrosoftMail

MicrosoftMail

如果 Microsoft Mail 不在运行，则启动它；如果已经运行，则切换到它。

_____________

请参阅

应用程序控制

AppActivate

AppIsRunning()

MicrosoftAccess

MicrosoftExcel

MicrosoftFoxPro

MicrosoftPowerPoint

MicrosoftProject

MicrosoftPublisher

MicrosoftSchedule


MicrosoftPowerPoint

MicrosoftPowerPoint

如果 Microsoft PowerPoint 不在运行，则启动它；如果已经运行，则切换到它。

_____________

请参阅

应用程序控制

AppActivate

AppIsRunning()

MicrosoftAccess

MicrosoftExcel

MicrosoftFoxPro

MicrosoftMail

MicrosoftProject

MicrosoftPublisher

MicrosoftSchedule


MicrosoftProject

MicrosoftProject

如果 Microsoft Project 不在运行，则启动它；如果已经运行，则切换到它。

_____________

请参阅

应用程序控制

AppActivate

AppIsRunning()

MicrosoftAccess

MicrosoftExcel

MicrosoftFoxPro

MicrosoftMail

MicrosoftPowerPoint

MicrosoftPublisher

MicrosoftSchedule


MicrosoftPublisher

MicrosoftPublisher

如果 Microsoft Publisher 不在运行，则启动它；如果已经运行，则切换到它。

_____________

请参阅

应用程序控制

AppActivate

AppIsRunning()

MicrosoftAccess

MicrosoftExcel

MicrosoftFoxPro

MicrosoftMail

MicrosoftPowerPoint

MicrosoftProject

MicrosoftSchedule


MicrosoftSchedule

MicrosoftSchedule

如果 Microsoft Schedule+ 不在运行，则启动它；如果已经运行，则切换到它。

_____________

请参阅

应用程序控制

AppActivate

AppIsRunning()

MicrosoftAccess

MicrosoftExcel

MicrosoftFoxPro

MicrosoftMail

MicrosoftPowerPoint

MicrosoftProject

MicrosoftPublisher


RunPrintManager

RunPrintManager

如果“打印管理器”(Windows) 不在运行，则启动它；如果已经运行，则切换到它。

_____________

请参阅

应用程序控制

AppActivate

AppIsRunning()

ControlRun


Shell 示例

本示例启动 Notepad 并加载文档 TORT.TXT：

Shell "Notepad TORT.TXT"

下面的示例把 Microsoft Excel 作为最小化窗口启动：

Shell "EXCEL.EXE", 2

下面的示例创建一个纯文本文件 (DOCLIST.TXT) ，在其中列出 C:\WINWORD 目录下所有扩展名为 .DOC 的文档。您可以使用类似这样的指令来创建以后用作顺序输入的文件。 "/c" 开关确保其后的命令行在运行之后把控制权还给 Word。

Shell Environ$("COMSPEC") + "/c dir /b C:\WINWORD\*.DOC > DOCLIST.TXT"


Shell

示例

Shell Application$ [, WindowStyle]

在 Windows 里启动另一个应用程序（如 Microsoft Excel）或过程（如一个批处理文件或可执行文件）。

参数	解释
Application$	用来查找该应用程序的路径和文件名，以及经选择的有效的开关或参数，如同您“程序管理器”的“运行”对话框中输入的一样。 如果该应用程序的扩展名已在 WIN.INI 文件的 [Extensions] 部分注册，则 Application$ 可以只含前面的文件名。Shell 启动相关的应用程序并打开相应的文档。要显示一个 MS-DOS 窗口，请指定 Environ$("COMSPEC") 作为 Application$。
WindowStyle	包含该应用程序的窗口要如何显示（有一些应用程序不理会这个参数）： 0 最小化窗口（图标） 1 标准窗口（当前窗口尺寸，或如果为最小化窗口则为以前窗口尺寸） 2 最小化窗口（为与 Microsoft Excel 的兼容性） 3 最大化窗口 4 非活动窗口
_____________

请参阅

应用程序控制

AppActivate

DDEInitiate()

Environ$()


GetAutoCorrect$() 示例

本例检查自动更正输入项“uk.”的替换文本。如果该替换文本不匹配“United Kingdom”，则自动更正输入项被修改成为可以匹配。

If GetAutoCorrect$("uk") <> "United Kingdom" Then

ToolsAutoCorrect .Replace = "uk", \

.With = "United Kingdom", .Add

End If


GetAutoCorrect$()

示例

GetAutoCorrect$(AutoCorrectEntry$)

返回“工具”菜单下“自动更正”对话框“替换为”栏中指定的输入项替换文本。如果 AutoCorrectEntry$ 不存在，GetAutoCorrect$() 返回空串 ("")。

参数	解释
AutoCorrectEntry$	在“自动更正”对话框的“替换”栏中指定的自动更正输入项的文本。AutoCorrectEntry$ 不区分大小写。例如，您可以将输入项“GW”指定“GW”或者“gw”。
_____________

请参阅

自动更正

ToolsAutoCorrect


ToolsAutoCorrect 示例

本示例添加一个替换输入项并且激活文本的自动替换。

ToolsAutoCorrect .ReplaceText = 1, .Replace = "sr", \

.With = "Stella Richards", .Add


ToolsAutoCorrect

示例

ToolsAutoCorrect [.SmartQuotes = number] [, .InitialCaps = number] [, .SentenceCaps = number] [, .Days = number] [, .ReplaceText = number] [, .Formatting = number] [, .Replace = text] [, .With = text] [, .Add] [, .Delete]

设置“自动更正”选项。ToolsAutoCorrect 语句的参数对应于“工具”菜单下“自动更正”对话框中的选项。

参数	解释
.SmartQuotes	如果是 1，那么 Word 插入“花”引号 (" " 和 ' ') 以及撇号 (')。
.InitialCaps	如果是 1，那么 Word 更正头两个字母是大写的单词。例如，“WOrd”被改为“Word”。
.SentenceCaps	如果是 1，那么 Word 将每个新的句子句首字母改为大写。
.Days	如果是 1，那么 Word 大写星期的第一个字母。例如，将“tuesday”改为“Tuesday”。
.ReplaceText	如果是 1，那么激活文本的自动替换。
.Formatting	如果是 1，那么当添加一个替换输入项时，格式编排存放于替换文本之中；只在运行 ToolsAutoCorrect 之前文本被选中时才能被使用。
.Replace	您想用 .With 中指定的文本自动替换的文本（例如，人的姓名缩写）。
.With	当 .Replace 中指定的文本被输入时，您想要自动插入的文本（例如，姓名的全称）。
.Add	将 .Replace 和 With 指定的文本添加到替换输入项列表之中。
.Delete	删除 .Replace 指定的替换输入项。
_____________

请参阅

自动更正

ToolsAutoCorrectDays

ToolsAutoCorrectInitialCaps

ToolsAutoCorrectReplaceText

ToolsAutoCorrectSentenceCaps

ToolsAutoCorrectSmartQuotes


ToolsAutoCorrectDays, ToolsAutoCorrectDays()

ToolsAutoCorrectDays [On]

ToolsAutoCorrectDays()

ToolsAutoCorrectDays 语句选中或清除“工具”菜单下“自动更正”对话框中的“日期大写”复选框。

参数	解释
On	指定是选中还是清除复选框： 1 选中复选框。 0 清除复选框。 省略 切换选定或清除状态。
ToolsAutoCorrectDays() 函数返回下列数值。

数值	解释
0	如果“日期大写”复选框被清除则返回 0
-1	如果“日期大写”复选框被选中，则返回 -1
_____________

请参阅

自动更正

ToolsAutoCorrect


ToolsAutoCorrectInitialCaps, ToolsAutoCorrectInitialCaps()

ToolsAutoCorrectInitialCaps [On]

ToolsAutoCorrectInitialCaps()

ToolsAutoCorrectInitialCaps 语句选中，清除或切换“工具”菜单下“自动更正”对话框中“更正连续两个大写字母”复选框。ToolsAutoCorrectInitialCaps() 函数返回有关该复选框的信息。想要了解有关参数和返回数值的信息，请参阅 ToolsAutoCorrectDays。

_____________

请参阅

自动更正

ToolsAutoCorrect

ToolsAutoCorrectDays


ToolsAutoCorrectReplaceText, ToolsAutoCorrectReplaceText()

ToolsAutoCorrectReplaceText [On]

ToolsAutoCorrectReplaceText()

ToolsAutoCorrectReplaceText 语句选中清除或切换“工具”菜单下“自动更正”对话框中的“替换为输入文字”复选框。ToolsAutoCorrectReplaceText() 函数返回有关该复选框的状态信息。想要了解有关参数及返回数值的信息，请参阅 ToolsAutoCorrectDays。

_____________

请参阅

自动更正

ToolsAutoCorrect

ToolsAutoCorrectDays


ToolsAutoCorrectSentenceCaps, ToolsAutoCorrectSentenceCaps()

ToolsAutoCorrectSentenceCaps [On]

ToolsAutoCorrectSentenceCaps()

ToolsAutoCorrectSentenceCaps 语句选中清除或切换“工具”菜单下“自动更正”对话框中的“句首字母大写”复选框。ToolsAutoCorrectSentenceCaps() 函数返回有关该复选框的状态信息。想要了解有关参数和返回数值的信息，请参阅 ToolsAutoCorrectDays。

_____________

请参阅

自动更正

ToolsAutoCorrect

ToolsAutoCorrectDays


ToolsAutoCorrectSmartQuotes, ToolsAutoCorrectSmartQuotes()

ToolsAutoCorrectSmartQuotes [On]

ToolsAutoCorrectSmartQuotes()

ToolsAutoCorrectSmartQuotes 语句选中、清除或切换“工具”菜单下“自动更正”对话框中的“将直引号改为花引号”复选框。ToolsAutoCorrectSmartQuotes() 函数返回有关该复选框的状态信息。想要了解有关参数及返回数值的信息，请参阅 ToolsAutoCorrectDays。

_____________

请参阅

自动更正

ToolsAutoCorrect

ToolsAutoCorrectDays


Auto Macros
自动宏

您可以为宏指定特殊的名称，以便在执行某一操作—如启动 Word 或打开文档时，自动执行具有特殊命名的宏。Word 可以识别以下名称的自动宏。

宏名	运行条件

AutoExec	启动 Word 时

AutoNew	每次新建文档时

AutoOpen	每次打开已有文档时

AutoClose	每次关闭文档时

AutoExit	退出 Word 时

同其他宏一样，您可以将自动宏定义在一个共用模板上，也可以将其定义在一个特定模板上。但作为唯一的例外，AutoExec 宏只有定义在 Normal 模板或保存在 Startup 目录中的一个共用模板上时，才能够自动执行。

技巧

按住 SHIFT 键可以阻止自动宏的运行。例如，当您用含有 AutoNew 宏的模板新建一个文档时，在“新建”对话框（“文件”菜单）中单击“确定”按钮时按住 SHIFT 键，就可以阻止 AutoNew 宏的执行。您要按住 SHIFT 键直到新文档显示在窗口中。在可以触发自动宏的宏中，您可以用 DisableAutoMacros 阻止运行自动宏。


AutoText

AutoText

如果存在选定内容则显示“自动图文集”对话框（并且将选定内容的最多前 32 个字符作为唯一的输入项名称），如果没有选定内容，则尝试着用自动图文集词条匹配插入点前或插入点周围的文本并将此项插入（如果有格式编排存在的话，还要将格式编排包括进去）。Word 首先在活动模板中查找该输入项，然后在标准模板中查找，最后根据“文件”菜单下“模板和加载项”对话框中列出的顺序一一查找各装入的共用模板。如果没有任何匹配项存在，将会导致错误。AutoText 语句对应于“常用”工具栏中的“自动图文集”按钮。

_____________

请参阅

自动图文集

AutoTextName$()

CountAutoTextEntries()

EditAutoText

GetAutoText$()

InsertAutoText

SetAutoText


AutoTextName$() 示例

本示例创建一个新的文档，列出标准模板和已装入的共用模板中所有的自动图文集词条。项名称以粗体格式插入，后边接着项的内容。

FileNewDefault

For count = 1 To CountAutoTextEntries()

a$ = AutoTextName$(count)

Bold 1 : Insert a$

InsertPara

Bold 0 : EditAutoText .Name = a$, .Insert

InsertPara : InsertPara

Next


AutoTextName$()

示例

AutoTextName$(Count [, Context])

返回指定上下文中自动图文集词条的名称。

参数	解释
Count	自动图文集词条的数目，范围从 1 到指定上下文中定义的自动图文集词条的总数（可以通过函数 CountAutoTextEntries()获得此总数）。自动图文集词条按字母顺序列表。
Context	要返回的自动图文集词条所在的上下文。 0 或省略 标准模板及任何已装入的共用模板 1 活动模板。 注意如果 Context 设置为 1 并且活动模板是标准模板，AutoTextName$() 函数将产生错误。
_____________

请参阅

自动图文集

AutoText

CountAutoTextEntries()

EditAutoText

GetAutoText$()

InsertAutoText

SetAutoText


CountAutoTextEntries()

CountAutoTextEntries([Context])

返回为指定上下文定义的自动图文集词条的数目。

参数	解释
Context	统计自动图文集词条的上下文。 0 0或省略 标准模板及任何已装入的共用模板 1 活动模板 注意    如果 Context 设置为 1 并且活动模板是标准模板，CountAutoTextEntries() 函数将返回 0
如果想查阅示例，请参阅AutoTextName$() 示例。

_____________

请参阅

自动图文集

AutoTextName$()

GetAutoText$()


EditAutoText 示例

本示例选定第一段文本（不包括段落标记），然后将它定义为以“MainHead”命名的“自动图文集”项，并保存标准模板。

StartOfDocument

EditGoTo "\Para"

CharLeft 1, 1

EditAutoText .Name = "MainHead", .Context = 0, .Add

下一个示例将不带格式的自动图文集词条“MainHead”插入。

EditAutoText .Name = "MainHead", .InsertAs = 1, .Insert


EditAutoText

示例

EditAutoText .Name = text [, .Context = number]  [, .InsertAs = number] [, .Insert] [, .Add] [, .Delete]

插入，添加或删除一个自动图文集词条。EditAutoText 语句的参数对应于“编辑”菜单下的“自动图文集”对话框中的选项。

参数	解释
.Name	本自动图文集词条的名称。
.Context	新的自动图文集词条的上下文： 0 或省略 标准模板 1 活动模板 注意 .Context 只用于 Word 要添加一个自动图文集词条时，当要插入或删除一个项时，Word 首先在活动模板中自动搜索这一项，然后在标准模板中搜索。当要插入一项，而在活动模板和标准模板中末找到该项时，Word 将根据“文件”菜单下的“模板和加载项”对话框中所列出的顺序，搜索每一个装入的共用模板。您无法从一个装入的共用模板中删除一个自动图文集词条。
.InsertAs	与 .Insert 共用使用来控制是否带格式插入： 0或省略 带格式插入。 1 以纯文本方式插入。
您只能指定以下参数之一。

参数	解释
.Insert	将输入项插入文档
.Add	将输入项保存在模板中（如果不存在选定内容，将产生错误）。
.Delete	从模板中删除输入项。
如果您不指定 .Insert、.Add或 .Delete，那么 Word 将插入自动图文集词条。

_____________

请参阅

自动图文集

AutoText

AutoTextName$()

CountAutoTextEntries()

GetAutoText$()

InsertAutoText

SetAutoText


GetAutoText$() 示例

本示例显示一个消息框，包含有以“Welcome”命名的保存于活动模板中的自动图文集词条的文本：

MsgBox GetAutoText$("Welcome", 1)


GetAutoText$()

示例

GetAutoText$(Name$ [, Context])

返回指定自动图文集词条的文本，该文本不带格式。

参数	解释
Name$	自动图文集词条的名称
Context	指定自动图文集词条保存的位置。
_____________

请参阅

自动图文集

AutoText

AutoTextName$()

CountAutoTextEntries()

EditAutoText

InsertAutoText

SetAutoText


InsertAutoText

InsertAutoText

试着用一个自动图文集词条去匹配当前选定内容或者匹配插入点前或插入点周围的文本（如果有格式的话，同时带格式匹配）。Word 首先在活动模板中查找该自动图文集词条，然后在标准模板中查找，最后根据“文件”菜单下的“模板和加载项”对话框中列出的顺序一一在已装入的共用模板中进行查找。如果没有找到匹配项，将产生错误。

_____________

请参阅

自动图文集

AutoText

AutoTextName$()

CountAutoTextEntries()

EditAutoText

GetAutoText$()

SetAutoText


SetAutoText 示例

本示例在活动模板中定义自动图文集词条“Disclaim”。“Disclaim”包含为 text$ 指定的文本。

text$ = "No warranty is either expressed or implied."

SetAutoText "Disclaim", text$, 1


SetAutoText

示例

SetAutoText Name$, Text$ [, Context]

定义纯文本自动图文集词条。与带有 .Add 参数的 EditAutoText 指令不同，SetAutoText 不需要选定范围。

参数	解释
Name$	新项的名称
Text$	与该项相关联的文本
Context	指定该项的可用性。
_____________

请参阅

自动图文集

AutoText

AutoTextName$()

CountAutoTextEntries()

EditAutoText

GetAutoText$()

InsertAutoText


BookmarkName$() 示例

本示例将文档中所有书签名的列表插入到数组 mark$()中。您可以在对话框总用此数组显示书签名列表。注意：数组大小为书签数减 1，这是因为第一个数组元素的下标值是 0，而不是 1。

numBookmarks = CountBookmarks()

arraySize = numBookmarks - 1

Dim mark$(arraySize)

For n = 0 To arraySize

mark$(n) = BookmarkName$(n + 1)

Next


BookmarkName$()

示例

BookmarkName$(Count)

返回由 Count 指定的书签名。

参数	解释
Count	书签的编号，范围在 1 到活动文档中定义的全部书签总数（您可以利用 CountBookmarks() 来得到书签总数）之间。书签名的顺序由书签在文档中的顺序决定。 您必须指定 Count，否则，函数返回错误消息。比如， a$ = BookmarkName$() 就产生一个出错信息。
_____________

请参阅

书签

CountBookmarks()

GetBookmark$()


CmpBookmarks() 示例

本示例在选定内容的每一行前添加一个字符串。首先用一个书签对选定文本做标记，然后使用由三个 CmpBookmarks() 函数控制的 While...Wend 循环来添加文本到每一行之前。第一个 CmpBookmarks() 函数测试存储于“Temp”书签中的插入点或选定内容是否起始于同一位置。在循环开始时，此测试结果为真。第二个 CmpBookmarks() 函数 测试插入点是否包含在“Temp”内，只要插入点在初始选定内容内，测试结果就为真。第三个 CmpBookmarks() 函数测试插入点是否位于初始选定内容的末尾。当插入点移出初始选定内容时，循环结束。在 While...Wend 循环内是另一个 CmpBookmarks() 指令，它用来确定一种特殊情况，即选定内容是否位于文档的末尾。

CopyBookmark "\Sel", "Temp"

SelType 1

While CmpBookmarks("\Sel", "Temp") = 8 \

Or CmpBookmarks("\Sel", "Temp") = 6 \

Or CmpBookmarks("\Sel", "Temp") = 10 \

And leaveloop <> 1

EndOfLine

If CmpBookmarks("\Sel", "\EndOfDoc") = 0 Then leaveloop = 1

StartOfLine

Insert "***"

LineDown

Wend

EditGoTo "Temp"

EditBookmark "Temp", .Delete


CmpBookmarks()

示例

CmpBookmarks(Bookmark1$, Bookmark2$)

比较两个书签的内容。可以将 CmpBookmarks() 与 Word 中预定义的书签一起使用，用来检查插入点的位置，或创建一个只在书签标记区域中操作的宏。比如，使用“\Sel”（当前选定内容）书签和“\para”书签，您可以建立一个只在某一特定段落内操作的宏。有关预定义书签的详细内容，请参阅预定义书签。

参数	解释
Bookmark1$	第一个书签
Bookmark2$	第二个书签
这个函数返回下列值：

值	解释
0	Bookmark1$  与 Bookmark2$  相同。.
1	Bookmark1$  完全在 Bookmark2$之下。
2	Bookmark1$  完全在 Bookmark2$之上。
3	Bookmark1$  在 Bookmark2$的下面和内部。
4	Bookmark1$  在 Bookmark2$的上面和内部。
5	Bookmark1$  包含 Bookmark2$。
6	Bookmark2$  包含 Bookmark1$.
7	Bookmark1$  和 Bookmark2$  起始于同一位置，但 Bookmark1$  更长。
8	Bookmark1$  和 Bookmark2$  起始于同一位置，但Bookmark2$  更长。
9	Bookmark1$  和 Bookmark2$  结束于同一位置，但 Bookmark1$  更长。
10	Bookmark1$  和 Bookmark2$ 结束于同一位置，但 Bookmark2$  更长。
11	Bookmark1$  在紧邻 Bookmark2$ 的下方。
12	Bookmark1$  在紧邻 Bookmark2$ 的上方。
13	其中一个或两个书签不存在。
_____________

请参阅

书签

CopyBookmark

EditBookmark

EmptyBookmark


CopyBookmark 示例

本示例选定当前节，然后把一个书签设置在该节的开头，另一个书签设置在末尾。您可以用这种方法定义您的宏操作的起始位置和末尾位置。

EditGoTo "\Section"

CopyBookmark "\StartOfSel", "SectionStart"

CopyBookmark "\EndOfSel", "SectionEnd"


CopyBookmark

示例

CopyBookmark Bookmark1$, Bookmark2$

设置 Bookmark2$ 到插入点或 Bookmark1$标记的文本范围。您可以与预定义书签——如“\StartOfSel”和“\EndOfSel”一起使用这条语句，设置与插入点或选定内容相关的书签。有关预定义书签的详细内容，请参阅预定义书签。

_____________

请参阅

书签

CmpBookmarks()

EditBookmark

SetEndOfBookmark

SetStartOfBookmark


CountBookmarks() 示例

本示例创建一个包含活动文档中全部书签的数组。

size = CountBookmarks() - 1

Dim marks$(size)

For count = 0 To size

marks$(count) = BookmarkName$(count + 1)

Next

下面的示例删除活动文档中的全部书签。

For n = 1 To CountBookmarks()

EditBookmark .Name = BookmarkName$(CountBookmarks()), \

.Delete

Next


CountBookmarks()

示例

CountBookmarks()

返回活动文档中书签的数目。如同本条目的第一个示例所示，您可以使用这个函数来定义一个包含文档中全部书签的数组。

_____________

请参阅

书签

BookmarkName$()

EditBookmark


EditBookmark 示例

本示例搜索一个只包含单词“Index”（即索引的标题）的段落，如果找到了该标题，则在它之前添加一个书签。您可以在另一个 EditBookmark 指令中或与 EditGoTo 指令一起使用这个书签，把插入点移到索引中。

StartOfDocument

EditFind .Find = "^pIndex^p", .MatchCase = 1, \

.Direction = 0, .Format = 0

If EditFindFound() Then

CharLeft : CharRight

EditBookmark .Name = "Index", .Add

End If


EditBookmark

示例

EditBookmark .Name = text [, .SortBy = number] [, .Add] [, .Delete] [, .Goto]

添加、删除、或选择指定的书签。EditBookmark 语句的参数对应“书签”对话框（“编辑”菜单）中的选项。

参数	解释
.Name	书签名
.SortBy	在您使用一条 Dialog 或 Dialog() 指令显示“书签”对话框时，控制书签列表如何排序： 0 按名称 1 按位置
您可以指定下列参数之一：

参数	解释
.Add	在插入点或选定内容中添加一个书签
.Delete	删除书签
.Goto	把插入点或选定内容移到书签中
如果您没有指定 .Add、.Delete 或 .Goto ，Word 进行添加书签操作。

_____________

请参阅

书签

BookmarkName$()

CmpBookmarks()

CopyBookmark

CountBookmarks()

EditGoTo

EmptyBookmark()

ExistingBookmark()

GetBookmark$()

SetEndOfBookmark

SetStartOfBookmark


EmptyBookmark() 示例

本示例检查 REF 域中引用的书签是否都存在并是否空的。如果遇到对一个不存在或空书签的引用，那么将显示相应的消息框。

StartOfDocument

ViewFieldCodes 1

EditFind .Find = "^d REF", .Format = 0, .Wrap = 0

While EditFindFound()

CharLeft

WordRight 2

WordRight 1, 1

mark$ = RTrim$(Selection$())

If Not ExistingBookmark(mark$) Then

MsgBox mark$ + " is not a bookmark."

ElseIf EmptyBookmark(mark$) Then

MsgBox mark$ + " is an empty bookmark."

End If

CharRight

EditFind .Find = "^d REF", .Format = 0, .Wrap = 0

Wend


EmptyBookmark()

示例

EmptyBookmark(Name$)

确定 Name$ 是否为一个空书签。空书签只标记了文档中插入点的一个位置，而没有标记文本。您可以使用 EmptyBookmark() 来检查一个书签（比如，REF 域中引用的书签）是否标记了文本.

这个函数返回下列值：

值	解释
-1	如果书签为空（即没有标记文本）
0	如果书签非空或不存在
_____________

请参阅

书签

BookmarkName$()

CmpBookmarks()

CountBookmarks()

EditBookmark

ExistingBookmark()

GetBookmark$()


ExistingBookmark() 示例

这个宏在状态行显示一条提示信息，请求输入要添加的书签名。如果该书签不存在，则添加之；如果该书签已经存在，则 Word 显示一个消息框询问是否重新设置该书签。如果用户回答 No，则宏结束。否则，书签被重新设置。

Sub MAIN

Input "Bookmark to add", myMark$

If ExistingBookmark(myMark$) Then

ans = MsgBox(myMark$ + " already exists; reset?", 36)

If ans = 0 Then Goto bye

End If

EditBookmark myMark$, .Add

bye:

End Sub


ExistingBookmark()

示例

ExistingBookmark(Name$)

指出由 Name$ 所指定的书签是否存在于活动文档中。这个函数返回下列值：

值	解释
-1	如果书签存在
0	如果书签不存在
_____________

请参阅

书签

BookmarkName$()

CmpBookmarks()

CountBookmarks()

EditBookmark

EmptyBookmark()

GetBookmark$()


GetBookmark$() 示例

本示例设置变量 first$ 为文档中第一个书签的文本。

first$ = GetBookmark$(BookmarkName$(1))

下面的示例设置变量 paratext$ 为包含插入点的段落的文本。

paratext$ = GetBookmark$("\Para")

书签“\Para”是 Word 定义并自动更新的几个预定义书签之一。有关详细内容，请参阅预定义书签。


GetBookmark$()

示例

GetBookmark$(Name$)

返回由指定书签标记的文本（未进行格式编排）。如果 Name$ 不是活动文档中书签名，那么 GetBookmark$() 返回一个空字符串 ("")。

_____________

请参阅

书签

BookmarkName$()

CountBookmarks()

EditBookmark


SetEndOfBookmark 示例

本示例用书签“EndPoint”标记当前选定内容的末尾。

SetEndOfBookmark "\Sel", "EndPoint"

书签“\Sel” 是 Word 定义并自动更新的几个预定义书签之一。有关详细内容，请参阅预定义书签。


SetEndOfBookmark

示例

SetEndOfBookmark Bookmark1$ [, Bookmark2$]

用 Bookmark2$ 标记 Bookmark1$的末尾位置。如果省略 Bookmark2$ ，那么 Bookmark1$ 将被设置到其本身的末尾位置。

_____________

请参阅

书签

CopyBookmark

EditBookmark

SetStartOfBookmark


SetStartOfBookmark 示例

本示例用书签标记当前段落的起始和末尾位置。

SetStartOfBookmark "\Para", "BeginPara"

SetEndOfBookmark "\Para", "EndPara"

书签“ \ Para” 是 Word 定义并自动更新的几个预定义书签之一。有关详细内容，请参阅预定义书签。


SetStartOfBookmark

示例

SetStartOfBookmark Bookmark1$ [, Bookmark2$]

用 Bookmark2$ 标记 Bookmark1$的起始位置。如果省略 Bookmark2$ i，那么 Bookmark1$ 将被设置到其本身的起始位置。

_____________

请参阅

书签

CopyBookmark

EditBookmark

SetEndOfBookmark


BorderBottom 示例

本示例将两种线型中的一种应用于底端框线。应用何种线型，取决于选定内容是否在一个表格中。若选定内容在一表格中，则用双线框，否则用单线框。

If SelInfo(12) = - 1 Then

BorderLineStyle 8

BorderBottom 1

Else

BorderLineStyle 4

BorderBottom 1

End If


BorderBottom, BorderBottom()

示例

BorderBottom [On]

BorderBottom()

BorderBottom 语句对选定段落，表格单元格或图形应用底端框线或从其中删除底端框线。注意，当您将某一底段框线应用于段落或最后一行。如果您希望用边框来分隔段落或行，可以用 Borderlnside。

参数	解释
On	指定是应用还是删除框线： 1 应用框线 0 删除框线 省略 切换框线应用方式
BorderBottom() 函数返回以下值：

值	解释
0	如果所选项目中至少有一个没有底端框线，或者选定内容是多种项目的混合（例如，一个段落和一个表格单元格）
1	如果选定内容中每一项都只有相同类型，而且都有底端框线
_____________

请参阅

边框和图文框

BorderInside

BorderLeft

BorderLineStyle

BorderNone

BorderOutside

BorderRight

BorderTop

FormatBordersAndShading

ShadingPattern


BorderInside, BorderInside()

BorderInside [On]

BorderInside()

BorderInside 语句对选定段落或表格单元格应用内侧框线或从其中删除内侧框线。以下插图显示了在一系列段落和一张表格中的内侧框线。

段落的内侧框线	表格的内侧框线

根据是否所有选定段落或所有表格单元格都已应用内侧框线，BorderInside() 函数返回 0 或 1。注意，如果选定内容是一单个的表格单元格则 BorderInside() 将返回 0，而不管应用于周围的单元格组的边框。单个的表格单元格可以具有底端、顶端或左侧和右侧框线，但不能有内侧框线。

要了解关于参数和返回值的完整描述，请参阅 BorderBottom。

_____________

请参阅

边框和图文框

BorderBottom

BorderLeft

BorderLineStyle

BorderNone

BorderOutside

BorderRight

BorderTop

FormatBordersAndShading

ShadingPattern


BorderLeft, BorderLeft()

BorderLeft [On]

BorderLeft()

BorderLeft 语句对选定段落、表格单元格或图形应用或删除左侧框线。BorderLeft() 函数根据所选的图形或所有选中段落或表格单元格是否应用左侧框线，而返回不同的值：0 或 1。

要了解关于参数和返回值的完整描述，请参阅 BorderBottom。

_____________

请参阅

边框和图文框

BorderBottom

BorderInside

BorderLineStyle

BorderNone

BorderOutside

BorderRight

BorderTop

FormatBordersAndShading

ShadingPattern


BorderLineStyle, BorderLineStyle()

BorderLineStyle Style

BorderLineStyle()

BorderLineStyle 语句为其后继的以下指令指定线型：BorderBottom、BorderInside、BorderLeft、BorderOutside、BorderRight 和 BorderTop 。

参数	解释
Style	12 种线型之一： 0 无 1 2 3 4 5 6 7 8 9 10 11
若要看使用 BorderLineStyle 的示例，请参阅 BorderBottom 示例。

BorderLineStyle() 函数返回 0 到 11 中的一个数，对应将应用于后继边框指令的线型。注意该线型不一定必须和所选段落，表格单元格或图形中的线型相匹配。

_____________

请参阅

边框和图文框

BorderBottom

BorderInside

BorderLeft

BorderNone

BorderOutside

BorderRight

BorderTop

FormatBordersAndShading

ShadingPattern


BorderNone, BorderNone()

BorderNone [Remove]

BorderNone()

语句在所选定项目上应用或删除所有边框（左侧、右侧、顶端、底端和内侧）。您可以对一系列的段落或一系列的表格行应用或删除所有边框，但不能对段落和表格行的组合进行操作。若要对一图形操作，则您必须首先选择该图形，而且只能选择一个图形。

参数	解释
Remove	指定对选定内容删除所有边框或应用所有边框： 0          应用边框 1或省略 删除边框
BorderNone() 函数返回值：如果选定内容中包含至少一个边框，则返回 0；如果不含边框，则返回 1。

_____________

请参阅

边框和图文框

BorderBottom

BorderInside

BorderLeft

BorderLineStyle

BorderOutside

BorderRight

BorderTop

FormatBordersAndShading

ShadingPattern


BorderOutside, BorderOutside()

BorderOutside [On]

BorderOutside()

BorderOutside 语句对选定段落、表格单元格或图形应用或删除外侧框线。以下插图显示了对一系列段落和整个表格应用外侧框线。

应用于段落的外侧框线	应用于表格的外侧框线

BorderOutside() 函数根据所选的图形或所有选定的段落或表格单格是否用外侧框线格式化而返回 0 或 1。

若要了解关于参数和返回值的完整描述，请参阅 BorderBottom。

_____________

请参阅

边框和图文框

BorderBottom

BorderInside

BorderLeft

BorderLineStyle

BorderNone

BorderRight

BorderTop

FormatBordersAndShading

ShadingPattern


BorderRight, BorderRight()

BorderRight [On]

BorderRight()

BorderRight 语句对选定段落，表格单元格或图形应用或删除右侧框线。BorderRight() 函数根据所选图形或所有段落或表格单元格是否都应用右侧框线，而返回 0 或1。

若要了解关于参数和返回值的完整描述，请参阅 BorderBottom。

_____________

请参阅

边框和图文框

BorderBottom

BorderInside

BorderLeft

BorderLineStyle

BorderNone

BorderOutside

BorderTop

FormatBordersAndShading

ShadingPattern


BorderTop, BorderTop()

BorderTop [On]

BorderTop()

BorderTop 语句对选定段落、表格单元格或图形应用或删除顶端框线。注意：如果您是对一系列段落或表格行应用顶端框线，则框线只出现在该系列中第一个段落或第一个表格行上面。如果您想用边框分隔每一个段落或表格行，可以使用 BorderIinside 语句。

The BorderTop() 函数根据所选定图形或所有选定段落或所有表格单元格是否应用顶端框线，而返回 0 或 1。

若要了解关于参数和返回值的完整描述，请参阅 BorderBottom.

_____________

请参阅

边框和图文框

BorderBottom

BorderInside

BorderLeft

BorderLineStyle

BorderNone

BorderOutside

BorderRight

FormatBordersAndShading

ShadingPattern


FormatBordersAndShading

FormatBordersAndShading [.ApplyTo = number] [, .Shadow = number] [, .TopBorder = number] [, .LeftBorder = number] [, .BottomBorder = number] [, .RightBorder = number] [, .HorizBorder = number] [, .VertBorder = number] [, .TopColor = number] [, .LeftColor = number] [, .BottomColor = number] [, .RightColor = number] [, .HorizColor = number] [, .VertColor = number] [, .FineShading = number] [, .FromText = number or text] [, .Shading = number] [, .Foreground = number] [, .Background = number] [, .Tab = text]

为选定段落、表格单元格或图形设置边框和底纹格式。FormatBordersAndShading 语句的参数对应于“格式”菜单下“边框和底纹”对话框中的选项。

参数	解释
.ApplyTo	如果选定内容包含多于一个的以下项目，则 .ApplyTo 指定将格式应用到哪个或哪几个项目 0 段落 1 图形 2 表格单元格 3 整个表格 如果 .ApplyTo 省略，则使用默认内容。
.Shadow	指定是否对段落或图形边界应用底纹： 0 不应用底纹 1 应用底纹 不能对表格或表格单元格应用底纹。如果您想对段落或图形应用底纹，则该项目必须具有或必须指定相匹配的右侧、左侧、顶端和底端框线，否则将会产生错误。
.TopBorder, .LeftBorder, .BottomBorder, .RightBorder	为段落、表格单元格或某一图形的顶端、底端或左侧和右侧所指定的边框线型，值的范围为由 0（指不用边框）到 11（若要看关于线型和值的列表，请参阅 BorderLineStyle）。
.HorizBorder	为段落之间或表格单元格之间的水平边框指定的线型。值的范围由 0（指不用边框）到 11。只有应用于至少两个连续的段落或表格行时，边框才会显示出来。
.VertBorder	为表格单元格之间的垂直边框设置的线型。值的范围由 0（指没有边框）到 11。只有所选定的表格内容至少有两个单元格宽时，该框线才会显示出来。（当被应用于段落时，.VertBorder 的效果等同于 .LeftBorder。）
.TopColor, .LeftColor, .BottomColor, .RightColor, .HorizColor, .VertColor	应用于指定框线的颜色，值的范围由 0（表示自动设置）到 16（若要看关于颜色和其值的列表，请参阅 CharColor）。
.FineShading	底纹图案，值从 0 到 40，对应于以 2.5% 增长的底纹百分比。如果 .FineShading 是除 0 外的任一数值，则参数 .Shading 将被忽略。
.FromText	边框离最近的文本的距离，以磅值或文本测量。该参数只对段落有效，如果是其他项目，则该参数值必须为一空串（""）或省略，否则会发生错误。
.Shading	应用于选定内容的底纹图案，取值范围由 0（表示清除）到 25（若要看关于底纹图案和其值的列表，请参阅 ShadingPattern）。
.Foreground	应用于底纹前景的颜色，取值范围由 0（表示自动设置）到 16（若要看关于颜色和其值的列表，请参阅 CharColor）。
.Background	应用于底纹背景的颜色，取值范围由 0（表示自动设置）到 16。
.Tab	指定当您用 Dialog 或 dialog() 指令显示“边框和底纹”对话框时选择选项卡： 0 边框选项卡 1 底纹选项卡
_____________

请参阅

边框和图文框

Border Top

BorderBottom

BorderInside

BorderLeft

BorderLineStyle

BorderNone

BorderOutside

BorderRight

ShadingPattern


FormatFrame 示例

本示例选择当前段落，为其加上图文框，然后将该框格式化为左对齐，相对于当前栏，并且设置其上、下端文字与框的间距为 0.13英寸。

EditGoTo "\Para"

InsertFrame

FormatFrame .PositionHorz = 0, .PositionHorzRel = 2, \

.DistVertFromText = "0.13 in"


FormatFrame

示例

FormatFrame [.Wrap = number] [, .WidthRule = number] [, .FixedWidth = number or text] [, .HeightRule = number] [, .FixedHeight = number or text] [, .PositionHorz = number or text] [, .PositionHorzRel = number] [, .DistFromText = number or text] [, .PositionVert = number or text] [, .PositionVertRel = number] [, .DistVertFromText = number or text] [, .MoveWithText = number] [, .LockAnchor = number] [, .RemoveFrame]

为选定图文框定位并设置选项。如果插入点或选定内容不在一图文框中，则将产生错误。FormatFrame 语句的参数对应于“格式”菜单下的“图文框”对话框的选项。

参数	解释
.Wrap	指定正文环绕选项： 0 文本在图文框内不环绕。 1 文本在图文框内环绕。
.WidthRule	决定图文框宽度的规则： 0 自动（由段落宽度决定）。 1 指定（宽度由 .FixedWidth 决定）。
.FixedWidth	如果 .WidthRule 值为 1，则 .FixedWidth 表示以磅值或文本度量的框宽度。
.HeightRule	决定图文框高度的规则： 0 自动（由段落高度决定）。 1 至少（高度不低于 .FixedHeight). 2 指定（高度由 .FixedHeight 指定）。
.FixedHeight	如果 .HeightRule 值为 1 或 2，则 .FixedHeight 为以磅值或文本度量的图文框高度（1 英寸 = 72 磅）。
.PositionHorz	从由 .PositionHorzRel 指定的项目的边缘到图文框的水平距离，以磅值或文本度量。您还可以指定“左”、“右”、“居中”、“内侧”和“外侧”为文本参数。
.PositionHorzRel	用于确定相对水平位置的项： 0 页边距 1 页 2 栏
.DistFromText	在图文框和文本与其左，右或左右两边之间的距离，以磅值或文本度量。
.PositionVert	从由 .PositionVertRel 指定项目的边缘到图文框的垂直距离，以磅值或文本度量。您还可指定“Top”，“Bottom”和“Center”作为文本参数。
.PositionVertRel	用于确定相对垂直位置的项： 0 页边距 1 页 2 段落
.DistVertFromText	在图文框与其上、下或上、下两处的文本之间的距离，以磅值或文本度量。
.MoveWithText	如果值为 1，则当其周围的文本添加或删除时，该图文框也随之移动。
.LockAnchor	如果值为 1，则当图文框重新定位时，相对应的图文框锁定点（指示图文档出现在标准视图中的位置）不变。锁定的图文框不可重新定位。
.RemoveFrame	从选定文本或图形中删除图文框格式。
_____________

请参阅

边框和图文框

FormatDefineStyleFrame

InsertFrame

RemoveFrames


InsertFrame 示例

本示例插入一图文框，然后将其置于当前段落的左边的页边距内，这样用户可以在其中键入页边距注释。如果活动文档没有处于页面视图状态，则 Word 将显示一个消息框询问用户是否希望切换到页面视图。

SelType 1

If ViewPage() = 0 Then

ans = MsgBox("Switch to page layout view?", \

"Insert Margin Note", 36)

If ans = - 1 Then ViewPage

End If

InsertFrame

FormatFrame .Wrap = 1, .WidthRule = 1, .FixedWidth = ".75 in", \

.PositionHorz = "Left", .PositionHorzRel = 1, \

.DistFromText = "0.13 in", .PositionVert = "0", \

.PositionVertRel = 2, .DistVertFromText = "0"

SelType 1 : FontSize 8 : Italic 1

HScroll 0


InsertFrame

示例

InsertFrame

插入一空的图文框，或为选定内容（文本，图形或文本和图形）加图文框。如果没有选择内容，则 Word 在插入点插入一个 1 英寸见方的图文框（该框在页面视图下显示为正方形）。您可以用 FormatFrame 改变图文框的大小。

_____________

请参阅

边框和图文框

FormatFrame

RemoveFrames


RemoveFrames 示例

本示例从整个文档中删除所有图文框。

EditSelectAll

RemoveFrames


RemoveFrames

示例

RemoveFrames

删除选定内容中的所有图文框。注意：您在文本周围插入图文框时，自动应用的边框将不被删除。

_____________

请参阅

边框和图文框

FormatBordersAndShading

FormatFrame

InsertFrame


ShadingPattern, ShadingPattern()

ShadingPattern Type

ShadingPattern()

ShadingPattern 语句对选定段落、表格单元格或图文框应用 26 种底纹格式中的一种。

参数	解释
Type	应用的底纹格式： 0 13 1 14 2 15 3 16 4 17 5 18 6 19 7 20 8 21 9 22 10 23 11 24 12 25
ShadingPattern() 函数返回以下值：

值	解释
0	如果所选内容都未加上底纹（即底纹图案为“清除”）。
-1	如果选定内容含有多种底纹图案的混合。
1 through 25	如果所有选定内容都用同一底纹图案格式化了。
_____________

请参阅

边框和图文框

FormatBordersAndShading


ViewBorderToolbar

ViewBorderToolbar

如果“边框”工具栏被隐藏，则显示它，如果已显示“边框”工具栏，则隐藏它。

_____________

请参阅

边框和图文框

ViewDrawingToolbar

ViewToolbars


Call 示例

这个示例调用子程序 FindName 两次；带和不带 Call 语句的这两行效果相同。

Call FindName	'Transfer control to the subroutine FindName

FindName	'Transfer control to the subroutine FindName


Call

示例

[Call] [MacroName][.][SubName] [ArgumentList]

运行宏时把控制权转交给子程序或另一个宏。若要指定另一个宏中的子程序，请使用 MacroName.SubName 的格式。如果没有指定 SubName ，就运行 MacroName 中的主程序。Call 是可选的；当您阅读和编辑宏时 Call 可帮助您区分子程序名和 WordBasic 关键字。ArgumentList 中用逗号隔开的各参数必须对应于被调用的子程序的返回值。

注释

当您调用另一个宏时，Word 以下列顺序寻找可用模板中的宏：包含 Call 指令的模板，活动模板，“标准”模板，载入的共用模板。例如，假设 USER.DOT 和 NORMAL.DOT 同时包含 DisplayMessage 宏，则 USER.DOT 中的下列宏：

FileNew .Template = "Normal"

DisplayMessage

运行 USER.DOT 中的 DisplayMessage 宏，即使 Call 指令运行时基于 NORMAL.DOT 的文档是活动的。

有关使用子程序的详细内容，包括如何共享变量和在子程序间传递参数，请参阅《 Microsoft Word 开发工具》的第四章，“高级 WordBasic ”。

_____________

请参阅

转移和控制

Sub...End Sub


For...Next 示例

这个示例显示一行五个信息框，每个信息框给出 count 的当前值：

For count = 1 To 5

MsgBox "Current value of count is" + Str$(count)

Next count

下面的示例产生与前一示例同样的效果，不过是以 -1 的步长递减 count 的值：

For count = 5 To 1 Step -1

MsgBox "Current value of count is" + Str$(count)

Next

下面的示例为您演示如何用带 For...Next 循环的 WordBasic 计数函数对某一分类的各项进行操作。在本例中，把活动文档里定义的所有书签的名字贮存在数组 mark$()中。

numBookmarks = CountBookmarks()

arraySize = numBookmarks - 1

Dim mark$(arraySize)

For n = 0 To arraySize

mark$(n) = BookmarkName$(n + 1)

Next


For...Next

示例

For CounterVariable = Start To End [Step Increment]
Series of instructions
Next [CounterVariable]

重复执行 For 和 Next 之间的指令，同时使 CounterVariable 增加 1 或 Increment ，直到 CounterVariable 大于 End 。如果 Start 大于 End，则 Increment 必须是一个负值；而 CounterVariable 减少 Incremnt ，直到小于 End 。

如果您把 For...Next 循环一重或多重放入另一循环中，则每一循环必须使用唯一的 CounterVariable ，如下列指令所示：

For I = 1 To 10

For J = 1 To 10

For K = 1 To 10

'Series of instructions

Next K

Next J

Next I

_____________

请参阅

转移和控制

Goto

If...Then...Else

Select Case

While...Wend


Function...End Function 示例

这个宏提示用户键入一华氏温度，此数通过变量 fahrenheit 传递给 ConvertTemp() 函数，并由它把 fahrenheit 转换为摄氏温度，然后主程序在信息框中显示此值。

Sub MAIN

On Error Resume Next

tmp$ = InputBox$("Type a Fahrenheit temperature:")

fahrenheit = Val(tmp$)

celsius = ConvertTemp(fahrenheit)

MsgBox tmp$ + " Fahrenheit =" + Str$(celsius) + " Celsius"

End Sub

Function ConvertTemp(fahrenheit)

tmp = fahrenheit

tmp = ((tmp - 32) * 5) / 9

tmp = Int(tmp)

ConvertTemp = tmp

End Function


Function...End Function

示例

Function FunctionName[$][(ArgumentList)]
Series of instructions to determine a value
FunctionName[$] = value
End Function

定义一个函数——返回唯一值的一组指令。若要返回字符串值，则函数名必须以美元符号($)结尾。请注意，不同于 WordBasic 内部函数，不指定 ArgumentList 的用户定义函数不以空括号结尾；如以空括号结尾，就会产生错误。

ArgumentList 是变量列表，以逗号隔开。ArgumentList 中的变量通过调用函数的语句传递给函数。字符串变量必须以美元符号结尾。ArgumentList 不能包含数值；常数必须定义为变量，通过变量名传递给函数。

_____________

请参阅

转移和控制

Sub...End Sub


Goto 示例

这个宏显示一个信息框，其中有“是”、“否”和“取消”三个按钮，询问用户是否继续运行宏。如果用户选择“否”或“取消”，则宏立即转到 End Sub 之前的 bye 标号，结束运行。

Sub MAIN

ans = MsgBox("Continue macro?", 3)

If ans = 0 Or ans = 1 Then Goto bye

'Series of instructions to run if the user chooses Yes

bye:

End Sub


Goto

示例

Goto Label

使正在运行的宏从 Goto 指令重新定向到同一子程序或函数中的指定 Label。宏从标号后的指令继续运行。当您在宏中放入标号请记住：

标号必须放在一行的开头，标号之前不能有空格和制表字符。

标号必须以冒号（:）结束。（在 Goto 指令中请勿包含冒号。）

包含字母的标号必须以字母开头，最多可包含 40 个字符的字母和数字（不计冒号）。

您可以在一行开头用数字代替标号。Basic 编程语言的较早版本要求行号，为保持与用这种语言创建的 Basic 程序兼容，WordBasic 支持行号。行号最大可达 32759 ，后面不需冒号。

_____________

请参阅

转移和控制

For...Next

If...Then...Else

Select Case

While...Wend


If...Then...Else 示例

如果选定内容部分是粗体，这个示例就以粗体编排整个选定内容：

If Bold() = -1 Then Bold 1

如果整个选定内容是粗体，则下面的示例用斜体格式编排之；否则，就用下划线格式编排：

If Bold() = 1 Then Italic 1 Else Underline 1

下面的示例表明，您可以用复合表达式作为条件（此例中的条件为选定内容是否既是粗体又是斜体）：

If Bold() = 1 And Italic() = 1 Then ResetChar

下例使用了 If 条件语句可能的完整用法。该条件语句可以描述为：“如果选定内容完全是粗体，则使之变为斜体；如果选定内容部分为粗体，则重新设置字符格式编排。否则，使选定内容为粗体。”

If Bold() = 1 Then

Italic 1

ElseIf Bold() = -1 Then

ResetChar

Else

Bold 1

End If


If...Then...Else

示例

If Condition Then Instruction [Else Instruction]

If Condition1 Then
Series of instructions
[ElseIf Condition2 Then
Series of instructions]
[Else
Series of instructions]
End If

有条件地运行指令。在 If 条件语句的最简单形式—— If Condition Then Instruction 中，如果 Conditon 为真，则运行 Instruction。在 WordBasic 中，“真”意味着条件的值为 -1 ，“假”即条件的值为 0 （零）。

如果您在 If 后指定条件、在 Then 后指定指令（以及在 Else 后指定指令，如果有的话），那么您就可以把整个 If 条件语句写在一行。使用这种形式的条件语句，请不要用 End If 。请注意，用这种形式可指定复合指令，只要以冒号隔开指令即可，如下面的条件语所示：

If Bold() = 1 Then Bold 0 : Italic 1

一般地说，如果您要指定一组条件句指令，则完整的用法比用逗号隔开指令要好。通过完整语法，您可以用 ElseIf 把第二个条件嵌套在 If 条件语句中。只要需要，您可以添加许多个 ElseIf 指令到 If 条件语句中。

_____________

请参阅

转移和控制

For...Next

Goto

Select Case

While...Wend


On Error 示例

这个示例显示了避免 WordBasic 第 102 号错误的 On Error Resume Next 的通常用法。该错误是用户取消对话框或提示时产生的“命令失败”错误。

On Error Resume Next

A$ = InputBox$("Your name please:")

下面的宏提示用户输入一个指定的顺序文件（例如，包含 Word 文档列表的纯文本文件）。如果没找到文件，则由 On Error Goto Label 指定的标号后的指令给出对应于错误编号的原因。

Sub MAIN

On Error Goto ErrorHandler

DocName$ = InputBox$("Filename for input:", "", DocName$)

Open DocName$ For Input As #1

'Statements that use the input go here

Close #1

Goto Done	'If there is no error, skip the error handler

ErrorHandler:

Select Case Err

Case 53 : MsgBox "The file " + DocName$ + " does not exist."

Case 64 : MsgBox "The specified drive is not available."

Case 76 : MsgBox "The specified directory does not exist."

Case 102	'If the user cancels the dialog box

Case Else : MsgBox "Error" + Str$(Err) + " occurred."

End Select

Err = 0

Done:

End Sub


On Error

示例

On Error Goto Label

On Error Resume Next

On Error Goto 0

建立一个“错误管理器”——典型的情况是发生错误时接管的一组指令。当不包含 On Error 语句的宏发生错误时，显示错误信息，并退出宏。

格式	执行操作
On Error Goto Label	从发生错误的行跳到指定标号。这一标号后的指令可判断错误原因（用特殊变量 Err ），执行某一适当的操作来纠正或解决问题。有关详细内容，请参阅 Err。
On Error Resume Next	从发生错误的行的下一行开始继续运行宏，并重新设置 Err 为 0 （零）。事实上，错误被忽略。
On Error Goto 0	禁止早先用 On Error Goto 或 On Error Resume Next 语句建立的错误陷井，把 Err 设置为 0 （零）。
一旦有错误触发了错误管理器，就不再有进行错误管理，直到 Err 重新设置为 0 （零）。通常，您应该在错误管理器的结尾处放一条 Err = 0 指令。请勿在错误管理器中间包括 Err = 0 指令，否则管理器内部发生错误时您就有造成死循环的危险。

请注意，在主程序中创建的错误管理器，当控制权转交给另一个子程序时就不再有效。若要截获所有错误，每个子程序都必须有自己的 On Error 语句和错误管理器。控制权返回给主程序之后，主程序中的 ON Error 指令重新起作用。

Word Basic 产生编号为 1000 以内的错误；Word 本身产生带编号为 1000 或大于 1000 的错误。错误管理器可截获 WordBasic 和 Word 的错误。然而，如果发生 Word 错误，则显示错误信息，且宏继续运行之前用户必须作出响应。如果用户选择“确定”按钮，控制权就传递给错误管理器。

有关 WordBasic 和 Word 错误信息和编号的完整列表，请参阅错误信息。

_____________

请参阅

转移和控制

Err

Error

Goto

Select Case


Select Case 示例

这个示例定位到文档中的每一段，并根据段落样式是“ ListItem1 ”还是“ ListItem2 ”，插入项目符号或连字符。如果发现有段落没以这两种格式编排，则 Case Else 后的指令显示一个信息框。

StartOfDocument

While CmpBookmarks("\Sel", "\EndOfDoc") <> 0

Select Case StyleName$()

Case "ListItem1"

ToolsBulletsNumbers .Type = 0

Case "ListItem2"

Insert "-" + Chr$(9)

Case Else

MsgBox "Not a list style"

End Select

ParaDown

Wend

下面的示例演示了如何用 Select Case 来计算数值表达式。Select Case 指令产生一个 -5 与 5 之间的随机数，接下来的 Case 指令根据数值表达式的值运行。

Select Case Int(Rnd() * 10) - 5

Case 1,3

Print "One or three"

Case Is > 3

Print "Greater than three"

Case -5 To 0

Print "Between -5 and 0 (inclusive)"

Case Else

Print "Must be 2"

End Select


Select Case

示例

Select Case Expression
Case CaseExpression
Series of instruction(s)
[Case Else
Series of instruction(s)]
End Select

根据 Expression 值运行一组指令中的一个。Expression 顺次与每个 CaseExpression 进行比较。如果发现了一致的值，就运行Case CaseExpression 后的指令，并将控制权转交给 EndSelect 后的指令。如果没有一致的值，则运行 Case Else 后的指令。如果没有一致的值也没有 Case Else 指令，就会发生错误。

Select Case 控制结构是大部分对话函数的重要部分。有关对话函数的详细内容，请参阅《Microsoft Word 开发工具》一书的第五章，“使用自定义对话框”。

使用 Select Case 时请记住下列几点：

请使用带关系运算符的 Is 关键字比较 CaseExpression 与 Expression 。例如，指令 Case Is >8 测试大于 8 的任何值。请勿使用不带关系运算符的 Is 关键字，否则就会发生错误；例如， Case Is 8 产生一个错误。

请使用 To 关键字来测试落入指定范围内的值。例如，指令 Case 4 To 8 测试任何大于等于 4 且小于等于 8 的值。

如果用 Goto 指令定位到 Select Case 控制结构之外的标号，则发生一个错误。

_____________

请参阅

转移和控制

For...Next

Goto

If...Then...Else

While...Wend


Stop

Stop [SuppressMessage]

停止正在运行的宏。如果 SuppressMessage 是 -1 ，则不显示信息。否则，Word 显示一个信息框，说明宏被中止。当 Word 遇到打开宏编辑窗口的宏中的 Stop 指令时，您可以单击“宏”工具栏中的“继续”按钮来继续运行宏。

_____________

请参阅

转移和控制

ShowVars


Sub...End Sub 示例

在这个宏中，主程序 GoBeep 通过变量 numBeeps 传递声音提示的次数：

Sub MAIN

numBeeps = 3

GoBeep(numBeeps)

End Sub

Sub GoBeep(count)

For n = 1 To count

Beep

For t = 1 To 100 : Next	'Add time between beeps

Next

End Sub

如果 GoBeep 子程序在名为 LibMacro 的宏内，那么对子程序的调用如下所示：

Sub MAIN

numBeeps = 3

LibMacros.GoBeep(numBeeps)

End Sub

有关使用不同宏中的子程序的详细内容，请参阅《Microsoft Word 开发工具》的第四章，“高级 WordBasic ”。


Sub...End Sub

示例

Sub SubName[(ArgumentList)]
Series of instructions
End Sub

定义一个子程序。子程序是可以由主程序反复调用、可使宏简短并易于调试的一组指令。

参数	解释
SubName	子程序名。
ArgumentList	参数列表。以后您可以在子程序中使用这些参数。数值、字符串和数字变量都是有效的参数。
子程序必须在主程序的外部——一般来说，您可在结束主程序的 End Sub 指令之后添加子程序。您不仅可以在宏的主程序中调用子程序，而且可以在其他子程序甚至其他宏中调用。有关使用子程序的详细内容，包括如何共享变量和如何在子程序间传递参数，请参阅《Microsoft Word 开发工具》的第四章，“高级 WordBasic ”。

_____________

请参阅

转移和控制

Call

Function...End Function


While...Wend 示例

这个示例在 While...Wend 内使用 Files$() 函数，插入当前目录中扩展名为 .DOC 的文件的列表。指令 a$ = Files$("*.DOC") 返回第一个扩展名为 .DOC 的文件名，而每当循环内的指令运行一次，a$ = Files$() 就返回下一个扩展名为 .DOC 的文件名。只要 Files$() 返回空字符串（""），表明当前目录中不再有其他 .DOC 文件，条件 a$ <> "" 就为假， Word 退出 While...Wend 循环。

FileNewDefault

currdir$ = Files$(".")

a$ = Files$("*.DOC")

InsertPara : Insert a$

count = 1

While a$ <> ""

count = count + 1

a$ = Files$()

InsertPara : Insert a$

Wend

StartOfDocument : Bold 1

Insert currdir$ + "\*.DOC: " + Str$(count - 1) + " files"


While...Wend

示例

While Condition1
Series of instructions
Wend

重复执行 While 与 Wend 之间的指令，直到指定条件为真。 While...Wend 控制结构常用于 WordBasic 中，每当 Word 文档中发现一块文本或格式编排时就重复运行一组指令。有关 While...Wend 这种用法的示例，请参阅  EditFind。

_____________

请参阅

转移和控制

For...Next

Goto

If...Then...Else

Select Case


DemoteList

DemoteList

在多层次列表中将选中段落降级一个级别。如果选中段落具有非多级别的项目符号列表格式或非多级别的编号列表格式，那么 DemoteList 增加缩进。如果选中段落不具有编号列表或项目符号列表格式，那么将产生错误。

_____________

请参阅

项目符号和编号

FormatBulletsAndNumbering

PromoteList


FormatBulletDefault, FormatBulletDefault()

FormatBulletDefault [Add]

FormatBulletDefault()

FormatBulletDefault 语句在选定段落中添加或删除项目符号格式。

参数	解释
Add	指定是添加还是删除项目符号： 0 删除项目符号。如果选定内容的前一段落或后一段落没有作为列表段落编排格式，则在选定内容中的列表格式将同项目符号一起被删除。 1 添加项目符号。如果选定内容的前一段落已用“格式”菜单中的“项目符号和编号”命令加了项目符号，则将用相匹配的项目符号格式化所选段落，否则，使用“项目符号和编号”对话框的默认设置编排格式。 省略 切换项目符号格式。
FormatBulletDefault() 函数返回以下数值：

值	解释
0	所选段落都未加上项目符号或编号。
-1	所选段落没有全部加上项目符号，或没有全部“跳过”，或没有用同一层次的编号编排格式。
1	所选段落全部加上了项目符号。
_____________

请参阅

项目符号和编号

FormatBulletsAndNumbering

FormatNumberDefault

SkipNumbering


FormatBulletsAndNumbering 示例

本示例在所选段落中加入菱形的项目符号，并用悬挂式缩进编排这些段落格式。

FormatBulletsAndNumbering .Hang = 1, .Preset = 3


FormatBulletsAndNumbering

示例

FormatBulletsAndNumbering [.Remove] [, .Hang = number] [, .Preset = number]

基于您所指定的预设置项目符号或编号方式，在选定段落中添加或删除项目符号和编号。FormatBulletsAndNumbering 语句的参数对应于“格式”菜单中的“项目符号和编号”对话框选项。您无法用 Dialog 或 Dialog() 命令显示该对话框。

参数	解释
.Remove	从选定文本中删除项目符号或编号。
.Hang	如果值为 1，在选定段落中应用悬挂式缩进格式。
.Preset	一个编号，该编号对应于“格式”菜单下的“项目符号和编号”对话框中的项目符号或编号方式。 为得到正确的编号，您可以显示“项目符号和编号”对话框，然后从左到右数您所希望使用方式的位置。.Preset 方式有以下值： 1 到 6 表示“项目符号”选项卡中的方式。 7 到 12 表示“编号”选项卡中的方式。 13 到 18 表示“多级”选项卡中的方式。
_____________

请参阅

项目符号和编号

FormatBulletDefault

FormatNumberDefault

RemoveBulletsNumbers

SkipNumbering


FormatNumberDefault, FormatNumberDefault()

FormatNumberDefault [On]

FormatNumberDefault()

FormatNumberDefault 语句在选定段落中添加或删除编号。

参数	解释
On	指定是添加还是删除编号： 0 删除编号。如果所选定内容的前一段落或后一段落没有作为列表段落编排格式，则选定内容中的列表格式也将与编号一起删除。 1 添加编号。如果所选定内容的前一段落或后一段落已经用“格式”菜单中的“项目符号和编号”命令加了编号，则所选定段落也用相同的编号方式编排格式。否则，使用“项目符号和编号”对话框的缺省设置编排格式。 省略 切换编号方式。
FormatNumberDefault() 函数返回以下数值：

值	解释
0	如果所选段落都未编号或加项目符号
-1	如果所选段落没有全部加项目符，或没有全部“跳过”，或没有使用同一层次的编号编排格式
1-9	如果所选段落全部使用一个多层列表中的同一层次的编号方式编号
10	如果所选段落全部使用“项目符号和编号”对话框“编号”选项卡中的六种方式编号
11	如果所选段落全部加了项目符号
12	如果所选段落全部“跳过”
_____________

请参阅

项目符号和编号

FormatBulletDefault

FormatBulletsAndNumbering

SkipNumbering


PromoteList

PromoteList

在一多级列表中将选定段落升级一个级别。如果所选定段落已格式化为一项目符号列表或编号列表，但不是一多级列表，则 PromoteList 将减小缩进。如果选定段落还未格式化为编号列表或项目符号列表，则会产生错误。

_____________

请参阅

项目符号和编号

DemoteList

FormatBulletsAndNumbering


RemoveBulletsNumbers

RemoveBulletsNumbers

删除选定段落中的项目符号或编号以及列表格式编排，该选定段落处于一个由“格式”菜单下的“项目符号和编号”命令创建的已加了项目符号或编号的列表中。后续的那些已加了项目符号或编号的段落将开始一新列表，并重新进行编号以得到编号列表。RemoveBulletsNumbers 语句对应于“格式”菜单下“项目符号格编号”对话框中的“删除”按钮。

_____________

请参阅

项目符号和编号

FormatBulletsAndNumbering

SkipNumbering


SkipNumbering 示例

本示例选择当前段落并用 SkipNumbering() 来决定是否跳过了该段落。如果该段落被跳过了，则对它重新编号。

EditGoTo "\Para"

If SkipNumbering() = 1 Then

FormatBulletsAndNumbering .Hang = 1, .Preset = 8

End If


SkipNumbering, SkipNumbering()

示例

SkipNumbering

SkipNumbering()

SkipNumbering 语句跳过所选定段落的项目符号或编号，这些段落存在于一由“格式”菜单的“项目符号和编号”命令所创建的已被加上项目符号或编号的列表。后续的那些已加上项目符号或编号的段落将继续现有列表，而不是开始一新列表（并重新进行编号）。

SkipNumbering() 函数返回以下数值：

值	解释
0	如果没有跳过所选定段落。该选定段落可以是一个已经加上项目符号或编号了的列表的一部分，也可以不是。
-1	如果所选定段落只有一部分被跳过，或者这些段落在一多级列表中不止一个级别。
1	如果跳过所有的选定段落。
_____________

请参阅

项目符号和编号

DemoteList

FormatBulletsAndNumbering

PromoteList

RemoveBulletsNumbers


ToolsBulletListDefault

ToolsBulletListDefault

为选定段落添加项目符号和制表符并以悬挂式缩进方式编排这些段落格式。项目符号作为 SYMBOL 域插入。

注释

ToolsBulletListDefault 语句在 Word 2.x 版本中对应于“工具栏”中的“项目符号列表”按钮。在 Word 6.0 版本中，“项目符号”按钮在“格式”工具栏中，其在 WordBasic 中的相对应的语句为 FormatBulletDefault 。

_____________

请参阅

项目符号和编号

FormatBulletDefault

FormatBulletsAndNumbering

FormatNumberDefault

ToolsBulletsNumbers

ToolsNumberListDefault


ToolsBulletsNumbers 示例

本示例将选定内容格式化为项目符号列表，项目符号定义为“符号”字体中的字符码 183 ，大小为 10 磅。

ToolsBulletsNumbers .Font = "Symbol", .CharNum = "183", .Type = 0, \

.Points = 10, .Hang = 1, .Indent = "0.25 in", .Replace = 0


ToolsBulletsNumbers

示例

ToolsBulletsNumbers [.Replace = number] [, .Font = text] [, .CharNum = text] [, .Type = number] [, .FormatOutline = text] [, .AutoUpdate = number] [, .FormatNumber = number] [, .Punctuation = text] [, .StartAt = text] [, .Points = number or text] [, .Hang = number] [, .Indent = number or text] [, .Remove]

为那些已加上项目符号，编号和大纲编号的段落设置格式。包含该语句是为了与以前版本的 Word 兼容，在 2.X版本的 Word 中，ToolsBulletsNumbers 的参数对应于“工具”菜单中“项目符号和编号”对话框的选项。并非每一参数对所有类型列表都能应用。

参数	解释
.Replace	如果值为 1，则 Word 只为那些已加上项目符号的段落更新其项目符号，或只为那些已编号了的段落更新其编号。
.Font	列表中编号或项目符号字符所用的字体。
.CharNum	用作项目符号的字符或其 ANSI 代码。项目符号作为 SYMBOL 域插入。
.Type	创建的列表格式： 0 项目符号列表 1 编号列表 2 大纲编号列表
.FormatOutline	大纲编号的格式。可选用的格式有 Legal,Outline,Sequence,Learn,和Outline All。其中 Learn 格式使用的格式基于选定内容的每一层的第一个编号。
.AutoUpdate	如果值为 1，插入的编号作为域具有以下特性，当段落顺序改变时，该域也自动更新。
.FormatNumber	为编号列表指定一种格式： 0 1, 2, 3, 4 1 I, II, III, IV 2 i, ii, iii, iv 3 A, B, C, D 4 a, b, c, d
.Punctuation	列表中编号的分隔符，可以为一个或多个字符。如果您指定一个字符，则它跟在每一编号后面，如果您指定两个字符，则它们将编号包在中间。
.StartAt	列表的起始编号字母。
.Points	项目符号列表中以磅值计算的项目符号大小。
.Hang	如果值为 1，则为列表设置悬挂式缩进格式。
.Indent	如果 .Hang 的值设为 1，则 .Indent 表示以磅值或以文本方式度量的左缩进宽度。
.Remove	删除现有的项目符号或编号。
_____________

请参阅

项目符号和编号

FormatBulletDefault

FormatBulletsAndNumbering

FormatNumberDefault

ToolsBulletListDefault

ToolsNumberListDefault


ToolsNumberListDefault

ToolsNumberListDefault

在选定段落中添加编号和制表符，并用悬挂式缩进方式编排这些段落格式。

注释

ToolsNumberListDefault 语句在 Word 2.x 版本中对应于“工具栏”中的“编号列表”按钮。在 Word 6.0 版本中，“编号”按钮在“格式”工具栏中，而且其 WordBasic 的相对应语句为 FormatNumberDefault。

_____________

请参阅

项目符号和编号

FormatBulletDefault

FormatBulletsAndNumbering

FormatNumberDefault

ToolsBulletListDefault

ToolsBulletsNumbers


What's New in WordBasic
WordBasic 中的新内容

新的宏编辑和 WordBasic 功能

本节描述对宏编辑环境的改进，以及 Word 较早版本中没有的 WordBasic 功能。

新的“宏”工具栏按钮

宏文本样式

共用模板

“管理器”对话框

新的自定义对话框功能

其他改进

新的 WordBasic 语句和函数

本节列出新的或修改过的 WordBasic 语句和函数，按分类排序。请注意，没有列出与 Word 6.0 版中的新命令、工具按钮和其他功能相对应的语句和函数。

应用程序控制语句和函数

日期和时间函数

磁盘存取语句和函数

环境语句和函数

菜单自定义语句和函数

选定语句和函数

字符串函数

窗口控制语句和函数

其他语句和函数


New Macro Toolbar Buttons
新的“宏”工具栏按钮

现在“宏”工具按钮包括带图形的按钮和一个列表框。您可用这个列表框打开、运行任何宏。下列工具栏按钮对应于 Word 早期版本中所没有的“宏”工具栏功能。

单击	执行
	显示“录制宏”对话框。
	录制要执行的下一个命令。
	现在允许您执行其他打开宏中的子程序和函数。
	从选定行的行首添加或删除“ REM ”。
	显示“宏”对话框（“工具”菜单）。
	打开“对话框编辑器”。


The Macro Text Style
宏文本样式

您可以用新的内部“宏文本”样式来改变宏编辑窗口中的默认文本样式。例如，您可以改变字体或制表位设置。


Global Templates
共用模板

通过使用“模板”命令（“文件”菜单），您可以把任何模板改为共用模板。共用模板中的宏在任何文档窗口均可使用，正如保存在“标准”模板中的宏一样。这就是说，您可以访问保存在模板中的宏，而不必把模板附加到文档上，或者根据模板创建文档。


The Organizer Dialog Box
“管理器”对话框

可以用新的“管理器”对话框来管理宏。您可以选定模板中任何数量的宏，然后复制或移动到另一个模板中；可以对宏重命名或删除。在“宏”对话框（“工具”菜单）中选择“管理器”按钮，即可显示“管理器”对话框。


New Custom Dialog Box Capabilities
新的自定义对话框功能

WordBasic 支持自定义对话框的四种新的控制方式：

DropListBox 语句支持下拉式列表框。

TextBox 语句支持带新参数的多行文本框。

Picture 语句支持图形。

FilePreview语句支持文件预览框。

另外，现在您可以创建动态改变的对话框。例如，根据用户在对话框的其他地方选定的选顶，您可以创建一个对话框来更新列表框的内容。此外，对自定义对话框包含控制方式的数目不再有限制。有关动态对话框的详细内容，请参阅创建动态对话框和对话函数的语法。


Miscellaneous Improvements
其他改进

对 WordBasic 作了下列改进：

关闭屏幕更新的功能。您可以用 ScreenUpdating 语句来控制宏运行时是否显示监视器的改变。您可以通过阻止屏幕更新来加快某些宏运行的速度。

新的日期和时间函数。现在 WordBasic 包括一组与 Visual Basic 3.0 版兼容的“序数”日期和时间函数。另外， Date$() 和 Time$() 函数也作了修改，以便接受日期和时间的序数。

改进了数组句柄。现在您可以传递数组变量到子程序和用户定义的函数中去。您可以用 SortArray 语句对数组排序。有关数组的详细内容，请参阅 SortArray 和 Microsoft Word Developer's Kit 的第四章，“Advanced WordBasic”。

对象链接和嵌入（ OLE ）自动化的服务支持。支持 OLE 的应用程序，如 Microsoft Excel 5.0 版，都可用 OLE 来自动访问 Word 。有关 OLE 的详细内容，请参阅 Microsoft Word Developer's Kit 的第八章，“Communicating with Other Applications”。

个人设置文件。通过使用 SetPrivateProfileString 和 GetPrivateProfileString$()，您可以创建个人设置文件来保存变量和值。有关个人设置文件的详细内容，请参阅 SetPrivateProfileString、GetPrivateProfileString$() 和 Microsoft Word Developer's Kit 的第九章，“More WordBasic Techniques”。

文档变量。通过使用 SetDocumentVar 和 GetDocumentVar$()，您可以保存和检索活动文档中的变量。有关文档变量的详细内容，请参阅 SetDocumentVar、GetDocumentVar$(), 和 Microsoft Word Developer's Kit 的第九章，“More WordBasic Techniques”中的SkipNumbering

表单域宏。您可以为表单域选用宏以便在激活表单域（“进入”宏）或不再使用表单域（“退出”宏）时可以触发宏。有关表单域宏的详细内容，请参阅 Microsoft Word Developer's Kit 中的第九章"More WordBasic Techniques"。

较大变量。字符串变量最大可为64K字符，大多数字符串函数可以接受64K的字符串。数字变量最大可为 1.79E+308.

 Stop 语句，用于中断宏，其中可以包含一个参数用来挂起宏而不显示错误信息。通常在调试程序时，不需要提示错误信息。有关调试程序的详细内容，请参阅Microsoft Word Developer's Kit的第六章"Debugging"。


Application Control Statements and Functions
应用程序控制语句和函数

AppClose	关闭指定的应用程序
AppCount()	返回打开的应用程序数目（包括没有显示在“任务列表”中的隐藏应用程序）
AppGetNames	用打开应用程序窗口中的名称填充数组
AppHide	隐藏指定的应用程序并从“任务列表”中删除它的窗口名称
AppIsRunning()	如果选定应用程序正在运行，则返回 -1，否则返回 0 (零)
AppSendMessage	将 Windows 信息和与其相关参数发送到指定的应用程序
AppShow	用 AppHide激活先前隐藏的应用程序并使其可见，并在“任务列表”中重新保存应用程序窗口名


Date and Time Functions
日期和时间函数

Date$()	将一系列数字作为可选参数
DateSerial()	返回一系列指定为年, 月, 日格式日期的数字
DateValue()	返回一系列指定为字符串的日期的数字
Day()	返回与指定系列数对应月的日期
Days360()	返回两个日期之间的天数（以一年代360天计算， 共十二个30天）
Hour()	返回指定系列数字中的小时数
Minute()	返回指定系列数字中的分钟数
Month()	返回指定系列数字中的月数
Now()	返回与当前日期和时间相对应的系列数
Second()	返回指定系列数字中的第二个数
Time$()	将一系列数字作为可选参数
TimeSerial()	返回指定为 小时, 分钟, 秒格式的时间的系列数字
TimeValue()	返回指定为字符串的时间的系列数字
Today()	返回与当前日期相对应的系列数字
Weekday()	返回与一周的时期相对应的数字，该周的日期由一系列数字指定
Year()	返回指定系列数字中的年数


Disk Access Statements and Functions
磁盘存取语句和函数

CountDirectories()	返回包含在指定目录中的子目录数
GetAttr()	返回对应于指定文件的文件属性的数字
GetDirectory$()	返回指定目录中子目录的名称
SetAttr	设置指定文件的文件属性


Environment Statements and Functions
环境语句和函数

Environ$()	返回与 MS-DOS 环境变量相关的字符串
GetSystemInfo	用运行 Word 的环境信息的变量备份填充字符串数组
GetSystemInfo$()	返回一条 Word 所运行环境的信息变量


Menu Customization Statements and Functions
菜单自定义语句和函数

CountMenuItems()	返回指定菜单中的所有菜单项，而不只是默认设置以外的内容
CountMenus()	返回指定类型的菜单数量
MenuItemMacro$(), MenuItemText$()	返回所有菜单项的信息，而不只是默认设置以外的内容。注意这些函数以前为 MenuMacro$() 和 MenuText$().
MenuText$()	返回快捷菜单名或菜单栏上菜单名，而不是菜单项的文本
ToolsCustomizeMenuBar	添加、删除或重新命名菜单栏上的菜单


Selection Statements and Functions
选定语句和函数

GetSelEndPos	返回与文档开头相关的选定内容结尾处的字符位置
GetSelStartPos	返回与文档开头相关的选定内容起始处的字符位置
GetText$()	返回两个指定字符位置之间的文字（不带格式）
SelectCurAlignment, SelectCurColor, SelectCurFont, SelectCurIndent, SelectCurSpacing, SelectCurTabs	扩展选定范围，直至遇到具有不同的对齐方式、颜色、字体、缩进、间距或制表位
SelectCurSentence	选定包含插入点的整个句子
SelectCurWord	选定包含插入点的整个单词
SetSelRange	选定与文档开头相关的两个指定字符之间的字符


String Functions
字符串函数

CleanString$()	修改非打印字符和特殊的 Word 字符（ANSI 字符代码 32）
DOSToWin$(), WinToDOS$()	(OEM) 字符集和 Windows 字符集之间的相互转换
LTrim$(), RTrim$()	删除指定字符串中不需要的首尾空格


Window Control Statements and Functions
窗口控制语句和函数

AppMaximize, AppMinimize, AppMove, AppRestore, AppSize	增加了一个可选参数用于指定活动窗口。 AppMove 和 AppSize 以点为度量单位 AppMaximize 、 AppMinimize 、AppRestore 有相应的函数。
AppWindowHeight, AppWindowWidth, DocWindowHeight, DocWindowWidth	在不改变宽度（高度）的情况下设置窗口高度（宽度）（以点为单位）。这些语句都有相应的函数。
AppWindowPosLeft, AppWindowPosTop, DocWindowPosLeft, DocWindowPosTop	在不改变垂直（水平）位置的情况下设置窗口的水平（垂直）位置（以点为单位）。这些语句都有相应的函数。


Miscellaneous Statements and Functions
其他语句和函数

CountDocumentVars(), GetDocumentVar$(), GetDocumentVarName$(), SetDocumentVar	管理文档变量。
FileNameInfo$()	返回指定文件的路径和（或）文件名。
GetPrivateProfileString$(), SetPrivateProfileString	把数值存入私有设置文件中；从私有设置文件中读取数值。
IsTemplateDirty()	返回一值，指明当前模板自上次保存后是否修改过。注意 IsDirty() 已改成 IsDocumentDirty()。
PathFromMacPath$()	把 Macintosh 路径和文件名转换成当前操作系统能识别的路径和文件名。
SaveTemplate	保存对共用模板和活动模板的修改
ScreenUpdating	指定当某个宏运行时，是否更新屏幕显示。
SelectionFileName$()	如果当前文档已保存过，返回其完整路径名和文件名。如果当前文档未保存过，或者活动窗口是宏编辑窗口，返回当前路径，后跟一个反斜杠（\）
SetTemplateDirty	设置模板的修改标志。注意 SetDirty 已改为SetDocumentDirty。
SortArray	将指定的数字和串数组按字母顺序排序。此函数主要用于在用户定义的对话框中对填充列表框的数组进行排序
Stop	增加一个参数用于指定暂停宏时不显示错误信息。
WaitCursor	把鼠标形状从指针改成沙漏光标，或把沙漏光标改成指针。


WordBasic Statements and Functions by Category
按类别划分的 WordBasic 语句和函数

此处按类别列出了 WordBasic 的关键字。当您知道要做哪些事情但不知需要用哪个命令来完成这项工作时，或者当您想学习有关的语句和函数时，可参考此部分。

应用程序控制

自动更正

自动图文集

基本文件输入/输出

书签

边框和图文框

转移和控制

项目符号和编号

字符格式

自定义

日期和时间

定义和声明

对话框定义和控制

磁盘读取和管理

文档、模板和加载项

绘图

动态数据交换(DDE)

编辑

环境

域

查找和替换

脚注、尾注和批注

表单

帮助

宏

邮件合并

移动插入点和选定

对象链接和嵌入

大纲和主控文档

段落格式

校对

节和文档格式

字符串和数字

样式格式

表格

工具

查看

窗口


Application Control Statements and Functions
应用程序控制

AppActivate

AppClose

AppCount()

AppGetNames, AppGetNames()

AppHide

AppInfo$()

AppIsRunning()

AppMaximize, AppMaximize()

AppMinimize, AppMinimize()

AppMove

AppRestore, AppRestore()

AppSendMessage

AppShow

AppSize

AppWindowHeight, AppWindowHeight()

AppWindowPosLeft, AppWindowPosLeft()

AppWindowPosTop, AppWindowPosTop()

AppWindowWidth, AppWindowWidth()

ControlRun

DDEExecute

DDEInitiate()

DDEPoke

DDERequest$()

DDETerminate

DDETerminateAll

DialogEditor

ExitWindows

FileExit

GetSystemInfo, GetSystemInfo$()

MicrosoftAccess

MicrosoftExcel

MicrosoftFoxPro

MicrosoftMail

MicrosoftPowerPoint

MicrosoftProject

MicrosoftPublisher

MicrosoftSchedule

MicrosoftSystemInfo

RunPrintManager

SendKeys

Shell


AutoCorrect Statements and Functions
自动更正

GetAutoCorrect$()

ToolsAutoCorrect

ToolsAutoCorrectDays, ToolsAutoCorrectDays()

ToolsAutoCorrectInitialCaps, ToolsAutoCorrectInitialCaps()

ToolsAutoCorrectReplaceText, ToolsAutoCorrectReplaceText()

ToolsAutoCorrectSentenceCaps, ToolsAutoCorrectSentenceCaps()

ToolsAutoCorrectSmartQuotes, ToolsAutoCorrectSmartQuotes()


AutoText Statements and Functions
自动图文集

AutoText

AutoTextName$()

CountAutoTextEntries()

EditAutoText

GetAutoText$()

InsertAutoText

Organizer

SetAutoText


Basic File Input/Output Statements and Functions
基本文件输入/输出

Close

Eof()

Input

Input$()

Line Input

Lof()

Open

Print

Read

Seek, Seek()

Write


Bookmarks Statements and Functions
书签

BookmarkName$()

CmpBookmarks()

CopyBookmark

CountBookmarks()

EditBookmark

EmptyBookmark()

ExistingBookmark()

GetBookmark$()

SetEndOfBookmark

SetStartOfBookmark


Borders and Frames Statements and Functions
边框和图文框

BorderBottom, BorderBottom()

BorderInside, BorderInside()

BorderLeft, BorderLeft()

BorderLineStyle, BorderLineStyle()

BorderNone, BorderNone()

BorderOutside, BorderOutside()

BorderRight, BorderRight()

BorderTop, BorderTop()

FormatBordersAndShading

FormatDefineStyleBorders

FormatDefineStyleFrame

FormatFrame

InsertFrame

RemoveFrames

ShadingPattern, ShadingPattern()

ViewBorderToolbar


Branching and Control Statements and Functions
转移和控制

Call

For...Next

Function...End Function

Goto

If...Then...Else

On Error

OnTime

Select Case

Stop

Sub...End Sub

While...Wend


Bullets and Numbering Statements and Functions
项目符号和编号

DemoteList

FormatBullet

FormatBulletDefault, FormatBulletDefault()

FormatBulletsAndNumbering

FormatDefineStyleNumbers

FormatMultilevel

FormatNumber

FormatNumberDefault, FormatNumberDefault()

PromoteList

RemoveBulletsNumbers

SkipNumbering, SkipNumbering()

ToolsBulletListDefault

ToolsBulletsNumbers

ToolsNumberListDefault


Character Formatting Statements and Functions
字符格式

AllCaps, AllCaps()

Bold, Bold()

CharColor, CharColor()

CopyFormat

CountFonts()

CountLanguages()

DottedUnderline, DottedUnderline()

DoubleUnderline, DoubleUnderline()

Font, Font$()

FontSize, FontSize()

FontSizeSelect

FontSubstitution

FormatAddrFonts

FormatChangeCase

FormatDefineStyleFont

FormatDefineStyleLang

FormatFont

FormatRetAddrFonts

GrowFont

GrowFontOnePoint

Hidden, Hidden()

Italic, Italic()

Language, Language$()

NormalFontPosition

NormalFontSpacing

PasteFormat

ResetChar, ResetChar()

ShrinkFont

ShrinkFontOnePoint

SmallCaps, SmallCaps()

Strikethrough, Strikethrough()

Subscript, Subscript()

Superscript, Superscript()

SymbolFont

ToolsLanguage

Underline, Underline()

WordUnderline, WordUnderline()


Customization Statements and Functions
自定义

AddButton

ChooseButtonImage

CopyButtonImage

CountKeys()

CountMenuItems()

CountMenus()

CountToolbarButtons()

CountToolbars()

DeleteButton

EditButtonImage

KeyCode()

KeyMacro$()

MenuItemMacro$()

MenuItemText$()

MenuMode

MenuText$()

MoveButton

MoveToolbar

NewToolbar

PasteButtonImage

RenameMenu

ResetButtonImage

SizeToolbar

ToolbarButtonMacro$()

ToolbarName$()

ToolbarState()

ToolsCustomize

ToolsCustomizeKeyboard

ToolsCustomizeMenuBar

ToolsCustomizeMenus


Date and Time Statements and Functions
日期和时间

Date$()

DateSerial()

DateValue()

Day()

Days360()

Hour()

InsertDateField

InsertDateTime

InsertTimeField

Minute()

Month()

Now()

OnTime

Second()

Time$()

TimeSerial()

TimeValue()

Today()

ToolsRevisionDate()

ToolsRevisionDate$()

Weekday()

Year()


Definitions and Declarations Statements and Functions
定义和声明

Declare

Dim

Let

Redim


Dialog Box Definition and Control Statements and Functions
对话框定义和控制

Begin Dialog...End Dialog

CancelButton

CheckBox

ComboBox

Dialog

DialogEditor

DlgControlId()

DlgEnable, DlgEnable()

DlgFilePreview, DlgFilePreview$()

DlgFocus, DlgFocus$()

DlgListBoxArray, DlgListBoxArray()

DlgSetPicture

DlgText, DlgText$()

DlgUpdateFilePreview

DlgValue, DlgValue()

DlgVisible, DlgVisible()

DropListBox

FilePreview

GetCurValues

GroupBox

InputBox$()

ListBox

MsgBox, MsgBox()

OKButton

OptionButton

OptionGroup

Picture

PushButton

Text

TextBox


Disk Access and Management Statements and Functions
磁盘读取和管理

ChDefaultDir

ChDir

Connect

CopyFile

CountDirectories()

DefaultDir$()

Files$()

GetAttr()

GetDirectory$()

Kill

MkDir

Name

RmDir

SetAttr


Documents, Templates, and Add-Ins Statements and Functions
文档、模板和加载项

AddAddIn, AddAddIn()

AddInState, AddInState()

ClearAddIns

Converter$()

ConverterLookup()

CopyFile

CountAddIns()

CountDocumentVars()

CountFiles()

CountFoundFiles()

DeleteAddIn

DisableInput

DocClose

DocumentStatistics

FileClose

FileCloseAll

FileConfirmConversions, FileConfirmConversions()

FileFind

FileList

FileName$()

FileNameFromWindow$()

FileNameInfo$()

FileNew

FileNewDefault

FileNumber

FileOpen

FilePageSetup

FilePrint

FilePrintDefault

FilePrintPreview, FilePrintPreview()

FilePrintPreviewFullScreen

FilePrintPreviewPages, FilePrintPreviewPages()

FilePrintSetup

FileRoutingSlip

Files$()

FileSave

FileSaveAll

FileSaveAs

FileSendMail

FileSummaryInfo

FileTemplates

FoundFileName$()

GetAddInID()

GetAddInName$()

GetAttr()

GetDocumentVar$()

GetDocumentVarName$()

InsertFile

Kill

LockDocument, LockDocument()

MacroFileName$()

Name

Organizer

PathFromMacPath$()

SaveTemplate

SelectionFileName$()

SetAttr

SetDocumentVar, SetDocumentVar()

ToolsOptionsFileLocations

ToolsOptionsPrint


Drawing Statements and Functions
绘图

DrawAlign

DrawArc

DrawBringForward

DrawBringInFrontOfText

DrawBringToFront

DrawCallout

DrawClearRange

DrawCount()

DrawCountPolyPoints()

DrawDisassemblePicture

DrawEllipse

DrawExtendSelect

DrawFlipHorizontal

DrawFlipVertical

DrawFreeformPolygon

DrawGetCalloutTextbox

DrawGetPolyPoints

DrawGetType()

DrawGroup

DrawInsertWordPicture

DrawLine

DrawNudgeDown

DrawNudgeDownPixel

DrawNudgeLeft

DrawNudgeLeftPixel

DrawNudgeRight

DrawNudgeRightPixel

DrawNudgeUp

DrawNudgeUpPixel

DrawRectangle

DrawResetWordPicture

DrawReshape

DrawRotateLeft

DrawRotateRight

DrawRoundRectangle

DrawSelect, DrawSelect()

DrawSelectNext

DrawSelectPrevious

DrawSendBackward

DrawSendBehindText

DrawSendToBack

DrawSetCalloutTextbox

DrawSetInsertToAnchor

DrawSetInsertToTextbox

DrawSetPolyPoints

DrawSetRange, DrawSetRange()

DrawSnapToGrid

DrawTextBox

DrawUngroup

DrawUnselect

FormatCallout

FormatDrawingObject

FormatPicture

InsertDrawing

SelectDrawingObjects

ToggleScribbleMode

ViewDrawingToolbar


Dynamic Data Exchange (DDE) Statements and Functions
动态数据交换(DDE)

DDEExecute

DDEInitiate()

DDEPoke

DDERequest$()

DDETerminate

DDETerminateAll

SendKeys


Editing Statements and Functions
编辑

AutoMarkIndexEntries

Cancel

ChangeCase, ChangeCase()

CopyText

DeleteBackWord

DeleteWord

EditClear

EditCopy

EditCut

EditFind

EditGoTo

EditLinks

EditObject

EditPaste

EditPasteSpecial

EditPicture

EditRedo

EditRepeat

EditReplace

EditTOACategory

EditUndo

ExtendMode()

Insert

InsertAddCaption

InsertAutoCaption

InsertBreak

InsertCaption

InsertCaptionNumbering

InsertColumnBreak

InsertCrossReference

InsertIndex

InsertPageBreak

InsertPageNumbers

InsertSpike

InsertSymbol

InsertTableOfAuthorities

InsertTableOfContents

InsertTableOfFigures

MarkCitation

MarkIndexEntry

MarkTableOfContentsEntry

MoveText

OK

Overtype, Overtype()

Spike

ToolsOptionsEdit


Environment Statements and Functions
环境

AppInfo$()

Beep

CommandValid()

DOSToWin$()

Environ$()

Err

Error

GetPrivateProfileString$()

GetProfileString$()

GetSystemInfo, GetSystemInfo$()

IsDocumentDirty()

IsExecuteOnly()

IsMacro()

IsTemplateDirty()

LockDocument, LockDocument()

MacroFileName$()

MicrosoftSystemInfo

ScreenRefresh

ScreenUpdating, ScreenUpdating()

SelInfo()

SelType, SelType()

SetDocumentDirty

SetPrivateProfileString, SetPrivateProfileString()

SetProfileString

SetTemplateDirty

ViewMenus()

WaitCursor

WinToDOS$()


Fields Statements and Functions
域

CheckBoxFormField

CountMergeFields()

DoFieldClick

DropDownFormField

EnableFormField

FormFieldOptions

GetFieldData$()

GetMergeField$()

InsertDateField

InsertDateTime

InsertField

InsertFieldChars

InsertFormField

InsertMergeField

InsertPageField

InsertTimeField

LockFields

MergeFieldName$()

NextField, NextField()

PrevField, PrevField()

PutFieldData

TextFormField

ToggleFieldDisplay

ToolsManageFields

UnlinkFields

UnlockFields

UpdateFields

UpdateSource

ViewFieldCodes, ViewFieldCodes()


Finding and Replacing Statements and Functions
查找和替换

EditFind

EditFindClearFormatting

EditFindFont

EditFindFound()

EditFindLang

EditFindPara

EditFindStyle

EditReplace

EditReplaceClearFormatting

EditReplaceFont

EditReplaceLang

EditReplacePara

EditReplaceStyle

RepeatFind


Footnotes, Endnotes, and Annotations Statements and Functions
脚注、尾注和批注

AnnotationRefFromSel$()

EditConvertAllEndnotes

EditConvertAllFootnotes

EditConvertNotes

EditSwapAllNotes

GoToAnnotationScope

InsertAnnotation

InsertFootnote

NoteOptions

ResetNoteSepOrNotice

ShowAnnotationBy

ViewAnnotations, ViewAnnotations()

ViewEndnoteArea, ViewEndnoteArea()

ViewEndnoteContNotice

ViewEndnoteContSeparator

ViewEndnoteSeparator

ViewFootnoteArea, ViewFootnoteArea()

ViewFootnoteContNotice

ViewFootnoteContSeparator

ViewFootnotes, ViewFootnotes()

ViewFootnoteSeparator


Forms Statements and Functions
表单

AddDropDownItem

CheckBoxFormField

ClearFormField

DropDownFormField

EnableFormField

FormFieldOptions

FormShading, FormShading()

GetFormResult(), GetFormResult$()

InsertFormField

RemoveAllDropDownItems

RemoveDropDownItem

SetFormResult

TextFormField

ToolsProtectDocument

ToolsProtectSection

ToolsUnprotectDocument


Help Statements and Functions
帮助

Help

HelpAbout

HelpActiveWindow

HelpContents

HelpExamplesAndDemos

HelpIndex

HelpKeyboard

HelpPSSHelp

HelpQuickPreview

HelpSearch

HelpTipOfTheDay

HelpTool

HelpUsingHelp

HelpWordPerfectHelp

HelpWordPerfectHelpOptions


Macros Statements and Functions
宏

CommandValid()

CountMacros()

DisableAutoMacros

IsExecuteOnly()

IsMacro()

KeyMacro$()

MacroCopy

MacroDesc$()

MacroFileName$()

MacroName$()

MacroNameFromWindow$()

MenuItemMacro$()

OnTime

Organizer

PauseRecorder

REM

ShowVars

ToolbarButtonMacro$()

ToolsMacro


Mail Merge Statements and Functions
邮件合并

CountMergeFields()

GetMergeField$()

InsertMergeField

MailMerge

MailMergeAskToConvertChevrons, MailMergeAskToConvertChevrons()

MailMergeCheck

MailMergeConvertChevrons, MailMergeConvertChevrons()

MailMergeCreateDataSource

MailMergeCreateHeaderSource

MailMergeDataForm

MailMergeDataSource$()

MailMergeEditDataSource

MailMergeEditHeaderSource

MailMergeEditMainDocument

MailMergeFindRecord

MailMergeFirstRecord

MailMergeFoundRecord()

MailMergeGotoRecord, MailMergeGotoRecord()

MailMergeHelper

MailMergeInsertAsk

MailMergeInsertFillIn

MailMergeInsertIf

MailMergeInsertMergeRec

MailMergeInsertMergeSeq

MailMergeInsertNext

MailMergeInsertNextIf

MailMergeInsertSet

MailMergeInsertSkipIf

MailMergeLastRecord

MailMergeMainDocumentType, MailMergeMainDocumentType()

MailMergeNextRecord

MailMergeOpenDataSource

MailMergeOpenHeaderSource

MailMergePrevRecord

MailMergeQueryOptions

MailMergeReset

MailMergeState()

MailMergeToDoc

MailMergeToPrinter

MailMergeViewData, MailMergeViewData()

MergeFieldName$()

ToolsAddRecordDefault

ToolsRemoveRecordDefault


Moving the Insertion Point and Selecting Statements and Functions
移动插入点和选定

AtEndOfDocument()

AtStartOfDocument()

Cancel

CharLeft, CharLeft()

CharRight, CharRight()

ColumnSelect

EditSelectAll

EndOfColumn, EndOfColumn()

EndOfDocument, EndOfDocument()

EndOfLine, EndOfLine()

EndOfRow, EndOfRow()

EndOfWindow, EndOfWindow()

ExtendMode()

ExtendSelection

GetSelEndPos()

GetSelStartPos()

GetText$()

GoBack

GoToAnnotationScope

GoToHeaderFooter

GoToNextItem

GoToPreviousItem

HLine

HPage

HScroll, HScroll()

Insert

LineDown, LineDown()

LineUp, LineUp()

NextCell, NextCell()

NextField, NextField()

NextObject

NextPage, NextPage()

NextWindow

OtherPane

PageDown, PageDown()

PageUp, PageUp()

ParaDown, ParaDown()

ParaUp, ParaUp()

PrevCell, PrevCell()

PrevField, PrevField()

PrevObject

PrevPage, PrevPage()

PrevWindow

SelectCurAlignment

SelectCurColor

SelectCurFont

SelectCurIndent

SelectCurSentence

SelectCurSpacing

SelectCurTabs

SelectCurWord

SelType, SelType()

SentLeft, SentLeft()

SentRight, SentRight()

SetSelRange

ShrinkSelection

StartOfColumn, StartOfColumn()

StartOfDocument, StartOfDocument()

StartOfLine, StartOfLine()

StartOfRow, StartOfRow()

StartOfWindow, StartOfWindow()

TableSelectColumn

TableSelectRow

TableSelectTable

VLine

VPage

VScroll, VScroll()

WordLeft, WordLeft()

WordRight, WordRight()


Object Linking and Embedding Statements and Functions
对象链接和嵌入

ActivateObject

ConvertObject

EditLinks

EditObject

EditPasteSpecial

EditPicture

FileClosePicture

InsertChart

InsertDatabase

InsertEquation

InsertExcelTable

InsertObject

InsertPicture

InsertSound

InsertWordArt


Outlining and Master Documents Statements and Functions
大纲和主控文档

CreateSubdocument

DemoteToBodyText

InsertSubdocument

MergeSubdocument

OpenSubdocument

OutlineCollapse

OutlineDemote

OutlineExpand

OutlineLevel()

OutlineMoveDown

OutlineMoveUp

OutlinePromote

OutlineShowFirstLine, OutlineShowFirstLine()

OutlineShowFormat

RemoveSubdocument

ShowAllHeadings

ShowHeadingNumber

SplitSubdocument

ViewMasterDocument, ViewMasterDocument()

ViewOutline, ViewOutline()

ViewToggleMasterDocument


Paragraph Formatting Statements and Functions
段落格式

CenterPara, CenterPara()

CloseUpPara

CopyFormat

FormatDefineStylePara

FormatDefineStyleTabs

FormatDropCap

FormatParagraph

FormatTabs

HangingIndent

Indent

InsertPara

JustifyPara, JustifyPara()

LeftPara, LeftPara()

NextTab()

OpenUpPara

ParaKeepLinesTogether, ParaKeepLinesTogether()

ParaKeepWithNext, ParaKeepWithNext()

ParaPageBreakBefore, ParaPageBreakBefore()

ParaWidowOrphanControl, ParaWidowOrphanControl()

PasteFormat

PrevTab()

ResetPara, ResetPara()

RightPara, RightPara()

SpacePara1, SpacePara1()

SpacePara15, SpacePara15()

SpacePara2, SpacePara2()

TabLeader$()

TabType()

UnHang

UnIndent


Proofing Statements and Functions
校对

CountToolsGrammarStatistics()

ToolsGetSpelling, ToolsGetSpelling()

ToolsGetSynonyms, ToolsGetSynonyms()

ToolsGrammar

ToolsGrammarStatisticsArray

ToolsHyphenation

ToolsHyphenationManual

ToolsOptionsGrammar

ToolsOptionsSpelling

ToolsSpelling

ToolsSpellSelection

ToolsThesaurus


Section and Document Formatting Statements and Functions
节和文档格式

CloseViewHeaderFooter

FormatAutoFormat

FormatColumns

FormatHeaderFooterLink

FormatHeadingNumber

FormatHeadingNumbering

FormatPageNumber

FormatSectionLayout

GoToHeaderFooter

InsertSectionBreak

ShowNextHeaderFooter

ShowPrevHeaderFooter

ToggleHeaderFooterLink

ToggleMainTextLayer

TogglePortrait

ToolsOptionsAutoFormat

ViewFooter, ViewFooter()

ViewHeader, ViewHeader()


Strings and Numbers Statements and Functions
字符串和数字

Abs()

Asc()

Chr$()

CleanString$()

InStr()

Int()

LCase$()

Left$()

Len()

LTrim$()

Mid$()

Right$()

Rnd()

RTrim$()

Selection$()

Sgn()

SortArray

Str$()

String$()

UCase$()

Val()


Style Formatting Statements and Functions
样式格式

CountStyles()

FormatDefineStyleBorders

FormatDefineStyleFont

FormatDefineStyleFrame

FormatDefineStyleLang

FormatDefineStyleNumbers

FormatDefineStylePara

FormatDefineStyleTabs

FormatStyle

FormatStyleGallery

NormalStyle

Organizer

Style

StyleDesc$()

StyleName$()


Tables Statements and Functions
表格

FieldSeparator$, FieldSeparator$()

InsertExcelTable

NextCell, NextCell()

PrevCell, PrevCell()

TableAutoFormat

TableAutoSum

TableColumnWidth

TableDeleteCells

TableDeleteColumn

TableDeleteRow

TableFormula

TableGridlines, TableGridlines()

TableHeadings, TableHeadings()

TableInsertCells

TableInsertColumn

TableInsertRow

TableInsertTable

TableMergeCells

TableRowHeight

TableSelectColumn

TableSelectRow

TableSelectTable

TableSort

TableSortAToZ

TableSortZToA

TableSplit

TableSplitCells

TableToText

TableUpdateAutoFormat

TextToTable


Tools Statements and Functions
工具

ToolsAdvancedSettings

ToolsCalculate, ToolsCalculate()

ToolsCompareVersions

ToolsCreateEnvelope

ToolsCreateLabels

ToolsCustomize

ToolsHyphenation

ToolsHyphenationManual

ToolsLanguage

ToolsMergeRevisions

ToolsOptions

ToolsOptionsAutoFormat

ToolsOptionsCompatibility

ToolsOptionsEdit

ToolsOptionsFileLocations

ToolsOptionsGeneral

ToolsOptionsPrint

ToolsOptionsRevisions

ToolsOptionsSave

ToolsOptionsUserInfo

ToolsOptionsView

ToolsProtectDocument

ToolsProtectSection

ToolsRepaginate

ToolsReviewRevisions

ToolsRevisionAuthor$()

ToolsRevisionDate()

ToolsRevisionDate$()

ToolsRevisions

ToolsRevisionType()

ToolsShrinkToFit

ToolsUnprotectDocument

ToolsWordCount


View Statements and Functions
查看

ClosePreview

CloseViewHeaderFooter

FilePrintPreview, FilePrintPreview()

FilePrintPreviewFullScreen

FilePrintPreviewPages, FilePrintPreviewPages()

Magnifier, Magnifier()

ShowAll, ShowAll()

ShowNextHeaderFooter

ShowPrevHeaderFooter

ToggleFull

TogglePortrait

ToolsOptionsView

ViewAnnotations, ViewAnnotations()

ViewBorderToolbar

ViewDraft, ViewDraft()

ViewDrawingToolbar

ViewEndnoteArea, ViewEndnoteArea()

ViewEndnoteContNotice

ViewEndnoteContSeparator

ViewEndnoteSeparator

ViewFieldCodes, ViewFieldCodes()

ViewFooter, ViewFooter()

ViewFootnoteArea, ViewFootnoteArea()

ViewFootnoteContNotice

ViewFootnoteContSeparator

ViewFootnotes, ViewFootnotes()

ViewFootnoteSeparator

ViewHeader, ViewHeader()

ViewMasterDocument, ViewMasterDocument()

ViewMenus()

ViewNormal, ViewNormal()

ViewOutline, ViewOutline()

ViewPage, ViewPage()

ViewRibbon, ViewRibbon()

ViewRuler, ViewRuler()

ViewStatusBar, ViewStatusBar()

ViewToggleMasterDocument

ViewToolbars

ViewZoom

ViewZoom100

ViewZoom200

ViewZoom75

ViewZoomPageWidth

ViewZoomWholePage


Windows Statements and Functions
窗口

Activate

AppActivate

AppClose

AppCount()

AppGetNames, AppGetNames()

AppHide

AppMaximize, AppMaximize()

AppMinimize, AppMinimize()

AppMove

AppRestore, AppRestore()

AppShow

AppSize

AppWindowHeight, AppWindowHeight()

AppWindowPosLeft, AppWindowPosLeft()

AppWindowPosTop, AppWindowPosTop()

AppWindowWidth, AppWindowWidth()

ClosePane

CountWindows()

DocClose

DocMaximize, DocMaximize()

DocMinimize, DocMinimize()

DocMove

DocRestore

DocSize

DocSplit, DocSplit()

DocWindowHeight, DocWindowHeight()

DocWindowPosLeft, DocWindowPosLeft()

DocWindowPosTop, DocWindowPosTop()

DocWindowWidth, DocWindowWidth()

ExitWindows

FileNameFromWindow$()

HelpActiveWindow

IsMacro()

NextWindow

OtherPane

PrevWindow

Window()

WindowArrangeAll

WindowList

WindowName$()

WindowNewWindow

WindowNumber

WindowPane()


Operators and Predefined Bookmarks
运算符和预定义书签

运算符

运算符概述

运算符优先级

算术运算符

字符串并置运算符

比较运算符

逻辑运算符

预定义书签

预定义书签


Operators
运算符概述

任何一个由运算符、变量、数字、字符串和 WordBasic 函数组成的有效表达式都可以得到一个唯一的结果。表达式的结果与所用的运算符类型和数值有关，可以是数字、字符串和逻辑值，其中数字 -1 和 0 （零）分别表示逻辑真和逻辑假。在 WordBasic 中，可用来组成表达式的运算符有四类：算术运算符、字符串并置运算符、比较运算符和逻辑运算符。本节按运算符的优选权顺序描述这四类运算符。


Operator Precedence
运算符优先级

当一个表达式中有几个运算符时，以预先定好的顺序对每一部分进行计算和求解，这种顺序即所谓运算符的优先级。括号可以用来越过优先级顺序，迫使表达式的某一部分比其他部分先计算。括号里的运算总是比括号外的先进行。

但是，在括号里，正常的运算符优先级仍然保持。当一个表达式包含多于一类运算符时，算术运算符（包括字符串并置运算符）先计算，其次计算比较运算符，最后是逻辑运算符。

在表达式里，乘法和除法运算先于加法和减法运算。当乘法和除法一起出现于表达式时，各个运算就从左到右以其出现的次序进行计算。类似地，当加法和减法同时出现于表达式时，各个运算也从左到右以其出现的次序进行计算。所有比较运算符的优先级相同，即它们以出现的顺序从左到右进行计算。

字符串并置运算符（ + ）不是一个真正的算术运算符，但在优先级上它处于算术运算符之后、比较运算符之前。


Arithmetic Operators
算术运算符

这些运算符用于产生一个数字值，该值可赋给变量，或者在输入、输出或循环中使用。

运算符	说明
- (负)	标明操作数的值是负的。操作数可以是任何数值表达式。
* (乘)	使两个数相乘。操作数可以是任何数值表达式。
/ (除)	使两个数相除。操作数可以是任何数值表达式。
MOD (模)	使两个数相除，只返回其余数。例如，表达式 19 MOD 7 （可读作 19 模 7 ）的结果是 5 。操作数可以是任何数值表达式。
+ (加)	使两个数相加。操作数可以是任何数值表达式。 注意 + 也是字符串并置运算符。
- (减)	求两个数的差。操作数可以是任何数值表达式。


The String Concatenation Operator
字符串并置运算符

字符串并置运算符用于链接文字字符串和字符串变量。

运算符	说明
+ (字符串并置)	使两个字符串并置。例如，"Microsoft " + "Word" 的结果是 "Microsoft Word"。您必须使要并置的字符串里包括空格，以免词或字符连在一起. 如果您用 Str$() 函数以字符串返回数字，请注意：该函数在正数前添加一个空格（例如， Str$(47) 返回 " 47"），但在负数前则不加（例如， Str$(-47) 返回 "-47"）。 请注意到 + 也是加法运算符。


Comparison Operators
比较运算符

比较运算符也称作关系运算符，它们用来比较两个表达式（数值表达式或字符串表达式），并返回真值（ -1 ）或假值（ 0 ），以便使用于 If 条件语句或 While...Wend 循环这样的控制结构中。下表列出了比较运算符及其取对值或错值的条件。

运算符	真	假
= (等于)	exp1 = exp2	exp1 <> exp2
<> (不等于)	exp1 <> exp2	exp1 = exp2
< (小于)	exp1 < exp2	exp1 >= exp2
> (大于)	exp1 > exp2	exp1 <= exp2
<= (小于或等于)	exp1 <= exp2	exp1 > exp2
>= (大于或等于)	exp1 >= exp2	exp1 < exp2


Logical Operators
逻辑运算符

这些运算符用于联合两个比较表达式，以创建一个返回真值（ -1 ）或假值（ 0 ）的复合表达式。

运算符	说明
AND	当且仅当两个表达式的值是真值时，结果是真值。如果其中任何一个表达式的值是假值，结果就是假值。结果这样决定： 真 AND 真 真 假 AND 真 假 真 AND 假 假 假 AND 假 假
OR	当两个表达式中的任何一个或者两个的值是真值时，结果是真值。结果这样决定： 真 OR 真 真 假 OR 真 真 真 OR 假 真 假 OR 假 假
NOT	结果这样决定： NOT 假 真 NOT 真 假 请注意，仅当操作数是比较或数字假值和真值（真是 -1 ，假是 0 （零））时，NOT 复合表达式才如上述计算。


Predefined Bookmarks
预定义书签

示例

Word 设置并自动更新一些保留的书签。您可以使用这些预定义书签，就如同您使用放进文档中的书签一样，除非您没有设置，且它们在“定位”对话框（“编辑”菜单）也没有列出。下表描述了 Word 中可以使用的预定义书签。

书签	说明
\Sel	当前选定内容或插入点。
\PrevSel1	最近编辑过的选定内容。定位到这个书签等价于运行 GoBack 语句一次。
\PrevSel2	最近倒数第二个编辑过的选定内容。定位到这个书签等价于运行 GoBack 语句两次.
\StartOfSel	当前选定内容的开始处。
\EndOfSel	当前选定内容的结束处。
\Line	当前行或当前选定内容的第一行。如果插入点在行尾（该行不能是段落的最后一行），则该书签包括整个次行。
\Char	当前字符，即紧接着插入点的字符（如果没有选定内容的话）或选定内容的第一个字符。
\Para	当前段落，即包含插入点的段落或选定内容的第一段者（如果选定了多于一段的内容）。请注意，如果插入点或选定内容在文档的最后一段， "\Para" 书签就不包括段落标记。
\Section	当前节，包括节尾处的分节符（如果有的话）。当前节包含插入点或选定内容。如果选定内容多于一节，“ \Section ”书签就是选定内容的第一节。
\Doc	整个活动文档的内容，最后一个段落标记除外。
\Page	当前页，包括页尾处的分页符（如果有的话）。当前页包含插入点。如果当前选定内容多于一页，“ \Page ”书签就是选定内容的第一页。请注意，如果插入点或选定内容在文档的最后一页，“ \Page ”书签就不包括最后一个段落标记。
\StartOfDoc	文档的开始。
\EndOfDoc	文档的结尾。
\Cell	表格中的当前单元格，即包含插入点的单元格。如果当前选定内容包括一个以上表格单元格，则“ \Cell ”书签是选定内容的第一个单元格。
\Table	当前表格，即包括插入点或选定内容的表格。如果选定内容包括一个以上表格，则“ \Table ”书签是选定内容中的整个第一个表格，即使并没有选中整个表格。
\HeadingLevel	包含插入点或选定内容的标题，加上其子标题和正文。如果当前选定内容是正文，则“ \HeadingLevel ”书签包括前一标题，加上该标题的子标题和正文。


预定义书签示例

下面的宏演示了预定义书签的典型运用。该宏在文档中从当前行起逐行移动，并从各行中删除前导空格。While...Wend 指令使用了“ \Sel ”（当前选定内容）和“ \EndOfDoc ”书签及 CmpBookmarks() 函数，来决定选定内容是否在文档结尾。到达文档结尾时，Word 显示一个提醒用户的信息。

Sub MAIN

StartOfLine

While CmpBookmarks("\Sel", "\EndOfDoc")

A$ = GetBookmark$("\Line")

B = Asc(A$)

If B = 32 Then DeleteWord

EndOfLine

CharRight

Wend

MsgBox "End of document."

End Sub

CmpBookmarks() 函数比较两个书签，根据书签的相对位置和大小返回一个差值。

有关 WordBasic 宏中使用的预定义书签的其他示例，请参阅 CmpBookmarks() 、CopyBookmark 、ParaDown 及 Select Case。


Macro Error Messages
错误信息

当您运行宏出现错误时，您可以按下 F1 或者在错误信息方框中选择“帮助”按钮，以得到更多信息。下面的两个列表，第一列是 WordBasic 错误信息，第二列是 Word 错误信息。它们包括您出错时可以使用的编号。有关出错的详细内容，请参阅On Error语句。

WordBasic 错误信息

错误编号	信息

5	非法的函数调用

6	溢出

7	内存不足

9	下标越界

11	除数为零

14	字符串空间不足

22	无效的数组维数

24	参数错误

25	（堆栈空间）内存不足

26	对话框必须有 End Dialog 或按钮

28	目录已经存在

39	缺少 CASE ELSE

51	内部错误

52	错误的文件名或文件号

53	文件未找到

54	错误的文件模式

55	文件已经打开

57	设备I/O错

62	读操作越过文件尾

64	错误的文件名

67	文件数目过多

74	文件被重命名到其它驱动器上

75	访问路径/文件错

76	路径未找到

100	语法错误

101	缺少逗号

102	命令失败

103	缺少对话记录变量

104	ELSE 没有对应的 IF

105	END IF 没有对应的 IF

109	缺少 INPUT

111	表达式过于复杂

112	缺少标识符

113	重复的标号

114	标号未找到

115	缺少右括号

116	参数数目不匹配

117	缺少 NEXT 或 WEND

118	嵌套的 SUB 或 FUNCTION 定义

119	NEXT 缺少对应的 FOR

120	数组已经声明

122	类型不匹配

123	未定义的对话记录域

124	未定义的命令、子程序或函数

125	宏非正常结束

126	WEND 缺少相应的 WHILE

127	维数错误

129	控制结构嵌套太多

130	SELECT 缺少相应的 END SELECT

131	对话框 REDIM 非法

132	外部调用导致串溢出

133	DLL 调用传递的参数类型或数目错误

134	函数参数包含非法的日期或时间

137	指定的路径是无效的路径选项

138	当前选定部分不能用此命令更改

139	不允许同时显示多个对话框

140	对话框控制标识符没有相应的控制

141	() 语句不能用于此类对话框控制

142	指定的应用程序并未处于运行状态

143	不允许隐藏或禁止正处于输入焦点的对话框控制

144	不能把输入焦点移到已隐藏或禁止的控制上

149	() 命令不能作为函数调用

150	对话框控制标识符已经定义

152	没有打开的文档，此命令无法使用

155	选定部分起始处不在域中

157	域中不能包含数据

158	有一个域的值太小

159	有一个域的值太大

160	参数数目不对

161	输入焦点改变（Action 值为4）时不能修改对话框

162	() 命令只能作为函数调用。

163	该语句只能在用户对话框激活后使用。

164	数组变量未初始化

500	无法初始化链接

501	无效的链路号

502	应用程序没有响应

503	进程在另一应用程序中执行失败

504	窗口不存在

505	无法激活应用程序

506	无法发送键码

508	另一应用程序忙

509	() 命令无效，因为 ()

511	无此命令或宏

512	值超过有效范围

513	字符串太长

514	文档未打开

528	无法装入拼写检查器

529	无法打开字典

530	对话框过于复杂

535	不允许运行此宏，因为此宏已运行

536	无此宏名

537	无法运行指定的宏

538	无法编辑指定的宏

539	无法更改指定宏的名称

540	无法删除指定的宏

541	无法设置指定宏的说明

543	无法打开指定的库

544	无法执行滚动命令，因为滚动条未激活

545	() 语句当前无法使用

546	如果编号不连续，脚注和尾注应从 1 开始

547	网络权限错误

549	指定的菜单或菜单项不存在

551	Word 无法执行此操作，因为指定模板已被锁定。

552	Word 无法执行此操作，因为指定模板不存在

553	无法创建指定的宏

554	没有设置绘图范围

555	为绘图范围指定的书签无效

556	图形对象类型与命令不符

557	无法插入图形对象

558	主控文档中至少有一个子文档已锁定，对已锁定的子文档不能进行任何修改

559	当前选定部分是一个文本块

560	修订标记不可见

561	文档已被保护

562	ToolsGrammarStatisticsArray 不能在包含多种语言格式的文档中运行

563	该文档不是主控文档

564	此方向没有子文档

565	指定的文档不在嵌入程序列表中

566	指定的 Word 库正在使用，不能卸除

567	添加的下拉列表项不能超过 25 项

568	指定的字体不存在

569	PatternMatch 和 SoundsLike 参数不能同时设置成 1

570	二维以上的数组无法排序

Word 错误信息

错误编号	信息

1001	内存不够。请现在就保存文档。

1003	您一次只可以指定一行、一个脚注、尾注、批注或域。

1005	书签不存在。

1006	您为一页、一行、一个脚注、尾注或批注输入了多个目的。

1008	Word 不能在此处插入分节符。

1009	书签名无效。

1011	没有足够的内存来编译索引。

1013	没有足够的内存来运行 DDE 应用程序。

1014	没有足够的内存来运行应用程序。

1016	没有足够的内存来完成操作。

1017	没有足够的内存来更新显示。

1018	没有足够的内存来定义自动图文集项。

1019	没有足够的内存来合并样式。

1020	没有足够的内存来显示大纲。

1021	没有足够的内存来显示标尺。

1022	您键入的名字是无效的自动图文集项。请在“标准”工具栏中使用“自动图文集”按钮，定义能够以一长串文本或图形插入的自动图文集项。

1023	在文件 () 上出现严重的磁盘错误。

1024	文件 () 是不可使用的。

1025	Word 不能打开文档。

1026	这个样式名不存在。

1027	没有足够的内存，Word 不能执行替换操作。

1028	搜索项没找到。

1029	没有足够的内存来显示或打印图片。

1030	裁剪之后尺寸太小或太大。

1031	改变大小之后尺寸太小或太大。

1032	文件太大，无法保存。请删除一些文本再试试。

1033	Word 不能使用 WINWORD6.INI 文件中指定的 DOT-PATH，因为它无效。

1034	Word 不能使用 WINWORD6.INI 文件中指定的 INI-PATH，因为它无效。

1035	Word 不能使用 WINWORD6.INI 文件中指定的 TOOLS-PATH，因为它无效。

1036	Word 不能启动转换器 ()。

1037	没有足够的内存来运行转换器。

1038	口令不对。Word 不能覆盖文档。

1039	没有有效的断字区量值。

1041	这个文档模板不存在。

1042	您所选择的左右页边距、栏间距或段落缩进设置对于某些节的页宽来说太大。

1043	这个制表位太大。

1044	Word 不能打印。没有安装打印机。

1045	这是无效的打印范围。

1046	由于当前打印机设置的问题，Windows 不能打印。

1047	没有足够的内存来重新分页或打印文档。

1048	Windows 需要更多的磁盘空间来打印这个文档。

1049	不能再打开窗口，除非关闭一个窗口。

1050	这是无效的数字。

1051	这是无效的量值。

1052	数字必须在 () 和 () 之间。

1053	量值必须在 () 和 () 之间。

1054	Word 不能写入文件 ()。

1055	文档名或路径名无效。

1056	这是无效的文件名。

1057	Word 不能给文档一个和打开的文档相同的名字。

1058	您不能保存模板文件到非模板格式中。

1059	这个文件是只读文件。

1060	Word 不能保存或创建这个文件。请检查磁盘是不是处于写保护状态。

1062	域套用得太深。

1066	没有足够的内存来运行 Word。

1069	Word 不能打开已存在的 ()。

1070	这是无效的日期。

1071	这是无效的样式名。

1072	样式表已满。Word 不能定义新的样式。

1073	您不能以样式自身为基础建立样式。

1074	“基于”样式名不存在或类型不对。

1075	“下一个”样式名不存在或类型不对。

1076	Word 不能从活动模板中合并样式表。

1077	这个样式名已存在或已保留为内部样式。

1078	找不到这个文件。

1079	没有足够的内存来存贮这么大的“剪贴板”。

1080	缩进尺寸太大。

1081	段落太宽。

1083	命令名必须有一个扩展名。

1084	Word 不能打开这个文档模板。

1085	文档模板无效。

1090	样式表已满。某些段落的样式可能会变成“标准”样式。

1091	Word 不能把文件插入到它自己里。

1093	没有足够的内存来运行同义词词典。

1094	Word 不能启动同义词词典。

1095	没有足够的内存来运行拼写检查器。

1097	Word 不能启动拼写检查器。

1103	Word 找不到文件 WORDCBT.CBT。

1104	这是无效的制表位。

1105	在这一段中设置了太多的制表位。

1106	一次清除的制表位太多。

1107	Word 未找到索引的 XE（索引项）域。

1108	Word 不能创建工作文件。

1109	WINWORD.OPT 文件无效。Word 将使用默认值。

1111	Word 不能打开结果窗口。请关闭一些打开的窗口再试试。

1112	您不能在其他域内插入 DATA、NEXT、NEXTIF 或 SKIPIF 域。

1113	在批注、页眉、页脚、脚注或尾注中，您不能包括 DATA、NEXT、NEXTIF 或 SKIPIF 域。

1114	DATA 域必须在 NEXT、NEXTIF 或 SKIPIF 域的前面。

1115	DATA 域不包含数据文件名。

1116	在域条件中有语法错误。

1117	Word 不能识别您键入的数据源中的文件名。

1118	Word 不能识别您键入的域名源中的文件名。

1119	所要求的记录超出邮件合并数据源结尾。

1120	有一个打印机错误。

1121	Word 不能改变打印机。没有安装打印机。

1122	“开始编号”方框内的编号无效。

1123	“格式”方框内的编号无效。

1124	“开始编号”和“格式”方框内的编号无效。

1125	Word 找不到目录的 TC（目录项）域。

1126	Word 打不到带标题样式的段落来包括在目录中。

1127	请先形成选定内容。

1128	这是无效的选定内容。

1129	文档太大，无法保存。请在保存之前删除一些文本。

1130	文档太大，Word 无法控制。

1132	内存不够。请关闭一个应用程序。

1133	这个搜索列表无效。

1134	这个搜索表达式无效。

1138	窗口太小。

1140	这是无效的尾注操作。

1142	Word 找不到修订标记。

1143	这个文档包含的样式太多。Word 删去了一些样式。

1144	Word 不能读入这个文档中的格式编排。

1145	Word 找不到脚注。

1146	Word 找不到批注。

1147	内存不够。复制的文本中字体可能不正确。

1151	Word 不能把包含分节符的文本移动到选定的目的。

1152	Word 不能把包含脚注、尾注或批注引用的文本移动到选定的目的。

1153	Word 不能替换脚注、尾注或批注引用。

1154	文档中编辑过多。这一操作无法完成。请保存您的工作。

1155	这是无效的行结尾操作。

1156	这是无效的脚注操作。

1157	Word 没有保存文档。

1158	原先的文件可能由于严重的磁盘错误而损坏。请用新的文件名保存它。

1159	您现在工作于没有 Word 工作文件的状态，且内存也快满了。请保存您的工作。

1160	Word 工作文件和内存都快满了。请保存您的工作。

1161	栏数超过最大值。

1162	宽度超过最大值。

1163	不能删除行结尾。

1164	您不能把这个选定内容插入到表格中。

1170	您不能把这个选定内容粘贴到表格中。

1172	Word 不能粘贴包含分节符的文本。

1175	“粘贴”命令失败，因为复制区和粘贴区形状不同。

1176	内存不够。请关闭多余的窗口并保存您的工作。

1177	文档名或路径无效。

1179	这是无效批注操作。

1180	数值超过范围。

1181	Word 不能创建工作文件。请检查临时环境变量。

1182	没有足够的内存来排序。

1183	Word 不能对选定内容中的域排序。

1184	Word 找不到有效的记录来排序。

1185	您想创建的样式基于太多的样式。

1186	内存不够。Word 将关闭已保存的文档。

1190	文件 () 中发生不可恢复的磁盘错误。

1191	往 () 写入时磁盘已满。请在本驱动器中释放一些空间或把文档保存到别的磁盘上。

1192	这个宏太大，Word 无法运行。请把它拆分为两个或更多个宏。

1193	模板 () 中的宏 () 太大，将被截短。若要完整地转换该宏，请在 Word for Windows 1.x 中编辑它，并把它拆分为两个或更多的宏。

1194	您不能关闭正在运行的宏。

1195	() 是无效的宏名或命令名。

1196	没有足够的内存来录制命令。

1198	不能运行 Word：Windows 或 MS-DOS 版本不对。

1200	Word 不能启动“示例”和“演示”。

1202	没有足够的内存来运行“示例”和“演示”。

1208	Word 不能重命名或删除为编辑而打开的宏。

1209	在录制宏时您不能编辑该宏。

1210	这个宏行太长。

1211	您不能录制为编辑而打开的宏。

1215	内存不够。请关闭多余的窗口再试试。

1217	一行或多行太宽，无法拆分。

1218	所录制的宏太长，已被截短。

1219	对此操作来说一行或多行太宽。

1220	Word 不能找到或运行应用程序。

1225	您不能复制或移动这个选定内容。

1226	内存不够。Word 不能显示所要求的字体。

1227	Word 不能打开图形文件。

1229	这一样式的“基于”列表是迂回的。

1234	将跳过带有不正确的域编号的记录。

1235	没有足够的内存来完成操作。

1236	内存不够。列表可能是不完整的。

1237	您不能退出 Microsoft Word，因为有一个对话是活动的。请先切换到 Microsoft Word，然后关闭该对话。

1240	您不能重新分页，除非安装一种打印机。

1241	Word for Windows 将打开一个 Word for OS/2 文档。（通过把该文档保存为 Word for Windows 文档，它可能完全从 Word for OS/2 转换过来。）

1245	Word 不能显示这种图片格式。

1246	指定数据类型不能使用。

1247	Word 不能启动文件转换器 ()，因为另一个 Word 操作正在使用它。

1248	Word 不能找到 () 对象的服务应用程序。请用“设置”程序安装服务应用程序。

1249	Word 不能得到 () 链接的数据。

1250	Word 不能改变指定键的功能。

1251	键名无效。

1255	拼写检查器正在使用。

1256	链接不存在。

1257	当文件正被另一个过程使用时您不能保存它。请试用新名字保存该文件。

1260	Word 不能保存这个文件，因为它已在别处打开。

1261	Word 不能打开这个文件，因为它正在另一个过程中被更新。

1262	您不能更改指定链接。

1263	您想打开的自定义字典太多。Word 一次最多可打开 10 个自定义字典。

1264	找不到服务应用程序、源文件或项目。请弄清应用程序是否安装合适，是否已删除、移动或重命名。

1265	用当前安装的打印机您不能改变打印方向。

1266	间距至少必须有 ()。

1267	Word 不能创建自定义字典 ()。

1268	Word 不能打开自定义字典 ()。

1269	Word 不能编辑 ()。

1270	Word 不能使用 WINWORD6.INI 中指定的 AUTOSAVE-PATH，因为它无效。

1271	Word 不能识别这种语言。

1272	没有足够的内存来运行 WordPerfect 用户的“帮助”。

1273	Word 不能启动 WordPerfect 用户的“帮助”。

1275	对象 () 已编辑锁定。

1276	在“查找”方框内没有下一个或格式编排。

1277	自定义字典已满。该词没添加进去。

1278	自定义字典 () 太大。请试试把它分为两半。

1279	发生一个拼写检查器错误。Word 将结束当前操作。

1280	自定义字典 () 是不可使用的。

1282	“位置”方框内的数字必须是正值。

1283	指定的图形过滤器不能识别这个文件。

1284	图形文件太长，无法转换。

1285	这个图形文件可能已损坏，不能转换。

1286	图形过滤器不能转换这个文件。

1287	Word 不能启动图形过滤器。

1289	语法检查器正在使用。

1290	没有足够的内存来运行语法检查器。

1291	Word 不能启动语法检查器。

1292	Word 不能读入这个文件。图形过滤器必须在 WIN.INI 文件中安装。

1293	Word 不识别对象 ()。

1295	找不到项目名 () 000() ()。

1297	设置不存在或不能删除。

1298	不能登记这个文档。

1299	路径列表已满。

1300	备份文件打开时 Word 不能保存文档。请清除备份选项或用新名字保存文档。

1302	操作被取消。

1304	没有足够的内存来对文档断字。

1305	Word 不能找到断字器文件的位置。

1306	文件查看器不能初始化。

1309	没有足够的内存来创建手写批注。

1310	计算之前请使列表分隔符和小数点分隔符不相同。

1311	同义词词典正在使用。

1312	口令不对。Word 不能打开文档。

1313	Word 不能使当前文档既进入邮件合并文档又进入数据文档。

1314	磁盘驱动器无效。

1315	路径无效。

1316	这一操作不能改变默认的页码格式。若要对本节改变默认的页码格式，请使用“插入页码”命令然后选择“格式”按钮。

1317	磁盘已满。

1318	没有足够的内存来显示“邮件合并”工具条。

1319	磁盘搜索失败。Word 已经恢复前一搜索路径。

1320	不能创建设置。

1321	目录无效。

1323	Word 不能找到 () ()。

1324	Word 不能对 () 找到 () ()。

1325	格式名包含无效字符。

1326	格式名太长。最大许可字符数为 253。

1327	Word 不能创建指定的目的文件。

1328	这个文件是空的或不包含图形影像。

1331	发生语法检查器错误。Word 将结束当前操作。

1332	路径不能包含句点作为路径元素。

1333	Word 不能启动“帮助”。

1334	您不能编辑链接结果或嵌入对象。

1335	Word 不能转换图形文件，因为在“文件打印”中没有选定打印机。

1336	Word 不能创建文件 ()，因为没有指定文件名。

1338	许可的最大域数为 31。

1339	Word 不能写入 WIN.INI 文件。

1340	目的文档没有接受更新。

1341	文件名无效或包含路径。

1342	图形文件可以通过从“插入”菜单中使用“图片”选项来插入。

1343	Word 正在给另一个文档断字。

1345	您不能用“查找文件”命令打印图形文件。

1346	您不能以数据或域名源来附加文档模板。

1347	发生断字错误。Word 将结束当前操作。

1348	发生同义词词典错误。Word 将结束当前操作。

1349	Word 不能使用 WINWORD.INI 文件中指定的 DOC-PATH，因为它无效。

1351	在“大纲视图”中 Word 不能搜索段落标记。

1352	Word 不能删除旧的备份文件，因为它是只读文件或另一用户已把它打开。

1353	Word 不能对 () 打开 () ()。

1354	编辑文本窗口的选定内容中字符太多。

1355	选定内容中包含用编辑文本窗口无法编辑的字符。

1356	Word 已完成搜索 ()。找不到搜索项。

1357	Word 已完成搜索 ()。

1358	Word 不能使用 WINWORD.INI 文件中指定的 PIC-PATH，因为它无效。

1359	目录名无效。

1360	您没有这一操作的网络许可。

1361	这个文件正在被另一应用程序或另一用户使用。

1362	打开的文件太多。

1363	不能删除当前工作目录。

1364	发生文件错误。

1366	在指定位置没有可用图片。

1367	建议名字的目录已经存在。

1368	建议名字的文件已经存在。

1369	Word 不能重命名文件。

1371	您必须对自定义脚注或尾注标记键入一些文本。

1372	自动图文集名字无效。

1373	自动图文集名字已经存在。

1374	宏名无效。

1375	宏名已经存在。

1376	管理器不能重命名 () ()。

1377	内部 () () 不能删除。

1378	内部样式不能重命名。

1380	口令太长。

1381	Word 在试图显示“连接网络”对话框时检测到错误。

1382	没有足够的内存来编辑宏。

1383	您不能关闭 Microsoft Word，因为还有一个对话是活动的。请先切换到 Microsoft Word 并关闭该对话。

1385	没有足够的内存来转换这个文件中的宏。

1386	管理器不能复制 () ()。

1387	Word 不能确定目的。

1388	Word 不能添加项目，因为自动更正项不能空白。

1389	口令不对。

1391	由于文件许可错误，Word 不能完成保存。

1392	不能添加，因为自动更正项限制在 31 个字符长。

1394	不能添加自动更正项，因为内存不够。

1395	自动更正不能替换包含空格字符的文本。请删除空格，或者以其他字符替换它。

1396	Word 不能在当前目录下保存语言设置。

1397	活动文档是无效邮件合并主文档。

1398	Word 不曾更新源文件。

1399	下拉式列表表单域在其列表中至少必须有一个项目。

1400	请检查软盘驱动器，确保驱动器门是关闭的，且内装正确的磁盘。

1402	没在足够的内存来保存整个“全部忽略”列表。

1405	文档是锁定的，不能打开。

1406	磁盘已满或打开的文件太多。

1407	Word 不能用包含分隔符的文本替换找到的项目。

1408	这个版本的拼写检查器不懂自定义目录 () 的语言格式编排。

1409	栏宽不能小于 ()。

1410	发现一栏或多栏或栏间距为零宽度，已删除。

1411	至少必须定义一个栏。

1412	链接的文档 () 不可使用。

1413	这个样式名不存在。

1414	您不能把绘图对象放入正文框、图注、批注、脚注、尾注或宏中。

1415	申请的信封尺寸无效。

1419	某些节的页高大于最大许可页高。

1420	上/下页边距对于某些节的页高来说太大。

1422	增加左页边距导致某些节的第一栏太窄，使各栏分配不均。

1423	增加右页边距导致某些节的最后一栏太窄，使各栏分配不均。

1424	网络驱动器不能连接，因为没有空余的驱动器字母。

1425	没有口令不能进入网络驱动器。

1426	网络路径无效。

1427	网络口令无效。

1428	Word 已完成搜索 ()。() 各替换结束。

1429	Word 已完成搜索 ()。() 替换结束。

1431	() 是无效的 () 动态链接库。

1432	() 不是 () 动态链接库的正确版本。

1433	没有足够的内存来对菜单作指明的改变。

1434	Word 不能找到指定的菜单。

1435	本页没有页眉层次。将显示所有可用的层次。

1436	编号必须在 () 和 () 之间。

1437	这个项目标签无效。

1438	下拉式列表方框内您所使用的项目不能多于 25 个。

1439	Word 不能合并这些文档或插入到这个数据库中。

1440	这个命令只有从宏中才能用。

1441	自动更正项不存在。

1442	Word 不能把文档缩减一页，因为文档已经只有一页。

1443	几经努力，Word 不能把文档缩减一页。

1444	Word 未能成功地把图片元文件转换为绘图对象。

1445	没有足够的系统资源来完成操作。

1446	新的工具栏必须有一个名字。

1447	公式是空的。

1448	这个项目的默认目录不能是软盘驱动器。请在硬盘上选择一个目录。

1449	那个工具栏已存在于指定的上下文中。请选择一个不同的名字。

1450	文档包含这个版本的 Word 所不支持的字符集。

1451	Word 找不到作者目录的 TA（作者目录项）域。

1452	Word 不能打开 () 作为数据或域名源，因为它不包含数据。

1453	您所选择的名字已被内部工具栏使用。请选择不同的名字。

1454	Word 不能保存邮件文件。

1455	新菜单名不能与已存在的菜单名相同。

1456	选定内容不是由标题层次组成的。

1457	解除锁定的子文档已存在于另一个主控文档中。

1458	文件不能用写优先权打开。

1459	需要保存主控文档。请现在就保存它，然后再试一下操作。

1460	Word 未能保存子文档。请试试完全保存主控文档。

1461	未知的邮件地址。

1462	二义性邮件地址。两人或多人的邮件地址与指定地址相同。

1463	Word 未能邮走您的文档。

1464	“查找内容”文本中包含无效的“图案匹配”表达式。

1465	域分界符不能与记录分界符相同。

1466	对这个标签表来说行值或栏值太大或太小。

1467	页边距、标签大小和纵横编号值使页面超过标签页大小。

1468	水平和垂直间距必须分别大于或等于标签宽度和高度。

1469	标签宽度和高度必须为正值。

1470	Word 不能识别您所指定的域和记录分界符。

1471	这个保存格式无效。

1472	只有当文档与打开的文档同名时 Word 才能以表单数据保存它。

1473	MACRO 域宏 () 是不可使用的。

1474	Word 不能打印，因为没有选定的默认打印机。请选定打印机。

1475	您的邮件系统不支持文档传递所需要的某种服务。

1476	邮件操作太多。请注销其他的邮件操作然后再试试。

1477	一般邮件失败。请关闭 Microsoft Windows，重新开始邮件系统，然后再试试。

1478	输入项是空的。

1479	未发现引用。

1480	不能使用“更新源”命令来更新主控文档。

1481	Word 不能对另一个驱动器重命名文件。

1482	“好象是”搜索的“查找内容”文本只能包含非强调的字母序字母。

1483	Word 找不到标题来包括图片目录。

1484	Word 找不到它的帮助文件 (WRDHLP32.DLL)。您可以用 Word 的“设置”程序安装帮助文件。

1485	操作不能完成，因为主控文档所包含的子文档层次不能大于 9。

1486	已发生网络或文件许可错误。网络连接可能丢失。

1487	打开的文件太多。请关闭一个窗口。

1488	打开的 DDE 通道太多。请关闭一个窗口。

1489	打开的 Word 文档太多。请关闭一个窗口。

1490	模板不能自定义化，因为它已编辑锁定。

1491	在目的文档中样式 () 系指多于一个样式。

1492	这个菜单项是 Word 自动添加的，不能从菜单中删除。

1493	当 Word 检测到工具已安装时就自动添加证实工具菜单项。这个项目不能从菜单中删除。

1494	“查找内容”文本包含无效的范围。

1495	这个命令只支持表格和段落分界列表。

1496	记录 () 包含的的域分界符（ () ）太多。

1497	记录 () 包含的的域分界符（ () ）太少。

1498	Word 找不到尾注。

1499	不能载入 Word “加载”。

1500	“起始编号”在这种格式中必须在 () 和 () 之间。

1502	Word 不能附加文档到保护模板上。

1503	你不能录制宏到锁定文件中。

1504	没有标记索引目录项。

1505	Word 不能插入没有选定域名的数据库。

1506	Word 不能更新索引。

1507	不能插入子文档 ()，因为它是当前主控文档，或者它把当前主控文档当作子文档进行包含。

1508	最大长度值必须等于或大于默认文本 () 字符长度。

1509	Word 不能在域代码或域结果内创建子文档。

1510	Word 不能在表格内创建子文档。

1511	Word 不能在图文框内创建子文档。

1512	() 不是样式名。

1513	() 系指多于一个样式。

1515	Word 不能复制样式 ()，因为它与不同类型的样式匹配。

1516	没有图形过滤器 Word 不能显示 Macintosh 图片。

1517	Word 不能查找指定菜单项。

1518	不能重命名或删除宏 ()，因为它因编辑或录制目前已打开。

1519	Word 不能载入“按钮编辑器”COMMTB.DLL。

1520	在您的系统上没有安装邮件。

1521	Word 已为这条信息选择路径。请重新设置传递名单然后再试试。

1522	Word 完成这个文档的传递之前不能运行宏。

1523	Word 文档没有传递名单。请添加传递名单，然后再试试。

1524	Windows 不能打开 Word for the Macintosh 图文集文件。

1525	Word 未能更新源文件，因为它已被保护或者它是打开的子文档。

1526	您必须为自定义分隔符键入一个字符。

1527	“替换为”文本包含超过范围的分组编号。

1528	() 是无效的“替换为”方框特殊字符。

1529	() 是无效的“查找内容”方框特殊字符。

1530	当前选定内容包含无效的表格或列表。

1531	Word 不能读入这个文档中的页眉或页脚。请以 Rich 文字格式保存它，关闭它然后再打开它。

1533	文件名列表太长。Word 不能一次打开这么多文件。

1534	Word 不能合并可由没有有效邮件地址的邮件或传真分配的文档。请选择“设置”按钮，选定邮件地址数据域。

1535	Word 未能把主文档和数据源合并，因为数据记录是空的或者没有数据记录与您查询的选项匹配。

1536	Word 不能找到或运行“打印管理器”。

1537	要求有效的日期或时间。

1538	要求有效的数字。

1539	Word 找不到带有编辑图表目录所需要的样式的段落。

1540	Word 找不到带有编辑目录所需要的样式的段落。

1541	Word 找不到图表目录的 TC（目录项）域。

1542	Word 未能对您进入有效 SQL 字符串的查询选项进行语法分析。

1543	在“文字之前”和“文字之后”方框内您键入的字符不能多于 32 个。

1544	Word 未能重建到 () 的 DDE 连接，以完成当前任务。

1545	这是无效的文件名 '()。

1546	Word 未能从活动数据源中检索出 SQL 字符串。

1547	这个文档不能在“管理器”对话框中打开。

1548	这项命令的默认菜单不存在。请使用“自定义化”命令把此命令添加到菜单中。

1549	Word 已增加信封高度或宽度，因为它太小。最小信封尺寸是 6.4×2.13 英寸。

1550	这个工具栏名无效。

1551	这个工具栏名已经存在。

1552	内部样式“标准”和“默认段落字体”不能作为任何样式的基础。

1553	Word 未能打开 ()，因为它不包含有效数据库。

1554	这个命令不可使用，因为没有用“表单”工具栏或“插入表单域”对话框插入表单域。

1555	Word 不能切换应用程序。

1556	Word 未能找到或启动 ()。

1557	管理器未能删除 () ()。

1558	() () 不存在。

1559	Word 未能从上次操作中恢复自动保存文档。

1560	Word 未能用指定数据库替换选定内容。

1561	Word 不能启动语法检查器。

1562	没有标记引用。

1563	Word 不能以数据源或域名源打开 ()，因为它是邮件合并主文档。

1564	文档不能锁定。

1565	您不能直接把合并文档所创建的分类发送到邮件、传真或打印机。

1566	Word 未能合并这些文档或插入这个数据库。

1567	您的系统上没有安装 Microsoft Mail Local Fax。

1568	Windows 注册数据库文件无效。您可以用 Word 的“设置”程序来更正它。

1569	Word 不能载入 OLE 2.0 或 Docfile 库。

1570	没有足够的可用磁盘空间来运行 Word。

1571	您不能把表单域粘贴到批注、页眉、页脚、脚注、尾注或正文框内。

1572	这个文档中的格式编排太复杂。请现在就完全保存文档。

1573	撤消操作被子文档或主控文档中的锁定所阻止。

1574	操作被子文档或主控文档中的锁定所阻止。

1575	要求有效的日期格式。

1576	要求有效的数字格式。

1577	“加载”模板无效。

1578	这个键名对排序无效。请从列表中键入或选择另一个键。

1579	Word 不能对这个表格或选定内容排序，因为它的所有行都是表格标题。

1580	Word 不能识别这些数字，原因是 Windows 所用的列表分隔符、编号格式或货币格式设置。若要查看当前设置，请在 Windows “控制面板”中双击“国别设定”图标。

1581	Word 不能启动“快速预览”。

1582	不能定位到所要求的书签。

1583	您的复杂查询选项产生的 SQL 字符串太长，Access 1.0 无法操纵。请升级到 Microsoft Access 的较晚版本，以运行查询选项。

1584	Word 不能对 Microsoft Access 查询项排序。您需要对 Microsoft Access 中的查询排序。

1585	Normal.dot 已经作为“加载”打开。

1586	Word 将打开 Word for Windows 1.x 模板。不能转换 Word for Windows 1.x 中的宏，如果这个文件以 Word for Windows 6.0 格式保存，宏将丢失。

1587	在页面上的绘图对象太多，无法更新显示。

1588	您不能把分节符放入页眉、页脚、脚注、尾注、批注、正文框、图注或宏中。

1589	操作不能完成，因为子文档在另一个窗口中已打开。

1590	操作不能完成，因为子文档比主控文档的保护率更高。请用“工具保护”提高主控文档的保护率。

1591	操作不能完成，因为主控文档或子文档在其内部已打开嵌入对象。请更新和关闭这些对象。

1592	Word 不能进行所请求的网络连接。

1593	在表单域中字符太多。

1594	选定内容被标记为删除的文本。

1595	Word 不能搜索“主控文档视图”中的段落标记。

1596	() 是无效的“查找内容”方框特殊字符，或者当选定“使用模式匹配”复选框时它不被支持。

1597	没有足够的内存来初始化菜单。请保存所有变化，然后关闭 Word。

1598	您不能编辑文档中没有保存的图片。

1599	选定的绘图对象将不适于单个分组。

1600	这一操作不可使用，因为“自动格式编排器”对话正在运行。

1601	Word 不能插入数据库，因为您的查询选项产生了空结果。

1602	Word 不能以域名文件打开 ()，因为它不能转换为当地 Word 文件。


AllCaps 示例

如果选定内容的一部分是全部大写格式，那么本示例将整个选定内容改为全部大写格式。

If AllCaps() = -1 Then AllCaps 1


AllCaps, AllCaps()

示例

AllCaps [On]

AllCaps()

AllCaps 语句添加或删除当前选定内容的全部大写字符格式或者控制将要在插入点处插入的字符的全部大写格式。

参数	解释
On	指定是添加还是删除全部大写格式： 1 将选定内容改为全部大写格式 0 删除所有的全部大写格式 省略    切换全部大写格式
AllCaps() 函数返回下列数值。

数值	解释
0 (zero)	如果选定内容中不是全部大写格式，则返回 0
-1	果选定内容的一部分是全部大写格式，则返回 -1
1	如果所有选定内容都是全部大写格式，则返回 1
_____________

请参阅

字符格式

FormatFont


Bold 示例

如果选定内容的一部分为粗体格式，那么本示例将整个选定内容改为粗体格式。

If Bold() = -1 Then Bold 1


Bold, Bold()

示例

Bold [On]

Bold()

Bold 语句添加或删除选定内容的粗体字符格式，或者控制将要在插入点处插入的字符的粗体格式。

参数	解释
On	指定是添加还是删除粗体格式： 1 将选定内容改为粗体格式 0 将选定内容中的粗体格式删除 省略    切换粗体格式
Bold() 函数返回下列数值。

数值	解释
0	如果选定内容中没有粗体格式，则返回 0
-1	如果选定内容中一部分是粗体格式，则返回 -1
1	如果所有选定内容都是粗体格式，则返回 1
_____________

请参阅

字符格式

FormatFont


CharColor 示例

本示例选择当前段落（使用预定义的书签“ \ Para”），如果当前段落中包含字符串“Comments: ”，那么将字符的颜色改为紫红色。

EditGoTo "\Para"

If InStr(Selection$(), "Comments: ") Then CharColor 5


CharColor, CharColor()

示例

CharColor Color

CharColor()

CharColor 语句将选定内容的字符的颜色改为指定颜色，其中 Color 参数为下列数字代码之一。

Color	解释
0 (zero)	自动，在 Windows 的控制面板中指定
1	黑
2	蓝
3	青兰
4	绿
5	紫红
6	红
7	黄
8	白
9	深兰
10	深青兰
11	深绿
12	深紫红
13	深红
14	深黄
15	暗灰
16	浅灰
CharColor() 函数返回 CharColor 语句设置相同的数字代码，如果选定文本的颜色不一致，则返回 -1。

_____________

请参阅

字符格式

FormatFont

SelectCurColor


CopyFormat 示例

本示例将当前段落（用预定义的书签“ \ Para”选定）的第一个字符的格式编排复制到上一段落上：

EditGoTo "\Para"

CopyFormat

ParaUp 2

ParaDown 1, 1

PasteFormat


CopyFormat

示例

CopyFormat

将选定文本的第一个字符的字符格式编排复制到另一个选定文本上。如果选定内容包括段落标志，那么 Word 在复制字符格式编排的同时复制段落格式编排。要让 CopyFormat 正常运行，宏指令必须首先选定一个范围，紧接着执行 CopyFormat 指令，然后再选择一个新的内容。最后用 PasteFormat 语句使用此格式编排。

_____________

请参阅

字符格式

CopyText

PasteFormat


CountFonts() 示例

本示例创建一个新的文档，然后将当前打印机的名称以及可用字体的列表插入到该文档中：

Dim dlg As FilePrintSetup

GetCurValues dlg

FileNewDefault

Bold 1 : Insert dlg.Printer

InsertPara : Bold 0

For count = 1 To CountFonts()

Insert Font$(count)

InsertPara

Next


CountFonts()

示例

CountFonts()

返回选定打印机的可用字体的数目。这个字体数目就是列在“字体”对话框（“格式”菜单）中的字体数目，或者是列在“格式”工具栏的字体列表中的字体数目。

字体列表包括安装在打印机上的字体，以及 TrueType 字体（如果安装了的话）和 Windows 的系统字体。

_____________

请参阅

字符格式

Font


CountLanguages() 示例

本示例用可用的语言格式的列表填写数组 langnames$() ：

Dim langnames$(CountLanguages())

For count = 1 To CountLanguages()

langnames$(count) = Language$(count)

Next


CountLanguages()

示例

CountLanguages()

返回可用的语言格式的数目，其中包括“无校对”格式（用指令 Language "0" 设置）以及任何语言格式的空缺（用指令 Language "(none)" 设置）。有关正确的外语名称列表，请参阅 ToolsLanguage。

_____________

请参阅

字符格式

Language

ToolsLanguage


DottedUnderline, DottedUnderline()

DottedUnderline [On]

DottedUnderline()

DottedUnderline 语句添加或删除选定文本的下划线字符格式，或者用来控制将要在插入点处插入的字符的下划线格式。

参数	解释
On	指定是添加还是删除下划线格式： 1 将选定内容的格式改为下划线格式 0 将选定内容的下划线格式删除 省略    切换下划线格式
DottedUnderline() 函数返回下列数值。

数值	解释
0	如果选定内容中没有下划线格式，则返回 0
-1	如果选定内容中的一部分是下划线格式，则返回 -1
1	如果所有选定内容都是下划线格式，则返回 1
_____________

请参阅

字符格式

DoubleUnderline

FormatBordersAndShading

FormatFont

Underline


DoubleUnderline, DoubleUnderline()

DoubleUnderline [On]

DoubleUnderline()

DoubleUnderline 语句添加或删除当前选定文本的双下划线格式，或者控制在插入点处插入的字符的双下划线格式编排。

参数	解释
On	指定是添加还是删除双下划线格式： 1 将选定内容改为双下下划线格式 0 将选定内容的双下划线格式删除 省略    切换双下划线格式
DoubleUnderline() 函数返回下列数值。

数值	解释
0	如果选定内容中没有双下划线格式，则返回 0
-1	如果选定内容中的一部分是双下划线格式，则返回 -1
1	如果所有选定内容都是双下划线格式，则返回 1
_____________

请参阅

字符格式

DottedUnderline

FormatBordersAndShading

FormatFont

Underline


Font 示例

本示例选定含有插入点的段落（使用预定义的书签“ \ Para”）然后将该段落字体改为 8 磅 Courier 的字体：

EditGoTo "\Para"

Font "Courier", 8

如果含有插入点的段落包含多种字体，那么下例示例显示一个消息框：

EditGoTo "\Para"

If Font$() = "" Then

MsgBox "Paragraph contains more than one font."

End If


Font, Font$()

示例

Font Name$ [, Size]

Font$()

Font$(Count)

Font 语句将选定内容改为指定字体。

参数	解释
Name$	要使用的字体的名称
Size	字体的大小，以磅为单位。您可以用这个参数达到与在 Font 指令后跟 FontSize 指令相同的效果。
Font$() 函数返回选定内容所使用的字体的名称。如果选定内容包含有多种字体，那么返回一个空字符串 ("") 。如果指定了参数 Count ，那么 Font$() 函数返回当前字体表中位置 Count 的字体的名称，其范围是 1 到 CountFonts() 函数的返回值。

_____________

请参阅

字符格式

CountFonts()

FontSize

FormatFont


FontSize, FontSize()

FontSize Size

FontSize()

FontSize 语句以磅为单位放置选定文本的字体大小。

FontSize() 函数返回选定文本的字体大小。如果选定文本含有多种字体大小，那么返回 0。

_____________

请参阅

字符格式

Font

FontSizeSelect

FormatFont


FontSizeSelect

FontSizeSelect

如果“格式”工具栏已经显示出来，那么移动焦点到“字体大小”框上；否则，显示“字体”对话框（“格式”菜单），选择“字体”选项卡，然后将焦点移到“磅值”框中。

_____________

请参阅

字符格式

Font

FontSize

FormatFont


FontSubstitution

FontSubstitution .UnavailableFont = text, .SubstituteFont = text

设置活动文档的字体映象选项 FontSubstitution 设置活动文档的字体映象选项…语句的参数对应于“字体替换”对话框（工具”菜单，“选项”对话框，“兼容性”选项卡）中的选项。

参数	解释
.UnavailableFont	字体名称，该字体在您的计算机上不能显示，而您想将它映象到另一种不同的字体上以供显示和打印。
.SubstituteFont	字体名称，该字体在您的计算机上是可用的，并且您想将它作为另一种不能使用的字体的替代字体。
_____________

请参阅

字符格式

ToolsOptionsCompatibility


FormatAddrFonts

FormatAddrFonts [.Points = number] [, .Underline = number] [, .Color = number] [, .Strikethrough = number] [, .Superscript = number] [, .Subscript = number] [, .Hidden = number] [, .SmallCaps = number] [, .AllCaps = number] [, .Spacing = number] [, .Position = number or text] [, .Kerning = number] [, .KerningMin = number or text] [, .Default] [, .Tab = number] [, .Font = text] [, .Bold = number] [, .Italic = number]

设置信封上的地址的字符格式编排。在 ToolsCreateEnvelope 语句之前执行 FormatAddrFonts 语句，指定与“字体”对话框（“格式”菜单）中选项相对应的选项。 .Default to 参数用来存贮您指定为地址的默认的字符格式编排的选项。有关参数的描述，请参阅 FormatFont。

_____________

请参阅

字符格式

FormatFont

FormatRetAddrFonts

ToolsCreateEnvelope


FormatChangeCase

FormatChangeCase [.Type = number]

根据指定类型的大小写来改变选定文本的大小写。FormatChangeCase 语句的参数对应于“更改大小写”对话框（“格式”菜单）中的选项。

参数	解释
.Type	要使用的大小写类型： 0 或省略    句子格式的大小写格式（将每个选定语句的第一个字母改为大写）。 1 小写（将所有选定字符改为小写）。 2 大写（将所有选定字符改为大写）。 3 首字母大写（将每个选定词的首字母大写）。 4 大小写转换（切换每个选定字符的大小写格式）。
_____________

请参阅

字符格式

AllCaps

ChangeCase

LCase$()

SmallCaps

UCase$()


FormatFont 示例

本示例演示如何通过指定一种文本量值在 FormatFont  twips 或磅的量值。本指令将选定字符放置在高于基准线 0.25 厘米和位置上。

FormatFont .Position = ".25 cm"


FormatFont

示例

FormatFont [.Points = number] [, .Underline = number] [, .Color = number] [, .Strikethrough = number] [, .Superscript = number] [, .Subscript = number] [, .Hidden = number] [, .SmallCaps = number] [, .AllCaps = number] [, .Spacing = number] [, .Position = number or text] [, .Kerning = number] [, .KerningMin = number or text] [, .Default] [, .Tab = number] [, .Font = text] [, .Bold = number] [, .Italic = number]

对选定文本使用字符格式编排。 FormatFont 语句的参数对应于“字体”对话框（“格式”菜单）中的选项。

参数	解释
.Points	字体的大小，以磅为单位。
.Underline	使用的下划线类型： 0 无 1 单线 2 只在字下加下划线 3 双线 4 点线
.Color	文本颜色（如果您想查阅颜色列表，那么请参阅 CharColor）。
.Strikethrough	如果是 1，则使用删除线格式编排。
.Superscript	如果是 1，则使用上标编排格式。
.Subscript	如果是 1，则使用下标编排格式。
.Hidden	如果是 1，则使用隐藏编排格式。
.SmallCaps	如果是 1，则使用小型大写字母编排格式。
.AllCaps	如果是 1，则全部使用大写字母编排格式。
.Spacing	指定字符间距，以 twips 为单位（20 twips = 1 点，72点 = 1 英 寸）或者以一种文本度量为单位： 0 标准间距 >0 加宽指定间距 <0 紧缩指定间距
.Position	字符相对于基准线的位置，以 0.5 磅或者一种文本度量值为单位： 0 标准位置 >0    提升指定距离 <0    降低指定距离
.Kerning	如果是 1，则允许自动字距调整（字符间距）。
.KerningMin	如果 .Kerning 设置为 1，那么该参数设置字体大小的最小值，以磅为单位，供自动字距调整使用。
.Default	设置标准样式的字符格式。
.Tab	当您用 Dialog 语句或 Dialog() 函数显示字体对话框时，本参数指定选择哪个选项卡： 0 字体选项卡 1 字符间距选项卡
.Font	字体的名称。
.Bold	如果是 1，则使用粗体编排格式。
.Italic	如果是 1，则使用斜体编排格式。
_____________

请参阅

字符格式

AllCaps

Bold

CharColor

DoubleUnderline

EditFindFont

EditReplaceFont

Font

FontSize

FormatChangeCase

FormatDefineStyleFont

GrowFont

Hidden

Italic

ResetChar

ShrinkFont

SmallCaps

Strikethrough

Subscript

Superscript

Underline

WordUnderline


FormatRetAddrFonts

FormatRetAddrFonts [.Points = number] [, .Underline = number] [, .Color = number] [, .Strikethrough = number] [, .Superscript = number] [, .Subscript = number] [, .Hidden = number] [, .SmallCaps = number] [, .AllCaps = number] [, .Spacing = number] [, .Position = number or text] [, .Kerning = number] [, .KerningMin = number or text] [, .Default] [, .Tab = number] [, .Font = text] [, .Bold = number] [, .Italic = number]

设置信封上的发信人地址的字符格式编排。ToolsCreateEnvelope 语句与 FormatRetAddrFonts 语句共同使用，来指定与“格式”菜单下“字体”对话框中相对应的选项。包含 .Default 参数的目的是将您指定的字符格式编排的选项，作为今后使用的发信人地址的默认格式。如果您想了解本语句的参数描述，请参阅 FormatFont。

_____________

请参阅

字符格式

FormatAddrFonts

FormatFont

ToolsCreateEnvelope


GrowFont

GrowFont

将选中文本的字体（或是将要插入在插入点处的文本的字体）的大小增大到选中打印机上能用的下一级字体大小。如果选中文本中包含有多种大小的字体，那么每一种字体的大小都将增大到下一级可用大小的字体。如果没有选中内容，那么最大的字体大小将被用于新的文本上。

_____________

请参阅

字符格式

FontSize

FormatFont

GrowFontOnePoint

ShrinkFont

ShrinkFontOnePoint


GrowFontOnePoint

GrowFontOnePoint

将选中文本的字体（或者是将要插入在插入点的文本）大小增加一磅，无论新的大小是否能被选中的打印机支持。如果选中内容中包含有多种字体大小，那么每一种字体大小都将增加一磅。

_____________

请参阅

字符格式

FontSize

FormatFont

GrowFont

ShrinkFont

ShrinkFontOnePoint


Hidden, Hidden()

Hidden [On]

Hidden()

Hidden 语句添加或删除当前选中内容的隐藏字符格式，或者控制将要插入在插入点处的字符的隐藏格式。您可以用“隐藏文字”复选框控制隐藏文本的显示，这个选项在“工具”菜单的“选项”对话框的“视图”选项卡中。

参数	解释
On	指定是添加还是删除隐藏格式。 1 添加隐藏格式。 0 删除隐藏格式。 省略    切换隐藏格式。
Hidden() 函数返回下列数值。

数值	解释
0	如果选中内容中没有隐藏格式
-1	如果选中内容中的一部分是隐藏格式
1	如果选中内容的全部都是隐藏格式
_____________

请参阅

字符格式

FormatFont


Italic, Italic()

Italic [On]

Italic()

Italic 语句添加或删除选中文本的斜体格式，或者控制在插入点插入的字符的斜体格式编排。

参数	解释
On	指定是添加还是删除斜体格式： 1 将选定内容改为斜体格式。 0 将选定内容的斜体格式删除。 省略    切换斜体格式。
Italic() 函数返回下列数值。

数值	解释
0	如果选定内容中没有斜体格式存在
-1	如果选定内容中一部分是斜体格式
1	如果选定内容中全部都是斜体格式
_____________

请参阅

字符格式

FormatFont


Language 示例

这些指令显示了 Language 语句的三种不同用法。第一个将选中内容标记为英国英语，第二个将选中内容标记为第 12 种语言。第三个标记为“不作校对”。“校对”工具将跳过标记为“不作校对”的文本。

Language "English (UK)"

Language Language$(12)

Language "0"

下列宏在活动文档中创建一个两栏列表，在表中显示所有正确的 Language$(Count) 指令，以及与 Count 返回的数值相对应的语言名称。返回的语言名称是所有的 Language 语句的正确的参数。

Sub MAIN

For i = 1 To CountLanguages()

If i > 1 Then InsertPara

Insert "Language$(" + Right$(Str$(i), Len(Str$(i))-1) + ")" \

+ Chr$(9) + Language$(i)

Next

End Sub


Language, Language$()

示例

Language Language$

Language$([Count])

Language 语句以特定语言标识选定文本。校对工具将对这一部分文本使用特定语言的词典。尽管“工具”菜单“语言”对话框中列出了各种语言名称的英文格式，但是参数 Language$ 必须用带有口音字符的特定语言来描述。例如，ltalian 必须写作“ltaliano”,而 French 必须写作“Fran鏰is”。如果您想了解各种外语名称的列表，请参阅 ToolsLanguage。

如果 Count 参数设置为 0或省略，那么 Language$() 函数将返回选中文本的第一个字符的语言格式。如果没有选定内容，那么 Language$() 函数将返回插入点左边字符的语言格式。

如果 Count 大于 0，那么 Language$() 函数将返回未翻译的语言名称的内部列表第 Count 个语言的名称。注意，这个未翻译的语言名称列表与“工具”菜单中“语言”对话框中的语言列表是不一致的，因为在对话框中，各种语言的名称被翻译为英文形式，是以字母顺序排序的。参数 Count 的范围从 1 到 CountLanguages() 函数返回值。

_____________

请参阅

字符格式

CountLanguages()

ToolsLanguage


NormalFontPosition

NormalFontPosition

如果选中文本被提升或降底了，那么本语句将它们还原到基准行。

_____________

请参阅

字符格式

FormatFont

NormalFontSpacing


NormalFontSpacing

NormalFontSpacing

如果选中字符的字符间距是扩展或是紧缩的，那么本语句将把它们还原为标准间距。

_____________

请参阅

字符格式

FormatFont

NormalFontPosition


PasteFormat 示例

本示例复制当前段落（用预定义的书签“\Para”选中）的字符和段落格式，然后仅将段落格式用于下一段落。由于当 PasteFormat 语句运行时没有文本被选中，所以字符格式不被使用。ResetChar 语句可以保证任何新插入在插入点的文本具有当前样式的文本特性。

SelType 1	'Cancel selection, if any

EditGoTo "\Para"

CopyFormat

ParaDown

PasteFormat

ResetChar


PasteFormat

示例

PasteFormat

与 CopyFormat 语句一起使用，以实现对选定内容的格式复制。如果在 CopyFormat 语句运行中选择了段落标记，那么 Word 在使用字符格式编排的同时，也使用段落的格式编排。

_____________

请参阅

字符格式

CopyFormat

ResetChar

ResetPara


ResetChar 示例

如果当前段落的格式是标准格式，那么本示例选中整个段落（使用预定义的书签“\Para”）并且删除任何未定义在本样式的字符格式编排。

If StyleName$() = "Normal" Then

EditGoTo "\Para"

ResetChar

End If


ResetChar, ResetChar()

示例

ResetChar

ResetChar()

ResetChar 语句从选定文本中删除手工字符格式编排（未定义在选定的段落样式中的格式编排）。例如，如果您在一个段落中将一个单词或短语手工定义为粗体文本，而这一段落的文本的样式是纯文本方式，那么 ResetChar 将删除这个粗体格式。

ResetChar() 函数返回下列数值，而不重新设置字符格式。

数值	解释
0	如果选中文本包含有手工字符格式编排
1	如果选中文本不含任何手工字符格式编排
_____________

请参阅

字符格式

FormatFont

ResetPara


ShrinkFont 示例

本宏插入一行逐渐减小的 Z 字符。注意您怎样使用冒号分隔同一行中的多条相互独立的语句。在这个宏中，ShrinkFont 语句在一行中将被执行三次。

Sub MAIN

FontSize 45

For count = 1 To 7

Insert "Z"

ShrinkFont : ShrinkFont : ShrinkFont

Next count

End Sub


ShrinkFont

示例

ShrinkFont

将选中文本的大小减小到系统打印机可支持的下一级文本大小。如果选中内容中含有不同大小的字体，那么每一种大小将依此减小到下一级可用设置的大小。如果没有选定内容，那么最小大小的字体将被用在今后的插入文本上。

_____________

请参阅

字符格式

Font

FontSize

FormatFont

GrowFont

ResetChar

ShrinkFontOnePoint


ShrinkFontOnePoint

ShrinkFontOnePoint

将选中文本（或者是将要插入在插入点的文本）的大小减小一磅，无论新的字体大小是否被选中的打印机支持。如果选中内容中包含有多种字体大小，那么每一种字体的大小都将减小一磅。

_____________

请参阅

字符格式

GrowFontOnePoint

ShrinkFont


SmallCaps 示例

如果当前段落（用预定义的书签“\Para”选定）中有小型大写字母格式编排，那么本示例将把整个段落的格式变为小型大写字母格式。

SelType 1	'Cancel selection, if any

EditGoTo "\Para"

If SmallCaps() = -1 Then SmallCaps 1


SmallCaps, SmallCaps()

示例

SmallCaps [On]

SmallCaps()

SmallCaps 语句添加或删除当前选中内容的小型大写字母格式，或者用来控制将要插入在插入点的字符的小型大写格式编排。

参数	解释
On	指定是添加还是删除小型大写字母格式： 1 将选中内容改为小型大写字母格式。 0 将选中内容中的小型大写字母格式删除。 省略    切换小型大写字母格式。
SmallCaps() 函数返回下列数值。

数值	解释
0	如果选中内容中不含小型大写字母格式编排
-1	如果选中内容中的一部分是小型大写字母格式
1	如果选中内容的全部都是小型大写字母格式
_____________

请参阅

字符格式

AllCaps

ChangeCase

FormatFont

UCase$()


Strikethrough, Strikethrough()

Strikethrough [On]

Strikethrough()

Strikethrough 语句为当前选中内容添加或删除删除线字符格式，或者用来控制将要插入在插入点处的字符的删除线格式编排。

参数	解释
On	指定是添加还是删除删除线格式： 1 将选中内容改为删除线格式。 0 将选中内容中的删除线格式删除。 省略    切换删除线格式。
Strikethrough() 函数返回下列数值。

数值	解释
0	如果选中内容中没有删除线格式
-1	如果选中内容中的一部分是删除线格式
1	如果选中内容的全部都是删除线格式
当修订标记被激活时，Word 使用删除线来标记被删除的文本。但是，Word不会把用 Strikethrough 语句格式化了的文本当作被删除了的文本。如果您想将选中的文本标记为被删除的文本，用来作为修订的标记，那么请使用下列语句：

ToolsRevisions .MarkRevisions = 1

EditClear

_____________

请参阅

字符格式

FormatFont

ToolsRevisions


Subscript, Subscript()

Subscript [On]

Subscript()

Subscript 语句添加或删除当前选中内容的下标字符格式，或者用来控制将要插入在插入点处的字符的下标格式。

参数	解释
On	指定是添加还是删除下标格式： 1 将选中内容改为下标格式。 0 删除选中内容中的下标格式。 省略    切换下标格式。
Subscript() 函数返回下列数值。

数值	解释
0	如果选中内容中没有下标格式
-1	如果选中内容中的一部分是下标格式
1	如果选中内容的全部都是下标格式
_____________

请参阅

字符格式

FormatFont

Superscript


Superscript, Superscript()

Superscript [On]

Superscript()

Superscript 语句添加或删除当前选中内容的上标字符格式，或者用来控制将要插在插入点处的字符的上标格式编排。

参数	解释
On	指定是添加还是删除上标格式： 1 将选中内容改为上标格式。 0 将选中内容中的上标格式删除。 省略    切换上标格式。
Superscript() 函数返回下列数值。

数值	解释
0	如果选中内容中没有上标格式
-1	如果选中内容中的一部分是上标格式
1	如果选中内容全部都是上标格式
_____________

请参阅

字符格式

FormatFont

Subscript


SymbolFont

SymbolFont [TextToInsert$]

将选中文本的字体改为符号字体，或者在插入点以符号文本的格式插入指定的文本。如果来指定或选择文本，那么 SymbolFont 语句不起任何作用。

_____________

请参阅

字符格式

FormatFont

InsertSymbol


Underline, Underline()

Underline [On]

Underline()

Underline 语句添加或删除选中文本的单下划线格式，或用来控制将要插入到插入点上的字符单下划线格式编排。

参数	解释
On	指定是添加还是删除单下划线格式： 1 指定是添加还是删除单下划线格式： 0 将选中内容中的单下划格式删除。 省略    切换单下划线格式。
Underline() 函数返回下列数值。

数值	解释
0	如果选中内容中不含任何单下划线格式
-1	如果选中内容的一部分是单下划线格式
1	如果选中内容的全部都是单下划线格式
_____________

请参阅

字符格式

DottedUnderline

DoubleUnderline

FormatFont

WordUnderline


WordUnderline, WordUnderline()

WordUnderline [On]

WordUnderline()

WordUnderline 语句添加或删除选中文本的字下划线格式，或者控制将要插入在插入点处的字符的字下划线格式。

参数	解释
On	指定是添加还是删除字下划线格式： 1 将选定内容改为字下划线格式。 0 将选定内容的字下划线格式删除。 省略    切换字下划线格式。
WordUnderline() 函数返回下列数值。

数值	解释
0	如果选中内容中没有字下划线格式
-1	如果选中内容的一部分是字下划线格式
1	如果选中内容的全部都是字下划线格式
_____________

请参阅

字符格式

DottedUnderline

DoubleUnderline

FormatFont

Underline


AddButton 示例

本示例用按钮图符 79 来替代“格式”工具栏上在位置11 的按钮。分配给该按钮的内部命令是“Color”（颜色），这个命令还需要指明附加的值（在本例中，用 "2" 表示蓝色）。

DeleteButton "Formatting", 11, 0

AddButton "Formatting", 11, 1, "Color", 79, 0, "2"


AddButton

示例

AddButton Toolbar$, Position, Category, Name$ [, ButtonTxtOrImageNum[$]] [, Context] [, CommandValue$]

在工具栏上添加一个按钮，用来运行一个内部命令或宏，使用一种字体或样式，或者插入一个自动图文集词条。

参数	解释
Toolbar$	在“工具栏”对话框（“视图”菜单）中列出的工具栏名。
Position	对应指定工具栏上要加入按钮的位置编号，其中 1 代表第一个位置，2 代表第二个位置，等等。注意一个列表框或空格也计作一个位置。
Category	要分配的项目的类型： 1 内部命令 2 宏 3 字体 4 自动图文集词条 5 样式
Name$	与该按钮相关的内部命令、宏、字体、自动图文集词条或样式的名称。要加入一个空格到工具栏，请指明一个空字符串 ("")。
ButtonTxtOrImageNum[$]	出现在按钮上的文本，或一个属于内部按钮集的按钮的图符编号。0 表示没有图符（空按钮），1 表示第一个图符，2 表示第二个图符，等等。有关按钮图符的列表和相关的编号，请参阅 工具栏按钮图符和编号。
Context	确定新工具栏的分配结果存于何处： 0 或省略 “标准”模板 1 活动模板
CommandValue$	由 Name$指明的命令中所带有的附加文本（如果有的话）。比如，如果 Name$ 是 "Color" （颜色），CommandValue$ 指出颜色值。有关详细内容，请参阅 ToolsCustomizeMenus中的第二张表。
_____________

请参阅

自定义

ChooseButtonImage

CopyButtonImage

DeleteButton

EditButtonImage

MoveButton

PasteButtonImage

ResetButtonImage


ChooseButtonImage 示例

本示例把“宏”工具栏上“停止”按钮的图符换为按钮图符 50。

ChooseButtonImage .Face = 50, .Button = 9, .Context = 0, \

.Toolbar = "Macro"

下面的示例为“自定义按钮”对话框（“自定义工具栏”快显菜单）创建一个对话记录。然后显示该对话框，这样您就可以调整“常用”工具栏上的第三个按钮。注意与其他对话记录的指令不同，在 ChooseButtonImage 对话记录中设置值的指令必须放在 GetCurValues 指令之前。

Dim dlg As ChooseButtonImage

dlg.Toolbar = "Standard"

dlg.Button = 3

GetCurValues dlg

Dialog dlg

ChooseButtonImage dlg


ChooseButtonImage

示例

ChooseButtonImage [.Face = number,] .Button = number, [.Context = number,] [.Text = text,] .Toolbar = text

改变指定工具栏按钮上的图符或文本

参数	解释
.Face	内部按钮图符集中一个按钮图符的编号，0 表示没有图符（空按钮），1 表示第一个图符， 2 表示第二个图符，等等。有关按钮图符的列表和相关编号，请参阅工具栏按钮图符和编号。
.Button	在指定工具栏上要修改按钮的位置编号。 1 表示第一个位置，2 表示第二个位置，等等。注意对话框和空格也计作一个位置。如果您指明对应一个空格的位置，Word 将把按钮调整到该空格的右边。
.Context	确定对工具栏所做的变动存于何处： 0 或省略 “标准”模板 1 活动模板
.Text	出现在按钮上的文本。如果您既指明了 .Face 也指明了 .Text ，.Text 将有优先权。
.Toolbar	在“工具栏”对话框中（“视图”菜单）所列出的工具栏名。
注释

您可以为一个工具栏上的列表框选择一个按钮图符，但是只有当该工具栏是垂直放置时，该按钮才显示出来。

_____________

请参阅

自定义

AddButton

CopyButtonImage

EditButtonImage

MoveButton

PasteButtonImage

ResetButtonImage


CopyButtonImage 示例

本示例把“常用”工具栏上的第三个按钮（“保存”按钮）的图符，插入到一个名为"TestBar" 的自定义工具栏上的第一个按钮上。

CopyButtonImage "Standard", 3

PasteButtonImage "TestBar", 1


CopyButtonImage

示例

CopyButtonImage Toolbar$, Tool [, Context]

把指定工具栏按钮的图符拷入剪裁板。

参数	解释
Toolbar$	出现在“工具栏”对话框（“视图”菜单）中的工具栏名。
Tool	要复制其图符的按钮的编号，1 表示指定工具栏上的第一个按钮，2 表示第二个，等等。
Context	指明 Word 要复制哪种按钮图符： 0 或省略 当一个基于“标准”模板的文档是活动文档时，所显示的该按钮图符。 1 当前显示的按钮图符。 注意按钮图符的显示取决于活动文档、任何已加载共用模板和“标准”模板的用户设置（如果有的话）。
_____________

请参阅

自定义

AddButton

ChooseButtonImage

EditButtonImage

MoveButton

PasteButtonImage

ResetButtonImage


CountKeys()

CountKeys([Context])

返回“自定义”对话框（“工具”菜单）的“键盘”选项卡中指定的与默认键分配不同的键分配的数目。

参数	解释
Context	指明要计算键分配的模板： 0 或省略 “标准”模板 1 活动模板
有关示例，请参阅KeyCode() 示例。

_____________

请参阅

自定义

KeyCode()

KeyMacro$()

ToolsCustomizeKeyboard


CountMenuItems() 示例

本示例把“工具”菜单菜单项的一个选项卡划界列表插入活动模板：

tab$ = Chr$(9)

For n = 1 To CountMenuItems("工具(&T)", 0, 1)

Insert Str$(n) + tab$ + MenuItemText$("工具(&T)", 0, n, 1)

InsertPara

Next


CountMenuItems()

示例

CountMenuItems(Menu$, Type [, Context])

返回指定菜单上菜单项的数目。分隔线也算菜单项。注意“文件”菜单上的文件名列表，“窗口”菜单上的窗口列表以及“工具”菜单上的查验工具列表都计作单个的项。

参数	解释
Menu$	一个菜单或快显菜单的名称。菜单名出现在“菜单”列表框中，这个列表框位于“自定义”对话框（“工具”菜单）的“菜单”选项卡上。 在菜单名加有下划线的字母前加并字符 (&) 是可选 的（比如，您既可以用“File”，也可以用“&File”）。不要加入带圆括号的短语，如 “(No Document)” 和 “(Shortcut)”，即使该文本出现在“自定义”对话框中也是如此。
Type	菜单类型： 0 当一个文档打开时，菜单栏上的菜单 1 没有文档打开时，菜单栏上的菜单 2 快显菜单
Context	指明对哪些菜单项进行计数： 0 或省略 当一个基于“标准”模板的文档是活动文档时，显示在菜单上的菜单项。 1 当前显示在菜单上的菜单项。 注意菜单的显示取决于活动文档、任何已加载共用模板和“标准”模板的自定义设置（如果有的话）。
_____________

请参阅

自定义

MenuItemMacro$()

MenuItemText$()


CountMenus()

CountMenus(Type [, Context])

返回指定类型的菜单的数目。

参数	解释
Type	要计数的菜单的类型： 0 当一个文档打开时，菜单栏上的菜单 1 没有文档打开时，菜单栏上的菜单 2 快显菜单
Context	指明对哪些菜单进行计数： 0 当一个基于“标准”模板的文档是活动文档时可用的菜单。 1 或省略 当前可用的菜单。 注意，菜单的显示取决于活动文档、任何已加载共用模板和“标准”模板的用户设置（如果有的话）。
有关示例，请参阅MenuText$() 示例。

_____________

请参阅

自定义

CountMacros()

CountMenuItems()

MenuText$()


CountToolbarButtons()

CountToolbarButtons(Toolbar$ [, Context])

返回指定工具栏上工具栏按钮的数目。注意空格和列表框也计作“按钮”。

参数	解释
Toolbar$	出现在“工具栏”对话框（“视图”菜单）中的工具栏名。
Context	指明哪些按钮要计数： 0 当一个基于“标准”模板的文档是活动文档时，可用的按钮。 1 或省略 当前可用的按钮。 注意，可用的按钮取决于活动文档、任何已加载共用模板和“标准”模板的用户设置（如果有的话）。
有关示例，请参阅CountToolbars() 示例。

_____________

请参阅

自定义

CountToolbars()

ToolbarButtonMacro$()

ToolbarName$()


CountToolbars() 示例

本示例创建一个新文档，然后在每个工具栏上插入一个含工具栏名和按钮编号的列表。

FileNewDefault

For i = 1 To CountToolbars(0)

name$ = ToolbarName$(i)

numbuttons = CountToolbarButtons(name$)

Insert name$ + "," + Str$(numbuttons) + Chr$(13)

Next i


CountToolbars()

示例

CountToolbars([Context])

返回“工具栏”对话框（“视图”菜单）中列出的工具栏的数目。注意，不是在所有情况下都列出全部的工具栏。比如，宏工具栏只在至少有一个宏编辑窗口是打开的情况下才出现在“工具栏”对话框中。

参数	解释
Context	指明要对哪些工具栏进行计数： 0 当一个基于“标准”模板的文档是活动文档时，可用的工具栏。 1 或省略 当前可用的工具栏。 注意，可用的工具栏取决于活动文档、任何已加载共用模板和“标准”模板的用户设置（如果有的话）。
_____________

请参阅

自定义

CountToolbarButtons()

ToolbarButtonMacro$()

ToolbarName$()


DeleteButton

DeleteButton Toolbar$, Position [, Context]

从一个工具栏撤消一个按钮、列表框或空格。

参数	解释
Toolbar$	出现在“工具栏”对话框（“视图”菜单）中的工具栏名。
Position	对应指定工具栏上要撤消项的位置编号，其中 1 代表第一个位置，2 代表第二个位置，等等。注意一个列表框或空格也计作一个位置。
Context	确定对工具栏所做的修改存于何处： 0 或省略 “标准”模板 1 活动文档
有关示例，请参阅AddButton 示例。

_____________

请参阅

自定义

AddButton

ChooseButtonImage

CopyButtonImage

EditButtonImage

MoveButton

PasteButtonImage

ResetButtonImage


EditButtonImage 示例

本示例打开图符编辑器，显示“常用”工具栏上的第一个按钮图符进行编辑：

EditButtonImage "Standard", 1, 0


EditButtonImage

示例

EditButtonImage Toolbar$, Position [, Context]

运行按钮图符编辑器以调整指定工具栏按钮图符。

参数	解释
Toolbar$	出现在“工具栏”对话框（“视图”菜单）中的工具栏名。
Position	要编辑按钮的位置编号，其中 1 代表第一个位置，2 代表第二个位置，等等。注意一个列表框或空格也计作一个位置。
Context	确定新的按钮图符存于何处： 0 或省略 “标准”模板 1 活动文档
_____________

请参阅

自定义

ChooseButtonImage

CopyButtonImage

PasteButtonImage

ResetButtonImage


KeyCode() 示例

本示例在活动模板中插入一张表格，这个表格包括键码以及与默认键分配不同的键分配的宏名。

If CountKeys(1) = 0 Then

MsgBox "No custom key assignments in active template."

Goto bye

End If

FormatTabs .ClearAll

FormatTabs .Position = "1in", .Set

Bold 1 : Underline 1

Insert "Key Code" + Chr$(9) + "Macro"

Bold 0 : Underline 0

For i = 1 To CountKeys(1)

Insert Chr$(13) + Str$(KeyCode(i, 1))

combo2 = KeyCode(i, 1, 2)

If combo2 <> 255 Then Insert "," + Str$(combo2)

Insert Chr$(9) + KeyMacro$(i, 1)

Next i

bye:


KeyCode()

示例

KeyCode(Count [, Context] [, FirstOrSecond])

返回一个与默认状态不同的键分配的数值。有关键码和相应键的列表，请参阅 ToolsCustomizeKeyboard.。

参数	解释
Count	范围在 1 到 CountKeys() 之间的一个数值，该值指明了要返回键码的自定义键分配。
Context	含有自定义键分配的模板。 0 或省略 “标准”模板 1 活动文档
FirstOrSecond	如果该键分配是一个两键联合的序列（比如，分配 CTRL+S, N 给 NormalStyle），那么指明返回哪个键组合的代码： 1 序列中的第一个键组合。 2 序列中的第二个键组合。 如果您指明为 2 而该键分配不是一个键序列，则 KeyCode() 返回 255 （空键码）。
_____________

请参阅

自定义

CountKeys()

KeyMacro$()


MenuItemText$() 示例

本示例在无文档打开时，把“帮助”菜单上第一个菜单项的菜单文本显示在一个消息框里。

MsgBox MenuItemText$("Help", 1, 1, 0)


MenuItemText$()

示例

MenuItemText$(Menu$, Type, Item [, Context])

返回与某一个已分配给指定菜单的宏或内部命令相关的菜单文本。您可以用 ToolsCustomizeMenus 来修改这个菜单文本。

注释

一部分内部命令的菜单文本的修改取决于 Word 当前的环境条件。对于这些命令，MenuItemText$() 返回该命令名而不是菜单文本。这些命令包括：EditCopy、EditPaste、EditRedoOrRepeat、EditUndo、FileClose、FileCloseAll、FileCloseOrCloseAll、FileExit, FileQuit、FileSave、FileSaveAll、FileSaveAs、FormatFrameOrFramePicture、TableDeleteGeneral、TableInsertGeneral、TableSort、TableToOrFromText 和 ToolsProtectUnprotectDocument。

参数	解释
Menu$	一个菜单或快显菜单的名称。菜单名列于“自定义”对话框（“工具”菜单）中“菜单”选项卡上的“更改菜单项”框里。 在文件名中带下划线的字母之前加并字符(&) 是可选的（比如，您既可以用 "File"，也可以用 "&File"）。不要加入带圆括号的短语，如 "(No Document)" 和 "(Shortcut)"，即使该文本出现在“自定义”对话框中也是如此。
Type	菜单类型： 0 当一个文档打开时，菜单栏上的菜单。 1 没有文档打开时，菜单栏上的菜单 2 快显菜单
Item	代表该项在菜单上所在位置的一个数值。该数值的范围在 1 到由 CountMenuItems() 所返回的值之间。命令之间的分隔线也计作菜单项，如果 Item 代表一个分隔线的位置，则 MenuItemText$() 返回字符串“(Separator)”。 注意一些列表如“文件”菜单上最近使用过的文件的列表或者“工具”菜单上的查验工具都对应单个菜单项。如果您指明一个列表的位置，则 MenuItemText$() 将返回一个带圆括号的短语来描述这个列表——比如，“(List of Recently Used Files)” 或“(List of Proofing Tools)”。
Context	指定要返回菜单文本的菜单分配： 0 或省略 当一个基于“标准”模板的文档是活动文档时显示在菜单上的菜单项 1 当前显示在菜单上的菜单项 注意菜单项的显示取决于活动文档、任何已加载共用模板和“标准”模板的用户设置（如果有的话）。
_____________

请参阅

自定义

CountMenuItems()

CountMenus()

MenuItemMacro$()

MenuText$()

ToolsCustomizeMenus


MenuMode

MenuMode

激活菜单栏。MenuMode 相应于按 ALT 或 F10 键。


MenuText$() 示例

本示例定义了一个数组，并用“标准”模板中可用快显菜单名来填充该数组。

size = CountMenus(2, 0) - 1

Dim shortcutMenus$(size)

For count = 0 To size

shortcutMenus$(count) = MenuText$(2, count + 1, 0)

Next count


MenuText$()

示例

MenuText$(Type, MenuNumber [, Context])

返回菜单栏上某一个快显菜单或某一个菜单的名称。如果在菜单名中有一个带下划线的字母，MenuText$() 将在返回文本的该字母之前加一个并字符 (&)。

参数	解释
Type	菜单类型： 0 当一个文档打开时，菜单栏上的菜单。 1 没有文档打开时，菜单栏上的菜单 2 快显菜单
MenuNumber	对于指定类型，范围在 1 到 CountMenus() 之间的一个数值。如果 Type 为 0 或 1，MenuNumber 表示菜单栏上从左到右的一个位置（其中 1 表示“文件”菜单） 。如果 Type 是 2，那么 MenuNumber 表示“自定义”对话框（“工具”菜单）中“菜单”选项卡上“更改菜单项”框里快显菜单序列中的一个位置。在该序列里，第一个快显菜单是 1，第二个是 2，等等。
Context	指明某一模板，该模板含有由 MenuNumber 所指的要返回的菜单名。 0 或省略     “标准”模板 1 活动文档
_____________

请参阅

自定义

CountMenuItems()

CountMenus()

MenuItemMacro$()

MenuItemText$()

ToolsCustomizeMenus


MoveButton 示例

本示例从“常用”工具栏复制“显示/隐藏”按钮到“宏”工具栏的末尾（假定这些工具栏还没有进行自定义）。

MoveButton "Standard", 26, "Macro", 18, 1, 0


MoveButton

示例

MoveButton SourceToolbar$, SourcePosition, TargetToolbar$, TargetPosition [, Copy] [, Context]

把一个工具栏按钮、列表框、或空格移动或复制到另一个工具栏，或同一工具栏的另一个位置。

参数	解释
SourceToolbar$	包含要移动或复制项目的工具栏的名称，列于“工具栏”对话框（“视图”菜单）中。
SourcePosition	要移动或复制项目的位置，1 代表第一个位置，2 代表第二个位置，等等。注意，一个列表框或空格也计作一个位置。
TargetToolbar$	接受移动或复制项目的工具栏的名称。
TargetPosition	接受移动或复制项目的位置。
Copy	如果为 1，则复制而不移动工具栏项。
Context	确定对工具栏所做的修改存于何处： 0 或省略 “标准”模板 1 活动文档
_____________

请参阅

自定义

AddButton

ChooseButtonImage

CopyButtonImage

DeleteButton

EditButtonImage

PasteButtonImage

ResetButtonImage


MoveToolbar 示例

本示例显示“表单”工具栏并把它移到 Word 窗口的右下角。

AppMaximize 1

ViewToolbars .Toolbar = "Forms", .Show

MoveToolbar "Forms", 0, 520, 410


 MoveToolbar

示例

MoveToolbar Toolbar$, Dock, HorizPos, VertPos

移动指定的工具栏，如果指定的工具栏还没有显示，则出错。

参数	解释
Toolbar$	要移动的工具栏的名称，列于“工具栏”对话框（“视图”菜单）中。
Dock	指明如何放置工具栏，是放于 Word 窗口的顶部，底部或两边还是作为浮动工具栏放于文档窗口之上。 0 工具栏浮动于文档窗口之上。 1 工具栏放于 Word 窗口的顶部。 2 工具栏放于 Word 窗口的左边。 3 工具栏放于 Word 窗口的右边。 4 工具栏放于 Word 窗口的底部。
HorizPos, VertPos	如果 Dock 为 0，则表示从 Word 窗口的左上角到工具栏左上角的水平 (HorizPos) 和垂直 (VertPos) 距离，按象素计算。 如果 Dock 非零，则您必须指明 Word 把该工具栏移到固定工具栏序列中最近可用位置的 HorizPos 和 VertPos。
_____________

请参阅

自定义

ToolbarName$()

ToolbarState()

ViewToolbars


NewToolbar

NewToolbar .Name = text [, .Context = number]

创建一个新的可用 AddButton 和 MoveButton 语句添加按钮的工具栏。

参数	解释
.Name	新工具栏的名称（允许有空格）
.Context	保存该工具栏的模板 0 或省略 “标准”模板；该工具栏一直出现在“工具栏”对话框中（“视图”菜单）。 1 活动模板；该工具栏只当模板是活动模板时，才出现在“工具栏”对话框中。
_____________

请参阅

自定义

AddButton

CountToolbars()

MoveButton

ToolbarName$()

ViewToolbars


PasteButtonImage

PasteButtonImage Toolbar$, Tool [, Context]

把指定工具栏按钮的图符设置成剪裁板里的图形

参数	解释
Toolbar$	工具栏名，列于“工具栏”对话框（“视图”菜单）中。
Tool	要修改的按钮的编号，0 表示指定工具栏的第一个按钮，1 表示第二个，等等。
Context	确定所作的修改存于何处： 0 或省略 “标准”模板 1 活动文档
有关使用 PasteButtonImage的示例，请参阅 CopyButtonImage 示例。

_____________

请参阅

自定义

ChooseButtonImage

CopyButtonImage

EditButtonImage

ResetButtonImage


RenameMenu 示例

本示例将“工具”菜单更名为“Other Tasks”，并用  ALT, O 键序列激活该菜单。

RenameMenu "Tools", "&Other Tasks", 0


RenameMenu

示例

RenameMenu Menu$, NewName$, Type [, Context]

对指定的菜单更名。如果 Menu$ 不是指定 Type 的菜单之一，则出错。

参数	解释
Menu$	菜单栏上出现的菜单名。在菜单名带有下划线的字母前加一个并字符 (&) 是可选的（比如，您既可以用“文件(F)”，也可以用“文件(&F)”）。
NewName$	新的菜单名。在该菜单名的某一字符前加一个并字符 (&) 就设置了该菜单的快速键，这个字符在菜单显示时将带有下划线。
Type	菜单的类型： 0 当一个文档打开时，菜单栏上的菜单。 1 没有文档打开时，菜单栏上的菜单. 注意您不能对快显菜单更名。
Context	指明新的菜单名存于何处： 0 或省略 “标准”模板（新菜单名不管模板是否活动，一直出现） 1 活动模板（新菜单名只当模板是活动模板的时候，才出现）
_____________

请参阅

自定义

MenuText$()

ToolsCustomizeMenus


ResetButtonImage

ResetButtonImage Toolbar$, Tool [, Context]

把指定工具栏按钮的图符重新设置成一开始就与该按钮所运行命令相关的图形。

参数	解释
Toolbar$	工具栏名，列于“工具栏”对话框（“视图”菜单）中。
Tool	要重新设置的按钮的编号，0 表示指定工具栏的第一个按钮，1 表示第二个，等等。
Context	确定所作的修改存于何处： 0 或省略 “标准”模板 1 活动文档
_____________

请参阅

自定义

ChooseButtonImage

CopyButtonImage

EditButtonImage

PasteButtonImage

ViewToolbars


SizeToolbar 示例

本示例对 640VGA 屏幕上的“常用”工具栏进行尺寸调整，以使其上按钮显示在两个水平行上。

MoveToolbar "Standard", 0, 0, 40

SizeToolbar "Standard", 368


SizeToolbar

示例

SizeToolbar Toolbar$, Width

把一个浮动工具栏的尺寸调整到最接近指定宽度的可用宽度。如果指定的工具栏在 Word 窗口的顶部，底部或两边，则 SizeToolbar 无效。

参数	解释
Toolbar$	工具栏名，列于“工具栏”对话框（“视图”菜单）中。
Width	按象素计算的工具栏的宽度。
_____________

请参阅

自定义

MoveToolbar


ToolbarButtonMacro$() 示例

本示例在一个基于“标准”模板的文档打开时，用分配给“常用”工具栏的命令名填充一个数组。

size = CountToolbarButtons("Standard", 0) - 1

Dim standardmacro$(size)

For i = 0 To size

standardmacro$(i) = ToolbarButtonMacro$("Standard", i + 1, 0)

Next i


ToolbarButtonMacro$()

示例

ToolbarButtonMacro$(Toolbar$, Position [, Context])

返回分配给指定工具栏按钮的内部命令、宏、字体、自动图文集词条或样式的名称。如果您指定对应某一空格的位置，则 ToolbarButtonMacro$() 返回一个空字符串 ("")。

参数	解释
Toolbar$	工具栏名，列于“工具栏”对话框（“视图”菜单）中。
Position	指定工具栏上按钮位置的编号，其中 1 代表第一个位置，2 代表第二个位置，等等。注意一个列表框或空格也计作一个位置。
Context	指明要返回名称的按钮： 0 当一个基于“标准”模板的文档打开时，显示在工具栏上的按钮。 1 或省略 当前显示在工具栏上的按钮。 注意显示在工具栏上的按钮取决于活动模板，以及任何已加载共用模板和“标准”模板的用户设置（如果有的话）。
_____________

请参阅

自定义

CountToolbarButtons()

CountToolbars()

ToolbarName$()


ToolbarName$()

ToolbarName$(Toolbar [, Context])

返回指定工具栏的名称，该名称就是出现在“工具栏”对话框（“视图”菜单）中的该工具栏的名称。

参数	解释
Toolbar	范围在 1 到 CountToolbars() 之间的一个数值，对应要返回的工具栏。
Context	指明要从中返回工具栏 Toolbar 名称的工具栏列表。 0 所有文档包括已加载共用模板中的可用工具栏列表。 1 或省略 当前可用的所有工具栏的列表，包括基于活动模板的文档中的可用工具栏。
有关示例，请参阅CountToolbars() 示例。

_____________

请参阅

自定义

CountToolbarButtons()

CountToolbars()

ToolbarButtonMacro$()


ToolbarState() 示例

如果“绘图”工具栏已显示，则本示例切换到页面视图。

If ToolbarState("Drawing") Then ViewPage


ToolbarState()

示例

ToolbarState(Toolbar$)

如果 Toolbar$ 指明的工具栏已显示，则返回 -1；否则返回 0。

_____________

请参阅

自定义

ToolbarName$()

ViewRibbon

ViewRuler

ViewStatusBar

ViewToolbars


ToolsCustomizeKeyboard 示例

本示例把 CTRL+SHIFT+F 分配给 FileFind。

ToolsCustomizeKeyboard .Category = 1, .Name = "FileFind", \

.KeyCode = 838, .Add

下面的示例从 FileFind 中撤消键分配。

ToolsCustomizeKeyboard .Category = 1, .Name = "FileFind", \

.KeyCode = 838, .Remove


ToolsCustomizeKeyboard

示例

ToolsCustomizeKeyboard [.KeyCode = number] [, .KeyCode2 = number] [, .Category = number] [, .Name = text] [, .Add] [, .Remove] [, .ResetAll] [, .CommandValue = text] [, .Context = number]

分配或重新分配快捷键给内部命令、宏、字体、自动图文集词条、样式或一般符号。ToolsCustomizeKeyboard 语句的参数对应“自定义”对话框（“工具”菜单）中“键盘”选项卡上的选项。

参数	解释
.KeyCode	表示键组合的一个数值，列于本条目的后面。
.KeyCode2	表示一个键序列中第二个键组合的数值。比如，要分配键序列 CTRL+S, 1 给“标题 1”样式，您可以设置 .KeyCode 为 339 （对于 CTRL+S，.KeyCode2 为 49（对于 1）。
.Category	指明要分配快捷键的项目的类型： 1 或省略 内部命令 2 宏 3 字体 4 自动图文集词条 5 样式 6 一般符号
.Name	命令，宏或其他项目的名称。如果 .Category 设置为 6 ，那么您可以通过输入、粘贴到宏编辑窗口或使用一个 Chr$() 指令，如 Chr$(167)来指明一个符号。
.Add	添加键分配到指定项目。
.Remove	如果正在分配指定的键码，则撤消该分配以使相关的键组合无效。如果指定的键码没有分配，则 .Remove 把该键码设置回默认操作。注意当撤消或重新设置一个键分配时，不必指明 .Name。
.ResetAll	把所有键分配设置回默认状态。
.CommandValue	由 .Name 指定命令所需的附加文本（如果有的话）。比如，如果 .Name 设为“颜色”，则 .CommandValue 指明颜色的值。有关详细内容，请参阅 ToolsCustomizeMenus。
.Context	确定新的键分配存储于何处： 0 或省略 “标准”模板 1 活动文档
下面的表格列出了使用 .KeyCode所需的值。第一张表给出了当指明一个键组合时需要加到第二张表所列值之中的值（比如，您可以指明 CTRL+S 为 256 与 83 的和，339）。

加上	与此键组合
256	CTRL
512	SHIFT
1024	ALT
注意功能键 F11 到 F16 等价于 ALT+F1 到 ALT+F6。因此，对应 F11 的键码与对应 ALT+F1的键码具有相同的效果。类似的，指明 ALT+F11 ---               等价于 ALT+ALT+F1 --- 也就等价于指明 ALT+F1。

键码	对应于
8	BACKSPACE
9	TAB
12	当 NUM LOCK 关闭时数字键盘上的 5
13	ENTER
19	PAUSE
27	ESC
32	SPACEBAR
33	PAGE UP
34	PAGE DOWN
35	END
36	HOME
45	INS
46	DEL
48	0
49	1
50	2
51	3
52	4
53	5
54	6
55	7
56	8
57	9
65	A
66	B
67	C
68	D
69	E
70	F
71	G
72	H
73	I
74	J
75	K
76	L
77	M
78	N
79	O
80	P
81	Q
82	R
83	S
84	T
85	U
86	V
87	W
88	X
89	Y
90	Z
96	0 数字键盘
97	1 数字键盘
98	2 数字键盘
99	3 数字键盘
100	4 数字键盘
101	5 数字键盘
102	6 数字键盘
103	7 数字键盘
104	8 数字键盘
105	9 数字键盘
106	* 数字键盘
107	+ 数字键盘
109	- 数字键盘
110	. 数字键盘
111	/ 数字键盘
112	F1
113	F2
114	F3
115	F4
116	F5
117	F6
118	F7
119	F8
120	F9
121	F10
122	F11
123	F12
124	F13
125	F14
126	F15
127	F16
145	SCROLL LOCK
186	;
187	=
188	,
189	-
190	.
191	/
192	`
219	[
220	\
221	]
222	'
_____________

请参阅

自定义

CountKeys()

KeyCode()

KeyMacro$()


ToolsCustomizeMenus 示例

本示例添加宏 TestMacro 到“帮助”菜单。对于这个宏，相应的菜单项是“测试(T)”，它出现在“目录(C)”后面。因为指明了 .AddBelow ，所以不再需要 .Position。

ToolsCustomizeMenus .Category = 2, .Name = "TestMacro", \

.MenuType = 0, .Menu = "Help", .MenuText = "&Test", \

.AddBelow = "Contents", .Context = 0, .Add


ToolsCustomizeMenus

示例

ToolsCustomizeMenus [.MenuType = number] [, .Position = number] [, .Category = number] [, .Name = text] [, .Menu = text] [, .AddBelow = text] [, .MenuText = text] [, .Rename] [, .Add] [, .Remove] [, .ResetAll] [, .CommandValue = text] [, .Context = number]

为内部命令，宏，字体 ，自动图文集词条和样式修改菜单分配。ToolsCustomizeMenus 语句的参数与“自定义”对话框（“工具”菜单）中“菜单”选项卡上的选项相对应。

参数	解释
.MenuType	要调整的菜单的类型： 0 或省略 当一个文档打开时，菜单栏上的菜单。 1 没有文档打开时，菜单栏上的菜单 2 快显菜单
.Position	菜单上要添加或撤消菜单项的的位置 -1 或省略 为添加菜单项自动确定一个恰当的位置。 -2 把菜单项添加到菜单的底部。 n 在指定位置添加，撤消或更名菜单项，其中 1 表示第一个位置，2 表示第二个位置，等等。当添加一个菜单项时，如果 n 大于已存在菜单项数目加 1，则该菜单项加到菜单的底部。 注意分隔线也计作菜单项。
.Category	要分配的菜单项的类型： 1 或省略 内部命令 2 宏 3 字体 4 自动图文集词条 5 样式
.Name	要对其菜单分配进行修改的内部命令、宏、字体、自动图文集词条或样式的名称。在添加或撤消一个分隔线时，请指明 “(分隔符)”。
.Menu	要修改的菜单。菜单名列于“更改菜单项”列表框中。 在菜单名的带有下划线的字母前加一个并字符 (&) 是可选的（比如，您既可以用“文件(F)”，也可以用“文件(&F)）”。不要加入带圆括号的短语如“(No Document)”和“(Shortcut)”，即使该文本在“自定义”对话框中出现也是如此。
.AddBelow	与一个菜单项相关的文本或命令名，就是在这个菜单项下添加新的菜单项。 注意，如果您指明了 .Position ，则不需要再指明这个参数。如果两个参数都指明了，则 .AddBelow 具有优先权。
.MenuText	将出现在菜单上的文本。如果有快竭键，则在它前面加一个并字符 (&)。 如果您需要一个并字符出现在菜单文本里，可用两个并字符。比如，设置 .MenuText 为"&Examples && Practices"，得到的菜单项为"Examples & Practices"。
.Rename	对 .Menu 和 .Name（以及 .Position，如果指明了的话）指明的菜单项用 .MenuText 指明的文本进行更名。
.Add	添加菜单项到菜单。
.Remove	从菜单中撤消菜单项。
.ResetAll	把所有菜单分配重新设置为默认状态。注意这个参数既重新设置由 ToolsCustomizeMenuBar 所做的修改，也重新设置由 ToolsCustomizeMenus 所做的修改。
.CommandValue	由 .Name （如果有的话）指定命令所需的附加文本。比如，如果 .Name 设置为“颜色”，则 .CommandValue 指明具体颜色值。有关详细内容，请参阅本条目的下一表格。
.Context	确定新的菜单分配存储于何处： 0 或省略 “标准”模板 1 活动文档
在撤消或更名菜单项时，您必须指明 .Name 和 .Menu。Word 从指定菜单的底部开始，一直移动，直至找到执行 .Name 所指操作的菜单项为止。如果您知道要修改 的菜单项的确切位置和确切文本，您也可以指定 .Position 和 .MenuText。注意，如果 Word 不能找到与上述判断准则相符的菜单项，那么给出出错信息。

下表在左栏列出了需要一个命令值的命令，在右栏描述了如何指明 .CommandValue （命令值）。在“自定义”对话框（“工具”菜单）中指明 .CommandValue 的相应操作，是在当您选择“命令”框中下列命令之一而出现的列表框中选择一项。

如果 .Name 设置为	.CommandValue 必须是
“边框”、“颜色”或“底纹”	一个数值，按文本方式指明，这个数值对应列表框中该设置的位置，其中 0 代表第一项，1 代表 第二项，等等。
Columns	范围在 1 到 45 之间的一个数值，按文本方式指明，对应您要使用列数。
Condensed	增量为 0.05 磅，范围在 0.1 磅到 12.75 磅之间的文本的大小（72 磅 = 1 英寸）。
Expanded	增量为 0.05 磅，范围在 0.1 磅到 12.75 磅之间的文本的大小（72 磅 = 1 英寸）。
FileOpenFile	要打开的文件的路径和文件名。如果未指明路径，则假设为当前目录。
Font Size	增量为 0.05 磅的文本的大小（72 磅 = 1 英寸）。
Lowered, Raised	增量为 0.05 磅，范围在 1 磅到 64 磅之间的文本的大小（72 磅 = 1 英寸）。
Symbol	把一个 Chr$() 指令和一种符号字体相连后所建立的一个字符串（比如， Chr$(167) + "Symbol"）。
_____________

请参阅

自定义

CountMenuItems()

MenuItemMacro$()

MenuText$()

ToolsCustomizeMenuBar


ToolsCustomizeMenuBar 示例

本示例添加一个名为“宏”的新菜单到“帮助”菜单的右边：

ToolsCustomizeMenuBar .MenuText = "&Macros", .Add, .Position = -1


ToolsCustomizeMenuBar

示例

ToolsCustomizeMenuBar [.Context = number] [, .Position = number] [, .MenuType = number] [, .MenuText = text] [, .Menu = text] [, .Add] [, .Remove] [, .Rename]

添加，撤消或更名菜单栏上的菜单。 ToolsCustomizeMenuBar 语句的参数对应“菜单栏”对话框（“菜单”选项卡，“自定义”命令，“工具”菜单）中的选项。

参数	解释
.Context	确定对菜单所做的修改存于何处： 0 或省略 “标准”模板 1 活动文档
.Position	指明在哪儿添加新菜单：0 表示第一个位置（最左边），1 表示第二个位置，等等。要在菜单栏的末尾添加一个菜单，则设置 .Position 为 -1。
.MenuType	指明要修改哪种菜单栏： 0 或省略 文档打开时的菜单栏 1 无文档打开时的菜单栏
.MenuText	菜单的新名称，与 .Add 和 .Rename 联用。如果有快速键，可在它前面加并字符 (&) 。注意，菜单栏对给定名称的菜单只能有一个（不含并字符）。
.Menu	要修改的菜单的名称，与 .Rename 和 .Remove 联用。在菜单名中带有下划线的字母前加并字符 (&) 是可选的（比如，您既可以用“文件(F)”，也可以用“文件("&F)”）。
.Add	添加由 .MenuText 指明的菜单到菜单栏。
.Remove	撤消指定的菜单。
.Rename	对指定的菜单更名。
如果您没有指明 .Add，.Remove，.Rename，那么 Word 将添加菜单。

要重新设置菜单栏，请使用 ToolsCustomizeMenus 的 .ResetAll 参数。注意这就把所有菜单分配设置为它们的默认状态了。

_____________

请参阅

自定义

ToolsCustomizeMenus


Date$() 示例

这个示例在信息框内以 MMMM d, yyyy 形式（日期字符串形如 January 1, 1994 ）显示当前日期。第一条指令保存原来的日期格式，以便最后一条指令恢复之。

OriginalFormat$ = GetPrivateProfileString$("Microsoft Word", \

"DateFormat", "WINWORD6.INI")

SetPrivateProfileString "Microsoft Word", "DateFormat", \

"MMMM d, yyyy", "WINWORD6.INI"

MsgBox "Today is " + Date$() + "."

SetPrivateProfileString "Microsoft Word", "DateFormat", \

OriginalFormat$, "WINWORD6.INI"


Date$()

示例

Date$([SerialNumber])

返回对应于SerialNumber （以十进制数表示日期或时间或者同时表示日期和时间）日期。如果省略了 SerialNumber ，则 Date$() 返回今天的日期。有关序数的内容，请参阅DateSerial()。

日期格式由 WINWORD6.INI 文件的 [Microsoft Word] 节中的“DateFormat= ”行来决定。（如果没有“ DateFormat= ”行，则 Date$() 使用 WIN.INI 的 [intl] 节中的 sShortDate 设置。）在宏中，您可使用 SetPrivateProfileString 来改变当前日期格式。

_____________

请参阅

日期和时间

DateSerial()

DateValue()

Day()

GetPrivateProfileString$()

Month()

Now()

SetPrivateProfileString

Time$()

Today()

Year()


DateSerial() 示例

这个示例提示用户输入一个日期，然后显示一个信息框，指明对应那一日期的是星期几：

Dim days$(7)

days$(1) = "Sunday" : days$(2) = "Monday" : days$(3) = "Tuesday"

days$(4) = "Wednesday" : days$(5) = "Thursday"

days$(6) = "Friday" : days$(7) = "Saturday"

datestring$ = InputBox$("Please enter the date for which " + \

"you want to determine the weekday (mm/dd/yy):")

monthnum = Val(Left$(datestring$, 2))

daynum = Val(Mid$(datestring$, 4, 2))

yearnum = Val(Right$(datestring$, 2))

dayofweek = DateSerial(yearnum, monthnum, daynum)

MsgBox "The day of the week is " + days$(Weekday(dayofweek)) + "."


DateSerial()

示例

DateSerial(Year,  Month,  Day)

返回指定日期的序数。该序数对应 1899 年 12 月 30 日和指定日期（最多到 4095 年 12 月 31 日）之间的各天的编号。例如，序数 1 对应 1899 年 12 月 31 日。如果指定日期在许可范围之外，则 DateSerial() 产生一个错误。

参数	解释
Year	在 0 （零）和 4095 之间的数字（包括 0 和 4095）或者数字表示式。若要指定 1900 和 1999 之间的年份，您可以只给出年份的最后两位数；若要指定 1899 之前或 1999 之后的年份，则需给出所有四位数字。
Month	1 和 12 之间的数字（包括 1 和 12 ）或者数字表示式，表示一年的月份。
Day	1 和 31 之间的数字（包括 1 和 31 ）或者数字表示式，表示每月的天。
_____________

请参阅

日期和时间

Date$()

DateValue()

Day()

Month()

Now()

TimeSerial()

Today()

Year()


DateValue() 示例

这个示例提示用户输入一个结束日期，然后显示今天和那个日期之间的天数：

enddate$ = InputBox$("Please enter an end date:")

serialenddate = DateValue(enddate$)

numdays = serialenddate - Today()

numdays = Abs(numdays)

MsgBox "The number of days between now and " + enddate$ + \

" is" + Str$(numdays) + "."


DateValue()

示例

DateValue(DateText$)

返回 DateText$ 所表示的日期的序数。请使用 DateValue() 转换文字表示的日期为序数。序数是日期、时间或日期和时间两者的十进制数表示。有关序数的内容,请参阅DateSerial()。

参数	解释
DateText$	表示 Word 日期格式的日期的字符串。例如，下面是 1991 年 7 月 8 日的有效表示: 7/8/91 July 8, 1991 8 July 1991 如果 DateText$ 只包括数字， DateValue() 以月、日、年的顺序识别日期的各部分。
DateText$ 必须表示 1899 年 12 月 30 日与 4095 年 12 月 31 日之间的日期。 如果 DateText$ 不在这个范围内， DateValue() 就会出错。如果 DateText$ 的年份部分省略，则 DateValue() 使用您计算机内部日历上的当前年。 DateValue() 忽略 DateText$ 内的时间信息。

_____________

请参阅

日期和时间

Date$()

DateSerial()

Now()

TimeValue()

Today()


Day() 示例

这个示例用 Day() 函数判定是月份中的哪一天，然后以合适的后缀（例如 "3rd" ）把结果显示在信息框内：

daynumber = Day(Now())

Select Case daynumber

Case 1, 21, 31

daysuffix$ = "st"

Case 2, 22

daysuffix$ = "nd"

Case 3, 23

daysuffix$ = "rd"

Case Else

daysuffix$ = "th"

End Select

MsgBox "Today is the" + Str$(daynumber) + \

daysuffix$ + " day of the month."


Day()

示例

Day(SerialNumber)

返回 1 与 31 之间的整数（包括 1 和 31 ），与 SerialNumber 的月中的某一天部分对应。 SerialNumber 是日期、时间或日期和时间两者的十进制数表示。有关序数的内容，请参阅DateSerial()。

参数	解释
SerialNumber	Word 计算日期和时间所用的序数。 SerialNumber 可以表示从 1899 年 12 月 30 日到 4095 年 12 月 31 日之间的日期或时间（或二者同时），其中 1899 年 12 月 30 日是 0 （零）。
_____________

请参阅

日期和时间

DateSerial()

Hour()

Minute()

Month()

Now()

Second()

Today()

Weekday()

Year()


Days360()示例

这个示例用 Days360() 判定 1992 年 2 月 1 日与 1993 年 2 月 1 日之间的天数（假定一年为 360 天）：

numdays = Days360("1/1/92","2/1/93")


Days360()

示例

Days360(StartDate[$], EndDate[$])

返回两个日期之间的天数，前提是假设一年为 360 天（十二个 30 天的月份）。如果您的记账系统是基于十二个 30 天的月份的话，这个函数可帮助您计算薪金。参数 StartDate 和 EndDate 是您想知道其间天数的两个日期。如果 StartDate 在 EndDate 之后，则 Days360() 返回一个负数。

参数	解释
StartDate[$]	表示起始日期的文字字符串或序数。有关 Word 中可用的日期格式，请参阅DateValue() 。有关序数的内容，请参阅DateSerial()。
EndDate[$]	表示结束日期的文字字符串或序数。
_____________

请参阅

日期和时间

DateSerial()

DateValue()

Day()


Hour() 示例

这个示例设置变量 thishour 为当前时间的小时部分：

thishour = Hour(Now())


Hour()

示例

Hour(SerialNumber)

返回 0 （零）与 23 之间的整数（包括 0 和 23 ），与 SerialNumber 的小时部分对应。SerialNumber 是日期、时间或日期和时间两者的十进制数表示。有关序数的内容,请参阅DateSerial()。

_____________

请参阅

日期和时间

DateSerial()

Day()

Minute()

Month()

Now()

Second()

Today()

Weekday()

Year()


InsertDateField

InsertDateField

在插入点插入 DATE 域。日期格式与上一次用“日期和时间”命令（“插入”菜单）选择的格式相匹配。

_____________

请参阅

日期和时间

InsertDateTime

InsertField

InsertPageField

InsertTimeField


InsertDateTime 示例

这个示例以“ 3 September, 1993 ”的形式插入当前时间的 TIME 域：

InsertDateTime .InsertAsField = 1, .DateTimePic = "d MMMM, yyyy"


InsertDateTime

示例

InsertDateTime [.DateTimePic = text] [, .InsertAsField = number]

以文字或 TIME 域形式插入当前日期、时间或两者都插入。

参数	解释
.DateTimePic	描述显示日期、时间或两者所用格式的字符串。如果省略， Word 就用 WINWORD6.INI 的 [Microsoft Word] 节中的“ DateFormat= ”行所指定的格式。如果没有“ DateFormat= ”行， Word 就使用 WIN.INI 的 [intl] 节中的“ sShortDate 设置"。
.InsertAsField	指定 Word 是否以 TIME 域插入信息： 0 Word 以文字插入信息。 1 Word 以 TIME 域插入信息。 省略 Word 根据“日期和时间”对话框（“插入”菜单）中的“插入方式”复选框中的当前设置来插入信息。
_____________

请参阅

日期和时间

InsertDateField

InsertField

InsertPageField


InsertTimeField

InsertTimeField

插入 TIME 域，在插入点不需任何域指令。

_____________

请参阅

日期和时间

InsertDateField

InsertDateTime

InsertField

InsertPageField


Minute() 示例

这个示例显示当前时间的分钟部分：

mins = Minute(Now())

MsgBox "It is" + Str$(mins) + " minute(s) after the hour."


Minute()

示例

Minute(SerialNumber)

返回 0 （零）与 59 之间的整数（包括 0 和 59 ），与 SerialNumber 的分钟部分对应。SerialNumber 是日期、时间或日期和时间两者的十进制数表示。有关序数的内容,请参阅DateSerial()。

_____________

请参阅

日期和时间

DateSerial()

Day()

Hour()

Month()

Now()

Second()

Today()

Weekday()

Year()


Month() 示例

这个示例显示当前月份与下一年之间的整月数量：

months = Month(Now())

MsgBox Str$(12 - months) + " full month(s) left in the year."


Month()

示例

Month(SerialNumber)

返回 1 与 12 之间的整数（包括 1 和 12 ），与 SerialNumber 的月份部分对应。SerialNumber 是日期、时间或日期和时间两者的十进制数表示。有关序数的内容，请参阅DateSerial()。

_____________

请参阅

日期和时间

DateSerial()

Day()

Hour()

Minute()

Now()

Second()

Today()

Weekday()

Year()


Now() 示例

这个示例显示一个写出新年之前的天数的信息框。天数是从下一年的 1 月 1 日的序数中减去当前日期和时间的序数来计算的。

yr = Year(Now())

rightNow = Now()

jan1 = DateSerial(yr + 1, 1, 1)

MsgBox "Days until the new year:" + Str$(jan1 - rightNow)

不足一天的部分在结果中以小数表示。若要严格返回不带小数的天数,请在前述示例中以 Today() 代替 Now() 。


Now()

示例

Now()

返回一个序数，该序数根据计算机的系统日期和时间表示当前的日期和时间。小数点左侧的表示 1899 年 12 月 30 日和当前时间之间的天数；右侧表示不足一天的时间。有关序数的内容，请参阅DateSerial()。

_____________

请参阅

日期和时间

Date$()

DateSerial()

DateValue()

Today()


OnTime 示例

这个示例设置 Word 里的简易闹钟功能。示例中的第一个宏设置后台计时器。

'Alarm program: Prompts user to input time for alarm to sound

'Current time appears in title bar of input box

Sub MAIN

Alarm$ = InputBox$("Time? (HH:mm:ss), 24hr", "Alarm " + Time$())

'Set background timer to run macro called Beeper

'No tolerance is set, so alarm will always sound

OnTime Alarm$, "Beeper"

End Sub

下面的宏发出警笛声，并显示与上一个宏设置的计时器对应的提醒信息。这个宏必须命名为“Beeper”以便与前一个宏合适工作。

Sub MAIN	'Beeper program

For count = 1 To 7

Beep

Beep

For TL = 1 To 100	'Adds a delay between beeps

Next

Next

MsgBox "Preset alarm sounded", "Beeper " + Time$(), 48

End Sub


OnTime

示例

OnTime When[$], Name$ [, Tolerance]

设置一个后台计时器，该计时器在 When[$] 所指定的时间运行一个宏。如果在指定的时间 Word 正忙着──例如，正显示一个对话框或 Word 正在进行一个排序操作──则 Word 一空下来宏就运行。

如果您在 When[$] 之前关闭了 Word ，那么计时器就被取消，且当您启动 Word 时也不再被激活。若要每次启动 Word 时都重新设置计时器──例如，您想在您下一次 Word 操作时自动设置一个警示宏（参阅本词条的示例）──请以“AutoExec”命名包括 OnTime 指令的宏。在关 AutoExec 和其他自动宏的内容，请参阅自动宏。

参数	解释
When[$]	运行宏的时间，以 24 小时文字格式 (hours:minutes:seconds) 或序数（日期或时间或两者的十进制数表示）表示。有关序数的详细内容，请参阅DateSerial()。 当您以文字指定时间时，可以不包括 seconds 例如，下午 2:37 表示为“14:37”，早上 2:37 表示为“ 02:37 ”或“ 2:37 ”。子夜为“ 00:00:00 ”。 在时间之前您可以包括进表示日期的字符串。有几种可用的日期格式，与 WIN.INI 的 [intl] 节中的设置有关。您可以通过选择“控制面板”（ Windows ）中的“国别设定”选项来控制默认的日期格式。如果日期没有指定，则宏就在第一次遇到指定时间时运行。
Name$	要运行的宏名。要运行的宏必须是在 OnTime 指令运行和指定时间到达时可以使用的。因此，最好指定共用模板 NORMAL.DOT 。不允许使用 MacroName.SubroutineName 的格式。
Tolerance	如果在 When, 之后 Tolerance 秒内 Name$ 还未启动， Word 就不会运行宏。如果 Tolerance 是 0 （零）或省略， Word 就总是运行宏，不管 Word 有空并能运行宏之前过去多少秒。
注释

Word 一次只能运行一个 OnTime 宏。如果您启动了第二个，则第一个就被取消。

_____________

请参阅

日期和时间

Date$()

DateSerial()

DateValue()

Day()

Month()

Now()

TimeValue()

Today()

Year()


Second() 示例

这个示例在宏运行后声音提示五秒钟。注意， Second(Now()) 根据您计算机的内部时钟返回当前时间的秒部分。

n = Second(Now())

beepTime = n + 5

If beepTime > 59 Then beepTime = beepTime - 60

While Second(Now()) <> beepTime

Wend

Beep


Second()

示例

Second(SerialNumber)

返回 0 （零）与 59 之间的整数（包括 0 和 59 ），与 SerialNumber 的秒部分对应。SerialNumber 是日期、时间或日期和时间两者的十进制数表示。有关序数的内容,请参阅DateSerial()。

_____________

请参阅

日期和时间

DateSerial()

Day()

Hour()

Minute()

Month()

Now()

Today()

Weekday()

Year()


Time$() 示例

把这个示例加入到宏的结尾，它显示一个指明该宏结束运行的时间的信息框。

MsgBox "The macro finished at " + Time$()


Time$()

示例

Time$([SerialNumber])

返回与对应于 SerialNumber （日期、时间或两者的十进制数表示）的时间。如果省略 SerialNumber，Time$() 返回当前时间。有关序数的内容，请参阅 DateSerial()。

时间格式由您的 WINWORD6.INI 文件的 [Microsoft Word] 节中的“ TimeFormat= ”行决定。（如果没有“ TimeFormat= ”行，Time$() 就使用 WIN.INI 的 [intl] 节中的时间设置。）在宏中，您可以用 SetPrivateProfileString 来改变当前时间格式。

_____________

请参阅

日期和时间

Date$()

DateSerial()

GetPrivateProfileString$()

Hour()

Minute()

Now()

Second()

SetPrivateProfileString

TimeSerial()

TimeValue()


TimeSerial() 示例

这个示例显示一个信息框，以小数表示当日已过去的部分。

h = Hour(Now())

m = Minute(Now())

s = Second(Now())

fraction = TimeSerial(h, m, s)

MsgBox Left$(Str$(fraction), 5) + " of this day is over."


TimeSerial()

示例

TimeSerial(Hour, Minute, Second)

返回指定时间的序数。因为序数是表示天数的十进制数，TimeSerial() 返回的数在 0 至 0.99998842592593 之间。有关序数的详细内容,请参阅 DateSerial()。

参数	解释
Hour	0 到 23 之间的数（包括 0 和 23 ）或数字表达式
Minute	表示小时后面的分的 0 到 59 之间的数（包括 0 和 59 ）或数字表达式
Second	表示分后面的秒的 0 到 59 之间的数（包括 0 和 59 ）或数字表达式
_____________

请参阅

日期和时间

DateSerial()

Day()

Month()

Now()

Time$()

TimeValue()

Today()

Year()


TimeValue() 示例

这个示例在状态栏内显示当前时间的序数：

Print TimeValue(Time$())


TimeValue()

示例

TimeValue(TimeText$)

返回由 TimeText$ 所表示的时间的序数。用 TimeValue() 可把文字表示的时间转换为序数。序数是日期、时间或两者的十进制数表示。有关序数的内容,请参阅 DateSerial()。

参数	解释
TimeText$	表示时间的字符串。例如，下面都是下午 4:30 的有效表示: 16:30:00 4:30 pm 4:30 PM TimeText$ 必须表示 24 小时制时钟上的 00:00:00 与 23:59:59 之间的一个时间。如果 TimeText$ 超出这个范围，TimeValue() 就产生一个错误。
_____________

请参阅

日期和时间

DateSerial()

DateValue()

Day()

Month()

Now()

Time$()

TimeSerial()

Today()

Year()


Today() 示例

这个示例显示一个写出新年之前天数的信息框。天数是从下一年的 1 月 1 日的序数中减去当前日期和时间的序数来计算的。

yr = Year(Today())

rightNow = Today()

jan1 = DateSerial(yr + 1, 1, 1)

MsgBox "Days until the new year:" + Str$(jan1-rightNow)


Today()

示例

Today()

返回一个序数，该序数根据计算机的系统日期表示当前的日期。Today() 不象 Now() 返回一个带小数的数字来表示不足一天的时间，Today() 严格返回整数天数。有关序数的详细内容，请参阅 DateSerial()。

_____________

请参阅

日期和时间

Date$()

DateSerial()

DateValue()

Day()

Month()

Now()

Time$()

TimeSerial()

TimeValue()

Year()


Weekday() 示例

这个示例定义一个包含星期几的名字的数组，返回一个当前星期几的数字，然后用这个数与数组返回星期几的名字，再把该名字显示在信息框中。

Dim days$(7)

days$(1) = "Sunday" : days$(2) = "Monday" : days$(3) = "Tuesday"

days$(4) = "Wednesday" : days$(5) = "Thursday"

days$(6) = "Friday" : days$(7) = "Saturday"

thisday = Weekday(Now())

MsgBox "Would you believe it's " + days$(thisday) + " already?"


Weekday()

示例

Weekday(SerialNumber)

返回一个 1 与 7 之间的整数（包括 1 和 7 ），对应于一个星期的七天，其中 1 是星期日。日期由 SerialNumber 落差表示。序数是日期、时间或两者的十进制数表示。有关序数的内容，请参阅 DateSerial()。

_____________

请参阅

日期和时间

DateSerial()

Day()

Hour()

Minute()

Month()

Now()

Second()

Today()

Year()


Year() 示例

这个示例返回当前日期的年份，把它转换为字符串，然后截短该字符串为只有最后两位数字。

years = Year(Now())

years$ = Str$(years)

years$ = Right$(years$, 2)


Year()

示例

Year(SerialNumber)

返回 1899 与 4095 之间的整数（包括这两个数），对应于 SerialNumber 中的年份。序数是日期、时间或两者的十进制数表示。有关序数的内容，请参阅 DateSerial()。

_____________

请参阅

日期和时间

DateSerial()

Day()

Hour()

Minute()

Month()

Now()

Second()

Today()

Weekday()


DDEExecute 示例

如果 Microsoft Excel 没有运行，那么本示例将启动它，然后打开一个到 Microsoft Excel 及“系统”主题（有关“系统”主题的内容，请参阅 DDERequest$()）的通道。然后，本示例发送命令，打开 BUDGET.XLS 并转到 R20C5 单元。与一个文档不同，它可能可以打开，也可能打不开，而对于“系统”主题，只要 Microsoft Excel 在运行，它就总是可用的。

If AppIsRunning("Microsoft Excel") = 0 Then Shell "C:\EXCEL\EXCEL.EXE"

channel = DDEInitiate("Excel", "System")

q$ = Chr$(34)

cmd1$ = "[OPEN(" + q$ + "C:\EXCEL\EXAMPLES\BUDGET.XLS" + q$ + ")]"

cmd2$ = "[SELECT(" + q$ + "R20C5" + q$ + ", " + q$ + "R20C5" + q$ + ")]"

bothcmds$ = cmd1$ + cmd2$

DDEExecute channel, bothcmds$


DDEExecute

示例

DDEExecute ChanNum, Command$

通过一个动态数据交换 (DDE) 通道，发送一个或一系列命令到一个应用程序中。

参数	解释
ChanNum	在 DDE 对话中由 DDEInitiate()返回的通道号。如果 ChanNum 与一个已打开的通道不符，则出错。
Command$	由服务器应用程序识别的一个或一系列命令。您也可以使用在 SendKeys 下描述的格式来发送特定的键序列。如果服务器应用程序不能执行指定的命令，则出错。
在 Microsoft Excel 和其他支持 DDE 的应用程序中，Command$ 必须是该应用程序宏语言中的一条或多条语句或函数。比如，在 Microsoft Excel 中创建新电子表格的 XLM 宏指令是 NEW(1))。要通过 DDE 通道发送这个指令，您可以使用下面的指令：

DDEExecute channel, "[NEW(1)]"

注意，一些应用程序，包括 Microsoft Excel ，要求通过 DDE 通道接收的每一条命令都必须用方括号括起来。

您可以使用单个 DDEExecute 指令来发送多条命令。比如，下面的指令让 Microsoft Excel 打开然后关闭一个电子表格。

DDEExecute channel, "[NEW(1)][FILE.CLOSE(0)]"

注意在括号里的命令之间没有空格，留有空格则出错。前面的指令等价于下面两条指令：

DDEExecute channel, "[NEW(1)]"

DDEExecute channel, "[FILE.CLOSE(0)]"

许多命令需要括在引号里的字符串作为参数。因为引号在 WordBasic 中指明了一个字符串的起始和结止，所以您必须使用 Chr$(34) 来在一个命令字符串中加入一个引号。比如，下面的指令告诉 Microsoft Excel 打开 BUDGET.XLS:

DDEExecute channel, "[OPEN(" + Chr$(34) + "BUDGET.XLS" + Chr$(34) + ")]"

_____________

请参阅

动态数据交换(DDE)

DDEInitiate()

DDEPoke

DDERequest$()

DDETerminate

DDETerminateAll


DDEInitiate() 示例

本示例打开一个到 Microsoft Excel 和文件 LOAN.XLS 的通道。变量 channel 得到返回的通道号。如果 Microsoft Excel 不在运行或者 LOAN.XLS 没有打开，则该函数返回 0 并且给出出错信息。

channel = DDEInitiate("Excel", "C:\EXCEL\LOAN.XLS")

下面的示例先确认 Microsoft Excel 正在运行，然后打开一个到 Microsoft Excel 和“系统”主题的通道，并使用 DDERequest$() 来得到“主题”项。“主题”项是一份可用主题，其中包括已打开文档名的列表，是“系统”主题的一个标准项，它总是可用的。

wordWin$ = "Microsoft Word - " + WindowName$()

If AppIsRunning("Microsoft Excel") = 0 Then

Shell "C:\EXCEL\EXCEL.EXE"

AppActivate wordWin$, 1

End If

channel = DDEInitiate("Excel", "System")

topics$ = DDERequest$(channel, "Topics")

If InStr(topics$, "Sheet1") <> 0 Then

MsgBox "Sheet1 is an available topic."

End If

DDETerminate channel


DDEInitiate()

示例

DDEInitiate(Application$, Topic$)

初始化与一个应用程序的 DDE （动态数据交换）对话并打开一个 DDE 通道，借助这个通道，对话得以进行。如果 DDEInitiate() 能够打开一个通道，那么它将返回一个已打开通道的通道号，这个通道号是一个大于 0 的整数。（Word 打开的通道号依次是 1、2 等等。）在整个 DDE 对话过程中，后续的 DDE 指令都将使用这个通道号来指明所用通道。如果DDEInitiate() 不能打开一个通道，它将返回 0。

参数	解释
Application$	用来指明一个支持 DDE 并作为一个 DDE 服务器的应用程序名。通常是该应用程序的 .EXE 文件，但不带 .EXE 扩展名。如果该应用程序不在运行， DDEInitiate() 将不能打开通道，并返回一个错误信息。
Topic$	由应用程序 Application$识别的主题名。一个打开的文档就是一个典型的主题。（如果 Topic$ 是一个文档名，那么该文档必须是打开的。）如果 Application$ 不能识别 Topic$，则 DDEInitiate() 将产生错误。 很多支持 DDE 的应用程序都能识别一个名为“系统”的主题，这个主题总是可用的，并能用来查询还有哪些主题可用。有关“系统”主题的详细内容，请参阅 DDERequest$()。
可同时打开的通道的最大编号，取决于 Microsoft Window 和您系统内存及资源情况。如果您不再使用一个已打开的通道，应该利用 DDETerminate 或 DDETerminateAll 关闭它以保存资源。

_____________

请参阅

动态数据交换(DDE)

DDEExecute

DDEPoke

DDERequest$()

DDETerminate

DDETerminateAll


DDEPoke 示例

本示例发送变量 Total$ 的值到 Microsoft Excel 文件 SHEET1.XLS 中的第二行第三列。

channel = DDEInitiate ("Excel", "Sheet1")

DDEPoke channel, "R2C3", Total$

下面的示例发送字符串 "Total:$1,434" 到 SHEET1.XLS 的名为“Quarter Total”的单元中。

channel = DDEInitiate("Excel", "Sheet1")

DDEPoke channel, "QuarterTotal", "Total: $1,434"


DDEPoke

示例

DDEPoke ChanNum, Item$, Data$

使用一个已打开的动态数据交换 (DDE) 通道发送数据到一个应用程序。当您使用DDEInitiate() 来启动一个 DDE 对话时，您就打开了一个到特定的，由服务器应用程序识别的主题的通道。比如，在 Microsoft Excel 中，每一个打开的文档都是一个独立的主题。当您发送信息给服务器应用程序的一个主题时，您必须指明该主题中的项。比如，在 Microsoft Excel 中，单元格就是有效的项，它们既可以用 "R1C1" 引用，也可以用它们的名称引用。

DDEPoke 把数据作为一个文本字符串发送，您不能用其他格式发送文本，也不能发送图形。

参数	解释
ChanNum	在 DDE 对话中由 DDEInitiate() 返回的通道号。如果ChanNum 与一个已打开的通道不符，则出错。
Item$	DDE 主题中的一个项。如果服务器应用程序不能识别 Item$，则出错。
Data$	包含有将发送到服务器应用程序的数据的字符串。
_____________

请参阅

动态数据交换(DDE)

DDEExecute

DDEInitiate()

DDERequest$()

DDETerminate

DDETerminateAll


DDERequest$() 示例

本示例打开一个到 Microsoft Excel 和 BUDGET.XLS 的通道，然后查询 R5C4 单元格的内容。

channel = DDEInitiate("Excel", "BUDGET.XLS")

a$ = DDERequest$(channel, "R5C4")

MsgBox a$


DDERequest$()

示例

DDERequest$(ChanNum, Item$)

使用一条已打开的 DDE 通道，从一个应用程序中查询一项信息。当您使用 DDEInitiate() 启动一个 DDE 对话时，您就打开了一个到特定的，由服务器应用程序识别的主题的通道。比如，在 Microsoft Excel 中，每一个打开的文档都是一个独立的主题。当您发送信息给服务器应用程序的一个主题时，您必须指明该主题中的项。比如，在 Microsoft Excel 中，单元格就是有效的项，它们既可以用 "R1C1" 引用，也可以用它们的名称引用。

DDERequest$() 只把数据作为一个字符串返回，如果该函数没有成功执行，将返回一个空字符串 ("")。其他格式的文本以及图形都不能传送。

参数	解释
ChanNum	在 DDE 对话中由 DDEInitiate()返回的通道号。如果 ChanNum 与一个已打开的通道不符，则出错。
Item$	由服务器应用程序识别的DDE 主题中的一个项。DDERequest$() 返回该指定项的全部内容。如果服务器应用程序不能识别 Item$，则出错。
Microsoft Excel 和其他支持 DDE 的应用程序都能识别一个名为“系统”的主题。下表描述了“系统”主题中的三个标准项。注意，可以使用“系统”项来获得“系统”主题中其他项的列表。

“系统”主题中的项	结果
系统	返回“系统”主题中全部项的列表
主题	返回可用主题的列表
格式	返回由 Word 支持的所有剪贴板格式的列表
有关使用“系统”主题的示例，请参阅 DDETerminate() 示例。

_____________

请参阅

动态数据交换(DDE)

DDEExecute

DDEInitiate()

DDEPoke

DDETerminate

DDETerminateAll


DDETerminate 示例

本示例打开一个 DDE 通道以查询一个来自 Microsoft Excel 主题的列表。下面的指令把查询的列表插入活动的 Word 文档，然后关闭该通道。

channel = DDEInitiate("Excel", "System")

a$ = DDERequest$(channel, "Topics")

Insert a$

DDETerminate channel


DDETerminate

示例

DDETerminate ChanNum

关闭指定的 DDE 通道。若要释放系统资源，就必须关闭不使用的通道。

参数	解释
ChanNum	在 DDE 对话中由 DDEInitiate() 返回的通道号。如果 ChanNum 与一个已打开的通道不符，则出错。
_____________

请参阅

动态数据交换(DDE)

DDEExecute

DDEInitiate()

DDEPoke

DDERequest$()

DDETerminateAll


DDETerminateAll

DDETerminateAll

关闭所有由 Word 打开的 DDE 通道。DDETerminateAll 不关闭由客户应用程序打开的到 Word 的通道。使用本语句与对每一个通道使用 DDETerminate 语句作用相同。如果没有 DDE 通道打开，使用 DDETerminateAll 也不会出错。

如果您中断了一个已打开 DDE 通道的宏，您可能就会遗留一个打开的通道。已打开的通道在宏结束时并不自动关闭，而且每一个打开的通道都占用系统资源。出于这个原因，在调试打开 DDE 通道的宏时，最好使用 DDETerminateAll 。

_____________

请参阅

动态数据交换(DDE)

DDEExecute

DDEInitiate()

DDEPoke

DDERequest$()

DDETerminate


SendKeys 示例

SendKeys 的一个用途，就是在一个 Word 对话框中插入文本或选择项目（比如，要提供默认文本或初始选定项）。本示例将显示“打开”对话框（“文件”菜单），并插入默认文本“TEXTFILE”到“文件名”框中。您可以只用单个指令 SendKeys "%foTESTFILE" 来得到同样的结果。

SendKeys "TESTFILE"

Dim dlg As FileOpen

x = Dialog(dlg)

下面的示例添加一个批注到 Word “帮助”系统的“Word 帮助内容”中。在 SendKeys 指令中，c 表示选择“内容”按钮，%e 表示选中“编辑”菜单，a 表示选中“批注”命令，a$ 表示插入批注。

a$ = "My annotation for Help."

SendKeys "c%ea" + a$

Shell "WINHELP.EXE C:\WINWORD\WINWORD.HLP"

下面的示例启动 Microsoft Excel 并调入 MARCH.XLS ，然后执行相当于按 PAGE DOWN 20 次的操作。

SendKeys "{pgdn 20}"

Shell "C:\EXCEL\MARCH.XLS", 1


SendKeys

示例

SendKeys Keys$, Wait

把由 Keys$ 指明的击键操作发送到下一个 Word 命令或活动应用程序，就象在键盘上击键一样。SendKeys 必须在激活这些命令或应用程序的指令之前，这样，当宏停止时，这些击键操作就已经在内存里了。

注释

只有在别无它法的情况下，才使用 SendKeys 来操作其他应用程序，而且必须小心使用。一般来讲，对于 Word ，动态数据交换 (DDE) 是更好的与其他应用程序交换信息的方法，因为 DDE 提供了在应用程序之间双向交换信息的通道，并且提供了检查和处理其他应用程序中错误的途径。而对于 SendKeys，即使最简单的使用也必须对大量的情况进行测试，以避免产生不可知结果、丢失数据，或同时发生这两种情况。

当单步运行一个含有 SendKeys 指令的宏时（用“宏”工具栏上的“单步方式”或“命令方式”按钮），注意该宏不会象预期的那样执行，除非 SendKeys 指令和激活目标应用程序或对话框的指令在同一行上，并用分号隔开。

参数	解释
Keys$	一个键或键序列，如 "a" 对应于字母 a， "{enter}{pgup}" 对应于 ENTER 键以及 PAGE UP 键。
Wait	如果 Word 不是活动程序且 Wait 值为 -1，则 Word 在继续执行下去之前，等待所有的击键操作。 比如，如果您运行下面的指令，发送 Keys$ 到 Microsoft Excel，那么只有当文本插入全部 10 个的单元以后，Word 才发出声音提示。如果 Wait 值为 0，则在文本插入第一个单元后就发出声音提示。 AppActivate "Microsoft Excel" For i = 1 To 10 SendKeys "Testing{down}", -1 Next i Beep
要指明不插入字符的键，使用下列代码：

Key	Code
BACKSPACE	{backspace} or {bs} 或 {bksp}
BREAK	{break}
CAPS LOCK	{capslock}
CLEAR	{clear}
DEL	{delete} 或 {del}
DOWN ARROW	{down}
END	{end}
ENTER	{enter} 或 ~
ESC	{escape} 或 {esc}
HELP	{help}
HOME	{home}
INS	{insert}
LEFT ARROW	{left}
NUM LOCK	{numlock}
PAGE DOWN	{pgdn}
PAGE UP	{pgup}
PRINT SCREEN	{prtsc}
RIGHT ARROW	{right}
TAB	{tab}
UP ARROW	{up}
F1, F2, F3,...F16	{F1}, {F2}, {F3},...{F16}
注释

除了上面列出的键码，您还可以用 ToolsCustomizeKeyboard中所列的任何键码。要用这些键码，请用语法 {Code}。比如，指令 SendKeys "{13}" 发送 ENTER 的键码。

要重复一个字符，请使用语法 {Character Number}。比如，SendKeys "{s 10}" 重复字符 s 10 次。必须记住在键和数字之间要加空格。要重复一个代码中已经含有大括号的键，则在大括号中加入一个空格和一个数字，比如，SendKeys "{enter 10}"。（您不能用这种方法重复 ToolsCustomizeKeyboard 键码。）

要发送包括 SHIFT、ALT 或 CTRL, 的组合击键操作，请使用下列符号：

组合键	在该键之前加
SHIFT	+ (加号)
ALT	% (百分号)
CTRL	^ (插字符
比如， "%{enter}" 发送代码 ALT+ENTER。您可用圆括号对键进行分组，并在组前加 SHIFT、ALT 或 CTRL 键码。比如， 代码 "+(wordbasic)" 表示 WORDBASIC （但是您也可以只用大写字母 WORDBASIC ，而不用加号）。要把加号 (+)，百分号 (%) 或插字符 (^)作为文字文本来发送时，把该字符括在大括号里。比如，要发送一个加号，请使用指令 SendKeys "{+}"。您也可以用大括号来发送圆括号。

注释

当发送含有 ALT 键的联合击键操作时，必须用小写字符。比如，要打开“文件”菜单 (ALT, F)，请用 "%f." ；若用 "%F" 则等价于按 ALT+SHIFT+F 键。

_____________

请参阅

动态数据交换(DDE)

AppActivate

DDEExecute

DDEInitiate()

DDEPoke


Declare 示例

下面的宏将选定内容作为搜索帮助的一个关键字。如果找到一个匹配该关键字的主题，宏显示该主题。如果匹配字符串的主题不止一个，则显示列出选定关键字的“搜索”对话框（“帮助”菜单）。如果没有找到匹配的关键字，宏也显示“搜索”对话框，并将关键字列表滚动到与选定内容拼写最接近的关键字上。

Declare Function WinHelp Lib "USER.EXE"(hWnd As Integer, lpHelpFile \

As String, wCmd As Integer, dwData As String) As Integer

Declare Function GetActiveWindow Lib "USER.EXE"() As Integer

Sub MAIN

hWnd = GetActiveWindow

helpFile$ = "C:\WINWORD\WINWORD.HLP"

wCmd = 261	'The decimal value for HELP_PARTIALKEY

keyWord$ = Selection$()

success = WinHelp(hWnd, helpFile$, wCmd, keyWord$)

If success = 0 Then MsgBox "Could not start Windows Help"

End Sub


Declare

示例

Declare Sub SubName Lib LibName$ [(ArgumentList)] [Alias Routine$]

Declare Function FunctionName[$] Lib LibName$ [(ArgumentList)] [Alias Routine$] As Type

通过 Declare，可使 Windows 动态链接库（DLL）、Word 加载库(WLL)或可执行程序(EXE)中保存的函数成为 WordBasic 宏中的函数或子程序。声明中应包含函数名、保存该函数的库名以及函数必须的其他参数。Declare 语句通常放在宏的主程序之前，它不能出现在子程序或函数中。

Windows 中有一些标准函数库，如 USER.EXE 和 GDI.EXE。其中的函数您可在《Microsoft Windows 程序员参考手册》第二卷中。您可以从 Microsoft Windows Software Development Kit 或 Microsoft Press 那里得到这本书。第一卷中有每个函数对应模块和库的列表。有关使用这些函数的详细信息，参阅《Microsoft Word 开发工具》第九章 “WordBasic 的其他技术”。

注意

当您在实验各种 Windows 函数时，要经常保存已作完的工作。一个非法的函数参数传递可能对 Word 或其他应用程序造成不可预料的结果。

参数	说明
Sub 或 Function	如果您声明的函数有返回值，就使用 Function；否则使用 Sub。
SubName 或 FunctionName[$]	宏调用该函数是使用的名称。这里使用的名称不一定与库中的实际函数名完全一样。您可以用声明语句的 Alias 部分定义实际的函数名。如果 FunctionName 返回一个字符串，则函数名应带有符号($)，就象 WordBasic 中其他字符串函数一样。
LibName$	包含子程序的库文件名，引在引号中。为避免混淆，请使用带扩展名的完整文件名。如果该文件不在 Windows 工作目录或 SYSTEM 子目录中，请在文件名中包括完整的路径。
ArgumentList	代表传递给参数的变量列表。参见下表了解 ArgumentList 中使用的语法结构。
Alias Routine$	库函数使用的实际名称，引在引号中。只有当 Sub 或 Function 后指定的名称不是函数的实际名称时才使用语句的这一部分。
As Type	声明函数返回的数据类型。可用数据类型包括：As Integer 用于整数或逻辑(BOOL)返回值；As String 用于字符串(LPSTR)类型返回值；As Long 用于长整型的返回值；As Double 用于双精度返回类型。
ArgumentList 参数使用下面的语法：

(Variable[$] [As Type] [, Variable[$] [As Type]] [, ...])

下表说明 ArgumentList.的各个部分。

部分	说明
Variable[$]	WordBasic 变量名。字符串变量要在变量名后添加符号($)，与用 As String -说明效果相同。例如，fileName$ 等同于fileName As String。如果变量名没有用($)结尾，又没有 As Type的说明，则 WordBasic 将其默认为数值变量（双精度浮点类型）。
As Type	声明函数所需参数的数据类型：As Integer 用于整数或逻辑(BOOL)参数；As String（或以 $ 结尾的变量名）用于字符串(LPSTR)参数；As Long 用于长整型参数；As Double 用于双精度参数。
_____________

请参阅

定义和声明

Dim


Dim 示例

下面的示例声明了三个被多个子程序共享的变量，这些变量一般放在 Sub MAIN 指令之前。

Dim Shared numDocs, docName$, savePath$

下面的示例将一周中各天的名称保存在数组 Days$ 中，并在状态栏上显示数组的第三个元素"Tuesday"：

Dim Days$(6)

Days$(0) = "Sunday" : Days$(1) = "Monday" : Days$(2) = "Tuesday"

Days$(3) = "Wednesday" : Days$(4) = "Thursday"

Days$(5) = "Friday" : Days$(6) = "Saturday"

Print Days$(2)

下面的示例声明变量 num 为共享类型，并将其值设置为 6，然后调用 MyRoutine 子程序。该子程序将 num 加 10，主程序显示变量的新值。注意 Dim Shared num 指令必须在两个例程之外。

Dim Shared num	'Declare num as shared

Sub MAIN

num = 6	'Set the value of num

MyRoutine	'Call the routine

Print num	'Display the new value of num

End Sub

Sub MyRoutine

num = num + 10	'Increase the value of num

End Sub

在下面的示例中，Dim 用于定义对话记录 TOVrec，该记录中保存了“选项”对话框（“工具”菜单）“视图”选项卡的数值。这个宏的目的是切换“段落标记”复选框的设置。

Dim TOVrec As ToolsOptionsView	'Define dialog record

GetCurValues TOVrec	'Get the current state

If TOVrec.Paras = 1 Then	'If on

TOVrec.Paras = 0	'turn off

Else	'Else

TOVrec.Paras = 1	'turn on

End If

ToolsOptionsView TOVrec	'Apply new setting

在下面的示例中，Dim 用于定义一个用户自定义对话框的对话记录 Dlg：

Begin Dialog UserDialog 320, 57, "A Simple Dialog Box"

Text 5, 16, 205, 18, "This is a simple dialog box."

OKButton 220, 4, 88, 21

CancelButton 220, 29, 88, 21

End Dialog

Dim Dlg As UserDialog	'Define the dialog record

Dialog Dlg	'Display the dialog box


Dim

示例

Dim [Shared] Var1 [(Size)] [, Var2 [(Size)]] [, ...]

Dim DialogRecord As DialogName

Dim DialogRecord As UserDialog

声明被多个例程使用的变量，定义数组变量或定义对话记录。声明共享变量的Dim 语句必须放在宏中各个例程之外—通常在主程序之前。

语法	作用
Dim Var(Size)	定义数组变量。Size是数组最后一个元素的下标。在 WordBasic 中，数组的第一个元素从 0（零）开始，所以如果定义一个七元素的数组，如一周中的七天，Size应为 6。
Dim Shared Var[(Size)]	声明被多个例程使用的字符串、数值或数组变量。Dim 语句必须放在各例程之外。通常，共享变量的声明总是在宏的一开始，主例程之前。
Dim DialogRecord As DialogName	定义 Word 对话框的对话记录变量。DialogName 可以是任何对应一个 Word 命令或对话框的 WordBasic 语句。例如，FormatFont 或 FileOpen 即是合法的 DialogName。
Dim DialogRecord As UserDialog	定义用户自定义对话框的对话记录。
_____________

请参阅

定义和声明

Declare

Dialog

Let

Redim


Let 示例

下面的每一条指令都可以把 100 赋给变量 A：

Let A = 100

A = 100


Let

示例

[Let] Var = Expression

将表达式值赋给变量。Let 是可选的。

_____________

请参阅

定义和声明

Dim


Redim 示例

下面的示例说明如何使用 Redim 再利用不在使用的数组变量的存储空间。这种用法有利于保存系统资源。

Dim BigArray$(100)

BigArray$(0) = "A long text string"

'Series of statements that define array elements 1 through 99

BigArray$(100) = "Another long text string"

'Series of statements that make use of the values in BigArray$()

Redim BigArray$(100)

'Series of statements that define and make use of new array elements

下面的宏从“摘要信息”对话框（“文件”菜单）中提出作者名，从“选项”对话框（“工具”菜单）的用户信息选项卡中提取用户姓名，然后比较这两个值。如果比较值不同，则显示消息框。

Dim 语句将“摘要信息”对话框的数据存放在对话记录 dlg 中。作者名提出后，数组中的值就不再使用。因此，Redim 重复使用对话记录 dlg 保存“用户信息”选项卡（“选项”对话框）的数据。

Sub MAIN

Dim dlg As FileSummaryInfo

GetCurValues dlg

Author$ = dlg.Author

Redim dlg As ToolsOptionsUserInfo

GetCurValues dlg

UserName$ = dlg.Name

If Author$ <> UserName$ Then

MsgBox "Author does not match user."

End If

End Sub


Redim

示例

Redim [Shared] Var[(Size)] [, Var[(Size)]]

Redim Var As DialogName

Redim Var As UserDialog

清空数组变量，使数组元素可以被重新定义。Redim 代表“redimension”—您可以在重定义数组变量时指定一个新的 Size值。注意，一旦使用 Redim，数组中原有的内容将不复存在。Redim 也可以重定义一个 Word 对话框或用户自定义对话框的对话记录。有关 Redim 参数的介绍，参见 Dim.。

_____________

请参阅

定义和声明

Dim

Let


Begin Dialog...End Dialog 示例

这个示例定义和显示一个对话框（显示在指令的后面），其中包括每一个可能的对话框控制项。请注意，Picture 指令假设文件 C:\WIN31\FLOCK.BMP 存在（ FLOCK.BMP 包含于 Microsoft Windows 3.1版中）。一旦您用 Begin Dialog...End Dialog 定义了对话框，您就需要两条附加指令来显示它：Dim 指令，它定义保存对话框值的对话记录；Dialog 指令，它显示对话框。请注意，需要对话函数来显示 FilePreview 控制点中的文档。有关对话函数的内容，请参阅创建动态对话框。

Sub MAIN

Dim MyList$(2)

MyList$(0) = "Blue"

MyList$(1) = "Green"

MyList$(2) = "Red"

Begin Dialog UserDialog 612, 226, "Every Dialog Box Control", \

.DlgFunction

ComboBox 8, 76, 176, 111, MyList$(), .ComboBox1$

OKButton 253, 199, 108, 21

CancelButton 131, 199, 108, 21

PushButton 10, 199, 108, 21, "Push Button"

Text 417, 186, 35, 13, "Text"

TextBox 417, 199, 179, 18, .TextBox1$

CheckBox 198, 79, 180, 16, "Check Box", .CheckBox1

DropListBox 417, 5, 179, 108, MyList$(), .DropListBox1

ListBox 195, 102, 189, 83, MyList$(), .ListBox1

GroupBox 7, 4, 177, 65, "Group Box"

OptionGroup  .OptionGroup1

OptionButton 17, 16, 148, 16, "Option Button 1"

OptionButton 17, 33, 148, 16, "Option Button 2"

OptionButton 17, 50, 148, 16, "Option Button 3"

Picture 199, 7, 181, 62, "C:\WIN31\FLOCK.BMP", 0, .Picture1

FilePreview 417, 31, 179, 148, .Fileprev

End Dialog

Dim sampleDlg As UserDialog

button = Dialog(sampleDlg)

End Sub

Function DlgFunction(identifier$, action, suppvalue)

'A dialog function is required to display

'a document in the FilePreview control.

End Function


Begin Dialog...End Dialog

示例

Begin Dialog UserDialog [HorizPos, VertPos,] Width, Height [, Title$] [, .DialogFunction]
Series of dialog box definition instructions
End Dialog

包含定义在宏中创建的对话框的各指令。对话框定义由定义对话框的不同元素（如“确定”按钮、“取消”按钮等等）的一组指令所组成。对话框元素称为对话框控制项。

创建对话框的最简单办法是使用“对话框编辑器”。通过“对话框编辑器”，您可以用鼠标设计对话框。然后“对话框编辑器”就可以生成 WordBasic 代码来定义对话框。有关创建和使用对话框的内容，请参阅《 Microsoft Word 开发工具》的第五章，“使用自定义对话框”。

注释

每个自定义对话框至少必须包括一个命令按钮，以便用户可以关闭对话框。因此，对话框定义必须或者包括 OKButton、CancelButton 指令，或者包括 PushButton 指令；不然，运行宏时就会发生 WordBasic 错误。

参数	解释
HorizPos, VertPos	从 Word 窗口左上角到对话框窗口左上角的水平（HorizPos）和垂直（VertPos）距离，以系统字体的 1/8 （对于 HorizPos）和 1/12 （对于 VertPos）为单位。如果 HorizPos 和 VertPos 没有指定，Word 在窗口中居中放置对话框。
Width, Height	对话框的宽度和高度，以系统字体的 1/8 （对于 Width）和 1/12 （对于 Height）为单位。
Title$	显示在对话框标题栏中的文字。如果 Title$ 没有指定，就用“ Microsoft Word ”。
.DialogFunction	与对话框相关的对话函数名；用于对话框在显示时动态更新对话框。
可以用 tab 键在对话框的控制点之间移动。对话框定义中的指令顺序决定了 tab 键在对话框中的顺序。默认对话框定义的第一条指令在对话框显示时就选定。但是，也可以用对话函数中的 DlgFocus 语句来跨过这一默认。还可以用 Dialog 语句来指定对话框的默认按钮。

_____________

请参阅

对话框定义和控制

CancelButton

CheckBox

ComboBox

Dialog

Dim

DropListBox

FilePreview

GroupBox

ListBox

OKButton

OptionButton

OptionGroup

Picture

PushButton

Text

TextBox


CancelButton

CancelButton HorizPos, VertPos, Width, Height [, .Identifier]

在自定义对话框中创建一个“取消”按钮。在不进行任何操作时，用户可以选择“取消”按钮来关闭对话框。

参数	解释
HorizPos, VertPos	从对话框左上角到“取消”按钮左上角的水平（HorizPos）和垂直（VertPos）距离，以系统字体的 1/8 （对于 HorizPos）和 1/12 （对于 VertPos）为单位。
Width, Height	“取消”按钮的宽度和高度，以系统字体的 1/8 （对于 Width）和 1/12 （对于 Height）为单位。
.Identifier	作用于“取消”按钮的对话函数中的语句（如 DlgEnable 和 DlgVisible）所用的可选标识符。如果省略，则“取消”为默认标识符。
如果用 Dialog 语句来显示对话框，而用户选择了“取消”按钮的话，WordBasic 产生一个错误，您可以用 On Error 来截获这个错误。

如果用 Dialog() 函数显示对话框，且用户选择了“取消”按钮，函数返回 0 而不会产生错误。

若要看对话框定义的 CancelButton 的示例，请参阅 Begin Dialog...End Dialog 示例。

_____________

请参阅

对话框定义和控制

Begin Dialog...End Dialog

Dialog

Err

Error

OKButton

On Error

PushButton


CheckBox

CheckBox HorizPos, VertPos, Width, Height, Label$, .Identifier

在自定义对话框中创建复选框。

参数	解释
HorizPos, VertPos	从对话框左上角到包含复选框及其相关标记的矩形左上角的水平（HorizPos）和垂直（VertPos）距离，以系统字体的 1/8 （对于 HorizPos）和 1/12 （对于 VertPos）为单位。
Width, Height	复选框的宽度和高度，以系统字体的 1/8 （对于 Width）和 1/12 （对于 Height）为单位。
Label$	与复选框相关联的标记。Label$ 中前面有 & 符的字符表示选定和清除复选框的访问键。
.Identifier	.Identifier 是与对话记录名一起创建一个变量，它的值对应于复选框的状态。这一变量的格式是 DialogRecord.Identifier （例如， dlg.MyCheckBox）。 DialogRecord.Identifier 可以返回下列值： 0 复选框被清除。 1 复选框被选定。 -1 复选框以灰色填充。 识别字符串（.Identifier 去掉句点）也用在作用于复选框的对话函数的语句中，如 DlgEnable 和 DlgVisible。
若要察看对话框定义中 CheckBox 的示例，请参阅 Begin Dialog...End Dialog 示例。

_____________

请参阅

对话框定义和控制

Begin Dialog...End Dialog


ComboBox

ComboBox HorizPos, VertPos, Width, Height, ArrayVariable$(), .Identifier[$]

在自定义对话框中创建一个复合框——列表框和文本框联合构成的一个控制框。用户可以选定其中一项，也可以在文本框中键入新的项目。

参数	解释
HorizPos, VertPos	从对话框左上角到复合框左上角的水平（HorizPos）和垂直（VertPos）距离，以系统字体的 1/8 （对于 HorizPos）和 1/12 （对于 VertPos）为单位。
Width, Height	复合框的宽度和高度，以系统字体的 1/8 （对于 Width）和 1/12 （对于 Height）为单位。
ArrayVariable$()	包含要列在复合框中的项目的文本数组。
.Identifier[$]	.Identifier[$] 与对话记录名一起创建一个变量，它的值对应于选定项目的文本或键入到复合框中的文本。这一变量的格式是 DialogRecord.Identifier[$] （例如， dlg.MyComboBox$）。美元符号 ($) 是可选的，您可以用它表明变量是字符串变量。 标识字符串（.Identifier[$] 去掉句点）也用在作用于复合框的对话函数的语句中，如 DlgEnable 和 DlgVisible。
在定义包含联合框对话框之前，必须定义 ArrayVariable$() 并赋值给它的元素。若要察看对话框定义中 ComboBox 的示例，请参阅 Begin Dialog...End Dialog 示例。

_____________

请参阅

对话框定义和控制

Begin Dialog...End Dialog

Dialog

Dim

DlgListBoxArray


Dialog 示例

这个示例用 Dialog() 函数来显示“字体”对话框（“格式”菜单），使用户可以设置不同的字符编排格式选项。指令 x = Dialog(dlg) 返回对应于用户选择的按钮的值，并删除错误处理需求。本例的最后一条指令 FormatFont dlg 执行用户在对话框中选定的选项。没有这条语句，什么也不会发生，即使对话框显示在出来，且用户也选择了“确定”按钮。

Dim dlg As FormatFont

GetCurValues dlg

x = Dialog(dlg)

FormatFont dlg

下例与前一示例相同，不过它用 Dialog 语句来显示对话框，并包括错误管理。如果用户选择“取消”按钮，则最后错误被截获，并显示一个信息框。

Dim dlg As FormatFont

GetCurValues dlg

On Error Goto trap

Dialog dlg

FormatFont dlg

Goto skiptrap

trap:

MsgBox "Dialog box closed -- no changes"

skiptrap:

下面的示例显示一个带正文框和命令按钮控制项的简单自定义对话框。因为正文控制项是对话框定义中定义的第一个控制项，所以对话框显示时它是焦点。指令 x = Dialog(dlg, 1) 使“查找”按钮成为默认命令按钮（而不是“确定”按钮）。

Begin Dialog UserDialog 346, 90, "Social Security Macro"

TextBox 9, 22, 192, 18, .secnum

Text 9, 6, 183, 13, "Social Security Number:"

OKButton 249, 4, 88, 21

CancelButton 249, 28, 88, 21

PushButton 249, 52, 88, 21, "Find..."

End Dialog

Dim dlg As UserDialog

x = Dialog(dlg, 1)


Dialog, Dialog()

示例

Dialog DialogRecord [, DefaultButton] [, TimeOut]

Dialog(DialogRecord [, DefaultButton] [, TimeOut])

Dialog 语句和 Dialog() 函数都用于显示对话框，此对话框由前一个 Dim 语句中的 DialogRecord 指定。显示的对话框可以是 Word 对话框，也可以是在宏中定义的对话框。

如果用 Dialog 语句显示对话框，而用户选择了“取消”按钮，则 Word 产生一个可用 On Error 指令截获的错误。如果您不想或不需要截获错误，则可用 Dialog() 函数来显示对话框。除显示对话框外， Dialog() 还返回对应于所选择的按钮的值。返回值与用来指定 DefaultButton 的值相同。

参数	解释
DialogRecord	Dim 指令中给对话记录的名字。
DefaultButton	默认的命令按钮： - 2 没有默认命令按钮。 -1 “确定”按钮。 0 “取消”按钮。 > 0 一个命令按钮，其中 1 是定义中的第一个 PushButton 语句， 2 是第二个，依此类推。 当焦点在对话框控制项而不在命令按钮时，如果用户按下 ENTER 键，就选择默认命令按钮。除非您指定其他按钮，否则“确定”按钮就是默认命令按钮。 DefaultButton 仅使用于自定义对话框。若要 DefaultButton 产生效果，指定按钮的指令必须放在对话框定义之前，方法是用能接受焦点非按钮对话框控制项的指令，如列表框或复选框。（请注意，由于文本控制项不能接受焦点，它不满足这一判定条件。）否则，对话框定义中的第一个按钮就是默认命令按钮。如果对话框定义有与之关联的对话函数， DefaultButton 可能被 DlgFocus$ 语句所取代。有关创建对话框函数有内容，请参阅创建动态对话框。
TimeOut	对话框显示的时间，以毫秒计。如果设置为 0 （零）或省略，则对话框显示到用户关闭它为止。
注释

宏可以使用任意个自定义对话框，但是 WordBasic 只支持一次使用一个自定义对话记录（您可以为 Word 对话框定义任意个对话记录）。这就是说，您不能定义多个自定义对话记录，企图以后在宏中使用。每个自定义对话记录都改写前一个记录。如果您的宏使用一个以上的自定义对话框，您就需要把包含要被改写的对话框记录的值贮存起来，保存到常规变量中。有关使用自定义对话记录的详细内容，请参阅《Microsoft Word 开发工具》的第五章，“使用自定义对话框”。

_____________

请参阅

对话框定义和控制

Begin Dialog...End Dialog

Dim

GetCurValues


DialogEditor

DialogEditor

启动“对话框编辑器”（如果它不未运行的话）并使之成为活动的应用程序。如果“对话框编辑器”已在运行，则 DialogEditor 使之成为活动的应用程序。如果“对话框编辑器”已缩小为图标，则 DialogEditor 语句使之恢复并激活它。有关“对话框编辑器”的详细内容，请参阅《Microsoft Word 开发工具》的第五章，“使用自定义对话框”。


DlgControlId() 示例

这个宏显示一个简单的对话框，包含“确定”按钮和“取消”按钮和一个标记为“测试”复选框。对话函数检查 action 的值是否为 2 ，即控制项是否选定或选择。如果是，对话函数检查选定的控制项是否为所定义的第一个控制项——也就是说， DlgControlId() 返回的数字标识符是否为 0 （零）。如果是，就在对话框的前面显示一个信息框，而对话框仍保持在屏幕上。

Sub MAIN

Begin Dialog UserDialog 320, 50, "Test", .MyDlgFunction

CheckBox 212, 10, 88, 19, "Test", .Test	'0

OKButton 7, 10, 88, 21	'1

CancelButton 109, 10, 88, 21	'2

End Dialog

Dim dlg As UserDialog

button = Dialog(dlg)

End Sub

Function MyDlgFunction(identifier$, action, suppvalue)

If action = 2 Then

If DlgControlId(identifier$) = 0 Then

MsgBox "You selected the first control " + \

"defined in the dialog box definition."

End If

End If

End Function


DlgControlId()

示例

DlgControlId(Identifier$)

用在对话函数内，返回由指定的对话框控制项的数字标识符。Identifier$ 是对话框控制项的字符串标识符。数字标识符是从 0 （零）开始的数字，对应于对话框定义内的对话框控制项指令的位置。例如，考虑下下列对话框定义中的指令：

CheckBox 97, 54, 36, 12, "&Update", .MyCheckBox

如果 CheckBox 指令是对话框定义中的第一条指令，则指令 DlgControlId("MyCheckBox") 返回 0 （零），如果是第二条指令，就返回 1 ，依此类推。

在大部分情况下，对话函数执行基于选定控制项的字符串标识符的操作。然而，对话函数可以用数字标识符来更快地处理大量的控制项（例如，多面板对话框中的大量控制项）。请注意，如果您改变对话框定义中的指令顺序，则相应控制项的数字标识符也随之改变。

有关使用对话函数的内容，请参阅创建动态对话框。

_____________

请参阅

对话框定义和控制

DlgFocus

DlgValue


DlgEnable 示例

当带字符串标识符“ Set ”的对话框刚显示时，这个示例使对话框控制项失效。（包含对话框定义的主程序没有写出。）

Function MyDlgFunction(identifier$, action, suppvalue)

Select Case action

Case 1	'The dialog box is displayed

DlgEnable "Set", 0

Case 2	'The user selects a control

'Statements that perform actions based

'on which control is selected go here

Case 3	'Text change (not applicable)

Case Else

End Select

End Function


DlgEnable, DlgEnable()

示例

DlgEnable Identifier[$] [, On]

DlgEnable(Identifier[$])

DlgEnable 语句用于对话函数中，使对话框显示时由 Identifier[$] 标识的对话框控制项生效或失效。当对话框控制项失效时，它在对话框中仍然看得见，但是为灰色显示，且无功能。

有关使用对话函数的内容，请参阅创建动态对话框。

参数	解释
Identifier[$]	对话框控制项的字符串或数字标识符。
On	使对话框控制项生效或失效： 1 使控制项生效 0 使控制项失效 省略 切换控制项状态
DlgEnable() 函数返回下列值：

返回值	解释
-1	控制项有效
0	控制项无效
_____________

请参阅

对话框定义和控制

DlgVisible


DlgFilePreview 示例

这个示例根据包含文件名的列表框中选定内容来更新文件预览框。（包含对话框定义的主程序没有写出。）

Function PreviewFiles(identifier$, action, suppvalue)

If action = 1 Then	'Preview first file in list

previewfilename$ = DlgText$("ListBox1")

DlgFilePreview$ previewfilename$

ElseIf action = 2 Then	'The user selects a control

If identifier$ = "ListBox1" Then	'Preview selected file

previewfilename$ = DlgText$("ListBox1")

DlgFilePreview$ previewfilename$

End If

End If

End Function


DlgFilePreview, DlgFilePreview$()

示例

DlgFilePreview [Identifier[$]] [, Filename$]

DlgFilePreview$()

DlgFilePreview 语句用于对话函数中预览 Filename$ 指定的文档（不能是打开的）。如果您没有指定 Filename$， DlgFilePreview 就预览活动文档。文档显示在用对话框定义的 FilePreview 指令创建的框中。因为自定义对话框只有一个文件预览框，所以用 Identifier[$] 来指定文件预览框是可选的。

DlgFilePreview$() 函数返回显示在文件预览框中的文档的路径和文件名。如果活动文档尚未保存为一个文件（例如象“文档 2 ”这样的新文档或打开来编辑的宏），DlgFilePreview$() 返回窗口名，而不是路径和文件名。

有关使用对话函数的内容，请参阅创建动态对话框。

_____________

请参阅

对话框定义和控制

DlgSetPicture

FilePreview

Picture


DlgFocus 示例

这个示例在对话框初始显示时把焦点设置在控制项“ MyControl1 ”上。（包含对话框定义的主程序没有写出。）

Function MyDlgFunction(identifier$, action, suppvalue)

Select Case action

Case 1	'The dialog box is displayed

DlgFocus "MyControl1"

Case 2	'The user selects a control

'Statements that perform actions based

'on which control is selected go here

Case 3	'Text change (not applicable)

Case Else

End Select

End Function


DlgFocus, DlgFocus$()

示例

DlgFocus Identifier[$]

DlgFocus$()

DlgFocus 用于对话函数中，在对话框显示时把焦点设置在 Identifier[$] 所指定的对话框控制项上。对话框有焦点时，它就是活动的，并对键盘输入作出反应。例如，如果焦点在正文框上，您键入的任何文本就出现在那个正文框中。

DlgFocus$() 函数返回当前焦点所在的对话框控制项的字符串标识符。

有关使用对话函数的内容，请参阅创建动态对话框。

_____________

请参阅

对话框定义和控制

DlgEnable

DlgVisible


DlgListBoxArray 示例

这个示例改变对话框显示时列表框的内容。主程序（未写出）中定义一个包含列表框、“OK”按钮、“CANCEL”按钮以及“CHANGE”按钮的对话框。当用户选择“CHANGE”按钮时，对话函数的 Case 2 中的 If 结构起作用：定义新的字符数组。DlgListBoxArray 用来代替列表框的内容，且“CHANGE”按钮失效。按默认，当用户选择“CHANGE”按钮这样的命令按钮时，自定义对话框关闭；但是，在本例中，keepDisplayed = 1 和 dlgTest = keepDisplayed 使对话框保持显示（当对话函数返回 1 值时，对话框保持显示）。

Function dlgTest(identifier$, action, suppvalue)

Select Case action

Case 1	'The dialog box is displayed

Case 2	'The user selects a control

If identifier$ = "Change" Then

Dim MyArray2$(1)

MyArray2$(0) = "New first item"

MyArray2$(1) = "New second item"

DlgListBoxArray "MyListBox", MyArray2$()

DlgFocus "MyListBox"

DlgEnable "Change", 0

keepDisplayed = 1

End If

Case 3	'Text change (not applicable)

Case Else

End Select

dlgTest = keepDisplayed

End Function


DlgListBoxArray, DlgListBoxArray()

示例

DlgListBoxArray Identifier[$], ArrayVariable$()

DlgListBoxArray(Identifier[$] [, ArrayVariable$()])

DlgListBoxArray 语句对话函数中，以 ArrayVariable$()的内容填充列表框、下拉式列表框或联合框。在自定义对话框显示时，您可以用这一语句来改变其中的列表框、下拉式列表框或联合框的内容。

有关使用对话函数的内容，请参阅创建动态对话框。

参数	解释
Identifier[$]	对话框控制项的字符串或数字标识符。控制项必须是列表框、下拉式列表框或联合框。
ArrayVariable$()	字符串数组，它包含要显示在列表框、下拉式列表框或复合框中的各项。
DlgListBoxArray() 函数以 Identifier[$] 所指定的列表框、下拉式列表框或联合框的内容填充 ArrayVariable$() ，并返回列表框、下拉式列表框或联合框的输入项数。用 DlgListBoxArray() 函数时， ArrayVariable$() 是可选的；如果 ArrayVariable$() 省略，则 DlgListBoxArray() 返回指定控制项中的输入项项数。

_____________

请参阅

对话框定义和控制

DlgEnable

DlgFocus

DlgText


DlgSetPicture 示例

在这个示例中，用户从列表框中选择一个人名，那人的像片就显示在对话框中。指令假设要显示的图像文件以同一名字贮存在 C:\PHOTOS 目录中，后接一 .PIC 文件扩展名。（包含对话框定义的主程序没有写出。）

Function dlgTest(identifier$, action, suppvalue)

Select Case action

Case 1	'The dialog box is displayed

Case 2	'The user selects a control

If identifier$ = "Name" Then

name$ = DlgText$("Name")

pictureName$ = "C:\PHOTOS\" + name$ + ".PIC"

DlgSetPicture "Photo", pictureName$, 0

End If

Case 3	'Text change (not applicable)

Case Else

End Select

End Function


DlgSetPicture

示例

DlgSetPicture Identifier[$], PictureName$, PictureType

用于对话函数中，设置标识符为 Identifier[$] 的 Picture 对话框控制项显示的图形。

有关使用对话函数的内容，请参阅创建动态对话框。

参数	解释
Identifier[$]	对话框控制项的字符串或数字标识符。
PictureName$	图形文件、自动图文集项或包含要显示图形的书签名。如果图片不存在，Word 在定义图片文件的矩形内显示文本“没有图片”。
PictureType	表明图形以何种方式贮存的值： 0 PictureName$ 是一个文件。 1 PictureName$ 是一个自动图文集项。 2 PictureName$ 是一个书签。 3 PictureName$ 被忽略；图形从“剪贴板”中检索。
_____________

请参阅

对话框定义和控制

Picture


DlgText 示例

这个示例在对话框中隐藏和显示一个控制项，因此，在“Hide Control”和“Display Control”之间切换命令按钮标签。（包含对话框定义的主程序没有写出。）按默认，当用户选择一个命令按钮时，自定义对话框关闭；但是，在本例中， keepDisplayed = 1 和 dlgTest = keepDisplayed 使对话框保持显示（当对话函数返回 1 值时，对话框保持显示）。

Function dlgTest(identifier$, action, suppvalue)

Select Case action

Case 1	'The dialog box is displayed

Case 2	'The user chooses a button

If identifier$ = "Hide" Then

If DlgText$("Hide") = "Hide &Control" Then

DlgVisible "Option1", 0

DlgText$ "Hide", "Show &Control"

Else

DlgVisible "Option1", 1

DlgText$ "Hide", "Hide &Control"

End If

keepDisplayed = 1

End If

Case 3	'Text change (not applicable)

Case Else

End Select

dlgTest = keepDisplayed

End Function


DlgText, DlgText$()

示例

DlgText Identifier[$], Text$

DlgText$(Identifier[$])

DlgText 语句用于对话框函数中，设置 Identifier[$] 指定的对话框控制项的文本或标签。 DlgText 句不改变对话框控制项的字符串标识符。

对于正文框或复合框， DlgText 在正文框内设置文本。对于复选框、选项按钮、选项组和命令按钮等有标签的对话框控制项， DlgText 设置标签。对于列表框， DlgText 把 Text$ 或者以 Text$ 开始的项设置为选定内容。

有关使用对话函数的内容，请参阅创建动态对话框。

参数	解释
Identifier[$]	对话框控制项的字符串或数字标识符
Text$	要设置的文本或标签
DlgText$() 返回 Identifier[$] 指定的对话框控制项的文本或标签。如果对话框控制项是列表框，就返回选定项的文本。如果对话框控制项是文本框或复合框， DlgText$() 返回出现在文本框中的文本。

_____________

请参阅

对话框定义和控制

DlgValue


DlgUpdateFilePreview 示例

这个示例在用户为选定文本选定左缩进的量值后更新文件预览框。用户选定量值后，文件预览框显示缩进的改变。请注意，要从量值中删除“英寸”，需要使用指令 Val(DlgText$("DropListBox1") ，因为 FormatParagraph 不能接受“英寸”作为度量单位。

Sub MAIN

Dim indents$(3)

indents$(0) = ".5 inch" : indents$(1) = "1 inch"

indents$(2) = "1.5 inches" : indents$(3) = "2 inches"

Begin Dialog UserDialog 354, 258, "Change Indents", .dlgTest

PushButton 255, 10, 88, 21, "Close", .close

Text 15, 8, 151, 25, "Select a left indent:", .Text1

FilePreview 15, 58, 219, 183, .fileprev

DropListBox 15, 29, 179, 30, indents$(), .DropListBox1

End Dialog

Dim dlg As UserDialog

x = Dialog(dlg)

End Sub

Function dlgTest(identifier$, action, suppvalue)

Select Case action

Case 1	'The dialog box is displayed

Case 2	'The user selects a control

If identifier$ = "DropListBox1" Then

indent$ = Str$(Val(DlgText$("DropListBox1")))

FormatParagraph .LeftIndent = indent$

DlgUpdateFilePreview

End If

Case Else

End Select

End Function


DlgUpdateFilePreview

示例

DlgUpdateFilePreview [Identifier$]

用于对话函数内，更新文件预览框（它是在对话框定义中用 FilePreview 指令创建的）。由于对话框只能有一个文件预览框，所以 Identifier$ 是可选的。

_____________

请参阅

对话框定义和控制

DlgFilePreview

FilePreview


DlgValue 示例

这个示例是标识符为“MyCheckBox”的复选框被选定时运行的对话函数的一部分。 DlgValue() 用于判断复选框是打开还是关闭的。如果它是打开的，这些指令就重新定义一个数组，并以数组项填充列表框。

Case 2	'The user chooses a button

If identifier$ = "MyCheckBox" Then

If DlgValue("MyCheckBox") = 1 Then

ReDim MyArray$(1)

MyArray$(0) = "Alberto"

MyArray$(1) = "Gina"

DlgListBoxArray "MyListBox", MyArray$()

End If

End If


DlgValue, DlgValue()

示例

DlgValue Identifier[$], Value

DlgValue(Identifier[$])

DlgValue 语句用于对话函数中，选定或清除对话框控制项，方法是设置与 Identifier[$] 指定的控制项关联的数值。例如， DlgValue "MyCheckBox", 1 选定复选框， DlgValue "MyCheckBox", 0 清除复选框， DlgValue "MyCheckBox", -1 则以灰色填充复选框。如果 Identifier[$] 指定文本框或选项按钮这样不能用数值设置的对话框控制项，则会发生错误。

有关使用对话函数的内容，请参阅创建动态对话框。

参数	解释
Identifier[$]	对话框控制项的字符串或数字标识符。 DlgValue 语句和 DlgValue() 函数可以用于下列语句创建的标识符： CheckBox，ComboBox，DropListBox, ListBox，和 OptionGroup.
Value	用来设置以 Identifier$ 为标识的对话框控制项的数值。
DlgValue() 函数返回复选框、列表框、下拉式列表框、复合框或以 Identifier[$] 为标识的选项组的数值。例如，如果复选框被选定， DlgValue("MyCheckBox") 返回 1 ；如果它被清除，则返回 0 （零）；如果它以灰色填充，返回 -1 。如果列表框的第一项被选定，则指令 DlgValue("MyListBox") 返回 0 （零），如果第二项被选定，返回 1 ，依此类推。

_____________

请参阅

对话框定义和控制

DlgText


DlgVisible, DlgVisible()

DlgVisible Identifier[$] [, On]

DlgVisible(Identifier[$])

DlgVisible 用于对话函数中，使以 Identifier[$] 为标识的对话框控制项显示或隐藏。您可以用 DlgVisible 隐藏很少使用的选项，直到需要它们时，或者创建有多个控制面板的对话框。

参数	解释
Identifier[$]	对话框控制项的字符串或数字标识符。
On	显示或隐藏对话框控制项： 1 显示控制项。 0 隐藏控制项。 省略 把控制项在显示与隐藏之间切换。
DlgVisible() 函数返回下列值：

返回值	解释
-1	如果控制项显示
0	如果控制项隐藏
有关使用 DlgVisible 的示例，请参阅 DlgText 示例。

_____________

请参阅

对话框定义和控制

DlgEnable

DlgFocus

DlgText


DropListBox 示例

请参阅列表框示例 ListBox 示例 。若要修改示例，使之显示下拉式列表框，而不是列表框，请将 ListBox 指令改为 DropListBox ，将 Height 参数改为下拉式列表框下拉时的高度。

有关 DropListBox 用于对话框定义中的示例，请参阅 Begin Dialog...End Dialog 示例。


DropListBox

示例

DropListBox HorizPos, VertPos, Width, Height, ArrayVariable$(), .Identifier

创建一个下拉式列表框，从中用户可以在用户定义对话框内选定项目。 DropListBox 的使用语法与 ListBox 相同。当下拉式列表框下拉时，下拉的部分可以覆盖对话框的其他控制项或落到对话框的外面。

参数	解释
HorizPos, VertPos	从对话框左上角到下拉式列表框的左上角的水平距离（HorizPos）和垂直距离（VertPos），以系统字体的 1/8 （对 HorizPos）和 1/12 （对 VertPos）为单位。
Width, Height	列表框的宽度和高度，以系统字体的 1/8 （对 Width）和 1/12 （对 Height）为单位。
ArrayVariable$()	包含要列表的项目的数组，每个数组元素有一个列表框项。
.Identifier	与对话记录名一起，创建其值对应于选定列表项的变量。这个变量的格式是 DialogRecord.Identifier  （例如， dlg.MyList）。 标识符字符串（ .Identifier 去掉句点）也用于对列表框进行操作的对话框函数中的语句中，例如 DlgEnable 和 DlgVisible 等。
_____________

请参阅

对话框定义和控制

Begin Dialog...End Dialog

Combo Box

DlgListBoxArray

ListBox


FilePreview

FilePreview HorizPos, VertPos, Width, Height, .Identifier

在自定义对话框中创建文件预览框——类似于“查找文件”对话框（“文件”菜单）中的预览框。自定义对话框只有一个文件预览框。

您不能使用“对话框编辑器”来创建 FilePreview 指令。较好的迂回办法是用另一个控制项作为替代。在“对话框编辑器”中，使替代控制项与您的文件预览框的大小和位置相同。在您把对话框定义粘贴到您的宏中之后，把替代指令转换为 FilePreview 指令。

对话框显示时，文件预览框显示处于活动中的文档。您也可以在对话函数中使用 DlgFilePreview 来决定文件预览框显示哪个文档。有关使用对话函数的内容，请参阅创建动态对话框。

参数	解释
HorizPos, VertPos	从对话框左上角到文件预览框的左上角的水平距离（HorizPos）和垂直距离（VertPos），以系统字体的 1/8 （对 HorizPos）和 1/12 （对 VertPos）为单位。
Width, Height	文件预览框的宽度和高度，以系统字体的 1/8 （对 Width）和 1/12 （对 Height）为单位。
.Identifier	对话函数的 DlgFilePreview 所使用的标识符，用以改变文件预览框中显示的文档。
有关示例，请参阅 DlgUpdateFilePreview 示例。

_____________

请参阅

对话框定义和控制

DlgFilePreview

DlgUpdateFilePreview

Picture


GetCurValues 示例

这个示例用 GetCurValues 从“文档统计”对话框（“文件”菜单，“摘要信息”命令）中检索活动文档创建的日期。然后，这组指令用日期函数来计算文档创建以来的天数，并根据结果显示一个信息框。

Dim dlg As DocumentStatistics

GetCurValues dlg

docdate$ = dlg.Created

age = Now() - DateValue(docdate$)

age = Int(age)

Select Case age

Case 0

MsgBox "This document is less than a day old."

Case Is > 0

MsgBox "This document was created" + Str$(age) + " day(s) ago."

Case Else

MsgBox "Check your computer's date and time."

End Select

有关使用 GetCurValues 和显示如何切换复选框的示例，请参阅 Abs() 示例。


GetCurValues

示例

GetCurValues DialogRecord

把原先为 Word 对话框定义的对话记录的当前值贮存到 DialogRecord 里。您可用 Dim 来定义对话记录（例如， Dim dlg As ToolsOptionsSave ），用 GetCurValues来贮存设置（例如， GetCurValues dlg ），用语法 DialogRecord.ArgumentName 来返回指定设置（例如， save = dlg.FastSaves ）。您不必对自定义对话框使用带对话记录的 GetCurValues ，否则，指令无效。

_____________

请参阅

对话框定义和控制

Dialog

Dim


GroupBox

GroupBox HorizPos, VertPos, Width, Height, Label$ [, .Identifier]

在自定义对话框中，创建一个您可以用来包含一组相关选项按钮或复选框的方框。

参数	解释
HorizPos, VertPos	从对话框左上角到组框的左上角的水平距离（HorizPos）和垂直距离（VertPos），以系统字体的 1/8 （对 HorizPos）和 1/12 （对 VertPos）为单位。
Width, Height	组框的宽度和高度，以系统字体的 1/8 （对 Width）和 1/12 （对 Height）为单位。
Label$	显示在组框左上角的标签。在 Label$ 中前面有 (&) 的字符是移动组框的访问键。
.Identifier	对组框进行操作的对话函数中的语句所使用的可选标识符。例如，对话框显示时，您可以用这个带 DlgText 标识符来改变 Label$ 。
有关示例，请参阅 OptionGroup 示例。

_____________

请参阅

对话框定义和控制

Begin Dialog...End Dialog

DlgText

OptionGroup


InputBox$() 示例

这个示例要求用户键入一个词，该词被赋给变量 word$ 。您可以把这个变量用于宏中，计算活动文档中给定单词出现的次数（如 EditFindFound() 的示例中）。

word$ = InputBox$("Count instances of:", "WordCounter")

下面的示例提示用户键入从 1 到 10 的一个数。 InputBox$() 把用户键入的数以字符串返回，而 Val() 函数把该字符串转换为一个数并赋给变量 num 。请注意，如果用户拼入“ Ten ”而不是键入“ 10 ”，则 Val() 返回 0 。

num = Val(InputBox$("Type a number from 1 to 10:"))

这个示例要求用户键入两行，把这两行赋给变量 a$ 。函数 InStr() 检查换行符；如果存在换行符，就用 Left$() 和 Right$() 来重新定义没有换行符的 a$ 。

a$ = InputBox$("Type two lines:")

newline = InStr(a$, Chr$(11))

If newline <> 0 Then

a$ = Left$(a$, newline - 1) + Right$(a$, Len(a$) - newline)

End If


InputBox$()

示例

InputBox$(Prompt$ [, Title$] [, Default$])

显示一个要求单条信息的对话框，如果用户选择“确定”按钮，它返回键入对话框中的文本。如果用户选择“取消”按钮，则发生错误。您可用 On Error 语句来捕获错误。

参数	解释
Prompt$	在指明要求的信息类型的对话框中显示的文本。
Title$	显示在对话框标题栏中的文本（如果省略， Word 就用“ Microsoft Word ”作标题）。
Default$	起始出现在对话框的文本框中的文本。如果用户在选择“确定”按钮之前什么也没键入，则返回这个值。如果 Default$ 多于 255 个字符，就会产生错误。
如果在对话框显示时用户按下 ENTER 来开始新的一行，则 InputBox$() 返回包含 Chr$(11) + Chr$(13) （换行字符加上段落标记）的文本，其中加入了换行符。有关换行字符的删除方法，请参阅本项的第三个示例。

_____________

请参阅

对话框定义和控制

Input

MsgBox

On Error

Val()


ListBox 示例

这个宏显示一个菜单名的列表。首先它创建一个菜单名的数组，以供列表框使用，然后它定义一个包含列表框的对话框，最后显示对话框。

Sub MAIN

Dim MyList$(CountMenus(1) - 1)

For i = 1 To CountMenus(1)

MyList$(i - 1) = MenuText$(1, i)

Next i

On Error Resume Next

Begin Dialog UserDialog 320, 118, "List Box Example"

Text 27, 8, 129, 13, "This is a list box:"

ListBox 29, 25, 160, 84, MyList$(), .MyList

OKButton 226, 5, 88, 21

CancelButton 226, 29, 88, 21

End Dialog

Dim dlg As UserDialog

Dialog dlg

End Sub


ListBox

示例

ListBox HorizPos, VertPos, Width, Height, ArrayVariable$(), .Identifier

创建一个列表框，从中用户可以选定自定义对话框中的一项。

参数	解释
HorizPos, VertPos	从对话框左上角到列表框的左上角的水平距离（HorizPos）和垂直距离（VertPos），以系统字体的 1/8 （对 HorizPos）和 1/12 （对 VertPos）为单位。
Width, Height	列表框的宽度和高度，以系统字体的 1/8 （对 Width）和 1/12 （对 Height）为单位。
ArrayVariable$()	包含列表的的字符串数组，每个数组元素有一个列表框项。
.Identifier	与对话记录名一起， .Identifier 创建其值对应于选定列表项的变量。这个变量的格式是 DialogRecord.Identifier  （例如， dlg.MyList）。 标识符字符串（.Identifier 去掉句点）也用于对列表框进行操作的对话框函数中的语句中，例如 DlgEnable 和 DlgVisible 等。
_____________

请参阅

对话框定义和控制

Begin Dialog...End Dialog

Combo Box

DlgListBoxArray

DropListBox


MsgBox 示例

在这个示例中， MsgBox 指令显示一个信息框，该信息框包含信息“Unable to find file”、标题“MyTest Macro”、“确定”按钮和“停止”符号（0 + 16 + 0 = 16）：

MsgBox "Unable to find file.", "MyTest Macro", 16

在下面的宏中， If 条件句检查前面是否有选定内容。如果没有选定文本， MsgBox() 函数显示一个信息框，询问用户是否想继续。第二个 If 条件句测试返回值。如果返回值是 0 （零），意即选择了第二个按钮（“否”），宏结束运行，不执行下面的指令。

Sub MAIN

'Series of instructions that select text

If SelType() <> 2 Then

button = MsgBox("There is no selection. Continue anyway?", 36)

If button = 0 Then Goto bye

End If

'Series of instructions that act on the selection

bye:

End Sub


MsgBox, MsgBox()

示例

MsgBox Message$ [, Title$] [, Type]

MsgBox(Message$ [, Title$] [, Type])

MsgBox 在信息框中显示一条信息。您也可以用 MsgBox() 函数显示一条信息，该函数根据用户在信息框中选择的命令按钮来返回一个值。如果您需要在宏中按照用户的应答进行操作，请用 MsgBox() 。

参数	解释
Message$	要在信息框中显示的信息。如果 Message$ 多于 255 个字符，就会发生错误。
Title$	信息框的标题。如果省略，“Microsoft Word”就是默认的标题。
Type	代表显示在信息框中的符号和按钮的值。
Type 是三个值的和，三个值分别来自下列三组值中的一个。

组	值	意义
按钮	0	确定”按钮（默认）
	1	“确定”和“取消”按钮
	2	“终止”、“重试”和“忽略”按钮
	3	“是”、“否”和“取消”按钮
	4	“是”和“否”按钮
	5	“重试”和“取消”按钮
符号	0	无符号（默认）
	16	“停止”符号
	32	“询问”符号
	48	“注意”符号
	64	“信息”符号
按钮动作	0	默认值为第一个按钮
	256	默认值为第二个按钮
	512	默认值为第三个按钮
通过把 Type 指定为 -1，-2 或 -8 ，您可以在状态栏中显示信息，而不是在信息框中。这类似于使用 Print 语句，但信息显示的长短您可以有更多的控制权。指定 Type 为 -1 显示信息到另一条信息代替它；指定它为 -2 显示信息到有鼠标或键盘动作；而指定为 -8 显示信息在整个状态栏宽度，直到有鼠标或键盘动作。

因为 MsgBox 语句不返回值，所以推荐使用按钮值，而不是 0 （零）。若要使用“确定”按钮以外的按钮，请用 MsgBox() 函数。 MsgBox() 返回下列值：

返回值	选择的按钮	按钮文字
-1	第一个（最左侧的）按钮	“确定”
		“是”
		“终止”
0	第二个按钮	“取消”
		“否”
		“重试”
1	第三个按钮	“取消”
		“忽略”
如果 Type 是负值——即，如果您用 MsgBox() 在状态栏中显示信息——那么 MsgBox() 总返回 0 （零）。

_____________

请参阅

对话框定义和控制

InputBox$()

Print


OKButton

OKButton HorizPos, VertPos, Width, Height [, .Identifier]

在自定义对话框中创建一个“确定”按钮。如果用户选择“确定”按钮，对话框关闭，并采用其设置。

参数	解释
HorizPos, VertPos	从对话框左上角到“确定”按钮的左上角的水平距离（HorizPos）和垂直距离（VertPos），以系统字体的 1/8 （对 HorizPos）和 1/12 （对 VertPos）为单位。
Width, Height	“确定”按钮的宽度和高度，以系统字体的 1/8 （对 Width）和 1/12 （对 Height）为单位。
.Identifier	对“确定”按钮进行操作的对话函数中的语句所使用的可选标识符，如 DlgEnable 和 DlgVisible 等。如果省略，则“确定”就是默认标识符。
请注意，在自定义对话框中选择“确定”按钮总返回 -1 ，而选择“取消”按钮总返回 0 （零）。例如，用 x = Dialog(dlg) 指令显示的对话框中，选择“确定”设置 x 的值为 -1 。其他按钮的返回值由对话框定义中的 PushButton 语句的相对顺序决定。

有关 OKButton 用在完整的对话框定义中的示例，请参阅 Begin Dialog...End Dialog 示例。

_____________

请参阅

对话框定义和控制

Begin Dialog...End Dialog

CancelButton

PushButton


OptionButton

OptionButton HorizPos, VertPos, Width, Height, Label$ [, .Identifier]

在自定义对话框中创建选项按钮。对每一组相关的 OptionGroup 指令，需要一条 OptionButton 指令，且 OptionButton 指令的位置直接由 OptionGroup 指令决定。在一组选项按钮中，一次只能选定一个按钮。

参数	解释
HorizPos, VertPos	从对话框左上角到包含选项按钮及其相关文本的矩形的左上角的水平距离（HorizPos）和垂直距离（VertPos），以系统字体的 1/8 （对 HorizPos）和 1/12 （对 VertPos）为单位。
Width, Height	矩形的宽度和高度，以系统字体的 1/8 （对 Width）和 1/12 （对 Height）为单位。
Label$	与选项按钮相关的标签。 Label$ 中前面有 (&) 的字符是选定选项按钮的访问键。
.Identifier	对选项按钮进行操作的对话函数中的语句所用的可选标识符。如果省略，默认标识符是 Label$ 中的前两个字符（或者整个字符串，如果 Label$ 只有一个词的话）。您应该指定 .Identifier ，因为您所设定的标识符保持不变，与您对 Label$ 所作的改变无关。
有关 OptionButton 用于完整的对话框定义的示例，请参阅 OptionGroup 示例。

_____________

请参阅

对话框定义和控制

CheckBox

GroupBox

OptionGroup

PushButton


OptionGroup 示例

这个宏创建一个对话框（显示在本例的后面），然后，根据用户选定的选项按钮，插入分页符或分栏符。为选项组定义的标识符是 .Brk 。请注意，第二个 If 指令基于 dlg.Brk 的值执行操作。

Sub MAIN

Begin Dialog UserDialog 292, 78, "Example"

OKButton 188, 14, 88, 21

CancelButton 188, 38, 88, 21

GroupBox 12, 6, 164, 60, "Break"

OptionGroup .Brk

OptionButton 22, 23, 117, 16, "&Page Break"

OptionButton 22, 41, 133, 16, "&Column Break"

End Dialog

Dim dlg As UserDialog

If Dialog(dlg) Then

If dlg.Brk = 0 Then InsertPageBreak Else InsertBreak .Type = 1

End If

End Sub


OptionGroup

示例

OptionGroup .Identifier

在对话框定义中定义一组相关的选项按钮。对每一组相关的 OptionButton 指令，需要一条 OptionGroup 指令，且 OptionButton 指令的位置直接由 OptionGroup 指令决定。在一组中，一次只能选定一个按钮。 OptionGroup 标识符返回对应于选定的选项按钮的值。

参数	解释
.Identifier	与对话记录名一起， .Identifier 创建一个其值对应于选定的选项按钮的变量，其中 0 （零）是组中的第一个选项按钮， 1 是第二个，依此类推。这个变量的格式是 DialogRecord.Identifier （例如， dlg.Brk）。 标识字符串（.Identifier 去掉句点）也用于对选项组进行操作的对话函数的语句中，例如 DlgEnable 和 DlgVisible。
_____________

请参阅

对话框定义和控制

Begin Dialog...End Dialog

GroupBox

ListBox

OptionButton


Picture 示例

这个示例在对话框左上角定义一个方形区域，并插入贮存在自动图文集项“Smiley”中的图形。对话框控制项以 .Graphic  为标识符。有关完整的对话框定义的示例，请参阅 Begin Dialog...End Dialog 示例。

Picture 7, 7, 50, 50, "Smiley", 1, .Graphic


Picture

示例

Picture HorizPos, VertPos, Width, Height, PictureName$, Type, .Identifier

在自定义对话框中显示一个图形。 Word 自动调整图形的大小，使之适合您已以指定的 Width 和 Height 。

参数	解释
HorizPos, VertPos	从对话框左上角到包含图形的矩形的左上角的水平距离（HorizPos）和垂直距离（VertPos），以系统字体的 1/8 （对 HorizPos）和 1/12 （对 VertPos）为单位。
Width, Height	矩形的宽度和高度，以系统字体的 1/8 （对 Width）和 1/12 （对 Height）为单位。
PictureName$	图形文件、自动图文集项或包含起始显示的图形的书签的名字。当对话框显示时，您可以在对话函数中用 DlgSetPicture 重新设置 PictureName$ 。
Type	指明图形如何贮存的值： 0 PictureName$ 是一个图形文件名。允许用路径。 1 PictureName$ 是一个自动图文集项。自动图文集项必须只包含图形（没有文本或段落标记），且必须贮存在 NORMAL.DOT 或附加于活动文档的模板中。 2 PictureName$ 是一个活动文档的书签。该书签必须只标记图形（没有文本或段落标记）。 3 PictureName$ 被忽略，图形从“剪贴板”中检索。此时请用空引号 ("") 来代替 PictureName$ 。“剪贴板”必须只包含图形。如果“剪贴板”包含 Word 文档的文本，则将  Microsoft Word 图标显示在对话框中。
.Identifier	对图形起作用的对话函数中的语句所用的标识符。例如，您可以用带 DlgSetPicture 的这个标识符来显示不同的图形。
注释

如果指定的图形不存在，则 Word 将文本“（没找到图片）”显示在定义图片区域的矩形中。您可以对 Type 的值加 16 来改变这一特点。如果 Type 是 16，17，18 或 19 ，且指定图片不存在，则 Word 显示一个错误（可以用 On Error语句来捕获），但既不显示文本“（没找到图片）”，也不显示对话框中的矩形。

_____________

请参阅

对话框定义和控制

DlgSetPicture


PushButton 示例

这个示例创建一个文本为“Create Link”、标识符为“Link”的命令按钮。有关 PushButton 用于完整的对话框定义的示例，请参阅 Begin Dialog...End Dialog 示例。

PushButton 40, 20, 80, 18, "&Create Link", .Link


PushButton

示例

PushButton HorizPos, VertPos, Width, Height, Label$ [, .Identifier]

在自定义对话框中创建一个命令按钮。当选择了命令按钮时，显示对话框 Dialog() 指令（例如 button = Dialog(dlg)）返回一个值，此值对应于 PushButton 在其他 PushButton 中的相对顺序： 1 为第一个命令按钮， 2 为第二个，依此类推。

参数	解释
HorizPos, VertPos	从对话框左上角到命令按钮的左上角的水平距离（HorizPos）和垂直距离（VertPos），以系统字体的 1/8 （对 HorizPos）和 1/12 （对 VertPos）为单位。
Width, Height	命令按钮的宽度和高度，以系统字体的 1/8 （对 Width）和 1/12 （对 Height）为单位。
Label$	与命令按钮相关的标签。 Label$ 中前面有 (&) 的字符是选择命令按钮的访问键。
.Identifier	对命令按钮起作用的对话函数中的语句所用的可选标识符。如果省略，默认标识符是 Label$ 中的前两个字符（或者整个字符串，如果 Label$ 只有一个词的话）。您应该指定 .Identifier ，因为您所设定的标识符保持不变，与您对 Label$ 所作的改变无关。
_____________

请参阅

对话框定义和控制

Begin Dialog...End Dialog

CancelButton

OKButton

OptionButton


Text 示例

在本例中， Text 指令产生文本“Sample Text”：

Begin Dialog UserDialog 320, 84, "Sample Dialog Macro"

Text 10, 6, 160, 12, "&Sample Text", .myTextControl

TextBox 10, 21, 236, 18, .TextBox1

OKButton 9, 58, 88, 21

CancelButton 115, 58, 88, 21

End Dialog

下例显示文本标签当前选定内容的前 255 个字符。

textlabel$ = Left$(Selection$(), 255)

Begin Dialog UserDialog 621, 251, "Show Selection Text"

OKButton 409, 220, 88, 21

CancelButton 509, 220, 88, 21

Text 10, 6, 586, 203, textlabel$, .Text1

End Dialog


Text

示例

Text HorizPos, VertPos, Width, Height, Label$ [, .Identifier]

在自定义对话框中创建一个包含固定文本的矩形。如果您想用文本控制项来为列表框或文本框定义访问键， Text 指令必须在列表框或文本框控制项指令之前。

参数	解释
HorizPos, VertPos	从对话框左上角到文本控制项矩形的左上角的水平距离（HorizPos）和垂直距离（VertPos），以系统字体的 1/8 （对 HorizPos）和 1/12 （对 VertPos）为单位。
Width, Height	矩形的宽度和高度，以系统字体的 1/8 （对 Width）和 1/12 （对 Height）为单位。
Label$	要在对话框中显示的的标签。 Label$ 中前面有 (&) 的字符是控制后面的 Text 指令的访问键。
.Identifier	对文本控制项起作用的对话函数的语句所用的可选标识符。例如，当对话框显示时，您可以用带 DlgText 的这一标识符来改变 Label$ 。
_____________

请参阅

对话框定义和控制

Begin Dialog...End Dialog

TextBox


TextBox 示例

在本例中，键入到用 TextBox 指令创建的多行文本框中的文本，被贮存到 dlg.TextBox1 变量中：

Begin Dialog UserDialog 290, 152, "Sample Dialog Macro"

Text 10, 6, 260, 12, "&Sample Text: Press ENTER"

Text 10, 22, 143, 12, "to start a new line."

TextBox 10, 43, 236, 64, .TextBox1, 1

OKButton 10, 117, 88, 21

CancelButton 117, 117, 88, 21

End Dialog

Dim dlg As UserDialog

Dialog dlg


TextBox

示例

TextBox HorizPos, VertPos, Width, Height, .Identifier[$] [, MultiLine]

创建一个单行或多行的文本框，用户可以往里面键入自定义对话框中的信息。您可以向文本框控制项插入多达 255 个字符。

参数	解释
HorizPos, VertPos	从对话框左上角到文本框的左上角的水平距离（HorizPos）和垂直距离（VertPos），以系统字体的 1/8 （对 HorizPos）和 1/12 （对 VertPos）为单位。
Width, Height	文本框的宽度和高度，以系统字体的 1/8 （对 Width）和1/12 （对 Height）为单位。
.Identifier[$]	与对话记录名一起， .Identifier[$] 创建一个其值对应于文本框中的文本的变量。这个变量的格式是 DialogRecord.Identifier[$] （例如， dlg.MyTextBox$。美元符 ($) 是可选的，可用它来表明变量是字符串变量。 标识字符串（.Identifier[$] 去掉句点）也用于对文本框起作用的对话函数的语句中，例如 DlgEnable 和 DlgVisible。
MultiLine	指定文本框是单行还是多行： 0 单行文本框 1 多行文本框 在多行文本框中，用户在往文本框键入文本时，可以按下 ENTER 或 SHIFT+ENTER 来换行。请注意，多行文本框不包含滚动条，但用户也可以用箭头键滚动文本。如果用户按下 ENTER 或 SHIFT+ENTER 来换行，标识符所返回的字符中将包含段落标记。
_____________

请参阅

对话框定义和控制

Begin Dialog...End Dialog

Text


ChDefaultDir 示例

本示例创建目录 C:\BAK ，然后在运行期间设置 AUTOSAVE-PATH 到这个目录。指令 On Error Resume Next 可以在这个目录已经存在的情况下，防止产生停止宏运行的错误。

On Error Resume Next

MkDir "C:\BAK"

Err = 0

ChDefaultDir "C:\BAK", 5


ChDefaultDir

示例

ChDefaultDir Path$, Type

设置 Word 默认目录之一到指定路径。与 ToolsOptionsFileLocations不同，它把对默认目录的修改存储到 WINWORD6.INI，而 ChDefaultDir 只在当前 Word 运行期间修改默认目录。用 ChDefaultDir 所做的修改不会反映到“选项”对话框（“工具”菜单）中的“文件位置”选项卡上。

参数	解释
Path$	要设置默认目录到其中的路径，默认目录由类型 Type指定。
Type	对应要设置的默认目录的一个数值： 0 DOC-PATH 1 PICTURE-PATH 2 USER-DOT-PATH 3 WORKGROUP-DOT-PATH 4 INI-PATH 5 AUTOSAVE-PATH 6 TOOLS-PATH 7 CBT-PATH 8 STARTUP-PATH 15 The style-gallery-template path 注意，类型 9 到 14 不能用 ChDefaultDir设置。在当前 Word 运行期间要恢复它们的值，请使用 DefaultDir$()。
有关此处所描述的默认目录的详细内容，请参阅 Word Readme Help 中的WINWORD6.INI 选项。

_____________

请参阅

磁盘读取和管理

ChDir

DefaultDir$()

Files$()

GetDirectory$()

ToolsOptionsFileLocations


ChDir 示例

本示例改变目录，然后显示“打开”对话框，从而打开一个存储于该目录下的文档。您可以为经常使用的目录创建这样的宏，并把这个宏分配给一个工具栏按钮以快速取用。

ChDir "C:\WINWORD\LETTERS\PERSONAL"

Dim dlg As FileOpen

button = Dialog(dlg)

If button <> 0 Then FileOpen dlg

下面的示例确定当前目录是否为 C:\WINWORD ，如果不是，则转到该目录下。

If Files$(".") <> "C:\WINWORD" Then ChDir "C:\WINWORD"


ChDir

示例

ChDir Path$

设置当前的目录到路径 Path$所指定的驱动器和目录下。如果省略了驱动器，那么则从当前目录开始搜索指定的路径。您可以使用 ChDir 来设置目录，这样在您使用 FileOpen 打开一个文档时，就不必指定完整的路径了。

_____________

请参阅

磁盘读取和管理

Connect

CountDirectories()

Files$()

GetDirectory$()

MkDir

RmDir


Connect 示例

本示例建立一个到网络驱动器的连接，这个网络驱动器由口令 "smiley" 保护。然后分配该网络驱动器给下一个可用的网络驱动器字母。

Connect .Path = "\\PROJECT\INFO", .Password = "smiley"


Connect

示例

Connect [.Drive = number,] .Path = text [, .Password = text]

建立一个到网络驱动器的连接。

参数	解释
.Drive	一个数值，该数值对应要分配给网络驱动器的字母。其中 0 对应第一个可用驱动器字母，1 对应第二个可用驱动器字母，依此类推。如果您不指定 .Drive， 那么就使用下一个可用字母。
.Path	网络驱动器的路径（比如，"\\PROJECT\INFO"）。
.Password	口令，如果该网络驱动器由一个口令保护着的话。
_____________

请参阅

磁盘读取和管理

ChDir

CountDirectories()

GetDirectory$()


CopyFile 示例

本示例复制文档 JULY.DOC 到 C:\WINWORD\MEMOS 目录下：

CopyFile .FileName = "JULY.DOC", .Directory = "C:\WINWORD\MEMOS"

本示例显示一个对话框，提示输入要复制活动文档到其下的目录。

a$ = FileName$()

Dim dlg As CopyFile

dlg.FileName = a$

dlg.Directory = "C:\BAK"

x = Dialog(dlg)

If x = - 1 Then CopyFile dlg


CopyFile

示例

CopyFile .FileName = text, .Directory = text

复制一个文件到指定目录下。与 MS-DOS COPY 命令相同，CopyFile 允许您在复制该文件时，指定一个新的名称。

参数	解释
.FileName	要复制的文件名。如果您没有指定路径，那么 Word 从当前目录下复制该文件。
.Directory	要复制文件到其中的目录的路径。如果您想在复制的同时更改文件名，则加入一个文件名。
_____________

请参阅

磁盘读取和管理

FileSaveAs

Kill

Name


CountDirectories() 示例

本示例确定在 C:\WINWORD 目录下是否有其他子目录。

dirNum = CountDirectories("C:\WINWORD")

If dirNum = 0 Then

MsgBox "No subdirectories."

Else

MsgBox "There are" + Str$(dirNum) + " subdirectories."

End If


CountDirectories()

示例

CountDirectories(Directory$)

返回包含在目录Directory$下的子目录的数目。如果省略了 Directory$ ，那么就假定为当前目录。如果目录 Directory$ 不存在，那么 CountDirectories() 返回 -1。

_____________

请参阅

磁盘读取和管理

Files$()

GetDirectory$()


DefaultDir$() 示例

本示例设置 TOOLS-PATH 到 C:\TOOLS，如果它还没设置的话。

If DefaultDir$(6) = "" Then

ChDefaultDir "C:\TOOLS", 6

End If


DefaultDir$()

示例

DefaultDir$(Type)

返回为类型 Type 指定的默认目录所设置的当前路径。

参数	解释
Type	对应默认目录的数值： 0 DOC-PATH 1 PICTURE-PATH 2 USER-DOT-PATH 3 WORKGROUP-DOT-PATH 4 INI-PATH 5 AUTOSAVE-PATH 6 TOOLS-PATH 7 CBT-PATH 8 STARTUP-PATH 9 程序文件的路径（PROGRAMDIR） 10 图形筛选器路径（固定；不能修改） 11 文本转换器路径（固定；不能修改） 12 校验工具路径（固定；不能修改） 13 临时文件路径（由 MS-DOS TEMP 环境变量设置） 14 当前目录 15 样式-图库-模板路径（可用 ChDefaultDir修改）
有关此处所描述的默认目录的详细内容，请参阅 Word Readme Help 中的 WINWORD6.INI 选项。

_____________

请参阅

磁盘读取和管理

ChDefaultDir

ChDir


Files$() 示例

本示例返回在当前目录下的第一个以 .DOC 为扩展名的文件：

a$ = Files$("*.DOC")

下面的示例返回当前路径（比如，"C:\WINWORD"）：

CurDir$ = Files$(".")

如果 NOTE.DOC 存在于当前目录下，那么下面的示例打开该文档。如果 NOTE.DOC 不存在，那么显示一个消息框。

If Files$("NOTE.DOC") <> "" Then

FileOpen "NOTE.DOC"

Else

MsgBox "File not found in current directory."

End If

下面的示例用当前目录下全部文件的文件名填充一个数组。在下面的指令中，首先计算文件的数目以确定数组的大小，然后定义该数组并用文件名填充，最后对数组元素进行排序。您可以用这个数组在一个用户定义的对话框中提供一个文件的列表或打开数组中每一个文件，进行某种操作。

temp$ = Files$("*.*")

count = - 1

While temp$ <> ""

count = count + 1

temp$ = Files$()

Wend

If count > -1 Then

Dim list$(count)

list$(0) = Files$("*.*")

For i = 1 To count

list$(i) = Files$()

Next i

SortArray list$()

MsgBox Str$(count + 1) + " files; 1st in array is " + list$(0)

Else

MsgBox "No files in current directory."

End If


Files$()

示例

Files$(FileSpec$)

返回匹配指定文件 FileSpec$的第一个文件。如果您指定句号 (.) 作为 FileSpec$，那么 Files$() 将返回当前路径。还可以使用 MS-DOS 匹配符 —— 星号 (*) 和问号 (?)—— 来指定文件。

参数	解释
FileSpec$	指定文件的文件名。如果您省略它，那么下一个与最近使用过的指定文件 FileSpec$ 相匹配的文件将被返回。
通过在第一次循环中指定 FileSpec$ 并在其后省略它，您可以用 Files$() 来产生一个匹配 FileSpec$ 的文件列表（如本参考条目下的最后一个示例）。如果没有匹配的文件，则返回空字符串 (" ")。

_____________

请参阅

磁盘读取和管理

FileFind


GetAttr()

GetAttr(Filename$)

返回一个数值，这个数值对应由文件名 Filename$所指定文件的文件属性。您可以用“文件管理器”中的“属性”命令（“文件”菜单）设置文件属性。有关属性的定义，请显示“属性”对话框并选择“帮助”按钮。由 GetAttr() 返回的值是下面值的和。比如，如果选定“只读”和“文档”，那么返回值是 33 （1 和 32 的和）。

值	解释
0	没有选定任何文件属性
1	选定“只读”属性
2	选定“隐藏”属性
4	选定“系统”属性
32	选定“文档”属性
有关示例，请参阅 SetAttr 示例。

_____________

请参阅

磁盘读取和管理

SetAttr


GetDirectory$() 示例

本示例用当前目录下的子目录名定义一个数组。在定义一个对话框时，您可以在一个 ListBox 指令中指定这个数组来提供一个子目录的列表。

Dim subdirs$(CountDirectories())

subdirs$(0) = "[..]"

For i = 1 To CountDirectories()

subdirs$(i) = LCase$(GetDirectory$(i))

Next


GetDirectory$()

示例

GetDirectory$([Directory$,] Count)

返回指定目录下由 Count 指定的子目录的名称。

参数	解释
Directory$	含有该子目录的路径，如果省略，则假定为当前目录。
Count	范围在 1 到 CountDirectories() 之间的一个数值，其中 1 对应第一个子目录，2 对应第二个子目录，依此类推。
_____________

请参阅

磁盘读取和管理

CountDirectories()


Kill 示例

本示例删除 C:\WORD\LETTERS 中的一个文件。

Kill "C:\WORD\LETTERS\DRAFT.DOC"


Kill

示例

Kill Filename$

删除指定文件。如果文件 Filename$ 是一个已打开的文档，则出错。

参数	解释
Filename$	要删除文件的路径及文件名。如果您不指定路径，那么 Word 从当前目录下删除该文件。
_____________

请参阅

磁盘读取和管理

CopyFile


MkDir 示例

本示例通过指一个路径来创建目录 "OUTPUT"。注意，其中目录 "TEST" 必须已经存在， MkDir 不能同时创建两个目录。

MkDir "C:\TEST\OUTPUT"

下面的示例在当前目录下创建一个子目录。

MkDir "OUTPUT"

下面的示例创建一个与当前目录同级的目录。

MkDir "..\OUTPUT"


MkDir

示例

MkDir Name$

创建由 Name$ 指定的目录。如果该目录已经存在，则出错。如果您不指定路径，则假定为当前目录。

_____________

请参阅

磁盘读取和管理

ChDir

CountDirectories()

Files$()

GetDirectory$()

Name

RmDir


RmDir 示例

本示例删除一个目录下的所有文件，然后删除该目录。

Kill "C:\WORD\FCCPROJ\*.*"

RmDir "C:\WORD\FCCPROJ"

下面的示例删除当前目录下的一个子目录：

RmDir "FCCPROJ"

下面的示例删除与当前目录同级的一个目录：

RmDir "..\FCCPROJ"


RmDir

示例

RmDir Name$

删除指定目录。Name$ 可以是一个完整路径或是一个相对路径。要使用这个语句，该目录下必须不含文件或子目录。RmDir 不能删除当前目录。

_____________

请参阅

磁盘读取和管理

ChDir

Files$()

Kill

MkDir


SetAttr 示例

本示例设置文件 C:\TEST\TEST.DOC 具有“只读”属性，而又不影响文件的其他属性。首先，GetAttr() 返回当前属性值 Attribute ，然后 If 条件语句使用 MOD 操作符来确定 Attribute 值是否为奇数，如果为奇数，则意味着文件的“只读”属性已经设置，这时，Word 将显示一个消息框。如果 Attribute 值为偶数，那么 SetAttr 指令设置“只读”属性。

attribs = GetAttr("C:\TEST\TEST.DOC")

Print attribs

If attribs MOD 2 Then

MsgBox "File is already read-only."

Else

SetAttr "C:\TEST\TEST.DOC", 1

End If


SetAttr

示例

SetAttr Filename$, Attribute

为文件Filename$ 设置文件属性。文件属性是指用“文件管理器”中的“属性”命令（“文件”菜单）设置的属性。有关属性的定义，请显示“属性”对话框并选择“帮助”按钮。要设置属性的文件必须是关闭着的，如果您试图给一个打开着的文档设置属性，则出错。

参数	解释
Filename$	要进行属性设置的文件的路径和文件名。
Attribute	指定属性： 0 除“系统”属性外，清除其余全部属性。 1 “只读” 2 “隐藏” 32 “文档”
注释

属性值是和的形式。比如，要设置“只读”和“文档”属性，那么 Attribute 必须是 33（1 与 32 的和）。有关独立设置“只读”属性的方法，请参阅本条目的示例。您不能将“系统”属性与“文档”属性联合设置。

_____________

请参阅

磁盘读取和管理

GetAttr()


Creating Dynamic Dialog Boxes
创建动态对话框

若要创建动态对话框，请您从用 Begin Dialog...End Dialog 创建的标准对话框定义开始。然后请您添加以下三个元素，使对话框成为动态的：

在调用对话函数的 Begin Dialog 指令中的对话函数参数。 .FunctionName 参数与对话框函数名一致。

对话函数对其起作用或从中获得信息的对话框字符串标识符。大部分自定义对话框定义中的指令已包含它们定义的控制项的字符串标识符。

请注意，您也可以用数字标识符来指代对话框定义中的控制项（ 0 （零）为第一个控制项， 1 为第二个控制项，依此类推）。尽管对话框包含很多控制项时会改善操作性能，但是用数字标识符的指令比用字符串标识符的指令可读性要差。

对话函数。对话函数对应于要发生的事件和对话框外观的改变。所有对话框显示时执行的指令放在这一函数的内部，或者放在这个函数中调用的子程序和用户定义函数中。

下列主题说明了用在对话函数中的 WordBasic 语句和函数，并提供了它们的使用示例。有关详细内容，请参阅对话函数的语法

DlgControlId()

DlgEnable, DlgEnable()

DlgFilePreview, DlgFilePreview$()

DlgFocus, DlgFocus$()

DlgListBoxArray, DlgListBoxArray()

DlgSetPicture

DlgText, DlgText$()

DlgUpdateFilePreview

DlgValue, DlgValue()

DlgVisible, DlgVisible()

有关创建动态对话框的完整讨论，请参阅 Microsoft Word 开发工具 的第五章，“使用自定义对话框”。

_____________

请参阅

对话函数的语法


Dialog Function Syntax
对话函数的语法

Function FunctionName(ControlID$, Action, SuppValue)
Series of instructions
FunctionName = value
End Function

当 FunctionName 与 Begin Dialog 指令中的 .FunctionName 指令一致时，对话函数与对话框定义相关联。按默认，用户选择“确定”按钮、“取消”按钮或按钮时，对话函数返回 0 （零），而 0 （零）返回值导致 Word 关闭对话框。若要保持对话框显示并允许用户在同一对话框中运行多个命令，请按照语法 FunctionName = value 把 FunctionName 设置为非零值。有关这一技巧的示例，请参阅DlgText Example。

对话函数需要三个参数。

参数	解释

ControlID$	得到与对话函数的调用相关联的对话框控制项的标识符字符串。例如，如果用户选定复选框，则对话函数被调用，且 ControlID$ 参数得到复选框的标识符。

Action	标识调用对话函数的操作，有六个调用对话函数的可能操作，每一个对应一个 Action 值。有关详细内容，请参阅下面的 Action 值。

SuppValue	得到关于对话框控制项改变的补充信息。信息 SuppValue 根据 Action 值得到，并对对话函数进行调用。有关详细内容，请参阅下面的 SuppValues 表。

下表说明了调用对话函数的六个操作。

Action 值	意义

1	对应于对话框初始化。在对话框显示之前传递这个值。

2	对应于选择命令按钮或改变对话框控制项的值（往文本框或复合框键入除外）。当 Action 为 2 时， ControlID$ 对应于所选择或改变的控制项的标识符。

3	对应于文本框或复合框的改变。当焦点不在控制项时（例如，用户按下 TAB 键移动到不同的控制项）或用户单击复合框列表中的一项之后（此时先传递 Action 值 2 ），传递这个值。请注意，如果文本框或复合框的内容没有改变，Action 值 3 就不被传递。当 Action 为 3 时， ControlID$ 对应于内容被改变的文本框或复合框的标识符。

4	对应于控制焦点的改变。当Action 为 4 时， ControlID$ 对应于得到焦点的控制项的标识符。 SuppValue 对应于失去焦点的控制项的标识符。对话函数不能显示信息框或与 Action 值 4 对应的 Word 对话框。

5	对应于空闲状态。一旦对话框已初始化，如果没有其他的操作， Word 就不断传递 Action 值 5 。如果对话函数对应于 Action 值 5 ，则对话函数应该返回一个非零值。（如果对话函数返回 0 （零），只有当鼠标移动时 Word 才继续传送空闲信息。）当 Action 为 5 时， ControlID$ 是一个空字符串 ("") ，而 SuppValue 对应于目前为止 Action 值为 5 的传递次数。

6	对应于用户移动对话框。仅当屏幕更新被关闭（用 ScreenUpdating 指令）时，传递这个值。在传递完此值、对话函数结束之后， Word 刷新屏幕并重新将屏幕恢复原状。对话函数不常需要对 Action 值 6 作出反应，但是您可以通过它使用对话函数在屏幕刷新时改变显示内容。当 Action 为 6 时， ControlID$ 是一个空字符串 ("")，而 SuppValue 等于 0 （零）。

下表说明当 Action 值为 2 或 3 时传递的 SuppValue 值。

控制项	传递的 SuppValue

列表框、下拉式列表框或复合框	选定项的数目，其中 0 （零）是列表框的第一项， 1 是第二项，依此类推

复选框	如果选定则为 1 ，如果清除则为 0 （零）

选项按钮	选定的选项按钮数目，其中 0 （零）是一组中的第一个选项按钮， 1 是第二个选项按钮，依此类推

文本框	文本框中字符的数目

复合框	如果 Action 为 3 ，此值为复合框中的字符数

命令按钮	标识所选择的按钮值。这个值不常用，因为同一信息可从 ControlID$ 值中得到。如果选择了“确定”按钮，则 SuppValue 为 1 ；如果选择了“取消”按钮，则 SuppValue 为 2 。对于按钮的 SuppValue 是 Word 使用的内部编号。这个编号不同于按钮的数字标识符，但是如果定义按钮的指令改变对话框定义中的位置，这个编号会改变。

_____________

请参阅

创建动态对话框


DrawAlign 示例

本示例左对齐当前段落中的全部绘图对象。通过使用预定义书签“\Para”，DrawSetRange 把绘图对象范围设置到含插入点的段落。有关预定义书签的详细内容，请参阅预定义书签。

DrawSetRange "\Para"

For count = 1 To DrawCount()

DrawExtendSelect count

Next count

DrawAlign .Horizontal = 1, .Vertical = 0, .RelativeTo = 0


DrawAlign

示例

DrawAlign [.Horizontal = number] [, .Vertical = number] [, .RelativeTo = number]

对齐选定的绘图对象。Align 语句的参数对应于“对齐”对话框（“对齐绘图对象”按钮，“绘图”工具栏）中的选项。

参数	解释
.Horizontal	指定水平对齐方式： 0 无，即保留当前水平位置 1 左对齐 2 居中 3 右对齐
.Vertical	指定垂直对齐方式： 0 无，即保留当前垂直位置 1 顶端对齐 2 居中 3 底端对齐
.RelativeTo	指定对象与谁对齐： 0 相互对齐 1 按页对齐
_____________

请参阅

绘图

DrawCount()

DrawExtendSelect

DrawSelect

DrawSetRange

FormatDrawingObject


DrawArc

DrawArc

切换到页面视图，并在当前文本层之上添加一个默认圆弧。默认圆弧是一个圆的左下部分，并将插入到当前页的右上方。

_____________

请参阅

绘图

DrawEllipse

DrawFlipHorizontal

DrawFlipVertical

DrawGetType()

DrawLine

DrawRotateLeft

DrawRotateRight

FormatDrawingObject


DrawBringForward

DrawBringForward

把选定绘图对象移动到一个绘图对象堆栈的下一个之前。DrawBringForward 并不从文本后面的层移动一个绘图对象到文本前面的层。如果选定内容不是一个绘图对象，则出错。

_____________

请参阅

绘图

DrawBringInFrontOfText

DrawBringToFront

DrawSendBackward

DrawSendBehindText

DrawSendToBack


DrawBringInFrontOfText

DrawBringInFrontOfText

从文本后面的层把选定绘图对象移动到文本前面的层。这个对象将放置在已经位于文本层前面的其他绘图对象的后面。如果这个对象已经是文本前面绘图层的一部分或如果选定内容不是一个绘图对象，则出错。

_____________

请参阅

绘图

DrawBringForward

DrawBringToFront

DrawSendBackward

DrawSendBehindText

DrawSendToBack


DrawBringToFront

DrawBringToFront

把选定绘图对象移动到绘图对象堆栈的栈顶。BringToFront 并不从文本后面的层移动一个绘图对象到文本前面的层。如果选定内容不是一个绘图对象，则出错。

_____________

请参阅

绘图

DrawBringForward

DrawBringInFrontOfText

DrawSendBackward

DrawSendBehindText

DrawSendToBack


DrawCallout 示例

本示例插入一个指向左边的图注并对其进行格式编排。DrawCallout 指令插入一个样式由 FormatCallout 指令设置的默认图注。FormatDrawingObject 指令用以对图注定位，调整尺寸，并添加填充颜色。图注中文本框的坐标在一个二维数组 calloutpts$() 中定义，然后应用 DrawSetCalloutTextbox。最后，文本插入到图注中。

DrawCallout

FormatCallout .Type = 1, .Gap = "10 pt", .Angle = 4, \

.Drop = "Center", .Length = "100 pt", .Border = 1, \

.AutoAttach = 0, .Accent = 0

FormatDrawingObject .FillColor = 0, .FillPatternColor = 7, \

.FillPattern = 5, .ArrowStyle = 2, \

.HorizontalPos = "173 pt", .HorizontalFrom = 1, \

.VerticalPos = "100 pt", .VerticalFrom = 1, \

.Height = "42 pt", .Width = "161 pt"

Dim calloutpts$(2, 2)

calloutpts$(1, 1) = "63 pt"

calloutpts$(1, 2) = "0 pt"

calloutpts$(2, 1) = "97 pt"

calloutpts$(2, 2) = "42 pt"

DrawSetCalloutTextbox calloutpts$()

Insert "This callout points to the left."


DrawCallout

示例

DrawCallout

在文档左上角的当前文本层前面插入一个图注绘图对象。一个图注由一个文本框和一条包含在矩形中的线段组成。在您第一次插入图注时，文本框与矩形大小相同，这样线段不出现。您可以用 DrawSetCalloutTextbox 语句修改文本框的尺寸。

要修改图注外围矩形的尺寸、位置、颜色和线型，请使用 FormatDrawingObject。您可以用FormatCallout 修改图注的其他选项。

_____________

请参阅

绘图

DrawGetCalloutTextbox

DrawSetCalloutTextbox

DrawTextBox

FormatCallout

FormatDrawingObject


DrawClearRange

DrawClearRange

清除一个绘图范围。有关绘图范围的详细内容，请参阅 DrawSetRange。

_____________

请参阅

绘图

DrawSetRange


DrawCount() 示例

本示例显示一个消息框，给出活动文档中绘图对象的数目。

DrawSetRange "\Doc"

numobjects = DrawCount()

MsgBox "There are" + Str$(numobjects) + " drawing objects" + \

" in the document."


DrawCount()

示例

DrawCount()

返回锁定点位于 DrawSetRange 设置范围内的绘图对象的数目。

_____________

请参阅

绘图

DrawGetType()

DrawSetRange


DrawCountPolyPoints() 示例

本示例确定文档中前两个绘图对象是否是手画线形状。如果是，则第一个手画线绘图对象的各点将装入数组 pointsArray() 并用于第二个手画线绘图对象。

DrawSetRange "\Doc"

If DrawGetType(1) = 7 And DrawGetType(2) = 7 Then

size = DrawCountPolyPoints(1)

Dim pointsArray(size, 2)

DrawGetPolyPoints pointsArray(), 1

DrawSetPolyPoints size, pointsArray(), 2

Else

MsgBox "The first or second drawing object is " + \

"not a freeform shape."

End If


DrawCountPolyPoints()

示例

DrawCountPolyPoints([Object])

返回手画线绘图对象的点数。如果指定对象不是手画线形状，则出错。

参数	解释
Object	指定一个绘图对象： 省略 选定绘图对象 > 0 一个锁定点位于 DrawSetRange 语句设置范围内的绘图对象，1 是范围中的第一个对象，2 是第二个对象，依此类推。如果该数值不在 1 到 DrawCount() 范围之内，则出错。
_____________

请参阅

绘图

DrawFreeformPolygon

DrawGetPolyPoints

DrawSetPolyPoints


DrawDisassemblePicture

DrawDisassemblePicture

把选定图形转换为一组绘图对象。如果选定图形不能分割，那么 Word 将把它插入到一个文本框绘图对象中。如果没有选定图形，则出错。

_____________

请参阅

绘图

DrawGroup

DrawUngroup


DrawEllipse

DrawEllipse

切换到页面视图，并在当前文本层前面添加一个默认椭圆绘图对象。默认椭圆绘图对象是一个圆，并插入到当前页的左上角。

_____________

请参阅

绘图

DrawGetType()

DrawRoundRectangle

FormatDrawingObject


DrawExtendSelect

DrawExtendSelect Count

选择由 Count指定的、锁定点在 DrawSetRange 语句所设置绘图范围内的绘图对象。Count 是绘图对象相对于文本层的位置：1 对应最接近文本层的对象，2 对应下一个对象，依此类推。如果已经选择了一个或多个绘图对象，那么由 Count 指定的绘图对象将加入到选定的对象组中。如果没有设置绘图范围，或者如果 Count 超出范围，则出错。

_____________

请参阅

绘图

DrawGroup

DrawSelect


DrawFlipHorizontal

DrawFlipHorizontal

从左到右翻转选定的绘图对象。DrawFlipHorizontal 只对由“绘图”工具栏所绘的对象进行操作，如果选定对象是一个嵌入对象则出错。

_____________

请参阅

绘图

DrawFlipVertical

DrawRotateLeft

DrawRotateRight


DrawFlipVertical

DrawFlipVertical

从上到下翻转选定的绘图对象。DrawFlipVertical 只对由“绘图”工具栏所绘的对象进行操作，如果选定对象是一个嵌入对象则出错。

_____________

请参阅

绘图

DrawFlipHorizontal

DrawRotateLeft

DrawRotateRight


DrawFreeformPolygon 示例

本示例通过插入一个默认手画线绘图对象在文本层前面添加一个 N 边形绘图对象，然后用 DrawSetPolyPoints 修改它。因为 N 边形中的直线有 4 个端点，因此 pointsArray$() 数组必须有八个元素（每两值一组）。端点是相对于当前页的左上角度量的。

DrawFreeformPolygon

Dim pointsArray$(4, 2)

pointsArray$(1, 1) = "150 pt"

pointsArray$(1, 2) = "200 pt"

pointsArray$(2, 1) = "150 pt"

pointsArray$(2, 2) = "100 pt"

pointsArray$(3, 1) = "200 pt"

pointsArray$(3, 2) = "200 pt"

pointsArray$(4, 1) = "200 pt"

pointsArray$(4, 2) = "100 pt"

DrawSetPolyPoints 4, pointsArray$()


DrawFreeformPolygon

示例

DrawFreeformPolygon

切换到页面视图，并在文本层的前面添加一个默认手画线绘图对象。默认手画线形状是一条线段，并被插入到当前页的左上角。要修改手画线形状，可以使用 DrawSetPolyPoints 语句。

_____________

请参阅

绘图

DrawCountPolyPoints()

DrawGetPolyPoints

DrawSetPolyPoints

FormatDrawingObject


DrawGetCalloutTextbox 示例

本示例显示一个对话框，给出选定图注中文本区域的水平位置、垂直位置、宽度和高度。

Dim pts$(2, 2)

DrawGetCalloutTextbox pts$()

msg$ = "HorizPos: " + pts$(1, 1) + Chr$(13)

msg$ = msg$ + "VertPos :" + pts$(1, 2) + Chr$(13)

msg$ = msg$ + "Width :" + pts$(2, 1) + Chr$(13)

msg$ = msg$ + "Height :" + pts$(2, 2) + Chr$(13)

MsgBox msg$, "Text Area In Callout"


DrawGetCalloutTextbox

示例

DrawGetCalloutTextbox TwoDimensionalArray[$]() [, Object]

用描述指定图注绘图对象边界矩形中文本区域的位置和尺寸的坐标，填充一个二维数组。

参数	解释
TwoDimensionalArray[$]()	用来填充指定图注文本框坐标的预定义二维数组。TwoDimensionalArray[$]() 可以是字符串或数字数组。一个字符串数组由文本度量单位构成，这个文本度量单位包括一个数值及其后的默认度量单位的缩写。一个数字数组则只由数值构成。 比如，假定数组 pts() 由指令Dim pts(2, 2) 定义，那么指令 DrawGetCalloutTextbox pts() 填充数组如下： pts(1, 1)    水平位置（从边界矩形的左边界到文本区域的距离），按默认度量单位。 pts(1, 2)    垂直位置（从边界矩形的上边界到文本区域的距离）。 pts(2, 1)    文本区域的宽度。 pts(2, 2)    文本区域的高度。
Object	指定一个绘图对象： 省略 选定绘图对象 > 0 一个锁定点位于 DrawSetRange 语句所设置的范围内的对象，其中 1 是范围中的第一个对象，2 是第二个对象，依此类推。如果该数值不在 1 到 DrawCount() 范围内，则出错。 如果指定绘图对象不是一个图注，则出错。
_____________

请参阅

绘图

DrawCallout

DrawSetCalloutTextbox

DrawSetInsertToTextbox


DrawGetPolyPoints 示例

本示例把选定手画线绘图对象的坐标存入数组 array pointsArray()。如果没有选定手画线对象，则出错。

If DrawGetType() = 7 Then

size = DrawCountPolyPoints()

Dim pointsArray(size, 2)

DrawGetPolyPoints pointsArray()

Else

MsgBox "The selected drawing object is not a freeform shape."

End If

有关其他示例，请参阅DrawCountPolyPoints() 示例。


DrawGetPolyPoints

示例

DrawGetPolyPoints TwoDimensionalArray[$]() [, Object]

用指定手画线绘图对象端点的坐标填充一个二维数组。如果指定对象不是手画线形状，则出错。您可以把这个数组作为 DrawSetPolyPoints 的一个参数，将坐标用于其他手画线绘图对象。在运行 DrawGetPolyPoints 前必须定义这个数组。可以用 DrawCountPolyPoints() 来确定数组的大小。

参数	解释
TwoDimensionalArray[$]()	用来填充指定手画线绘图对象坐标的预定义二维数组。 TwoDimensionalArray[$]() 可以是字符串或数字数组。一个字符串数组由文本度量单位构成，这个文本度量单位包括一个数值及其后的默认度量单位的缩写。一个数字数组则只由数值构成。
Object	指定一个绘图对象： 省略 选定绘图对象 > 0 一个锁定点位于 DrawSetRange 语句所设置范围内的对象，其中 1 是范围中的第一个对象，2 是第二个对象，依此类推。如果该数值不在 1 到 DrawCount() 范围内，则出错。
_____________

请参阅

绘图

DrawCountPolyPoints()

DrawFreeformPolygon

DrawSetPolyPoints


DrawGetType() 示例

本示例用预定义书签“\Doc”把绘图范围设置到整个文档，对文档中圆弧数目进行计数，然后在一个消息框中显示结果。

DrawSetRange "\Doc"

numarcs = 0

For i = 1 To DrawCount()

type = DrawGetType(i)

If type = 6 Then numarcs = numarcs + 1

Next

MsgBox "The document contains" + Str$(numarcs) + " arc(s)."


DrawGetType()

示例

DrawGetType([Count])

返回一个数值，该数值对应由 Count 所指定绘图对象的类型。Count 在 1 到 DrawCount() （在 DrawSetRange指定范围内的对象数目）范围内。如果省略了 Count ，则返回选定绘图对象的类型。

DrawGetType() 返回下列值：

Value	解释
0 (zero)	没有指定 Count，也没有选定绘图对象。
1	没有指定 Count，选定了多于一个的绘图对象。
2	绘图对象是一条直线。
3	绘图对象是一个文本框。
4	绘图对象是一个矩形。
5	绘图对象是一个椭圆。
6	绘图对象是一条圆弧。
7	绘图对象是一条手画线。
8	绘图对象是一个图注。
_____________

请参阅

绘图

DrawCount()

DrawSelect

DrawSetRange


DrawGroup 示例

本示例把绘图范围设置到当前段落，然后选定锁定点在范围内的全部对象。如果范围内对象数目大于 1，则这些对象分为一组。

DrawSetRange "\Para"

numobjects = DrawCount()

For i = 1 To numobjects

DrawExtendSelect i

Next i

If numobjects > 1 Then DrawGroup


DrawGroup

示例

DrawGroup

把选定绘图对象分为一组，这样可以作为单个对象进行操作。

_____________

请参阅

绘图

DrawDisassemblePicture

DrawExtendSelect

DrawSelect

DrawSetRange

DrawUngroup


DrawInsertWordPicture

DrawInsertWordPicture

打开一个临时文档（一个 Word 图片 对象）并显示“图片”和“绘图”工具栏。在用户关闭该文档或在“图片”工具栏上单击“关闭图片”按钮时，对象将嵌入到 DrawInsertWordPicture 运行时处于活动状态的文档中。指令 DrawInsertWordPicture 与指令 InsertObject .Class = "Word.Picture.6" 作用相同。

_____________

请参阅

绘图

InsertDrawing

InsertObject

InsertPicture


DrawLine

DrawLine

在当前文本层的前面添加一个默认直线绘图对象。默认线段将插入到当前页的左上角。

_____________

请参阅

绘图

DrawArc

DrawFlipHorizontal

DrawFlipVertical

DrawFreeformPolygon

DrawGetType()

DrawRotateLeft

DrawRotateRight

FormatDrawingObject


DrawNudgeDown

DrawNudgeDown

把选定绘图对象向下移动 7.5 磅（72 磅 ＝ 1 英寸），或者如果在“对齐格线”对话框（“绘图”工具框）中选择“对齐格线”命令，那么把选定对象向下移动“垂直间距”框中所指定的距离。

_____________

请参阅

绘图

DrawNudgeDownPixel

DrawNudgeLeft

DrawNudgeRight

DrawNudgeUp

DrawSnapToGrid


DrawNudgeDownPixel

DrawNudgeDownPixel

把选定绘图对象向下移动一个象素（屏幕最小单位）。

_____________

请参阅

绘图

DrawNudgeDown

DrawNudgeLeftPixel

DrawNudgeRightPixel

DrawNudgeUpPixel


DrawNudgeLeft

DrawNudgeLeft

把选定绘图对象向左移动 7.5 磅（72 磅 ＝ 1 英寸），或者如果在“对齐格线”对话框（“绘图”工具框）中选择“对齐格线”命令，那么把选定对象向左移动“水平间距”框中所指定的距离。

_____________

请参阅

绘图

DrawNudgeDown

DrawNudgeLeftPixel

DrawNudgeRight

DrawNudgeUp

DrawSnapToGrid


DrawNudgeLeftPixel

DrawNudgeLeftPixel

把选定绘图对象向左移动一个象素（屏幕最小单位）。

_____________

请参阅

绘图

DrawNudgeDownPixel

DrawNudgeLeft

DrawNudgeRightPixel

DrawNudgeUpPixel


DrawNudgeRight

DrawNudgeRight

把选定绘图对象向右移动 7.5 磅（72 磅 ＝ 1 英寸），或者如果在“对齐格线”对话框（“绘图”工具框）中选择“对齐格线”命令，那么把选定对象向右移动“水平间距”框中所指定的距离。

_____________

请参阅

绘图

DrawNudgeDown

DrawNudgeLeft

DrawNudgeRightPixel

DrawNudgeUp

DrawSnapToGrid


DrawNudgeRightPixel

DrawNudgeRightPixel

把选定绘图对象向右移动一个象素（屏幕最小单位）。

_____________

请参阅

绘图

DrawNudgeDownPixel

DrawNudgeLeftPixel

DrawNudgeRight

DrawNudgeUpPixel


DrawNudgeUp

DrawNudgeUp

把选定绘图对象向上移动 7.5 磅（72 磅 ＝ 1 英寸），或者如果在“对齐格线”对话框（“绘图”工具框）中选择“对齐格线”命令，那么把选定对象向上移动“垂直间距”框中所指定的距离。

_____________

请参阅

绘图

DrawNudgeDown

DrawNudgeLeft

DrawNudgeRight

DrawNudgeUpPixel

DrawSnapToGrid


DrawNudgeUpPixel

DrawNudgeUpPixel

把选定绘图对象向上移动一个象素（屏幕最小单位）。

_____________

请参阅

绘图

DrawNudgeDownPixel

DrawNudgeLeftPixel

DrawNudgeRightPixel

DrawNudgeUp


DrawRectangle

DrawRectangle

在当前文本层的前面添加一个默认矩形绘图对象。默认矩形是一个方形区域，并被插入到当前页的左上角。

_____________

请参阅

绘图

DrawFreeformPolygon

DrawRoundRectangle

DrawTextBox

FormatDrawingObject


DrawReshape

DrawReshape

对选定手画线绘图对象的句柄在边界矩形（可用句柄对对象进行缩放和调整尺寸）和手画线形状（可用句柄调整对象的形状）间进行切换。在运行 DrawReshape 之前，您可以选定多个手画线绘图对象。如果没有选定手画线绘图对象，则出错。

_____________

请参阅

绘图

DrawFreeformPolygon

DrawGetType()

DrawSelect


DrawRotateLeft

DrawRotateLeft

把选定绘图对象逆时针旋转 90 度。DrawRotateLeft 只对使用“绘图”工具栏的对象进行操作。如果选定对象是一个嵌入对象，则出错。

_____________

请参阅

绘图

DrawFlipHorizontal

DrawFlipVertical

DrawRotateRight


DrawRotateRight

DrawRotateRight

把选定绘图对象顺时针旋转 90 度。DrawRotateRight 只对使用“绘图”工具栏的对象进行操作。如果选定对象是一个嵌入对象，则出错。

_____________

请参阅

绘图

DrawFlipHorizontal

DrawFlipVertical

DrawRotateLeft


DrawRoundRectangle

DrawRoundRectangle

在当前文本层之前添加一个带圆角的默认矩形绘图对象。默认圆角矩形各边边长相同，并被插入到当前页的左上角。

_____________

请参阅

绘图

DrawEllipse

DrawFreeformPolygon

DrawRectangle

DrawTextBox

FormatDrawingObject


DrawSelect 示例

本示例选定文档中的最后一个绘图对象，并将其放在同一绘图层相对其他绘图对象的最高位置。

DrawSetRange "\Doc"

numobjects = DrawCount()

DrawSelect numobjects

DrawBringToFront


DrawSelect, DrawSelect()

示例

DrawSelect Object

DrawSelect(Object)

DrawSelect 语句选定指定的绘图对象，并取消对其他绘图对象的选定。要选定一个绘图对象而又不取消对其他对象的选定，可以使用 DrawExtendSelect 语句。DrawSelect() 函数与 DrawSelect 语句作用相同，如果选定指定对象则返回 -1。

参数	解释
Object	指定一个锁定点在 DrawSetRange 所设置范围内的绘图对象，其中 1 是该范围内的第一个对象，2 是第二个对象，依此类推。如果数值不在 1 到 DrawCount() 范围内，则出错。
_____________

请参阅

绘图

DrawExtendSelect

DrawSetRange


DrawSelectNext

DrawSelectNext

选定下一个绘图对象，其中“下一个”是指绘图对象堆栈中最接近栈顶的下一个对象。如果选定栈顶对象，则 Word 选定栈底对象。如果在 DrawSelectNext 运行时，没有选定对象，则出错。注意，您可以不必在使用 DrawSelectNext 时，用 DrawSetRange 设置一个绘图范围。

_____________

请参阅

绘图

DrawExtendSelect

DrawSelect

DrawSelectPrevious


DrawSelectPrevious

DrawSelectPrevious

选定前一个绘图对象，其中“前一个”是指绘图对象堆栈中最接近栈底的下一个对象。如果选定栈顶对象，则 Word 选定栈底对象。如果在 DrawSelectPrevious 运行时，没有选定对象，则出错。注意，您可以不必在使用 DrawSelectPrevious 时，用 DrawSetRange设置一个绘图范围。

_____________

请参阅

绘图

DrawExtendSelect

DrawSelect

DrawSelectNext


DrawSendBackward

DrawSendBackward

把选定绘图对象移到绘图对象堆栈前一个对象的后面。DrawSendBackward 不从文本层前移动一个绘图对象到文本层后。如果没有选定绘图对象，则出错。

_____________

请参阅

绘图

DrawBringForward

DrawBringInFrontOfText

DrawBringToFront

DrawSendBehindText

DrawSendToBack


DrawSendBehindText

DrawSendBehindText

把选定绘图对象从文本层前移动到文本层后。这个对象将放置在其他已经位于文本层后的绘图对象之前。如果这个对象已经是文本后绘图层的一部分或者如果没有选定对象，则出错。

_____________

请参阅

绘图

DrawBringForward

DrawBringInFrontOfText

DrawBringToFront

DrawSendBackward

DrawSendToBack


DrawSendToBack

DrawSendToBack

把选定绘图对象移到绘图对象堆栈中全部对象的后面。DrawSendToBack 不从文本层前移动一个绘图对象到文本层后。如果没有选定绘图对象，则出错。

_____________

请参阅

绘图

DrawBringForward

DrawBringInFrontOfText

DrawBringToFront

DrawSendBackward

DrawSendBehindText


DrawSetCalloutTextbox

DrawSetCalloutTextbox TwoDimensionalArray[$]() [, Object]

把保存于二维数组内的位置和尺寸用于指定图注绘图对象的文本区域。

参数	解释
TwoDimensionalArray[$]()	包含图注绘图对象中文本区域的位置和尺寸坐标的一个二维数组，文本区域的位置和尺寸是相对于边界矩形而言的。您既可以使用含数值（按默认度量单位）的数字数组，也可以使用含文本度量单位的字符串数组。 有关如何在数组中保存值，请参阅 DrawGetCalloutTextbox。
Object	指定一个绘图对象： 省略 选定绘图对象 > 0 一个锁定点位于 DrawSetRange 语句所设置范围内的对象，其中 1 是范围内的第一个对象，2 是第二个对象，依此类推。如果该数值不在 1 到 DrawCount() 范围内，则出错。 如果指定绘图对象不是一个图注，则出错。
示例请见DrawCallout 示例。

_____________

请参阅

绘图

DrawCallout

DrawGetCalloutTextbox

DrawSetInsertToTextbox


DrawSetInsertToAnchor

DrawSetInsertToAnchor [Object]

把插入点移到指定绘图对象锁定的段落开头。

参数	解释
Object	指定一个绘图对象： 省略 选定绘图对象 > 0 一个锁定点位于 DrawSetRange 语句所设置范围内的对象，其中 1 是范围内的第一个对象，2 是第二个对象，依此类推。如果该数值不在 1 到 DrawCount() 范围内，则出错。
_____________

请参阅

绘图

DrawSetInsertToTextBox


DrawSetInsertToTextbox 示例

本示例把绘图范围设置到整个文档，然后选定第一个绘图对象。如果该绘图对象是一个文本框或图注，那么 Word 把插入点移到文本区域并插入一些文本。

DrawSetRange "\Doc"

Select Case DrawGetType(1)

Case 3	'Text box

DrawSetInsertToTextbox 1

Insert "Text box text"

Case 8	'Callout

DrawSetInsertToTextbox 1

Insert "Callout text."

Case Else

End Select


DrawSetInsertToTextbox

示例

DrawSetInsertToTextbox [Object]

把插入点移到指定文本框或图注绘图对象的文本区域。如果指定对象不是文本框或图注绘图对象，则出错。

参数	解释
Object	指定一个绘图对象： 省略 选定绘图对象 > 0 一个锁定点位于 DrawSetRange 语句所设置范围内的对象，其中 1 是范围内的第一个对象，2 是第二个对象，依此类推。如果该数值不在 1 到 DrawCount() 范围内，则出错。
_____________

请参阅

绘图

DrawCallout

DrawSelect

DrawSetInsertToAnchor

DrawTextBox


DrawSetPolyPoints

DrawSetPolyPoints NumPoints, TwoDimensionalArray[$]() [, Object]

把保存于二维数组内的坐标用于指定手画线绘图对象。如果指定对象不是手画线形状，则出错。

参数	解释
NumPoints	在TwoDimensionalArray[$]() 中用于手画线绘图对象的坐标数目。NumPoints 不能超过数组尺寸。
TwoDimensionalArray[$]()	包含手画线绘图对象端点坐标的二维数组。您既可以使用含数值（按默认度量单位）的数 字数组，也可以使用含文本度量单位的字符串数组。 有关如何在数组中保存值，请参阅 DrawGetPolyPoints。
Object	指定一个绘图对象： 省略 选定绘图对象 > 0 一个锁定点位于 DrawSetRange 语句所设置范围内的对象，其中 1 是范围内的第一个对象，2 是第二个对象，依此类推。如果该数值不在 1 到 DrawCount() 范围内，则出错。
有关示例，请参阅 DrawCountPolyPoints() 示例

_____________

请参阅

绘图

DrawCountPolyPoints()

DrawFreeformPolygon

DrawGetPolyPoints

DrawReshape


DrawSetRange 示例

本示例把绘图范围设置到当前页，并对范围内绘图对象的数目进行计数，然后显示带有相应结果的消息框。

DrawSetRange "\Page"

n = DrawCount()

MsgBox "The current page contains" + Str$(n) + " drawing objects."


DrawSetRange, DrawSetRange()

示例

DrawSetRange Bookmark$

DrawSetRange(Bookmark$)

DrawSetRange 语句把绘图范围设置到 Bookmark$所指定的书签内。绘图范围用来建立可用其他绘图语句和函数进行操作的绘图对象组。比如，DrawCount() 函数可以对锁定点在绘图范围内的绘图对象进行计数。

The DrawSetRange() 函数与 DrawSetRange 语句作用相同，如果范围设置成功，则返回 -1，否则返回 0。（比如，如果指定书签不存在）。

在设置一个绘图范围时，使用预定义书签常常是很方便的。比如，您可以用指令 DrawSetRange "\Doc" 把绘图范围设置到整个文档。有关预定义书签的详细内容，请参阅预定义书签。

_____________

请参阅

绘图

DrawClearRange

DrawCount()

DrawSelect


DrawSnapToGrid

DrawSnapToGrid .SnapToGrid = number [, .XGrid = number or text] [, .YGrid = number or text] [, .XOrigin = number or text] [, .YOrigin = number or text]

建立用以限制绘图对象定位和调整尺寸的格线。在需要对齐和连接绘图对象时，格线是很有用的。DrawSnapToGrid 的参数对应“对齐格线”对话框（“对齐格线”按钮，“绘图”工具栏）中的选项。

参数	解释
.SnapToGrid	如果为 1，则激活对绘图对象定位的限制。
.XGrid	以磅或文本为度量单位，垂直格线间的距离（换句话说，定位绘图对象时的水平增量）。
.YGrid	以磅或文本为度量单位，水平格线间的距离（换句话说，定位绘图对象时的垂直增量）。
.XOrigin	以磅或文本为度量单位，从页的左边界到某垂直格线的距离，这个格线是在对其他垂直格线进行布置时，用来给 Word 进行参照的。指定 0 或多种 .XGrid 度量单位是 无效的。
.YOrigin	以磅或文本为度量单位，从页的上边界到某水平格线的距离，这个格线是在对其他水平格线进行布置时，用来给 Word 进行参照的。指定 0 或多种 .YGrid 度量单位是无效的。
_____________

请参阅

绘图

DrawAlign


DrawTextBox

DrawTextBox

把一个默认的文本边界区域添加到当前文本层前面的绘图层。默认文本框有一英寸见方，插入到当前页的左上角。

_____________

请参阅

绘图

DrawCallout

DrawRectangle

DrawSetInsertToAnchor

DrawSetInsertToTextBox

FormatDrawingObject


DrawUngroup

DrawUngroup

取消以前用 DrawGroup 语句建立起来的绘图对象间的联系，这样就可以独立地移动每个对象并调整它们的尺寸。如果没有选定绘图对象组，则出错。

_____________

请参阅

绘图

DrawExtendSelect

DrawGroup

DrawSelect


DrawUnselect

DrawUnselect

取消对选定绘图对象的选定，并把插入点移到包含该对象的段落的开头。如果选定的绘图对象不止一个，那么DrawUnselect 把插入点移到包含至少一个选定对象的第一个段落内。

_____________

请参阅

绘图

DrawExtendSelect

DrawSelect

DrawSelectNext

DrawSelectPrevious


FormatCallout

FormatCallout [.Type = number] [, .Gap = number or text] [, .Angle = number] [, .Drop = text] [, .Length = number or text] [, .Border = number] [, .AutoAttach = number] [, .Accent = number]

设置图注绘图对象的选项。FormatCallout 语句的参数对应“图注格式”对话框（“图注格式”按钮，“绘图”工具栏）中的选项。

参数	解释
.Type	指定图注的类型： 0 一条线段（垂直或水平）。 1 一条线段（垂直、水平或倾斜）。 2 两条线段 3 三条线段
.Gap	指定图注线与文本区域外边界矩形间的距离，以磅或文本为单位。
.Angle	指定图注线的角度（如果 .Type 是 2 或 3，则指最外面的线段）： 0 任意角度，在您移动图注，并调整尺寸时，Word 自动调整尺寸）。 1 30 度 2 45 度 3 60 度 4 90 度
.Drop	指定图注线相对文本区域外边界矩形的起始位置： Top    文本区域的顶部（或者，如果 .Type 为 1，并且线段是水平的，则为文本区域的右边界）。 Center    文本区域的中间。 Bottom    文本区域的底部。（或者，如果 .Type 为 1，并且线段是水平的，则为文本区域的左边界）。 您也可以对文本区域的顶部和图注线的起始点间的距离，设置一个以文本为度量单位的正值。
.Length	如果 .Type 设置为 2 或 3，则代表以 twip（20 twip = 1 磅） 或文本为单位的图注线第一段的长度；或者，如果在调整图注尺寸和定位时希望 Word 自动调整这个长度，则代表“最佳匹配”。
.Border	如果为 1，则在图注文本周围加边框。
.AutoAttach	如果为 1，那么在图注原点或图注文本从左切换到右时，自动修改图注的起始点。
.Accent	如果为 1，那么在文本区域旁边添加一条垂直线。
请参阅DrawCallout 示例。

_____________

请参阅

绘图

DrawCallout

DrawGetCalloutTextBox

DrawSetCalloutTextBox

FormatDrawingObject


FormatDrawingObject 示例

假定磅为当前度量单位，那么本示例把选定绘图对象向下，向右各移动 10 磅。

Dim dlg As FormatDrawingObject

GetCurValues dlg

dlg.HorizontalPos = Val(dlg.HorizontalPos) + 10

dlg.VerticalPos = Val(dlg.VerticalPos) + 10

FormatDrawingObject dlg


FormatDrawingObject

示例

FormatDrawingObject [.Tab = number] [, .FillColor = number or text] [, .LineColor = number or text] [, .FillPatternColor = number or text] [, .FillPattern = number or text] [, .LineType = number] [, .LineStyle = number] [, .LineWeight = number or text] [, .ArrowStyle = number] [, .ArrowWidth = number] [, .ArrowLength = number] [, .Shadow = number] [, .RoundCorners = number] [, .HorizontalPos = number or text] [, .HorizontalFrom = number] [, .VerticalPos = number or text] [, .VerticalFrom = number] [, .LockAnchor = number] [, .Height = number or text] [, .Width = number or text] [, .InternalMargin = number or text]

修改选定绘图对象的填充颜色、线型、尺寸和位置。FormatDrawingObject 语句的参数对应“绘图对象”对话框（“格式”菜单）中的选项。

参数	解释
.Tab	在用 Dialog 或 Dialog() 指令显示“绘图对象”对话框时，指定要选择的选项卡： 0 填充选项卡 1 线型选项卡 2 大小和位置选项卡
.FillColor	指定填充颜色。要指定灰度百分比，可在该灰度百分比上双击鼠标键，并使其为负值（比如，对 5% 的灰度，指定 -10，对 37.5% 的灰度，指定 -75）。要指定颜色，可使用 1 到 16 间的一个值，见 CharColor 所述，其中 0 表示无色。
.LineColor	指定线的颜色。有关值，请参阅 .FillColor。
.FillPatternColor	指定图案颜色。有关值，请参阅 .FillColor。
.FillPattern	指定填充图案： 0 把 .FillColor 和 .FillPattern 都设置为“None”。 1 到 25    指定“填充”选项卡上“图案”框中的某一项：1 对应第一项（“None”），2 对应第二项，依此类推。
.LineType	指定是否显示直线： 0 隐藏直线，只显示填充部分和箭头部分（如果有的话）。 1 显示由 .LineColor，.LineStyle，.LineWeight 所定义的直线。
.LineStyle	指定“直线”选项卡上“样式”框中的线型，其中 0 是第一项，1 是第二项，依此类推，一直到 4 。
.LineWeight	直线的宽度，以磅或文本为度量单位。
.ArrowStyle	指定一个线性绘图对象的箭头样式：0 对应“箭头”下“样式”框中的第一项（无箭头），1 对应第二项，依此类推，一直到 6 。
.ArrowWidth	指定一个线性绘图对象 的箭头宽度： 0 窄 1 中 2 宽
.ArrowLength	指定一个线性绘图对象的箭头长度： 0 短 1 中 2 长
.Shadow	如果为 1，对绘图对象使用阴影。
.RoundCorners	如果为 1，对矩形绘图对象进行圆角处理。
.HorizontalPos	以磅或文本为单位，由 .HorizontalFrom 指定的参考点与绘图对象间的距离。
.HorizontalFrom	用来度量绘图对象水平位置的参考点： 0 页边距 1 页 2 栏
.VerticalPos	以磅或文本为单位，由 .HorizontalFrom 指定的参考点与绘图对象间的距离。
.VerticalFrom	用来度量绘图对象水平位置的参考点： 0 页边距 1 页 2 段落
.LockAnchor	如果为 1，那么在与一个绘图对象相关连的其他绘图对象重定位时，该绘图对象锁定点保持固定。锁定的对象位置不能重定位。
.Height	以磅或文本为度量单位的绘图对象的高度。
.Width	以磅或文本为度量单位的绘图对象的宽度。
.InternalMargin	以 twip（20 twip ＝ 1 英寸）或文本为单位，文本框或图注绘图对象内部的页边距。
_____________

请参阅

绘图

DrawAlign

DrawReshape

DrawSnapToGrid


FormatPicture 示例

本示例把选定图形调整到原来宽度和高度的 75%。

FormatPicture .ScaleX = "75%", .ScaleY = "75%"


FormatPicture

示例

FormatPicture [.SetSize = number] [, .CropLeft = number or text] [, .CropRight = number or text] [, .CropTop = number or text] [, .CropBottom = number or text] [, .ScaleX = number or text] [, .ScaleY = number or text] [, .SizeX = number or text] [, .SizeY = number or text]

对指定图片使用格式。如果当前选定内容不是图片或既包含文本又包含图片，则出错。 FormatPicture 语句的参数对应“图片”对话框（“格式”菜单）中的选项。

参数	解释
.SetSize	在缩放比例和尺寸都指定时，指明哪组参数用来确定图片尺寸： 0 .ScaleX 和 .ScaleY  被用来对图片进行格式编排。 1 .SizeX 或 .SizeY 被用来对图片进行格式编排。
.CropLeft, .CropRight, .CropTop, .CropBottom	以磅（72 磅 = 1 英寸）或文本为单位，对图片进行剪裁。如果指定负值，则图形不被剪裁，相反，图片周围的空白被加进来。
.ScaleX, .ScaleY	原图片宽度和高度的百分比。
.SizeX, .SizeY	以磅或文本为单位，图片的水平和垂直尺寸。
_____________

请参阅

绘图

InsertPicture


InsertDrawing

InsertDrawing

如果您的计算机中安装了 Microsoft Draw ，则启动 Microsoft Draw ，并显示一个空白窗口。当用户退出 Microsoft Draw 时，图形将嵌入到活动文档中。指令 InsertDrawing 与指令 InsertObject .Class = "MSDraw" 作用相同。

_____________

请参阅

绘图

DrawInsertWordPicture

InsertChart

InsertEquation

InsertExcelTable

InsertObject

InsertPicture

InsertSound

InsertWordArt


SelectDrawingObjects

SelectDrawingObjects

对鼠标指针的形状在标准形状指针和选择绘图对象指针间进行切换。您可以拖动一个虚线矩形，使其包括要选择的绘图对象。

_____________

请参阅

绘图

DrawExtendSelect

DrawSelect


ToggleMainTextLayer

ToggleMainTextLayer

在页眉和页脚显示时，切换主文本层的显示。如果选定内容不在页眉或页脚内，则出错。

_____________

请参阅

节和文档格式

ViewHeader


ToggleScribbleMode

ToggleScribbleMode

切换手工批注模式的开和关。在 您激活手工批注模式时，Word 切换活动文档到页面视图。这个语句只用于 Windows for Pen Computing。


ViewDrawingToolbar

ViewDrawingToolbar

如果“绘图”栏被隐藏，则显示它；如果正显示“绘图”栏，则隐藏它。

_____________

请参阅

绘图

ViewBorderToolbar

ViewToolbars


Using special characters in a document search
在文档中使用特殊字符进行搜索

在 FileFind 指令中，可以通过近似条件而非精确条件来使用特殊字符搜索文档。在指定搜索条件时，可以用通配符和搜索操作符来实现特定方式搜索。

字符	解释
?（问号）	匹配任何单一字符。例如用 "gr?y" 可以匹配 "gray" 和 "grey"。
*（星号）	匹配任意数目的字符。例如"*.txt" 可用来查找所有具有扩展名为 .TXT的文件。
" " （引号，Chr$(34)）	匹配所有在引号中的字符，包括空格或标点符号。例如格式 Chr$(34) + "modern dance" + Chr$(34) 可用于查找短语 modern dance 。
\（反斜杠）	将以下字符：空格，星号，问号，逗号，和号 (&)，波浪号 (~) 作为标准字符对待。例如格式 "\?" 表示一个真正的问号。
,（逗号）	逻辑或（OR）。该符号表示信息可匹配任意或所有项目，但至少必须匹配一项。 例如格式 "dance, modern" 可以用来查找所有包含 "dance" 或 "modern" 的文档。
&（和号或空格符）	逻辑与（AND）。该符号表示信息必须匹配该列表中的全部项目。 例如格式 "dance&modern" 或 "dance modern" 都可以来查找所有同时包含这两个单词的文档。
~（波浪号）	逻辑非（NOT）。该符号表示信息必须与该项目不匹配。 例如格式 "~modern" 排除所有含单词 "modern" 的文件。
_____________

请参阅

FileFind

高级搜索条件


Advanced search criteria
高级搜索条件

如果您在指令 FileFind，EditFind，或 EditReplace 中将参数 .PatternMatch 设置为 1，您就可以指定以下高级搜索条件。

要查找	操作符	示例
任意单一字符	?	用 "s?t" 查找 "sat"，"set" 和 "sit"。
任意字符串	*	用 "s*d" 查找 "sad"，"started" 和 "said"。
所指定字符中的一个	[ ]	用 "w[io]n" 查找 "win" 和 "won"。
这一范围中的任何单一字符	[-]	用 "[r-t]ight" 查找 "right," "sight," 和 "tight"。范围必须按升序写。
除括号中字符以外的任何单一字符	[!]	用 "m[!a]st" 查找 "mist"，"most" 和 "must"，而非 "mast." 用 "t[!ou]ck" 查找 "tack" 和 "tick"，而非 "tock" 或 "tuck"。
除括号中所指字符范围以外的任何单一字符	[!x-z]	用 "t[!a-m]ck" 查找 "tock" 和 "tuck"，而非 "tack" 或 "tick"。
上一个字符或表达式出现 n 次	{n}	用 "fe{2}d" 查找 "feed" ，而非 "fed"。
上一个字符或表达式至少出现 n 次	{n,}	用 "fe{1,}d" 查找 "fed" 和 "feed"。
上一个字符或表达式出现 n 到 m 次	{n,m}	用 "10{1,3}" 查找 "10"， "100" 和 "1000"。
上一个字符或表达式出现一次或更多次	@	用 "lo@t" 查找 "lot" 和 "loot"。
一个单词的开始	<	用 "<(inter)" 查找 "interesting" 和 "intercept,"，而非 "splintered"。
一个单词的结束	>	用 "(in)>" 查找 "in" 和 "within"，而非 "interesting"。
就象前面例子中所示，您可以用括号括住搜索条件的一部分以指示评估的顺序并对表达式的各部分分组。

若要将操作符当作字符搜索，则在它们前面加上反斜杠（\）。例如若要查找问号，则在 EditFind 指令中用格式 .Find = "\?" 。

在 EditReplace i指令的参数 .Replace 中您可以使用另一操作符 \num。该操作符重新安排 .Find 参数中的顺序，新顺序依 .Replace 参数而定，例如您已说明了 .Find = "(Newton) (Christie)" 和 .Replace = "\2 \1"，则文本将从 "Newton Christie" 改为 "Christie Newton"。

_____________

请参阅

EditFind

EditReplace

FileFind

使用键盘代码来查找及替换特殊字符

在文档中使用特殊字符进行搜索


Finding and replacing special characters by using keyboard codes
使用键盘代码来查找及替换特殊字符

如果您要用命令EditFind 或 EditReplace 查找或替换特殊字符，用以下代码指定参数 .Find 和 .Replace的值。您可以在小写字母输入状态按 SHIFT+6 得到符号 ^ 。

特殊字符

要指定	指定	参数
段落标记 ( [image] )	"^p"	.Find 或 .Replace
制表符 ( [image])	"^t"	.Find 或 .Replace
批注标记	"^a"	.Find
ANSI 或 ASCII 字符	"^0nnn" 其中 nnn 是字符号	.Find 或 .Replace
任意字符	"^?"	.Find
任意数字	"^#"	.Find
任意字母	"^$"	.Find
脱字符 (^)	"^^"	.Find 或 .Replace
剪贴板内容	"^c"	.Replace
由 .Find 指定的文本	"^&"	.Replace
尾注标记	"^e"	.Find
域	"^d"	.Find
脚注标记	"^f"	.Find
图形	"^g"	.Find
分隔符

要指定	指定	参数
分栏符 ( [image])	"^n"	.Find 或 .Replace
分行符 ( [image])	"^l"	.Find 或 .Replace
人工分页符 ( [image])	"^m"	.Find 或 .Replace
分节符 ( [image])	"^b"	.Find
连字符和空格

要指定	指定	参数
长划线	"^+"	.Find 或 .Replace
短划线	"^="	.Find 或 .Replace
不可分空格 ( [image])	"^s"	.Find 或 .Replace
不可分连字符 ( [image])	"^~"	.Find 或 .Replace
可选连字符 ( [image]) ( [image])	"^-"	.Find 或 .Replace
空白区域 ( [image])	"^w"	.Find
您无法搜索 Word 在“工具”菜单中用“断字”命令自动插入的连字符。

注释

( [image]) 如果您省略可选连字符代码，Word 将查找所有匹配文本，包括具有可选连字符的文本。如果您包含了可选连字符代码，Word 只在同一位置查找具有可选连字符的单词。例如，如果您设置 .Find = "type^-writer" Word 只查找 "type-writer"，而不找 "typewriter"。

( [image]) 任意数目的空格、不可分空格、制表符和段落标记的组合。

_____________

请参阅

EditFind

EditReplace

高级搜索条件


AutoMarkIndexEntries

AutoMarkIndexEntries ConcordanceFilename$

用 ConcordanceFilename$ 作为重要语汇索引文件的路径和文件名对活动文档进行自动索引。重要语汇索引文件是一个 Word 文档，该文档含有一两列表格，表格第一列为索引项，第二列为索引目录项。每当该项目出现于重要语汇索引文件的第一栏时，AutoMarkIndexEntries 语句在其后用合适的目录项文本插入一个 XE（索引目录项）域。若想了解更多关于自动索引的信息，请参阅《Microsoft Word 用户指南》第20章：“索引、目录和其它表格”。

_____________

请参阅

编辑

MarkIndexEntry


Cancel 示例

本示例将剪贴板内容粘贴到一文档中，选择被粘贴文本，然后将选定范围中的文本放入一个变量。为完成该任务，本例中的宏在插入点插入一书签，粘贴文本，然后用 ExtendSelection 选择被粘贴文本。Cancel 语句关闭扩展方式，以便最后一次操作将插入点移到文档结尾时，不选中任何文本。

CopyBookmark "\Sel", "temp"

EditPaste

ExtendSelection

EditGoTo "temp"

pasted$ = Selection$()

Cancel

EndOfDocument


Cancel

示例

Cancel

取消由 ColumnSelect、CopyFormat、CopyText 或 ExtendSelection 语句激活的某一方式。

_____________

请参阅

编辑

OK


ChangeCase 示例

本示例选择当前段落（使用预定义书签“\Para”），并将每一语句的第一个字母变为大写。

EditGoTo "\Para"

ChangeCase 4


ChangeCase, ChangeCase()

示例

ChangeCase [Type]

ChangeCase()

ChangeCase 语句将设置选定文本大小写的方式：句首字母大写、小写、大写或首字母大写。ChangeCase 和 SmallCaps 以及 AllCaps 语句一样，都不改变与所选定文本相关的字符格式。ChangeCase 对应于“格式”菜单中的“更改大小写”命令。

参数	解释
Type	指定如何改变大小写格式： 省略 如果选定文本为一句话或少于一句话，则在“全部小写”，“全部大写”和“首字母大写”三种方式间切换。如果选定文本多于一句话，则在“全部大写”，“全部小写”和“句首字母字大写”三种方式间切换。 0 把文本全变为小写 1 把文本全变为大写 2 将每一选定单词的首字母变为大写 3 将所选定文本的第一个字母变为大写 4 将所选定文本中每一句的首字母变为大写 5 切换选中的每一个字母大小写（例如，“Word”变为“wORD”）。
如果未选定任何文本，Word 将选择离插入点最近的单词，并改变其大小写状态。

ChangeCase() 函数返回以下数值：

值	解释
0	如果选定的文本中没有大写字母
1	如果选定的文本中全为大写字母
2	如果选定的文本为大小写字母的混和
_____________

请参阅

编辑

AllCaps

FormatChangeCase

LCase$()

SmallCaps

UCase$()


CopyText 示例

本示例紧跟在当前段落之后，插入当前段落的复本（由预定义书签“\Para”选定）。

EditGoTo "\Para"

CopyText

ParaDown

OK


CopyText

示例

CopyText

复制被选定文本但不将其放入剪贴板（与按 SHIFT+F2 键相同）。为使 CopyText 正确工作，必须在 CopyText 语句前一句用宏命令选定文本，并且在 CopyText 后紧跟一次新的选定操作，然后使用 OK 语句复制文本。

_____________

请参阅

编辑

Cancel

MoveText

OK


DeleteBackWord

DeleteBackWord

删除插入点或选定内容的前一个单词，但不将其放入剪贴板。

如果存在选定内容，DeleteBackWord 的行为与存在插入点类似；该语句并不删除选定内容而是删除其前一单词。如果插入点在一个单词的中间，DeleteBackWord 删除插入点与该单词开头之间的字符。

注意如果在该单词和插入点之间存在空格，DeleteBackWord 将该空格和单词一起删去，此外，如果插入点是跟在一标点符号如逗号或句号后面，DeleteBackWord 只删除标点符号。

_____________

请参阅

编辑

DeleteWord

EditClear

EditCut

WordLeft


DeleteWord

DeleteWord

删除紧跟在插入点后的单词，或是删除选定内容中的第一个单词或该单词的一部分，删除内容不放入剪贴板。如果插入点在一个单词的中间，DeleteWord 删除从插入点到该单词结尾之间的字符。

注意如果在插入点与单词之间存在空格，DeleteWord 将空格与单词一起删去，此外，如果插入点后是一标点符号如逗号或句号，DeleteWord 将只删除标点符号。

_____________

请参阅

编辑

DeleteBackWord

EditClear

EditCut

WordRight


EditClear 示例

本示例删除插入点右边五个字符，若存在选定内容，则删除该选定内容和其后四个字符。

EditClear 5


EditClear

示例

EditClear [Count]

删除选定内容或指定数目的字符。与 EditCut 不同的是，EditClear 并不改变剪贴板的内容。

参数	解释
Count	指定要删除字符的数目和位置： > 0 删除插入点右边的字符 省略 删除选定内容或插入点右边的字符 < 0 删除插入点左边的内容 注意若 EditClear 0 ，则毫无效果。
注释

如果 Count 非零且存在选定内容，Word 将删除选定内容，并把它看成 Count 计数中的一个字符。

_____________

请参阅

编辑

EditCut


EditCopy

EditCopy

复制选定内容到剪贴板上。如果未选定内容，则发生错误。

_____________

请参阅

编辑

EditCut

EditPaste

EditPasteSpecial


EditCut

EditCut

从文档中删除选定内容，并将其放入剪贴板中。如果没有选定内容，将会发生错误。

_____________

请参阅

编辑

EditCopy

EditPaste

EditPasteSpecial

Spike


EditGoTo 示例

本示例计算文档中表格的个数。因为在每一插入点位置后面都将定义书签“Temp”，因而 CmpBookmarks() 可以判断最近一次 EditGoTo （或 RepeatFind）操作是否已移到插入点。当 RepeatFind 不再移动插入点，也即不再存在表格时，Word 将退出 While...Wend 循环。

StartOfDocument

EditBookmark "Temp", .Add

count = 0

If SelInfo(12) = - 1 Then count = 1

EditGoTo .Destination = "t"

While CmpBookmarks("\Sel", "Temp") <> 0

EditBookmark "Temp", .Add

count = count + 1

RepeatFind

Wend

EditBookmark "Temp", .Delete

MsgBox "There are" + Str$(count) + " tables in the document"


EditGoTo

示例

EditGoTo .Destination = text

将插入点或选定内容移到指定位置或指定项目。如页、书签、脚注、行或域上。若要将插入点移到下表所列的某一目的地，请组合使用相关标识符和数字，加号，减号或字符串。

目的地	标识符	.Destination 示例
页	p （或省略）	用文本 "p5" 或 "5" 定位到第五页。
节	s	用文本 "s" 定位到下一节。
行	l	用文本 "l+5" 定位到当前插入点后的第五行。“+”号意味着从插入点向前计数。
书签	（空）	用文本 "Temp" 定位到书签“Temp”。
批注	a	用文本 "a'Sara Levine'" 定位到下一由 Sara Levine 所作的批注标记。
脚注	f	用文本 "f-" 定位到前一脚注引用标记。减号“-”意味着从插入点往回计数。
尾注	e	用文本 "e5" 定位到第个尾注引用标记。
域	d	用文本 "d'TIME'" 定位到下一TIME域。单引号将域名与标识符分开。
表格	t	用文本 "t" 定位到下一表格。
图形	g	用文本 "g10" 定位到文档中第十个图形。
公式	q	用文本 "q-" 定位到前一个公式。
对象	o	用文本 "o-'WordArt'" 定位到前一个 Microsoft WordArt 对象。单引号标记将对象类型与标识符区分开。
下面的表格总结了 EditGoTo 命令中数字，加/减号与目的标识符一同使用的方法。数字与加/减号可用于除书签外的其它任一目的类型。

标识符以及	结果
数字	根据其在文档中的位置定位到某一项目。例如， EditGoto "l30" 定位到文档中的第130行； EditGoto "f200" 定位到第200个脚注。
+[数字] or -[数字]	定位到与当前位置相关的项目。例如， EditGoto "l+2" 定位到当前行后的第二行，同样， EditGoto "l-2" 定位到当前行的前一行。指令 EditGoto "l-" 定位到前一行。指令 EditGoto "l+" 定位到下一行。
省略	定位到下一指定项。例如， EditGoto "s" 定位到文档中的下一节。
_____________

请参阅

编辑

EditFind

GoBack

GoToNextItem

GoToPreviousItem

NextField

NextObject

NextPage

PrevField

PrevObject

PrevPage

RepeatFind


EditPaste

EditPaste

将剪贴板内容粘贴到插入点。如果您在“工具”菜单“选项”对话框的“编辑”选项卡中，选中了“用键入替换选定内容”复选框，EditPaste 替换选定内容。

_____________

请参阅

编辑

CopyText

EditCopy

EditCut

EditPasteSpecial

MoveText


EditRedo

EditRedo

重做上一个被取消的操作（与 EditUndo 操作相反）。

_____________

请参阅

编辑

EditRepeat

EditUndo


EditRepeat

EditRepeat

如果可能，重复最近一次的编辑操作。

_____________

请参阅

编辑

EditRedo

EditUndo


EditTOACategory 示例

本示例将分类表中第九项改成“Case Histories”。

EditTOACategory .Category = 8, .CategoryName = "Case Histories"


EditTOACategory

示例

EditTOACategory .Category = number, .CategoryName = text

更改权限表中引用分类的名称。EditTOACategory 语句的参数对应于“编辑”对话框的选项（“插入”菜单下“索引和目录”命令的“引文标记”对话框）。

参数	解释
.Category	您希望更改的分类。值为 1 对应于表中的第一项名称，值为 2 对应于第二项名称，以此类推。
.CategoryName	引用分类的新名称。
_____________

请参阅

编辑

InsertTableOfAuthorities

MarkCitation


EditUndo

EditUndo

如果可能，撤消上一个操作。许多编辑和编排格式操作都可以撤消，但有的操作如修改样式就不能撤消。

_____________

请参阅

编辑

EditRedo

EditRepeat


ExtendMode() 示例

本示例切换扩展方式的状态：

If ExtendMode() = 0 Then ExtendSelection Else Cancel


ExtendMode()

示例

ExtendMode()

如果扩展方式处于开启态则返回 -1。在扩展方式下，正常移动插入点的操作将扩展选定范围。ExtendMode() 并不指示列选择方式是否处于开启态。

_____________

请参阅

编辑

Cancel

ColumnSelect

ExtendSelection


InsertAddCaption 示例

本示例在题注标签列表中添加“Diagram”。

InsertAddCaption .Name = "Diagram"


InsertAddCaption

示例

InsertAddCaption [.Name = text]

在“插入”菜单下的“题注”对话框中，添加新的项目到“标签”框中。在 InsertCaption 指令中，新的项目成为 .Label 参数的合法字符串。

参数	解释
.Name	新题注标签名
_____________

请参阅

编辑

InsertAutoCaption

InsertCaption

InsertCaptionNumbering


InsertAutoCaption 示例

本示例创建一新题注标签“Picture”，并指定每当插入一 Microsoft Paintbrush 对象时，该标签自动插入。

InsertAddCaption .Name = "Picture"

InsertAutoCaption .Object = "Paintbrush Picture", \

.Label = "Picture"


InsertAutoCaption

示例

InsertAutoCaption [.Clear] [, .ClearAll] [, .Object = text] [, .Label = text] [, .Position = number]

在插入任一指定类型对象的时候，系统将自动插入指定的题注。InsertAutoCaption 语句的参数对应于“插入”菜单“题注”命令的“自动插入题注”对话框中的选项。

参数	解释
.Clear	对由 .Object 参数指定的对象类型。取消自动添加题注功能。
.ClearAll	对所有对象取消自动添加题注功能。
.Object	您希望为其自动添加题注的对象类型的名称。该名称与“插入时添加题注”中的名称一样。
.Label	自动插入的题注标签。如果该标签还未被定义，则会发生错误。您可以用 InsertAddCaption 定义新标签。
.Position	题注的位置： 0 在项目上面 1 在项目下面
_____________

请参阅

编辑

InsertAddCaption

InsertCaption

InsertCaptionNumbering


InsertBreak 示例

本示例在活动文档的每一 “标题 1”段落前插入一分页符。

StartOfDocument

EditFindClearFormatting

EditFindStyle .Style = "标题 1"

EditFind .Find = "", .Direction = 0, .Wrap = 0

While EditFindFound()

CharLeft

InsertBreak .Type = 0

EditFind .Find = "", .Direction = 0, .Wrap = 0

Wend


InsertBreak

示例

InsertBreak [.Type = number]

在插入点插入一个分页符、分栏符或分节符。.Type 参数可取值对应于“插入”菜单下“分隔符”对话框中的选项。

参数	解释
.Type	插入的分隔符类型： 0 或省略 分页符 1 分栏符 2 下一页分节符 3 连续分节符 4 偶数页分节符 5 奇数页分节符 6 换行符（换行字符）
_____________

请参阅

编辑

InsertColumnBreak

InsertPageBreak

InsertSectionBreak

ParaPageBreakBefore

TableSplit


InsertCaption 示例

本示例在活动文档中每一 WordArt 对象后插入一题注，该题注标签为“Figure”，题注为“WordArt Object”。GetSelStartPos() 返回在 EditGoTo 指令前和该指令后的插入点的字符位置。当字符位置相同，也即不再有 WordArt 对象时，将退出 While...Wend 循环。

StartOfDocument

cp1 = GetSelStartPos()

EditGoTo "o'WordArt'"

cp2 = GetSelStartPos()

While cp1 <> cp2

CharRight 1, 1

InsertCaption .Label = "Figure", \

.Title = ": WordArt Object", .Position = 1

cp1 = GetSelStartPos()

EditGoTo "o'WordArt'"

cp2 = GetSelStartPos()

Wend


InsertCaption

示例

InsertCaption [.Label = text] [, .TitleAutoText = text] [, .Title = text]  [, .Delete] [, .Position = number]

在所选项目上面或下面插入一题注。InsertCaption 语句的参数对应于“插入”菜单下“题注”对话框中的选项。

参数	解释
.Label	所插入的题注标签。如果还未定义该标签，则会发生错误。您可以用 InsertAddCaption 来定义新标签。
.TitleAutoText	您希望在题注标签后标入其内容的自动图文集词条（忽略由 .Title 所指定的任何文本）。
.Title	在题注标签后插入的文本（如果指定了 .TitleAutoText ，则该参数被忽略）。
.Delete	从标签框中删除指定标签。内部标签（如“Figure”）不能删除。如果 .Label 指定了一个内部标签，则将产生错误。
.Position	当选定了某一项目时，该参数指定在该项目的上面或下面插入题注： 0 在选定项目上面插入 1 在选定项目下面插入
_____________

请参阅

编辑

InsertAddCaption

InsertAutoCaption

InsertCaptionNumbering


InsertCaptionNumbering 示例

本示例为含“Figure”标签的题注定义编号格式。序列号中不含章节号。

InsertCaptionNumbering .Label = "Figure", .FormatNumber = 3, \

.ChapterNumber = 0


InsertCaptionNumbering

示例

InsertCaptionNumbering [.Label = text] [, .FormatNumber = number] [, .ChapterNumber = number] [, .Level = number] [, .Separator = text]

为指定项目类型定义题注序列号的格式。InsertCaptionNumbering 语句的参数对应于“插入”菜单下“题注”命令的“题注编号”对话框中的选项。

参数	解释
.Label	您希望为之定义序列号格式的标签。如果还未定义该标签，则会发生错误。您可以使用 InsertAddCaption 来定义新标签。
.FormatNumber	为包含指定标签的题注指定一缺省序列号格式： 0 1, 2, 3, ... 1 a, b, c, ... 2 A, B, C, ... 3 i, ii, iii, ... 4 I, II, III, ...
.ChapterNumber	如果值为 1，则在包含指定标签的题注中缺省包括章节编号。章节号由 .Level 指定的题注样式决定。
.Level	对应于标题样式的一个数字，用于确定活动文档中的章节标题样式：值为 1 对应于 标题 1,值为 2 对应于 标题 2，依此类推。
.Separator	在章节编号和序列号之间用作分隔符的字符。
_____________

请参阅

编辑

InsertAddCaption

InsertAutoCaption

InsertCaption


InsertColumnBreak

InsertColumnBreak

在插入点插入一分栏符。如果插入点在某表格中，则 InsertColumnBreak 在包含插入点行的上一行插入一段落标记，将表格拆分。InsertColumnBreak 指令等同于 InsertBreak .Type = 1 指令

_____________

请参阅

编辑

InsertBreak

InsertPageBreak

InsertSectionBreak

TableSplit


InsertCrossReference 示例

This example inserts a sentence containing two cross-references to a diagram: 本示例插入一语句，该语句包含两个对图的交叉引用：一个对题注，另一对包含该图的页。用指令插入的典型句子可以是“For a diagram of a widget, see 'Figure 1: Standard Widget' on page 5”。

Insert "For a diagram of a widget, see " + Chr$(34)

InsertCrossReference .ReferenceType = "Figure", \

.ReferenceKind = "2", .ReferenceItem = "1"

Insert Chr$(34) + " on page "

InsertCrossReference .ReferenceType = "Figure", \

.ReferenceKind = "7", .ReferenceItem = "1"

Insert "."


InsertCrossReference

示例

InsertCrossReference [.ReferenceType = text] [, .ReferenceKind = text] [, .ReferenceItem = text]

在标题、书签、脚注、尾注或已为其定义了题注标签的项目（如公式、数字或表格）中插入一交叉引用。InsertCrossReference 语句的参数对应于“插入”菜单，“交叉引用”对话框中的选项。

参数	解释
.ReferenceType	您希望在其中插入交叉引用的项目类型。它对应于“引用类型”框。
.ReferenceKind	以文本方式指定的数字代号，其对应于您希望包含在交叉引用中的信息。请参阅以下表格得到可用值。
.ReferenceItem	以文本方式指定的数字代号，其对应于“供哪一［引用类型］使用”框中的项。“1”对应于第一项，“2”对应于第二项，以此类推。
以下表格显示了基于 .ReferenceType 设置的 .ReferenceKind 的可用值。

.ReferenceType	.ReferenceKind 的可用值
标题	0 标题文本 7 页码 8 标题编号
书签	1 书签文本 7 页码 9 段落编号
脚注	5 脚注编号 7 页码
尾注	6 尾注编号 7 页码
已定义题注标签的项	2 所有题注 3 只有标签和编号 4 只有题注文本 7 页码
_____________

请参阅

编辑

InsertCaption


InsertIndex 示例

本示例插入一简单的缩进格式的索引。如果存在当前索引，则当前索引被该索引替换。

InsertIndex .Type = 0, .HeadingSeparator = 0, .Replace = 1


InsertIndex

示例

InsertIndex  [.HeadingSeparator = number] [, .Replace = number] [, .Type = number] [, .RightAlignPageNumbers = number] [, .Columns = number]

编撰并在插入点插入一索引或替换现存一索引。该索引是您在改变索引目录项时所更新的 INDEX 域的结果。

参数	解释
.HeadingSeparator	指定标题分隔符： 0 或省略 无 1 空行 2 字母
.Replace	指定是否替换已存在索引： 0 或省略 不替换现存索引（若不选择索引则该指令无效果） 1 替换现有索引。
.Type	指定索引类型： 0 或省略 缩进式 1 平行式
.RightAlignPageNumbers	如果为 1，将页码与栏的右边界对齐。
.Columns	索引所在的栏的编号。
_____________

请参阅

编辑

AutoMarkIndexEntries

MarkIndexEntry


InsertPageBreak

InsertPageBreak

在插入点插入分页符。指令 InsertPageBreak 与指令 InsertBreak .Type = 0 功能相同。

_____________

请参阅

编辑

InsertBreak

InsertColumnBreak

InsertSectionBreak

ParaPageBreakBefore

TableSplit


InsertPageNumbers 示例

本示例在页眉中添加右对齐页码，并指定第一页上不显示页码。

InsertPageNumbers .Type = 0, .Position = 2, .FirstPage = 0


InsertPageNumbers

示例

InsertPageNumbers [.Type = number] [, .Position = number] [, .FirstPage = number]

在页眉或页脚的图文框中的指定位置处插入一 PAGE 域。InsertPageNumbers 语句的参数对应于“插入”菜单下“页码”对话框中的选项。

参数	解释
.Type	指定添加 Page 域位置： 0 页眉 1 页脚
.Position	指定加了图文框的 PAGE 域的位置： 0 左边 1 正中 2 右边 3 内部（在奇数页的左边，偶数页的右边） 4 外部（奇数页的右边，偶数页的左边）
.FirstPage	如果值为 1，则该域也包含在第一页的页眉或页脚中。
_____________

请参阅

编辑

FormatPageNumber

InsertPageField

ViewHeader


InsertSpike

InsertSpike

清空特殊自动图文集词条“图文场”，并将其内容插入到插入点。示例请看 Spike 示例。

_____________

请参阅

编辑

EditAutoText

InsertAutoText

Spike


InsertSymbol 示例

本示例在插入点位置插入一双向箭头。

InsertSymbol .Font = "Symbol", .CharNum = "171"


InsertSymbol

示例

InsertSymbol .Font = text, .Tab = number, .CharNum = number or text

在插入点插入一符号。注意与在 Word for Windows 2.x 版中不同的是 InsertSymbol 并不是插入一SYMBOL 域。InsertSymbol 语句的参数对应于“插入”菜单下的“符号”对话框中的选项。

参数	解释
.Font	包含符号的字体名称。修饰性字体的名称出现于“符号”对话框中的“字体”框中。
.Tab	指定您用 Dialog 或 Dialog() 指令显示“符号”对话框时选择何种字符表： 0 符号选项卡 1 特殊字符选项卡
.CharNum	从左到右数时出现在符号表中符号的位置编号与数 31 的值之和。例如，要指定出现在符号字体集合的符号表中第 56 个字符 ()时，将 CharNum 设为 87。
_____________

请参阅

编辑

Chr$()


InsertTableOfAuthorities

Word 6.0 中文版已取消本功能。

_____________

请参阅

编辑

InsertTableOfContents

InsertTableOfFigures

MarkCitation


InsertTableOfContents 示例

本示例使用标题 1 到标题 3 样式插入一目录表。如果有 TC 域，则排除该域。

InsertTableOfContents .Outline = 1, .From = 1, .To = 3, \

.Fields = 0, .RightAlignPageNumbers = 1, .Replace = 1

下一示例用标题 1 到标题 3 样式标题 5 样式（略过标题 4 样式）插入目录表。注意目录表中由标题 5 样式格式化的标题将用 TOC 4样式格式化。

InsertTableOfContents .Outline = 1, .From = 1, .To = 3, \

.AddedStyles = "Heading 5,4", .RightAlignPageNumbers = 1, \

.Replace = 0

下一示例插入一目录表，该表基于用“Intro”、“Main heading”、“Summary” 和 “Subhead”样式编排格式的文本。由 Intro、Main heading 和 Summary 样式编排格式的文本被映像到 TOC 1 样式，由 Subhead style 样式编排格式的文本被映射到 TOC 2 样式。

custom$ = "Intro,1,Summary,1,Main heading,1,Subhead,2"

InsertTableOfContents .AddedStyles = custom$, \

.RightAlignPageNumbers = 1, .Replace = 0


InsertTableOfContents

示例

InsertTableOfContents [.Outline = number] [, .Fields = number] [, .From = number] [, .To = number] [, .TableId = text]  [, .AddedStyles = text] [, .Replace = number] [, .RightAlignPageNumbers = number]

根据标题、目录表项（TC）域或根据这两者来收集目录项，并在插入点插入一目录表域（TOC 域）。

参数	解释
.Outline	如果值为 1，根据标题样式收集目录项。
.Fields	如果值为 1，根据 TC（目录表项）域收集目录项。
.From	如果 .Outline 值为 1，根据最高级的标题样式收集。
.To	如果 .Outline 值为 1，根据最低级的标题样式收集。
.TableId	表示在您希望包括在目录表的 TC 域中指定的目录项标识符。
.AddedStyles	和 .From 和 .To 中指定的标题样式一起同为收集样式。在指定 .AddedStyles时使用以下语法： StyleToCollect1,TOC#[,StyleToCollect2,TOC#][,...] 您可以指定任意数目的样式，但该字符串的长度不得超过 256 个字符。例如， .AddedStyles = "NoteStyle,3" 将会将那些由“NoteStyle”样式编排格式的文本收集入目录，并将其用 TOC 3 样式编排格式。
.Replace	指定是否替换预编译过的目录： 0 或省略 不替换现有目录（该指令只有选择了目录后才有效）。 1 替换现有目录
.RightAlignPageNumbers	如果值为 1，则按右页边距对齐页码。
_____________

请参阅

编辑

InsertTableOfAuthorities

InsertTableOfFigures

MarkTableOfContentsEntry


InsertTableOfFigures 示例

本示例插入一图表目录，其具有标记为“Diagram”的题注标签。如果已经存在一张图表，该图表将被替换掉。

InsertTableOfFigures .Caption = "Diagram", .Label = 1, \

.RightAlignPageNumbers = 1, .Replace = 1


InsertTableOfFigures

示例

InsertTableOfFigures [.Caption = text] [, .Label = number] [, .RightAlignPageNumbers = number] [, .Replace = number]

收集具有指定标签的题注，并将它们插入到插入点位置。

参数	解释
.Caption	标识您希望为之创建目录的项目的标签
.Label	如果值为 1，则在图表目录题注中包含标签和序列号。
.RightAlignPageNumbers	如果值为 1，则按右页边距对其页码。
.Replace	指定是否替换一预编译过的图表目录： 0 或省略 不替换现有图表目录（该指令只有选定了图表目录后才有效）。 1 替换现有图表目录。
_____________

请参阅

编辑

InsertAutoCaption

InsertCaption

InsertTableOfAuthorities

InsertTableOfContents


MarkCitation

引文目录的内容已在 Microsoft Word 6.0 中文版中取消。


MarkIndexEntry

MarkIndexEntry [.MarkAll] [, .Entry = text] [, .Range = text] [, .Bold = number] [, .Italic = number] [, .CrossReference = text] [, .EntryAutoText = text] [, .CrossReferenceAutoText = text]

在选择的文本后或所选定文本的每一处实例后插入一 XE（索引项）域。若想了解更多信息，请参阅 XE (Index Entry) 域。

MarkIndexEntry 语句的参数对应于“插入”菜单下“索引和目录”命令“索引”选项卡的“标记索引项”对话框中的选项。

参数	解释
.MarkAll	在所选定文本的每一处实例后都插入一 XE 域。
.Entry	您希望出现在索引中的文本。其形式为 MainEntry[:Subentry]。
.Range	书签名称，该书签标记您希望出现在索引中的页的范围。如果您未指定 .Range 值，包含 XE 域页的页号将出现在索引中。
.Bold	如果值为 1，索引中的项的页号为粗体显示。
.Italic	如果值为 1，索引中项的页号用斜体显示。
.CrossReference	将出现在索引中的交叉引用。
.EntryAutoText	自动图文集词条的名称，该自动无文集项含有您希望出现在索引中的文本（此时忽略 .Entry）
.CrossReferenceAutoText	自动图文集词条的名称，该自动图文集词条含有交叉引用文本（忽略参数.CrossReference ）。
_____________

请参阅

编辑

InsertIndex

MarkCitation

MarkTableOfContentsEntry


MarkTableOfContentsEntry

MarkTableOfContentsEntry [.Entry = text] [, .EntryAutoText = text] [, .TableId = text] [, .Level = text]

在所选定文本后插入一 TC（目录表项）域。若想了解更多信息，请参阅 TC (Table of Contents Entry) 域。

参数	解释
.Entry	您希望出现在目录表中的文本。
.EntryAutoText	自动图文集词条的名称。该自动图文集词条含有您希望出现在目录中的文本（忽略 .Entry）。
.TableId	标识项目类型的一个字母的标识符（例如，“i”标识插入图）。
.Level	目录项在目录中的层次。
_____________

请参阅

编辑

InsertTableOfContents

MarkCitation

MarkIndexEntry


MoveText 示例

本示例将包含插入点的行移到文档的开头。

StartOfLine

EndOfLine 1

MoveText

StartOfDocument

OK


MoveText

示例

MoveText

移动文本但不改变剪贴板内容（与按 F2 键相同）。若要正确使用 MoveText ，在宏指令中，MoveText 指令的前一句必须进行一次文本选择，在紧接着 MoveText 后进行一次新的文本选择，然后用 OK 语句移动文本。

_____________

请参阅

编辑

CopyFormat

CopyText

OK


OK 示例

本示例复制包含插入点的行到文档开头，但不改变剪贴板的内容。

StartOfLine

EndOfLine 1

CopyText

StartOfDocument

OK


OK

示例

OK

完成一次 CopyText 或 MoveText 操作（等同于在操作过程中按 ENTER 键）。

_____________

请参阅

编辑

Cancel

CopyText

MoveText


Overtype 示例

如果改写方式已被激活，本示例显示一带有 Yes 和 No 按钮的消息框，询问是否将其设为非激活状态。如果用户选择 Yes，消息框将返回 -1，改写方式变为非激活态。

If Overtype() = -1 Then

Button = MsgBox("Overtype is on. Turn off?", 4)

If button = -1 Then Overtype 0

End If


Overtype, Overtype()

示例

Overtype [On]

Overtype()

Overtype 语句在改写方式和插入方式之间切换。在改写方式下，您键入的字符将一个个地改写现有字符；在插入方式下，您键入的字符会将现有字符右移。

参数	解释
On	指定方式： 0 切换到插入方式。 1 切换到改写方式（在状态栏中出现“改写”字样）。 省略 在插入方式和改写方式之间切换。
Overtype() 函数返回以下数值。

值	解释
0	非改写方式
-1	改写方式
注意：用 Insert 语句插入的文本总是不覆盖文档中的文本，而不管文档是处在插入态还是改写态。

_____________

请参阅

编辑

ToolsOptionsGeneral


Spike 示例

本示例打开 RESEARCH.DOC，使用 Spike 收集所有 Heading 1 段落，然后不保存任何改动而关闭该文档，最后将收集来的标题插入活动文档。

FileOpen .Name = "C:\DOCS\RESEARCH.DOC", .ReadOnly = 1

EditFindClearFormatting

EditFindStyle .Style = "Heading 1"

EditFind .Find = "", .Direction = 0, .Format = 1

While EditFindFound()

Spike

ParaDown

EditFind .Find = "", .Direction = 0, .Format = 1

Wend

FileClose 2	'Close without saving

InsertSpike	'Empty the Spike at insertion point


Spike

示例

Spike

删除当前选定内容，并将其添加到称为“图文场”的内部自动图文集词条中。添加到“图文场”中的项目由段落标记分隔。

您可以使用“图文场”从一个或多个文档的不同位置收集文本和图形，然后用 InsertSpike 把它们全部插入同时清除“图文场”的内容，或是用 EditAutoText 插入但不清除“图文场”的内容。

_____________

请参阅

编辑

EditAutoText

EditCut

InsertSpike


Beep 示例

这个示例在显示输入框之前立即产生声音提示：

Beep

name$ = InputBox$("The macro has finished running. " + \

"Save document as:")

下面的示例使计算机产生三次声音提示。嵌入在第一个 For...Next 循环的第二个循环提供各次声音提示之间的延迟。事实上，延迟循环使 Word 产生下一次声音提示之前计数一千。如果没有延迟， Word 的声音提示会太快，听起来就象一次连续的声音提示。您可以通过增加或减小第二个 For...Next 循环的结束值来使延迟不同。例如，把结束值改成 5000 会增加延迟，而把它改成 100 会减少延迟。

Sub BeepThreeTimes

For x = 1 to 3

Beep

For timer = 1 To 1000	'Delay loop between beeps

Next timer

Next x

End Sub


Beep

示例

Beep [BeepType]

使计算机扬声器发声。 Beep 的典型应用是发出较长时间运行的结束信号或标明发生错误。

参数	解释
BeepType	发声的类型； 1 （或省略），2，3 或 4 。在大部分计算机上，所有这几个数发出相同的声音——即发生错误时您听到的声音。
注释

如果在 WIN.INI 的 [Windows] 节中包含一行 Beep = No，则发声会听不见。


DOSToWin$() 示例

这个示例打开一个 MS-DOS 应用程序创建的顺序文件，把它的每一行转换为 Windows 字符集，然后把结果放在新的顺序文件中：

ChDir "C:\TMP"

Open "DOS.TXT" For Input As #1

Open "WINDOWS.TXT" For Output As #2

While Not Eof(1)

Line Input #1, temp$

Print #2, DOSToWin$(temp$)

Wend

Close


DOSToWin$()

示例

DOSToWin$(StringToTranslate$)

把从原始设备制造商（OEM）字符集得到的字符串转换成 Windows 字符集。

OEM 字符集的典型应用是 MS-DOS 应用程序。从 32 到 127 的字符在 OEM 和Windows 字符集中通常是相同的。 OEM 字符集中的其他字符（从 0（零）到 31 和从 128 到 255 ）一般与 Windows 字符不同。

_____________

请参阅

环境

WinToDOS$()


Environ$() 示例

这个示例检查 PATH 环境变量，并根据路径中的字符数（最大限制为 127 个字符）显示两个信息框中的一个。

path$ = Environ$("PATH")

length = Len(path$)

avail = 127 - length

Select Case avail

Case 127

MsgBox "The PATH is empty."

Case 0 To 126

MsgBox "You can add" + Str$(avail) + \

" character(s) to the PATH."

Case Else

End Select


Environ$()

示例

Environ$(EnvironmentVariable$)

返回与 MS-DOS EnvironmentVariable$ 相关联的字符串。例如， tempdir$ = Environ$("TEMP") 返回与 MS-DOS 中 TEMP 环境变量相关联的目录。

环境变量名义上是用 MS-DOS 批处理文件（例如 AUTOEXEC.BAT）设置的。有关环境变量的详细内容，请参阅您的 MS-DOS 文档。

_____________

请参阅

环境

AppInfo$()

GetProfileString$()

GetSystemInfo


Err 示例

这个宏提示用户键入一个样式名，然后将此样式名应用到选定段落。此宏中包含一个演示 Err用于 Select Case 控制结构结构内的错误处理器。此宏中 Select Case 控制结构可说明如下：

如果错误代码为 102 （InputBox$ 对话框被取消时发生），宏阻止“命令失败”错误信息的显示。

如果错误代码为 24 （样式名不存在时发生）， Word 显示一个自定义信息框来代替“无效参数”错误信息，用指令 Err = 0 重新设置错误捕获，然后再次显示 InputBox$ 对话框，以便用户可以键入另一个样式名。请注意， Case 24 是错误捕获需要重新设置的唯一的情况。在其他情况下，宏结束运行，没有必要进行进一步的错误捕获。

如果错误代码既不是 102 也不是 24 ，则指令 Error Err 显示错误。

Sub MAIN

On Error Goto trap

start:

apply$ = InputBox$("Type a style name:", "Apply Style")

Style apply$

trap:

Select Case Err

Case 102	'Input box was canceled

Case 24	'Bad parameter

MsgBox "No such style; try another name."

Err = 0

Goto start

Case Else	'Any other error condition

Error Err

End Select

End Sub


Err

示例

Err = 0

Error Err

ErrorNum = Err

Err 是一个特殊变量，其值是最近错误条件的错误代码。

Err = 0 用于发生错误后重新设置错误捕获，通常在错误陷井的结束处。

Error Err 显示与最近错误条件相关联的信息，并停止宏的运行。

ErrorNum = Err 将 Err 的值赋给变量 ErrorNum。

有关捕获错误的详细内容，请参阅On Error。

_____________

请参阅

环境

Error

Goto

On Error


Error 示例

这个示例产生 WordBasic 错误条件 53 ，以便测试这一错误的处理。当错误条件 53 发生时， Word 显示一个自定义信息框；任何其他错误都运行指令 Error Err ，该指令显示与错误号码相关联的内部信息。

On Error Goto trap

Error 53	'Generate error condition

trap:

If Err = 53 Then

MsgBox "Error 53 successfully trapped"

Err = 0

Else

Error Err

End If


Error

示例

Error Err

Error ErrorNumber

Error Err 产生最近的错误条件并停止宏的运行。 Error ErrorNumber 产生与 ErrorNumber 相关联的错误条件。对 WordBasic 错误条件（它的号码小于 1000 ），Error 显示错误信息。对 Word 错误（其号码大于 1000 ），Error 产生错误条件，但不显示错误信息。Error 可用于测试错误陷井。

有关错误捕获的详细内容，请参阅On Error 和 Err 。有关错误的列表和它们的号码，请参阅错误信息。

_____________

请参阅

环境

Err

Goto

On Error


GetPrivateProfileString$() 示例

这个示例把变量 artdir$ 设置为 WINWORD6.INI 的 [Microsoft Word] 节中的 PICTURE-PATH 设置项所指定的路径，如果设置存在，据此改变当前路径。最后两条指令显示“插入图片”对话框（“插入”菜单，“图片”命令）。

artdir$ = GetPrivateProfileString$("Microsoft Word", \

"PICTURE-PATH", "C:\WIN31\WINWORD6.INI")

If artdir$ <> "" Then ChDir artdir$

Dim dlg As InsertPicture

x = Dialog(dlg)

另一个示例请参阅SetPrivateProfileString 示例。


GetPrivateProfileString$()

示例

GetPrivateProfileString$(Section$, KeyName$, Filename$)

返回设置文件中的设置。设置文件是一个象 WIN.INI 这样的文本文件，您的宏可以用它来贮存和检索设置。例如，退出 Word 时您可以把活动文档名贮存起来，以便下次启动 Word 时可以自动重新打开该文档。

参数	解释
Section$	包含 KeyName$ 的设置文件中的节名。节名出现于相关设置项前的括号之间（请勿在 Section$ 中包含括号）。
KeyName$	要检索其设置的设置项。在设置文件中，设置项名后接等号（ = ）和设置。
Filename$	设置文件的路径和文件名。
如果指定的节、设置项或文件不存在，则 GetPrivateProfileString$() 返回空字符串。

_____________

请参阅

环境

GetProfileString$()

SetPrivateProfileString

SetProfileString


GetProfileString$()

GetProfileString$([Section$,] KeyName$)

返回 WIN.INI 中的设置，或者，如果 Section$ 是“Microsoft Word 2.0”、“Microsoft Word”、“MSWord Text Converters”或“MSWord Editable Sections”，则返回 WINWORD6.INI 中的设置。这些例外是为了与 Word 2.x 版保持兼容。.

参数	解释
Section$	包含 KeyName$ 的设置文件中的节名。节名出现于相关设置项前的括号之间（请勿在 Section$ 中包含括号）。如果省略，则假定为“Microsoft Word”。
KeyName$	要检索其设置的设置项。在设置文件中，设置项名后接等号（ = ）和设置。
如果指定的节或设置项不存在，则 GetProfileString$() 返回空字符串（""）。

_____________

请参阅

环境

GetPrivateProfileString$()

SetPrivateProfileString

SetProfileString


IsDocumentDirty() 示例

这个示例保存活动文档，如果有未保存的改变的话：

If IsDocumentDirty() = -1 Then FileSave


IsDocumentDirty()

示例

IsDocumentDirty()

返回一个值，该值表明活动文档自上次保存以来是否改变（即，该文档是否是“脏的”）。文档是不是脏的决定文档关闭时 Word 是否显示提示对改变进行保存。

返回值	解释
0（零）	如果自上次保存以来文档未曾改变
-1	如果自上次保存以来文档已改变
_____________

请参阅

环境

IsTemplateDirty()

SetDocumentDirty

SetTemplateDirty


IsExecuteOnly() 示例

这个示例判定共用宏“测试”是否为只执行的。如果不是，则 Word 在宏编辑窗口中显示该宏。

encrypted = IsExecuteOnly("NORMAL.DOT:Test")

If encrypted = 0 Then ToolsMacro .Name = "Test", .Show = 1, .Edit


IsExecuteOnly()

示例

IsExecuteOnly([Macro$])

如果指定宏可以编辑，返回 0 （零）；如果宏只可执行，返回 -1。不能编辑的宏有时称为 encrypted 。您可以用 MacroCopy 使宏成为只执行宏。

参数	解释
Macro$	宏名。请用下列用法： [TemplateName:]MacroName$ 如果省略，就假设为活动模板和活动宏。由 TemplateName 指定的模板必须在文档窗口中打开、附加于一打开文档或以共用模板载入；否则， IsExecuteOnly() 会产生错误。
_____________

请参阅

环境

IsMacro()

MacroCopy


IsTemplateDirty() 示例

这个示例保存活动模板，如果有未保存的改变的话：

If IsTemplateDirty() = -1 Then SaveTemplate


IsTemplateDirty()

示例

IsTemplateDirty()

返回一个值，该值表明活动模板自上次保存以来是否改变（即，该模板是否是“脏的”）。模板是不是脏的决定模板关闭时 Word 是否显示提示对改变进行保存。

返回值	解释
0（零）	如果自上次保存以来模板未曾改变
-1	如果自上次保存以来模板已改变
_____________

请参阅

环境

IsDocumentDirty

SaveTemplate

SetDocumentDirty()

SetTemplateDirty


ScreenRefresh

ScreenRefresh

更新监视器上的显示，以进行当前屏幕显示。您可以在 ScreenUpdating 指令关闭了屏幕更新之后，在宏中使用 ScreenRefresh 。 ScreenRefresh 只对一条指令打开屏幕更新，然后立即关闭。接下来的指令不能更新屏幕，直到用另一条 ScreenUpdating 指令将屏幕更新打开。您可以用 ScreenRefresh 和 ScreenUpdating 来创建一组屏幕“快照”。在较长的执行过程中，屏幕可以不时更新，以指明宏的进程。

有关示例，请参阅ScreenUpdating 示例.

_____________

请参阅

环境

ScreenUpdating


ScreenUpdating 示例

这个示例以三种方式安排窗口。正在安排窗口时用 ScreenUpdating 语句来关闭屏幕更新。窗口安排好以后， ScreenRefresh 语句显示窗口。请注意，指令 TileDocWindowsVertically 和 CascadeDocWindows 调用使窗口层叠或平铺的子程序（此处未写出）。

ScreenUpdating 0

TileDocWindowsVertically

ScreenRefresh

MsgBox "Windows are tiled vertically."

CascadeDocWindows

ScreenRefresh

MsgBox "Windows are cascaded."

WindowArrangeAll

ScreenUpdating 1

MsgBox "Windows are tiled horizontally."


ScreenUpdating, ScreenUpdating()

示例

ScreenUpdating [On]

ScreenUpdating()

ScreenUpdating 语句在运行宏时控制监视器上的大部分变化。当屏幕更新关闭时， Word 仍然允许宏用状态栏提示、输入框、对话框或信息框来显示或检索信息。您可以通过阻止屏幕更新来提高某些宏的运行速度。当宏结束运行或因错误而停止时，屏幕更新被恢复。

参数	解释
On	指定是否显示屏幕更新： 0 运行宏时屏幕不更新。 1 宏运行时屏幕正常更新。 省略    切换屏幕更新
ScreenUpdating() 函数返回下列值。

返回值	解释
0（零）	关闭屏幕更新。
1	打开屏幕更新。
_____________

请参阅

环境

ScreenRefresh


SelInfo() 示例

这个示例判定当前选定内容是否延伸过分页符，不管是手动还是自动分页符。请注意， SelInfo(3) 一次是返回选定内容结尾的页码，另一次是返回选定内容开始的页码。然后宏比较这两个值，以判定选定内容中有多少个分页符。

ToolsRepaginate

EditBookmark .Name = "Tmp"

endPage = SelInfo(3)

SelType 1

startPage = SelInfo(3)

EditGoTo .Destination = "Tmp"

numBreaks = endPage - startPage

If numBreaks = 1 Then

MsgBox "Selection extends over one page break."

ElseIf numBreaks > 1 Then

MsgBox "Selection extends over" + Str$(numBreaks) + \

" page breaks."

End If

EditBookmark .Name = "Tmp", .Delete

下面的示例把视图倍数增加 10% ：

n = SelInfo(19)

If n < 190 Then

ViewZoom .ZoomPercent = n + 10

ElseIf n = 200 Then

MsgBox "Already zoomed to maximum."

Else

ViewZoom .ZoomPercent = 200

End If


SelInfo()

示例

SelInfo(Type)

返回关于选定内容的 36 类信息中的一类，其中 Type 是下表说明的值中的一个。在下列说明中，选定内容活动端是指您按下 SHIFT+ 箭头键时移动的那一端。

Type	解释
1	包含选定内容活动端的页码。如果您设置了开始页与或进行了其他手动调整，就返回调整过的页码（不同于 SelInfo(3)）。 如果选定内容是标准视图中的页眉或页脚窗格，返回 -1。如果选定内容在脚注或批注窗格中，返回选定内容中的第一个脚注或批注。
2	包含选定内容活动端的节号。
3	包含选定内容活动端的页码，从文档开始计算。任何手动调整都被忽略不计（不同于 SelInfo(1)）。
4	文档中的页数。
类型 5 仅在页面视图中在效。如果您在“选项”对话框（“工具”菜单）中选定了“常规”选项卡的“后台重新分页”复选框，并且清除了“选项”对话框（“工具”菜单）中的“视图”选项卡中的“草稿字体”复选框，则类型 6 在页面视图或标准视图中有效。

Type	解释
5	选定内容的水平位置；选定内容左边缘和页面左边缘的距离，以 twip 度量（20 twip = 1 磅， 72 磅 = 1 英寸）。如果选定内容不可见，则返回 -1 。
6	选定内容的垂直位置；选定内容顶端边缘和页面顶端边缘的距离，以 twip 度量（20 twip = 1 磅，72 磅 = 1 英寸）。如果选定内容不可见，则返回 -1 。.
类型 7 和 8 在页面视图最常用。在页面视图中，通过选定“选项”对话框（“工具”菜单）的“视图”选项卡中的“正文边框”复选框，您可以显示正文边框。正文边框包括表格单元格、图文框、页面边缘、文本栏等等。有关正文边框的完整列表，请参阅 NextObject。

Type	解释
7	选定内容的水平位置，是相对于包围它的最接近的正文边框左边缘而言的位置，以 twip 度量（20 twip = 1 磅， 72 磅 = 1 英寸）。如果选定内容不可见，则返回 -1 。
8	选定内容的垂直位置，是相对于包围它的最接近的正文边框上边缘而言的位置，以 twip 度量（20 twip = 1 磅， 72 磅 = 1 英寸）。对判断插入点在图文框或表格单元格中的位置特别有用。有关正文边框的完整列表，请参阅 NextObject 。如果选定内容不可见，则返回 -1 。
9	选定内容中第一个字符的字符位置。如果不存在选定内容，则为插入点右侧字符的字符位置（与状态栏中“列”后显示的字符列号相同）。
10	选定内容第一个字符的行号。如果清除了“后台重新分页”或选定了“草稿字体”，则返回 -1 。
11	如果选定内容为整个图文框，则返回 -1。
12	如果选定内容在表格内，则返回 -1。
类型 13 到 18 只应用于选定内容在表格内的情况。如果选定内容不在表格内，则函数返回 -1。

Type	解释
13	包含选定内容开头的行号。
14	包含选定内容结尾的行号。
15	表格中的行数。
16	包含选定内容开头的表格列号。
17	包含选定内容结尾的表格列号。
18	选定内容中任何行的最大列数。
类型 19 到 36 返回其他信息。

参数	解释
19	由 ViewZoom 设置的当前放大百分比。
20	当前选定内容的模式：对标准选定内容返回 0 （零），对扩充选定内容返回 1 ，对列选定内容返回 2 。对应于状态栏内的写有“扩充”或“列”的方框。
21	如果 Caps Lock 有效，则返回 -1 。
22	如果 Num Lock 有效，则返回 -1 。
23	如果 Word 处于改写模式，则返回 -1 。
24	如果修订标记有效，则返回 -1 。
25	如果选定内容在脚注或尾注窗格，或者页面视图的脚注或尾注中，，则返回 -1 。也请参阅值 35 和 36 。
26	如果选定内容在批注窗格中，则返回 -1 。
27	如果选定内容在宏编辑窗口中，则返回 -1 。
28	如果选定内容在页眉或页脚，或者页面视图的页眉或页脚中，则返回 -1 。
29	选定内容开始处的书签编号；如果没有书签或书签无效，则为 0 （零）。该编号对应于书签在文档中的位置——对第一个书签为 1 ，对第二个书签为 2 ，依此类推。
30	选定内容开头前或相同位置最后一个书签的编号。如果没有书签或书签无效，则为 0 （零）。
31	如果插入点在表格中的行结束标记处，则返回 -1。
32	根据选定内容与脚注、尾注或批注引用的关系，返回下列某一值： -1 如果选定内容包括但不限于脚注、尾注或批注引用 0 如果选定内容不在脚注、尾注或批注引用中 1 如果选定内容在脚注引用中 2 如果选定内容在尾注引用中 3 如果选定内容在批注引用中
33	包含选定内容的页眉或页脚的类型： -1 无（选定内容不在页眉或页脚中） 0 偶数页页眉 1 奇数页页眉（或者就是页眉，如果没有偶数和奇数页页眉的话） 2 偶数页页脚 3 奇数页页脚（或者就是页脚，如果没有偶数和奇数页页脚的话） 4 首页页眉 5 首页页脚
34	如果活动文档为主控文档（即，它至少包含一个子文档），则返回 -1。
35	如果选定内容在脚注窗格内或页面视图的脚注内，则返回 -1。
36	同 35 ，但是尾注。
_____________

请参阅

环境

Selection$()

SelType


SelType 示例

这个示例选定下一次出现的单词“ background ”，然后取消选定内容，将插入点留在该词的开始处：

EditFind .Find = "background", .Direction = 0

If EditFindFound() Then SelType 1


SelType, SelType()

示例

SelType Type

SelType()

SelType 语句指定插入点或选定文本在您的文档中以何种方式标明。例如，您可以指定选定文本加下划线显示，而不是反显示（这在某些显示模式下可能更适用）。

SelType 更常用于改变当前选定内容开始处插入点的位置。由于这一结果， SelType 比 CharLeft 要好，因为没有当前选定内容时插入点不往左移动。

参数	解释
Type	突出显示的类型： 1 实线插入点（默认） 2 实线选定内容（默认） 4 虚线选定内容或插入点（无论哪个是当前者） 请注意， SelType() 函数不返回这个值，因为 5 和 6 提供的信息比指定的更明确。 5 虚线选定内容（在 CopyText 和 MoveText 模式下是可见的） 6 虚线选定内容（在 CopyText 和 MoveText 模式下是可见的）
SelType() 函数返回对应于突出显示类型的数字。

_____________

请参阅

环境

Selection$()

SelInfo()


SetDocumentDirty 示例

这个示例假设邮件合并主文档是活动的。这些指令打印套用信函到一个文档中，然后使该文档为干净的（即无修改）。关闭文档时， Word 不显示提示，也不保存文档中的变化。

MailMergeToDoc

SetDocumentDirty 0


SetDocumentDirty

示例

SetDocumentDirty [Dirty]

控制 Word 是否将文档识别为“脏的”——即，自上次保存以来文档中的改变是否已保存。关闭脏文档时， Word 会显示提示，询问是否应该保存。

如果您改变了文档，然后把 Dirty 置为 0 （零），则 Word 把该文档识别为未改变，即“干净的”。当您关闭文档时， Word 既不显示提示，也不保存文档的改变。

参数	解释
Dirty	指定是否使活动文档为脏的： 0 （零）    文档被视为干净的。 1 或省略    文档被识别为脏的。
_____________

请参阅

环境

IsDocumentDirty()

IsTemplateDirty()

SetTemplateDirty


SetPrivateProfileString 示例

这对自动宏自动打开您上次退出 Word 时活动的文档。

下面是一个 AutoExit 宏：

Sub MAIN

a$ = FileName$()

check = SetPrivateProfileString("Word Info", "LastActive", a$, \

"MY.INI")

If check = 0 Then MsgBox "Could not set INI option."

End Sub

下面是一个 AutoExec 宏：

Sub MAIN

name$ = GetPrivateProfileString$("Word Info", "LastActive", \

"MY.INI")

FileOpen .Name = name$

End Sub

有关 AutoExit 和 AutoExec 这样的自动宏的内容，请参阅自动宏。


SetPrivateProfileString, SetPrivateProfileString()

示例

SetPrivateProfileString Section$, KeyName$, Setting$, Filename$

SetPrivateProfileString(Section$, KeyName$, Setting$, Filename$)

定义或重新定义设置文件中的设置。设置文件是类似 WIN.INI 这样的文本文件，您的宏可以用它来贮存和检索设置。例如，退出 Word 时您可以把活动文档名贮存起来，以便下次启动 Word 时可以自动重新打开该文档。

参数	解释
Section$	包含您想设置的选项的的设置文件中的节名。节名出现于相关设置项前的括号之间（请勿在 Section$ 中包含括号）。
KeyName$	要设置的设置项。在设置文件中，设置项名后接等号（ = ）和设置。
Setting$	新的设置。
Filename$	设置文件的文件名。如果没有指定路径，就假定为 Windows 目录。如果文件不存在， Word 就创建之。
SetPrivateProfileString() 函数与语句功能相同，还返回一个表明操作是否成功的值： -1 意味着设置项已设置， 0 （零）说明设置项未设置。如果设置文件是只读文件，则不能设置设置项。

_____________

请参阅

环境

GetPrivateProfileString$()

GetProfileString$()

SetProfileString

ToolsAdvancedSettings


SetProfileString 示例

这个示例用 GetSystemInfo$() 来判断 WIN.INI 的 [intl] 节中的“sCountry”设置； SetProfileString 将此设置项的设置改为“Sweden”，如果它还没有这一设置的话。

If GetSystemInfo$(29) <> "Sweden" Then

SetProfileString "intl", "sCountry", "Sweden"

End If


SetProfileString

示例

SetProfileString Section$, KeyName$, Setting$

创建一个设置项并为之定义设置，或者给 WIN.INI 中已存在的设置项重新定义设置。如果 Section$ 是“Microsoft Word 2.0”、“Microsoft Word”、“MSWord Text Converters”或“MSWord Editable Sections”，SetProfileString 就设置 WINWORD6.INI 中的设置项。这些例外是为保持与 Word 2.x 版兼容而保留的。

参数	解释
Section$	WIN.INI 中包含要设置的设置项的节名。这是一个出现于相关设置项前的括号之间（请勿在 Section$ 中包含括号）。
KeyName$	要设置的设置项。在 WIN.INI 中，设置项名后接等号（ = ）和设置。
Setting$	新设置。
_____________

请参阅

环境

GetPrivateProfileString$()

GetProfileString$()

SetPrivateProfileString

ToolsAdvancedSettings


SetTemplateDirty 示例

这个示例对活动模板的键盘分配进行暂时的改变（把“SmallCaps”命令赋给 CTRL+SHIFT+C），然后使模板为干净的。当模板关闭时， Word 不显示提示，也不保存改变。

ToolsCustomizeKeyboard .KeyCode = 835, .Context = 0, \

.Name = "SmallCaps", .Add

SetTemplateDirty 0


SetTemplateDirty

示例

SetTemplateDirty [Dirty]

控制 Word 是否将模板识别为“脏的”——即，自上次保存以来模板中的改变是否已保存。关闭“脏”模板时， Word 会显示提示，询问是否应该保存。

如果您改变以模板，然后把 Dirty 置为 0 （零），则 Word 把该模板识别为未改变，即“干净的”。当您关闭模板时， Word 既不显示提示，也不保存模板的改变。

参数	解释
Dirty	指定是否使活动模板为脏的： 0 （零）    模板被视为干净的。 1 或省略    T模板被识别为脏的。
_____________

请参阅

环境

IsDocumentDirty()

IsTemplateDirty()

SetDocumentDirty


WaitCursor 示例

这个示例在For...Next 循环总迭代的前一半中不显示砂漏指针，然后在后一半中显示砂漏指针：

WaitCursor 0

For i = 1 To 1000

If i = 500 Then WaitCursor 1

Next i


WaitCursor

示例

WaitCursor Wait

将鼠标指针从当前指针改为砂漏，或者相反。宏结束运行时钯指针的控制项恢复到 Word 。指定要显示的鼠标指针：

参数	解释
Wait	Specifies the mouse pointer to display: 0 当前指针 1 砂漏指针


WinToDOS$() 示例

这个示例打开一个基于 Windows 的应用程序创建的顺序文件，把它的每一行转换为 OEM 字符集，然后把结果放在新的顺序文件中：

ChDir "C:\TMP"

Open "WINDOWS.TXT" For Input As #1

Open "DOS.TXT" For Output As #2

While Not Eof(1)

Line Input #1, temp$

Print #2, WinToDOS$(temp$)

Wend

Close


WinToDOS$()

示例

WinToDOS$(StringToTranslate$)

把从 Windows 字符集得到的字符串转换成原始设备制造商（ OEM ）字符集。

OEM 字符集的典型应用是 MS-DOS 应用程序。从 32 到 127 的字符在 OEM 和Windows 字符集中通常是相同的。 OEM 字符集中的其他字符（从 0 （零）到 31 和从 128 到 255 ）一般与 Windows 字符不同。

_____________

请参阅

环境

DOSToWin$()


Key Examples in WordBasic Help
WordBasic 帮助中的主要示例

如何得到目录中的文件列表

您可以使用 Files$() 函数来返回目录中文件的列表。技巧是首先用 Files$() 指明要返回的文件的列表，然后在一个循环中使用 Files$() 来返回目录中余下的文件。

示例

如何显示自定义对话框

您可以用 Dialog 语句或 Dialog() 函数来显示一个自定义对话框。一般用 Dialog() 函数更好，因为它返回所选命令按钮的值。如果您使用 Dialog 语句，那么如果用户在对话框中选择“取消”按钮时，就会出错（可用 On Error 指令截获这个错误）。在显示一个自定义对话框之前，必须用一条 Begin Dialog...End Dialog 语句定义一个对话框，用一条 Dim 语句来创建一个对话记录。

示例

如何显示 Word 对话框

您可以用 Dialog 语句或 Dialog() 函数来显示一个 Word 对话框。如果您使用 Dialog 语句，那么如果用户在对话框中选择“取消”按钮时，就会出错（可用 On Error 指令截获这个错误）。在显示一个 Word 对话框之前，必须用一条 Dim 语句来创建一个对话记录，用 GetCurValues 语句把当前对话框的值放入对话记录。

示例

如何跟踪 Word 对话框的值

您可以通过用 Dim 语句为对话框定义对话记录，并用 GetCurValues 语句把对话框当前值放入对话记录，以跟踪一个或多个 Word 对话框设置的值。然后用语法 DialogRecord.ArgumentName 来跟踪对话框值，其中 ArgumentName 是 WordBasic 中对应于对话框的语句参数名。

示例

如何得到自动图文集项、书签或可用字体的列表

许多以“Count”开头的 WordBasic 函数返回存储于活动文档或模板中的不同项的数目。比如，CountAutoTextEntries() 函数返回模板中自动图文集项的数目；CountBookMarks() 函数返回活动文档中书签的数目；CountFonts() 返回活动打印机中可用字体的数目。您可以把这些函数与其他函数如 AutoTextName$()、BookmarkName$()、Font$() 等联合使用，返回自动图文集项、书签或字体的列表。

自动图文集项示例

书签示例

字体示例

如何在文档的一部分中操作

您可以使用书签和 CmpBookmarks() 函数，将一个宏的操作仅限于一个文档的特定部分。

示例

如何在窗口间切换

对一个宏来说，在活动窗口间切换常常是很有用的。您可以用 Activate 和 WindowList 语句来激活一个文档窗口或宏编辑窗口。

示例

如何建立“永久”变量

您可以使用 SetPrivateProfileString 和 SetDocumentVar 语句来建立在一个宏结束运行以后仍然存在的变量。SetDocumentVar 语句在活动文档中建立一个文档变量。SetPrivateProfileString 语句在保存于 Windows 目录的设置文件中建立一个变量设置。

文档变量示例

设置文件示例

如何在文档中插入文本

您可以使用 Insert 语句将文本插入到文档中。Insert 语句可以象用户用键盘一样，在文档中插入任何字符，包括非打印字符如制表符。

示例

如何跟踪文档中的文本

一般情况下，您可以使用 Selection$() 函数从文档中将文本返回到宏。Selection$() 函数返回当前选中内容的文本。您也可以使用 GetBookmark$() 函数来返回在活动文档中用书签标记的文本。

Selection$() 示例

GetBookmark$() 示例


DoFieldClick

DoFieldClick

把插入点移到由选中的 GOTOBUTTON 域指明的位置，或者运行由选中的 MACROBUTTON 域指明的宏（与在域内容中双击左鼠标键，或按 ALT+SHIFT+F9 效果相同）。

有关详细内容，请参阅GOTOBUTTON 域和 MACROBUTTON 域。


GetFieldData$()

GetFieldData$()

当插入点位于 ADDIN 域内时，查找保存于该域内部的文本数据。保存于 ADDIN 域内的数据是不可见的，即使在域代码显示出来时也是如此。如果有选定内容，则它必须在 ADDIN 域处开始，否则出错。

_____________

请参阅

域

PutFieldData


InsertField Examples

本示例插入一个 AUTHOR 域：

InsertField .Field = "AUTHOR"

下面的示例在一个 COMMENTS 域中嵌套一个 FILLIN 域。下面的指令表示了全部域代码，插入一个 COMMENTS 域，然后插入 FILLIN 域。指令 SendKeys "{tab}{enter}" 在填充对话框显示出来时，自动选择“确定”按扭。

ToolsOptionsView .FieldCodes = 1

InsertField .Field = "COMMENTS"

CharLeft

SendKeys "{tab}{enter}"

InsertField .Field = "FILLIN " + Chr$(34) + \

"Type your comment" + Chr$(34)


InsertField

示例

InsertField .Field = text

在插入点插入指定的域。

参数	解释
.Field	要插入的域类型和指令。有关具体某个域的内容，包括语法和示例，可在“域”对话框（“插入”菜单）中选择该域名，然后按 F1，或者参阅Field Types中的对应项。
对 .Field 不要加入域字符 ({}) ，但必须遵循域代码的其它语法规则。要在域代码中插入引号，请使用 Chr$(34)。

_____________

请参阅

域

InsertFieldChars


InsertFieldChars

InsertFieldChars

在插入点插入域字符 ({}) ，然后把插入点放置在域字符之间。

_____________

请参阅

域

InsertField


InsertPageField

InsertPageField

在插入点插入一个不含任何域指令的 PAGE 域。

_____________

请参阅

域

InsertDateField

InsertField

InsertPageNumbers

InsertTimeField


LockFields 示例

本示例插入一个 DATE 域，然后立即锁定该域。当您希望 Word 插入一个日期，而又不希望在每次打印该文档时更新这个日期的时候，这个示例会很有用。

InsertDateField

PrevField

LockFields


LockFields

示例

LockFields

防止选定内容中的域被更新。

_____________

请参阅

域

UnlinkFields

UnlockFields

UpdateFields


PutFieldData

PutFieldData FieldData$

当插入点在一个 ADDIN 域中时，把域数据 FieldData$ 所指明的文本数据保存在该域内。数据保存在该域内部，是不可见的，即使在显示域代码时也是如此。如果有选定内容，则该选定内容必须在 ADDIN 域处开始，否则出错。

_____________

请参阅

域

GetFieldData$()


ToggleFieldDisplay 示例

本示例使用 ViewFieldCodes 语句来把所有域的显示状态改为显示该域的内容，然后把当前段落（通过预定义的书签 "\Para"指明）的域的显示状态改为显示域代码。

ViewFieldCodes 0

EditGoTo .Destination = "\Para"

ToggleFieldDisplay


ToggleFieldDisplay

示例

ToggleFieldDisplay

在选定内容中对域的显示状态：域代码和域内容，进行切换。如果选定内容中一个域也不没有，则出错。在页面视图中，这个规则例外，这时 ToggleFieldDisplay 将切换所有的域的显示状态。

_____________

请参阅

域

ViewFieldCodes


ToolsManageFields 示例

本示例把“Name1”域更名为“FirstName”。

ToolsManageFields .FieldName = "Name1", .NewName = "FirstName", \

.Rename


ToolsManageFields

示例

ToolsManageFields [.FieldName = text] [, .Add] [, .Remove] [, .Rename] [, .NewName = text]

对邮件合并数据源或域名源中的域进行添加，撤消或更名。如果活动文档不含有一个在其第一行中含有该指定域的表格，则出错。

参数	解释
.FieldName	要添加，撤消或更名的域名
.Add	添加指定的域名到一个新的表格列
.Remove	撤消指定的域名和相关的表格列
.Rename	对指定的域名进行更名
.NewName	给该域的新名字，与 .Rename 联用。
_____________

请参阅

域

MailMergeEditDataSource


UnlinkFields 示例

本示例解除活动文档中所有域的链接。首先，Word 显示一个消息框，在解除链接前，提供用户更新所有域的选项，然后依据用户的不同选择，Word 执行相应的操作。

answer = MsgBox("Update all fields before unlinking?", \

"Unlink All Fields", 35)

On Error Goto trap

Select Case answer

Case -1	'Yes

EditSelectAll

UpdateFields

UnlinkFields

Case 0	'No

EditSelectAll

UnlinkFields

Case 1	'Cancel

Goto bye

trap:

If Err = 102 Then MsgBox "No fields to unlink." Else Error Err

bye:

End Select


UnlinkFields

示例

UnlinkFields

用最新的内容替换选中的域。当您解除一个域的链接时，它将转换为通常的文本或图形，并且不再自动更新。注意有一些域不能解除链接——比如，XE（“索引项”）域就不显示任何内容。如果选定内容不含可解除链接的域，则出错。

_____________

请参阅

域

LockFields

UnlockFields

UpdateFields


UnlockFields

UnlockFields

允许选中的用 LockFields 锁定的域被更新。

_____________

请参阅

域

LockFields

UnlinkFields

UpdateFields


UpdateFields

UpdateFields

更新选中的域。

_____________

请参阅

域

LockFields

UnlinkFields

UnlockFields


UpdateSource

UpdateSource

把对一个  INCLUDETEXT 域内容所做的修改存回源文档。该源文档必须设置成 Word 文档的格式。

_____________

请参阅

域

UpdateFields


Close 示例

本示例打开一个文件，在 Normal 模板中和任何已装入的共用模板中插入一个自动更正词条列表，然后关闭该文件：

Open "AUTOTEXT.TXT" For Output As #1

For count = 1 To CountAutoTextEntries(0)

Print #1, AutoTextName$(count)

Next count

Close #1


Close

示例

Close [[#]FileNumber]

关闭一已打开的顺序文件。参数 FileNumber 是打开文件时在Open 指令中指定的数，打开的文件可用作输入，输出，也能用作添加。如果省略了 FileNumber ，则关闭所有用 Open 指令打开的文件。

在文档窗口中并不显示用 Open 打开并用 Close 关闭的顺序文件。尽管您可以用 Open 来打开任意文件，但是 Open 与 Close 指令一般用于对文本文件的操作。Close 指令在关闭文件时并不显示提示信息。若想了解更多关于顺序文件的信息，请参阅Microsoft Word 开发工具中的第9章“More WordBasic Techniques”。

_____________

请参阅

基本文件输入/输出

Eof()

Input

Input$()

Line Input

Lof()

Open

Print

Read

Seek

Write


Eof()

Eof([#]FileNumber)

决定是否已到达一个打开的顺序文件的结尾。FileNumber 是在为输入而用 Open 指令打开文件时指定的数值。若想了解多关于顺序文件的信息，请参阅Microsoft Word 开发工具中的第9章“More WordBasic Techniques”。

您不能用该函数检查在一个文档窗口中打开的Word文档是否到达文件结尾。若要检查一个Word文档是否到达文件结尾，您可以使用用CmpBookmarks() 预定义的书签 "\EndOfDoc"，有关预定义书签的详细内容，请参阅预定义书签。

Eof() 函数返回以下值：

值	说明
-1	由 FileNumber 所指定文件已到达文件结尾。
0 (零)	还未到达文件结尾。
有关示例，请参阅Read Example.

_____________

请参阅

基本文件输入/输出

Close

Input

Input$()

Line Input

Lof()

Open

Print

Read

Seek

Write


Input 示例

本示例打开一个文件列表，并将它们保存为RTF格式。假定文件FILES.TXT是一文本文件，其中每一段落包含两个串值：要打开的文件名和要存储的文件名。该指令依次打开每一个文件并以RTF格式将其保存。

Open "C:\DOCS\FILES.TXT" For Input As #1

While Not Eof(#1)

Input #1, docname$, rtfname$

FileOpen "C:\DOCS\" + docname$

FileSaveAs .Name =  "C:\RTF\" + rtfname$, .Format = 6

FileClose 2

Wend

Close #1

下一示例在状态栏中提示“RTFfilename？”并以用户键入的文本来定义变量 rtfname$：

Input "RTF filename", rtfname$


Input

示例

Input #FileNumber, Variable1[$] [, Variable2[$]] [, Variable3[$]] [, ...]

Input [Prompt$,] Variable1[$] [, Variable2[$]] [, Variable3[$]] [, ...]

从一顺序文件中读入串值或数字值，并将这些值赋给相应变量，该顺序文件通常包含由 Print 语句添加的数据。FileNumber 是在为输入而打开文件时 Open 指令中指定的数。有关顺序文件的详细内容，请参阅 Microsoft Word 开发工具中的第9章“More WordBasic Techniques”。

Input 与 Read 类似的地方是两者都从顺序文件中读入以逗号分隔的值，但与 Read 不同的地方是，Input 并不从串值中去掉引号。可以接受多达65,280个字符的字符串。太长的串将被截断。有关详细内容，请参阅Read.。

如果省略 FileNumber，则将在状态栏中提示用户一个问号(？)，让用户键入一个或多个值，这些值用逗号隔开。用户按 ENTER 键结束键盘输入。如果指定了 Prompt$，则在串后跟一问号。

_____________

请参阅

基本文件输入/输出

Close

Eof()

Input$()

InputBox$()

Line Input

Lof()

Open

Print

Read

Seek

Write


Input$() 示例

本示例用文本文件 INFO.TXT 中的前10个字符定义变量 filecode$:

Open "INFO.TXT" For Input As #1

filecode$ = Input$(10, #1)

Close #1


Input$()

示例

Input$(NumChars, [#]FileNumber)

从一个打开的顺序文件中读入 NumChars 字符（最多65,280个）。FileNumber 是在为输入打开文件时在 Open 指令中指定的数。有关顺序文件的详细内容，请参阅Microsoft Word 开发工具中的第9章“More WordBasic Techniques”。

_____________

请参阅

基本文件输入/输出

Close

Eof()

Input

InputBox$()

Line Input

Lof()

Open

Print

Read

Seek

Write


Line Input 示例

本示例从文件号为 #1 的文件中读入一行赋给 sample$:

Line Input #1, sample$

下一示例在状态栏中显示默认的提示(一个问号)。变量 key$ 定义为在问号后输入的文本。

Line Input key$

下一示例在状态栏中提示“Search text:”。变量 target$ 定义为提示符后输入的文本。

Line Input "Search text: ", target$


Line Input

示例

Line Input #FileNumber, Variable$

Line Input [Prompt$,] Variable$

从一打开的顺序文件中读入一整行，并将其放入一字符串变量。在顺序文件中，一行以回车符（ANSI码13）和换行符（ANSI码10）结束。FileNumber 是在为输入而打开文件时在 Open 指令中指定的数。有关顺序文件的详细内容，请参阅 Microsoft Word 开发工具中的第9章“More WordBasic Techniques”。

Line Input 类似于 Input 和 Read 和语句，但 Line Input 在逗号处并不将一行分成多个值。它将一个整行放入单个的串变量。Line Input 可接受多达65,280个字符的行。太长的串将被截断。与 Read 不同的是，它只取那些用引号括住的文本。Line Input 并不对引号和其它字符作区分。

如果省略 #FileNumber，则将在状态栏中提示用户一个问号(？)，让用户键入一个值。用户按 ENTER 键结束键盘输入。如果指定了 Prompt$，将不显示问号。

_____________

请参阅

基本文件输入/输出

Close

Eof()

Input

Input$()

Lof()

Open

Print

Read

Seek

Write


Lof() 示例

本示例用 Open 打开 MYDATA.TXT 为顺序输入作准备，然后在状态栏中显示文件 MYDATA.TXT 的大小：

Open "MYDATA.TXT" For Input As #1

Size = Lof(1)

Print Size; " bytes"

Close #1


Lof()

示例

Lof([#]FileNumber)

返回以字节表示的一个打开的顺序文件的长度。FileNumber 是在为输入而打开文件时 Open 指令指定的数。有关顺序文件的详细内容，请参阅 Microsoft Word 开发工具中的第9章“More WordBasic Techniques”。

_____________

请参阅

基本文件输入/输出

Close

Eof()

Input

Input$()

Line Input

Open

Print

Read

Seek

Write


Open 示例

本宏为每一个列在文本文件 C:\DOCS\CONVERT.TXT中的每一文档保存一个RTF格式的备份。Open 指令打开 CONVERT.TXT 文件作为顺序文件输入。位于 While...Wend 循环中的语句对每一个文档运行一次，将列在CONVERT.TXT文件中的下一个文件名分配给 curdoc$，打开该文档，保存一个RTF备份，然后关闭该文档。

Sub MAIN

Open "C:\DOCS\CONVERT.TXT" For Input As #1

While Not Eof(1)

Line Input #1, curdoc$

FileOpen .Name = "C:\DOCS\" + curdoc$

FileSaveAs .Name = "C:\DOCS\" + curdoc$, .Format = 6

FileClose 2

Wend

Close #1

End Sub


Open

示例

Open Name$ For Mode$ As [#]FileNumber

打开一个顺序文件作为文本的输入和输出。您可以用顺序文件为宏变量提供数值或保存由宏产生的数据。

顺序文件（用 Open 打开并 Close 用关闭）并不显示在文档窗口之中。尽管您可以用 Open 打开任何文件，但是 Open 和 Close 是用在文本文件上的。如果您想了解更多的有关顺序文件的信息，请参阅 Microsoft Word 开发工具中的第9章“More WordBasic Techniques”。

参数	说明
Name$	要打开的文件名
Mode$	指定以何种方式打开文件： Input    打开文本文件，这样可以从这些文件中读出宏需要的数据。当您为输入打开了一个文件时，您就可以用 Read、Input、Line Input和 Input$() 指令从该文件中读出。如果 Name$ 不存在，那么将产生错误。 Output    打开文本文件，这样由宏产生的数据就可以写进该文件之中。当您为输出打开一个文件时，您就可以用 Write 和 Print i指令往该文件中写了。如果 Name$ 不存在，那么Word会创建它。如果 Name$ 已经存在，那么Word会将其内容删除。 Append    打开文本文件，这样由宏产生的数据可以写进该文件之中。当您以追加方式打开了一个文件，您就可以用 Write 和 Print i指令向文件中写了。文件中已有的内容将保留，您写进去的信息添加在文件尾部。如果 Name$ 不存在那么Word会创建它。
FileNumber	分配给该文件的一个编号，从1到4。
_____________

请参阅

基本文件输入/输出

Close

Eof()

Input

Input$()

Line Input

Lof()

Print

Read

Seek

Write


Print 示例

本示例要状态栏中显示下列句子：“March sales were 2500 and May sales were 3600 for a total of 6100”。

mar = 2500

may = 3600

Print "March sales were"; mar ; " and May sales were" \

; may ; " for a total of" ; mar + may ; "."

以下示例在状态栏中显示这样一行信息：“Juan Garcia 32 01234”。

name$ = "Juan Garcia"

age = 32

employeeNum = 01234

Print name$; age; employeeNum

下示例建立一个顺序文件用作邮件合并操作的纯文本数据源。第一条 Print 指令插入栏标题；第二条添加一个数据记录。一条给出的 Print 指令中的项将被插入到一个单个段落，并且由制表符分隔。请注意WordBasic中没有可以读制表符分界数据的顺序文件访问指令。如果您想看到结果，那么您必须象其它Word文档一样打开该顺序文件。

Open "C:\TMP\DATA.TXT" For Output As #1

Print #1, "Name", "Address", "Occupation"

Print #1, "Juan Garcia", "123 Main St", "Accountant"

Close #1


Print

示例

Print [#FileNumber,] Expression1[$] [; or , Expression2[$] [; or , ...]

在状态栏中显示指定表达式，或者如果您指定了 FileNumber，那么将表达式送到与该编号相关联的顺序文件之中。与 MsgBox 不同，Print 可以接收字符串，字符串变量，数字和数字变量，并且允许您将这些类型混合使用，而MshBox只接收字符串。

您可以用加号(+)将字符串和字符串变量连接起来；您也可以用分号(；)和逗号(，)将字符串和数字连接起来。一个逗号在数值之间插入一个制表符。

注释

Print 可以在正数前边自动添加一个空格；没有必要在字符串中加入一个额外的空格来完成这件事。Print 不会在负数前边添加空格。

象 Write 一样，Print 语名也可以将表达式送到一个顺序文件中。但是，表达式在文件中格式不同，就象下表中的示例一样。注意 Print 用一个制表符分隔表达式。

WordBasic 指令	在顺序文件 #1 中建立的行
Print #1, "Phil", "Teacher"	Phil    Teacher
Write #1, "Phil", "Teacher"	"Phil","Teacher"

有关顺序文件的详细内容，请参阅 Microsoft Word 开发工具中的第9章“More WordBasic Techniques”。

_____________

请参阅

基本文件输入/输出

Close

Eof()

Input

Input$()

Line Input

Lof()

MsgBox

Open

Read

Seek

Write


Read 示例

本示例按顺序读出顺序文件中的每一段落，并且将 name$ 定义为第一项，age 定义为第二项。对于每一个段落，这些数值都会显示在一个信息框中。

Open "C:\TMP\DATA.TXT" For Input As #1

While Not Eof(1)

Read #1, name$, age

MsgBox name$ + " is" + Str$(age) + " years old."

Wend

Close #1


Read

示例

Read #FileNumber, Variable1[$] [, Variable2[$]] [, Variable3[$]] [, ...]

从一个打开的顺序文件中取得字符串和数字值，这种文件中最典型的数据是由 Write 语句添加的数据，取得数据之后将这些数据分配绘变量。FileNumber 参数是一个由负责为输出打开文件的 Open 指令指定的编号。。有关顺序文件的详细内容，请参阅 Microsoft Word 开发工具中的第9章“More WordBasic Techniques”。

Read 与 Input 很相似，但是它要将字符串中的引号删除。例如，一个由 Write 指令创建的纯文本段落可能有如下形式：

"Michelle Levine", 26,"Dancer"

然而 Input 将“Michelle Levine”当作第一个值，而 Read 只把引号内的文本 Michelle Levine 当作第一个值。

_____________

请参阅

基本文件输入/输出

Close

Eof()

Input

Input$()

Line Input

Lof()

Open

Print

Seek

Write


Seek 示例

本示例在文件 DATA.TXT 中查找由字母“P”开头的第一行。然后显示一个消息框，其中显示该项及其在文件中的字符位置：

Open "C:\TMP\DATA.TXT" For Input As #1

Input #1, name$

While Left$(name$, 1) <> "P"

If Eof(1) Then

MsgBox "No P names in the file."

Goto finish

End If

n = Seek(#1)

Input #1, name$

Wend

MsgBox "First P name is " + name$ + " at position" + Str$(n)

finish:

Close #1


Seek, Seek()

示例

Seek [#]FileNumber, Count

Seek([#]FileNumber)

Seek 语句控制数据从一个为输入打开的顺序文件的何处取得，或者数据将插入到一个为输出打开的文件的何处。有关顺序文件的详细内容，请参阅 Microsoft Word 开发工具中的第9章“More WordBasic Techniques”。

参数	说明
FileNumber	在 Open 指令中指定的编号，该指令为输入，输出或追加打开文件。
Count	数据读出或插入的字符位置。注意行间隔和其它分隔符，例如，逗号，当作字符计算。
Seek() 函数返回顺序文件中的当前字符位置。您可以在关闭一个顺序文件之前用 Seek() 函数保存当前字符位置，并且当您重新打开该文件时用 Seek 语句返回那个位置。

_____________

请参阅

基本文件输入/输出

Close

Eof()

Input

Input$()

Line Input

Lof()

Open

Print

Read

Write


Write 示例

本示例打开一个顺序文件作为输出（如果该文件不存在则创建它），提示用户输入三条数据，然后用 Write 语句将这些数据插入到该顺序文件中：

Open "C:\TMP\DATAFILE.TXT" For Output As #1

name$ = InputBox$("Enter name:")

age = Val(InputBox$("Enter age:"))

job$ = InputBox$("Enter occupation:")

Write #1, name$, age, job$

Close #1

下边是一个由 Write 语句插入的 DATAFILE.TXT 文件中的一个段落的示例：

"Michelle Levine", 26,"Dancer"


Write

示例

Write #FileNumber, Expression1[$] [, Expression2[$]] [, ...]

将指定的表达式写到一个打开的顺序文件之中。FileNumber 参数是由 Open 指令指定的编号，该指令用来为输出和附加打开文件。有关顺序文件的详细内容，请参阅 Microsoft Word 开发工具中的第9章“More WordBasic Techniques”。

Write 与 Print 语句相似，不同之处是 Print 语句用制表符分隔表达式，而 Write 用逗号分隔；而且，Write 用引号括住字符串。这样使得结果值可以被一条 Read 指令读出。有关 Print and Write 语句的介绍，请参阅 Print。

_____________

请参阅

基本文件输入/输出

Close

Eof()

Input

Input$()

Line Input

Lof()

Open

Print

Read

Seek


AddAddIn 示例

本示例使用函数 AddAddIn() 装入模板 MYLIB.DOT，作为全局模板使用，并且定义一个变量 id 作为该模板的数字标识符：

id = AddAddIn("C:\MYDOT\MYLIB.DOT", 1)

下例示例用装入的 WLL 中的函数的名称填写一个数组，这些 WLL 可以被象Word命令一样的宏调用：

nonaddins = CountMacros(0) + CountMacros(1)

loaded = CountMacros(0, 0, 1)

size = loaded - 1

Dim loaded$(size)

For count = 0 To size

pos = (count + 1) + nonaddins

loaded$(count) = MacroName$(pos, 0, 1)

Next count


AddAddIn, AddAddIn()

示例

AddAddIn AddIn$ [, Load]

AddAddIn(AddIn$ [, Load])

AddAddIn 语句添加一个模板或者添加一个Word加载项库到全局模板列表中，并且在“模板和加载项”对话框（“文件”菜单中的“模板”命令）中添加加载项。

参数	说明
AddIn$	模板或WLL的路径和文件名
Load	在将模板或加载项添加到列表中之后，指定是否将其装载： 0 (零)    不装载模板或加载项 1 或省略    装入模板或加载项
AddAddIn() 函数的操作与该语句相同而且返回一个对应于列表中全局模板或加载项的位置的数值，其中 1 代表列表中第一个模板或加载项，2 代表第二个模板或加载项以此类推。这个数值可能与其它加载语句和函数。

您可以在一个宏中使用定义在一个装入WLL中的函数。不带参数的函数可以象WordBasic语句一样使用。您可以用CountMacros()函数和MacroName＄()函数返回这些参数的名称。WLL中的函数。不带参数的函数可以象语句一样使用。您可以用 CountMacros() 函数和 MacroName$() 函数返回这些参数的名称。WLL中带参数的函数在使用之前必须用 Declare 语句说明。

如果您想了解更多的有关装入全局模板和加载项的信息，那么请参阅 Microsoft Word 使用手册中的第31章“自定义和优化 Word”。如果您想了解更多的有关使用WLL中的函数的信息，请参阅 Microsoft Word 开发工具中的第 9 章“More WordBasic Techniques”。

_____________

请参阅

文档、模板和加载项

AddInState()

ClearAddIns

CountAddIns()

CountMacros()

DeleteAddIn

GetAddInID()

GetAddInName$()

MacroName$()


AddInState, AddInState()

AddInState AddIn, Load

AddInState AddIn$, Load

AddInState(AddIn)

AddInState(AddIn$)

AddInState 语句加载或卸载列在“模板和加载项”对话框（“文件”菜单中的“模板”命令）中的全局模板或加载项。您可以将全局模板或加载项指定为数字或文字。

参数	说明
AddIn	对应于全局模板和加载项列表中全局模板或加载项的位置的编号，其中 1 代表列表中第一个模板或加载项，2 代表第二个模板或加载项以此类推
AddIn$	全局模板或加载项的路径和文件名
Load	指定是加载还是卸载全局模板或加载项： 0 (零)    卸载模板或加载项 1 加载模板或加载项
AddInState() 函数返回下列数值。注意返回数值是加和形式的。例如，如果指定加载项被装入，而且是一个WLL，并且在 Startup 目录中，则函数返回数值7（1,2,4的和）。

数值	说明
0 (零)	如果下列有关全局模板或加载项的描述全部不符合。
1	如果加载了全局模板或加载项。
2	如果一个 Word 加载项库（WLL）被加载。
4	如果全局模板或加载项自动装载；“选项”对话框（“工具”菜单）“文件位置”选项卡中的“位置”选项下指定的目录中的模板和加载项自动装载。
_____________

请参阅

文档、模板和加载项

AddAddIn

ClearAddIns

CountAddIns()

DeleteAddIn

GetAddInID()

GetAddInName$()


ClearAddIns

ClearAddIns RemoveFromList

卸载所有显示于“模板和加载项”对话框（“文件”菜单中的“模板”命令）中的全局模板和加载项列表中的全局模板和Word加载项库（WLLS）。

参数	说明
RemoveFromList	指定是否在卸载全局模板和加载项的同时将它们从列表中删除： 0 (零)    全局模板和加载项仍保留在列表之中。 1 全局模板和加载项从列表中删除（“位置”目录中的除外）。
_____________

请参阅

文档、模板和加载项

AddAddIn

AddInState()

CountAddIns()

DeleteAddIn

GetAddInId()

GetAddInName$()


Converter$() 示例

本示例在插入点插入Word可用的文件格式类别的名称列表，指令运行到 a$ 变为空串 ("") 为止，这表明已经到了可用格式列表的结尾处。

x = 0

a$ = Converter$(x)

While a$ <> ""

Insert a$ + Chr$(13)

x = x + 1

a$ = Converter$(x)

Wend


Converter$()

示例

Converter$(FormatNumber)

返回与 FormatNumber相关联的文件格式的类别名称。

参数	说明
FormatNumber	编号，对应于一种文件格式。这些文件格式列在“文件”菜单“另存为”对话框中的“文件类型列表”之下：0（零）对应于第一种文件格式。1 对应于第二种文件格式，以此类推。 FormatNumber 也可以是一个 ConverterLookup()函数的返回值。注意在有些情况下， ConverterLookup()函数返回的格式编号与列表框中格式名称的位置并不匹配，例如 ConverterLookup("Excel Worksheet") 返回103。
_____________

请参阅

文档、模板和加载项

ConverterLookup()

FileSaveAs


ConverterLookup() 示例

本示例以 (RTF)格式保存活动文档，用类别名称 "MSRTF" 指定该格式:

FileSaveAs .Name = "C:\RTF\TEST.RTF", \

.Format = ConverterLookup("MSRTF")

下一示例同样以RTF 格式保存活动文档，但是用“另存为”对话框中“文件类型列表”下的名称来指定格式，而不是用类别名称：

FileSaveAs .Name = "C:\RTF\TEST.RTF", \

.Format = ConverterLookup("Rich Text Format")


ConverterLookup()

示例

ConverterLookup(FormatName$)

返回一个编号，该编号对应于 FormatName$ 参数指定的文件格式。您可以将该数值作为 FileSaveAs 指令的 .Format 参数来以不同的格式存贮文件。如果指定格式不存在，那么 ConverterLookup() 函数返回 -1。

参数	说明
FormatName$	由 Converter$() 函数返回的格式的类别名称，或者是出现在“文件”菜单“另存为”对话框中“文件类型列表”框中的文件格式。
_____________

请参阅

文档、模板和加载项

Converter$()

FileSaveAs


CountAddIns() 示例

本示例卸载所有的全局模板和加载项列表中带有 .DOT 文件扩展名的全局模板。

For i = 1 To CountAddIns()

a$ = GetAddInName$(i)

If InStr(a$, ".DOT") <> 0 Then

AddInState a$, 0

End If

Next i


CountAddIns()

示例

CountAddIns()

返回全局模板和 Word 加载项库 (WLL) 的编号，这些全局模板和Word加载项库位于“模板和加载项”对话框（“文件”菜单中的“模板”命令）中的全局模板和加载项列表中。

_____________

请参阅

文档、模板和加载项

AddAddIn

AddInState()

ClearAddIns

DeleteAddIn

GetAddInId()

GetAddInName$()


CountFiles() 示例

本示例打开最近使用的文件，您可以将此指令用在 AutoExec 宏中。它用 CountFiles() 函数判定菜单中至少有一个文件。

If CountFiles() Then File1 Else MsgBox "Sorry, no file listed."


CountFiles()

示例

CountFiles()

返回文件名数量。这些文件位于菜单底部的最近使用的文件列表之中。

_____________

请参阅

文档、模板和加载项

FileList

FileName$()

FileNumber


CountFoundFiles() 示例

本示例判定最近一次 FileFind 操作是否成功：

If CountFoundFiles() = 0 Then MsgBox "No files found."

如果您想查阅另一个示例，那么请参阅 FileFind 示例。


CountFoundFiles()

示例

CountFoundFiles()

返回最后一次使用 FileFind 指令进行搜索时找到的文件的数量。如果最后一次搜索中没有找到文件或者在 Word 工作时段中没有进行过搜索操作，那么CountFoundFiles() 返回 0 (零)。

_____________

请参阅

文档、模板和加载项

FileFind

FoundFileName$()


DeleteAddIn

DeleteAddIn AddIn

DeleteAddIn AddIn$

从“模板和加载项”对话框（“文件”菜单的“模板”命令）中的全局模板和加载项列表中删除一个全局模板或 Word 加载项库 (WLL)。

参数	说明
AddIn	对应于列表中全局模板或加载项的位置数值。其中 1 表示第一个模板或加载项，2 表示第二个，以此类推。
AddIn$	全局模板或加载项的路径和文件名。
_____________

请参阅

文档、模板和加载项

AddAddIn

AddInState()

ClearAddIns

CountAddIns()

GetAddInId()

GetAddInName$()


DisableInput

DisableInput [Disable]

防止 ESC 键打断宏的执行。DisableInput 不影响 ESC 用作取消一个对话框。

参数	说明
Disable	决定是否关闭 ESC 键： 0 (零)    允许 ESC 取消一个宏操作。 1 或省略    禁止 ESC 键取消宏操作。


DocClose 示例

本示例关闭每一个打开的文档窗口，并提示用户保存未存储的有改动的文档：

While Window() <> 0

DocClose 0

Wend


DocClose

示例

DocClose [Save]

关闭活动文档窗口。DocClose 与 FileClose 不同：FileClose 关闭活动文档和所有与之相关联的窗口，而DocClose 只关闭活动文档窗口。通常情况下，一个文档只在一个窗口打开，这时 DocClose 与 FileClose 具有相同的效果。

参数	说明
Save	判定是否保存文档： 0 (零) 或省略    如果最后一次保存文档之后，该文档又被作了修改，那么提示用户保存。 1 Word 在关闭文档之前保存之，并不提示。 2 Word 关闭文档但不保存之。
_____________

请参阅

文档、模板和加载项

ClosePane

FileClose


DocumentStatistics 示例

本示例使用 DocumentStatistics 对话记录来获取活动文档中的单词数目。您可以将本示例当作一个获取任何 DocumentStatistics 参数值的模型。

FileSummaryInfo .Update	'Update document statistics

Dim dlg As DocumentStatistics	'Create a dialog record

GetCurValues dlg	'Fill record with values

MsgBox "Number of words: " + dlg.Words


DocumentStatistics

示例

DocumentStatistics [.FileName = text] [, .Directory = text] [, .Template = text] [, .Title = text] [, .Created = text] [, .LastSaved = text] [, .LastSavedBy = text] [, .Revision = text] [, .Time = text] [, .Printed = text] [, .Pages = text] [, .Words = text] [, .Characters = text] [, .Paragraphs = text] [, .Lines = text] [, .FileSize = text]

与一个对话记录联合使用，DocumentStatistics 返回有关活动文档的信息。DocumentStatistics 语句的参数对应于“文档统计”对话框（“文件”菜单的“摘要信息”命令）中的可用信息，并且这些参数是只读的，这一点意味着与其它 WordBasic 语句不同，您不能用 DocumentStatistics 语句设置数值。相反地，从某种意义上讲您可以将 DocumentStatistics 对话记录当作一个函数使用：返回信息。

参数	说明
.FileName	文档的名称（不包含路径）
.Directory	文档所在的路径
.Template	与文档相连的模板的路径及名称
.Title	文档的标题
.Created	文档创建的日期和时间
.LastSaved	最后一次存储文档的日期和时间
.LastSavedBy	文档的作者
.Revision	文档存储的次数
.Time	用于编辑文档的全部时间
.Printed	最后一次打印的日期和时间
.Pages	文档中的页数
.Words	文档中的单词数目
.Characters	文档中字符的数目
.Paragraphs	文档中段落的数目
.Lines	文档中行的数目
.FileSize	文档的大小，以“36,352字节”的形式表示
注释

如果您想保证用 DocumentStatistics 对话记录返回的文档统计信息是最新的信息，那么请您在定义对话记录前包含语句 FileSummaryInfo .Update 。

_____________

请参阅

文档、模板和加载项

FileSummaryInfo

SelInfo()


FileClose

FileClose [Save]

关闭活动文档。所有的包含有活动文档的文档窗口将被关闭。如果文档在多个窗口，那么请使用 DocClose。

参数	说明
Save	判定当文档是“脏的”时（也就是说自上次保存以来，该文档又被修改过了），Word 是否在关闭之前将其保存： 0 (零) 或省略    提示用户保存文档。 1 关闭之前保存文档。 2 关闭之前不保存文档。
_____________

请参阅

文档、模板和加载项

ClosePane

DocClose

FileCloseAll

FileExit

IsDocumentDirty()


FileCloseAll

FileCloseAll [Save]

关闭所有打开的窗口。

参数	说明
Save	判定当文档是“脏的”时（也就是说自上次保存以来，该文档又被修改过了），Word 是否在关闭这些窗口之前将它们一一保存： 0 (零) 或省略    提示用户保存文档。 1 关闭之前保存文档。 2 关闭之前不保存文档。
_____________

请参阅

文档、模板和加载项

DocClose

FileClose

FileExit


FileConfirmConversions, FileConfirmConversions()

FileConfirmConversions [On]

FileConfirmConversions()

FileConfirmConversions 语句控制当一个文件具有不同于打开的 Word 文档或文档模板的格式时，Word 是否显示一个确认对话框。FileConfirmConversions 选中或清除“打开”对话框（“文件”菜单）中的“确认转换”复选框。

参数	说明
On	指定 Word 是否显示确认对话框： 0 (零)    不显示该对话框。 1 显示该对话框。 省略    切换“确认转换”复选框。
FileConfirmConversions() 函数返回下列数值：

数值	说明
0 (零)	如果清除“确认转换”复选框
-1	如果选中“确认转换”复选框
_____________

请参阅

文档、模板和加载项

MailMergeAskToConvertChevrons


FileFind 示例

本示例在两个目录中搜索带有 .RPT 文件扩展名的文件，定义一个数组存放它们的名字，然后用 FoundFileName$() 函数将文件名填入到该数组中。

FileFind .SearchPath = "C:\WINWORD; C:\REPORTS", .Name = "*.RPT"

size = CountFoundFiles() - 1

If size >= 0 Then

Dim mydocs$(size)

For count = 0 To size

mydocs$(count) = FoundFileName$(count + 1)

Next

End If

下列示例为“查找文件”对话框创建一个对话记录，设置搜索路径和文件名标准，指定将要显示的有关找到的文件的总结信息，然后显示找到文件的列表。

Dim dlg As FileFind

dlg.SearchPath = "C:\MYDOCS"

dlg.Name = "*.DOC"

dlg.View = 2

x = Dialog(dlg)


FileFind

示例

FileFind [.SearchName = text] [, .SearchPath = text] [, .Name = text] [, .SubDir = number] [, .Title = text] [, .Author = text] [, .Keywords = text] [, .Subject = text] [, .Options = number] [, .MatchCase = number] [, .Text = text] [, .PatternMatch = text] [, .DateSavedFrom = text] [, .DateSavedTo = text] [, .SavedBy = text] [, .DateCreatedFrom = text] [, .DateCreatedTo = text] [, .View = number] [, .SortBy = number] [, .ListBy = number] [, .SelectedFile = number] [, .Add] [, .Delete]

基于由一个或多个参数指定的搜索标准创建一个文件列表。FileFind 语句的参数对应于“搜索”对话框（“文件”菜单的“查找文件”命令）中的选项。

参数	说明
.SearchName	给出一个搜索条件组的名称。您可以在这里使用一个已有的组来完成一次搜索操作，而不必一个一个地指定，或者您可以在这里指定一个组，用作创建和删除操作（使用 .Add 或 .Delete）。
.SearchPath	搜索文件用到的一个路径列表（使用分号分隔多个路径）。
.Name	文档的文件名—通常是用通配符表示的文件名。例如， "*.DOC," "*.*," 或 "*.BMP,"。您也可以指定一个明确的文件名。
.SubDir	如果是 1，那么 Word 不但搜索 .SearchPath 指定的一个目录或多个目录，而且搜索它们的子目录。
.Title	“摘要信息”对话框中的标题。
.Author	“摘要信息”对话框中的作者。
.Keywords	“摘要信息”对话框中的用来标识文档的关键词。
.Subject	“摘要信息”对话框中的主题。
.Options	指定怎样列出找到的文件： 0 (零)    创建一个新的列表 1 将匹配项添加到已存在的文件列表中 2 只在存在的文件列表中搜索
.MatchCase	指定是否要匹配 .Text 中指定的每个字符的大小写： 0 (零)    不必匹配大小写（默认值） 1 匹配大小写
.Text	在文档中搜索的文字。
.PatternMatch	如果是 1，那么 Word 将 .Text 当作一个含有高级搜索条件，如星号 (*) 和问号 (?) 通配字符的字符串。有关详细内容，请参阅高级搜索条件
.DateSavedFrom	文档的保存时间，您想要从这个时间往后搜索。
.DateSavedTo	文档的保存时间，您想要搜索到的时间。
.SavedBy	最后一次保存该文档的人的名字。
.DateCreatedFrom	文档的创建时间，您想要从这个时间开始搜索，下面是正确的日期格式的例子： 7/8/93 8-Jul-91 July 8, 1991
.DateCreatedTo	文档的创建时间，您想要搜索到的时间。
.View	指定当您用 Dialog 指令或 Dialog() 函数显示“查找文件”对话框时，在对话框的右边显示什么： 0 (零)    文件信息（每个文件一行） 1 选定文件内容的预览窗口 2 选定文件的摘要信息
.SortBy	指定当您用 Dialog 指令或 Dialog() 函数显示“查找文件”对话框时，文框怎样排序： 0 (零)    按作者名字的字母顺序排序 1 按创建时间排序，最近创建的放在最前边 2 按最后存储文档的人的名字的字母顺序排序 3 按最后保存的时间排序，最近保存的文件排在最前边 4 按文件名的字母顺序排序 5 按文件的大小排序，小的文件放在前边
.ListBy	指定当您用 Dialog 指令或 Dialog() 函数显示一个“查找文件”对话框时，怎样在对话框的左边列出文件： 0 (零)    按文件名列表 1 按文件标题列表
.SelectedFile	当您已经用 Dialog 指令或 Dialog() 函数显示了“查找文件”对话框时，用户关闭对话框时返回一个编号，该对话框对应于最后一个选中的文件。要想恢复文件名，将该值传给 FoundFileName$() 函数（例如： FoundFileName$(dlg.SelectedFile))。
.Add	通过由 .SearchName 指定的名称保存指定的搜索条件；也可能来创建或修改一个搜索标准的组。
.Delete	删除由 .SearchName指定的搜索条件组。
_____________

请参阅

文档、模板和加载项

CountFoundFiles()

FoundFileName$()


FileList 示例

本示例打开最近使用的文件。您可以将这些指令包含在一个 AutoExec 宏中以便每次您打开 Word 时，最近使用的文件被自动打开。如果没有文件列在“文件”菜单中，On Error Resume Next 语句可以防止 Word 显示一个错误信息。

On Error Resume Next

FileList 1

有关宏的详细内容，请参阅自动宏。


FileList

示例

FileList Number

打开“文件”菜单下端的最近使用文件列表中的一个文件。（Word 将“使用过的”定义为或者打开过或者存储过。）参数Number 对应于您想打开的菜单中的文件名的下一个编号（从 1 到 9) ）。如果 Number 大于列出的文件数目，那么将导致错误。如果指定的文件已经打开，那么 Word 将激活文档。

您可以通过“选项”对话框（“工具”菜单）中“常规”选项卡上的“列出最近使用文件数”选项控制出现在“文件”菜单中文件名的数目。

_____________

请参阅

文档、模板和加载项

CountFiles()

FileName$()

FileNumber

FileOpen


FileName$() 示例

本示例演示了 FileName$() 和 WindowName$()的不同处。FileName$() 函数返回一个文件的路径和文件名，WindowName$() 函数返回一个窗口的标题，该标题可能包含有该文件名或者部分路径和文件名（如果文档不是存储于当前目录之中）。

MsgBox "File = " + FileName$() + Chr$(13) + \

"Window = " + WindowName$()


FileName$()

示例

FileName$([Number])

返回活动文档的路径和文件名或者返回“文件”菜单底部最近使用的文件列表中的一个文件的路径和文件名。

参数	说明
Number	“文件”菜单中的文件顺序的编号为 1 到 9。如果该编号为 0 (零)或省略，那么FileName$() 函数返回活动文档的名称；如果没有活动的文档，那么它返回一个空串("")。如果 Number 大于列在“文件”菜单中的文件的数目，那么将导致错误。 您可以用“选项”对话框中“常规”选项卡上的“列出最近使用文件数”选项控制出现在“文件”菜单中的文件数目。
_____________

请参阅

文档、模板和加载项

CountFiles()

FileList

FileNameFromWindow$()

FileNumber

Files$()

WindowName$()


FileNameFromWindow$()

FileNameFromWindow$([WindowNumber])

返回指定窗口中的文档的路径和文件名。

参数	说明
WindowNumber	“窗口”菜单中窗口的位置，其中 1 代表第一个位置，2 代表第二个位置，依此类推。如果 WindowNumber 参数是 0 (零) 或省略，FileNameFromWindow$() 函数返回活动文档的路径和文件名。如果活动文档从来没有保存过，那么返回一个空串("")。
_____________

请参阅

文档、模板和加载项

CountWindows()

FileName$()

WindowName$()


FileNameInfo$() 示例

本示例使用 FileNameInfo$() 函数将当前目录下的带有 .DOC 文件扩展名的所有文件的文件扩展名改为 .RTF ，然后以RTF格式保存：

file$ = Files$("*.DOC")

While file$ <> ""

FileOpen .Name = file$

noExtension$ = FileNameInfo$(file$, 4)

FileSaveAs .Name = noExtension$ + ".RTF" , .format = 6

FileClose 2

file$ = Files$()

Wend


FileNameInfo$()

示例

FileNameInfo$(Filename$, InfoType)

返回由 InfoType指定的 Filename$ 的一部分。

参数	说明
Filename$	路径，如果指定了的话，和一个文档的文件名。尽管路径必须存在，文件名不必一定是一个现存文档的名字。如果路径不存在，那么将产生错误。
InfoType	要返回的 Filename$ 的一部分： 1 完整的路径和文件名，例如， FileNameInfo$(FileName$(), 1) 可能返回"C:\DOCUMENT\TEST.DOC." 如果 Filename$ 不包含路径，那么 FileNameInfo$() 函数将返回一个由当前路径和 Filename$ 组成的路径，即使这样的文件根本不存在。 2 如果Filename$ i在当前目录中定位，那么只返回文件名，否则返回带有完整路径的文件名。 3 文件名。例如，FileNameInfo$("C:\DOCUMENT\TEST.DOC", 3) 返回 "TEST.DOC"。 4 不带文件扩展名的文件名。例如， FileNameInfo$("C:\DOCUMENT\TEST.DOC", 4) 返回 "TEST." 5 完整的路径，例如， FileNameInfo$("C:\DOCUMENT\TEST.DOC", 5) 返回 "C:\DOCUMENT\." 6 一般命名约定的网络路径和文件名。例如，如果 TEST.DOC 位于一个网络服务器上，而且带有网络共享名\\DOCUMENT\PUBLIC，那么FileNameInfo$("D:\DOCUMENT\TEST.DOC", 6) 返回 "\\DOCUMENT\PUBLIC\DOCUMENT\TEST.DOC"。如果 Filename$ 不在网络共享设备上，那么将返回完整的路径和文件名。
_____________

请参阅

文档、模板和加载项

FileName$()

FileNameFromWindow$()


FileNew 示例

本示例基于 Memo1 模板创建一个新的文档。.DOT 文件扩展名是可选的，也就是说，您可以指定为 "MEMO1" 也可以指定为 "MEMO1.DOT"。

FileNew .Template = "MEMO1"

下示例基于已存在的 Letter3 模板创建一个新的模板：

FileNew .NewTemplate = 1, .Template = "LETTER3.DOT"

下示例运行 Resume 向导:

FileNew .Template = "RESUME.WIZ"


FileNew

示例

FileNew [.Template = text] [, .NewTemplate = number]

基于您指定的模板创建一个新的文档或模板或者运行一个向导。FileNew 语句的参数对应于“文件”菜单“新建”对话框中的选项。

参数	说明
.Template	生成新文档或模板所要依赖的模板或文档的名称或者指将要运行的向导。
.NewTemplate	指定是创建一个新的文档还是创建一个新的模板： 0 (零) 或省略    创建一个新的文档。 1 创建一个新的模板。
_____________

请参阅

文档、模板和加载项

FileNewDefault

FileOpen


FileNewDefault

FileNewDefault

基于 Normal 模板创建一个新的文档。

_____________

请参阅

文档、模板和加载项

FileNew


FileNumber

FileNumber

打开一个位于菜单底部的最近使用过的文件列表中的文件。（Word 将使用过的定义为曾经被打开或保存）。File1 打开列表中第一个文档（最近使用过的），File2 打开第二个文档，以此类推。直到 File9。9 是可以列在“文件”菜单中的文件名的最大数目。如果没有文件列在“文件”菜单中或者 Number 大于所列文件的数目，那么将产生错误。如果指定的文件已经被打开，那么 Word 将激活该文档。

您可以通过使用“选项”对话框（“工具”菜单）中“常规”选项卡上的“列出最近使用文件数”选项来控制列在“文件”菜单中的文件的数目。

_____________

请参阅

文档、模板和加载项

CountFiles()

FileList

FileName$()

WindowNumber


FileOpen 示例

本示例修改当前目录，然后打开一个 MYDOC.DOC 的只读备份。

ChDir "C:\WINWORD\DOCS"

FileOpen .Name = "MYDOC.DOC", .ReadOnly = 1

下一示例同样打开 MYDOC.DOC，但由于指定了完整的路径，所以在 FileOpen 指令前不必使用 ChDir 指令：

FileOpen .Name = "C:\WINWORD\DOCS\MYDOC.DOC", .ReadOnly = 1


FileOpen

示例

FileOpen .Name = text [, .ConfirmConversions = number] [, .ReadOnly = number] [, .AddToMru = number] [, .PasswordDoc = text] [, .PasswordDot = text] [, .Revert = number] [, .WritePasswordDoc = text] [, .WritePasswordDot = text]

打开指定的文档。如果该文档不存在，或者不在指定目录之中，那么将产生错误。FileOpen 语句的参数对应于“打开”对话框（“文件”菜单）中的选项。

参数	说明
.Name	文档的名字（可以接收的路径）。
.ConfirmConversions	如果是 1，那么如果文件不具备 Word 格式，则显示“转换文件”对话框。
.ReadOnly	如果是 1，则以只读方式打开文档。
.AddToMru	如果是 1，那么将文件名添加到菜单底部的最近使用的文件列表（注意 MRU 是“最近使用的”的缩写）。
.PasswordDoc	如果要求的话，那么本参数指定打开文档所需的口令。
.PasswordDot	打开模板的口令（如果需要的话）。
.Revert	控制如果 .Name 指的是一个已打开的文档的文件名，那么如何处理： 0 (零) 或省略    Word 激活该打开文档。 1 Word 放弃所有未保存的修改，而重新打开该文件。
.WritePasswordDoc	如果要求的话，那么本参数指定保存文档改动的口令。
.WritePasswordDot	如果要求的话，那么本参数指定保存模板改动的口令。
_____________

请参阅

文档、模板和加载项

FileConfirmConversions

FileFind

FileNew


FilePageSetup 示例

本示例将整个文档的上边界设置为 1 英寸。

FilePageSetup .ApplyPropsTo = 4, .TopMargin = "1 in"

下示例显示“页面设置”对话框中的“纸张来源”选项卡，然后使用用户选择的设置：

Dim dlg As FilePageSetup

GetCurValues dlg

dlg.Tab = 2

Dialog dlg

FilePageSetup dlg


FilePageSetup

示例

FilePageSetup [.Tab = number] [, .TopMargin = number or text] [, .BottomMargin = number or text] [, .LeftMargin = number or text] [, .RightMargin = number or text] [, .Gutter = number or text] [, .PageWidth = number or text] [, .PageHeight = number or text] [, .Orientation = number] [, .FirstPage = number] [, .OtherPages = number] [, .VertAlign = number] [, .ApplyPropsTo = number] [, .Default] [, .FacingPages = number] [, .HeaderDistance = number or text] [, .FooterDistance = number or text] [, .SectionStart = number] [, .OddAndEvenPages = number] [, .DifferentFirstPage = number] [, .Endnotes = number] [, .LineNum = number] [, .StartingNum = number] [, .FromText = number or text] [, .CountBy = number] [, .NumMode = number]

为整个文档或文档中的节设置边界和页宽度等页属性。FilePageSetup 语句的参数对应于“页面设置”对话框（“文件”菜单）中的选项。

参数	说明
.Tab	指定当您用 Dialog 或 Dialog() 函数显示“页面设置”对话框时，选择哪一个表： 0 (零)    页边距 1 纸张大小 2 纸张来源 3 版面 有关详细内容，请参阅本项的第二个示例。
.TopMargin	以磅或一种文字量值为单位，指定从纸张下边界到文本下边界的距离。
.BottomMargin	以磅或一种文字量值为单位，指定从纸张左边界到文本左边界的距离。
.LeftMargin	以磅或一种文字量值为单位，指定从纸张左边界到文本左边界的距离。
.RightMargin	以磅或一种文字量值为单位，指定从纸张右边界到文本右边界的距离。
.Gutter	以磅或一种文字量值为单位，指定装订文档时允许的额外页边界空间。
.PageWidth	以磅或一种文字量值为单位，指定的页的宽度。
.PageHeight	以磅或一种文字量值为单位，指定的页的高度。
.Orientation	指定页面的方向： 0 (零)    纵向 1 横向 注意，与使用 TogglePortrait 语句不同，用 FilePageSetup 指定一种新的方向时，不以新的方向自动调整页面的大小和边界。
.FirstPage, .OtherPages	选择文档的第一页或其它页的纸张来源： 0 (零)    默认纸盒（由打印机驱动程序决定） 1 上纸盒 2 下纸盒 4 手工送纸（经常用来对第一张纸操作，以便第一张纸不采用默认纸盒方式） 5 信封 信封其它的值也可能有效，这取决于您的打印机驱动。要决定一个值，请为宏编辑窗口中的 .FirstPage 和 .OtherPages 记录一个宏，用来选择您希望的“页面设置”对话框中“纸张来源”选项卡的选项，然后审阅这些值。the
.VertAlign	页面上节的对齐方式： 0 (零)    靠上 1 居中 2 两端对齐
.ApplyPropsTo	指定将要使用页设置特性的那部分文档： 0 (零)    本节 1 此点往前 2 选定节 3 选定文本 4 整个文档
.Default	使得当前页设置特性成为默认特性，由基于活动模板的新文档使用。
.FacingPages	如果是 1，那么对应于选中“对称页边距”复选框。
.HeaderDistance	从页眉到页面顶端的距离。
.FooterDistance	从页脚到页面底端的距离。
.SectionStart	指定分节符的类型： 0 (零)    接续本页 1 新建栏 2 新建页 3 偶数页 4 奇数页
.OddAndEvenPages	如果是 1，对应于选中“奇偶页不同”复选框。
.DifferentFirstPage	如果是 1，对应于选中“首页不同”复选框。
.Endnotes	如果是 1对应于选中“取消尾注”复选框。
.LineNum	如果是 1，对应于选中“添加行号”复选框。
.StartingNum	行起始编号。
.FromText	距离正文的距离，以磅或一种文字量值为单位。0 (零) 自动设置间距。
.CountBy	打印行编号时的数字增量。
.NumMode	指定行如何编号： 0 (零)    每页重新编号 1 每节重新编号 2 连续
_____________

请参阅

文档、模板和加载项

FormatColumns

FormatSectionLayout


FilePrint

FilePrint [.Background = number] [, .AppendPrFile = number] [, .Range = number] [, .PrToFileName = text] [, .From = text] [, .To = text] [, .Type = number] [, .NumCopies = number] [, .Pages = text] [, .Order = number] [, .PrintToFile = number] [, .Collate = number] [, .FileName = text]

打印您指定的文档或活动文档的全部或一部分，FilePrint 语句的参数对应于“打印”对话框（“文件”菜单）中的选项。

参数	说明
.Background	如果是 1，Word 打印文档时，宏将继续执行。
.AppendPrFile	如果您要打印到一个文件中，那么该参数指定是覆盖还是追加到该文件（如果已经存在）： 0 (零)    覆盖 1 追加
.Range	打印范围： 0 (零)    全部文档 1 选定范围 2 打印当前页 3 打印指定范围 4 打印指定的页码范围
.PrToFileName	如果您要打印到一个文件中，那么本参数指定要打印到的文件的文件名和路径。
.From	当 .Range 设置为 3 时，本参数指定起始页码。
.To	当 .Range 设置为 3 时，本参数指定结束页编号。
.Type	要打印的内容： 0 (零)    文档 1 摘要信息 2 批注 3 样式 4 自动图文集词条 5 键值
.NumCopies	要打印的份数。
.Pages	您想要打印的页的编号和页范围，用逗号分隔。例如，"2, 4-10" 指要打印第 2 页和从第 4 页到第 10 页。
.Order	要打印的页的更进一步的分隔： 0 (零)    打印该范围内的所有页。 1 只打印该范围内的奇数页。 2 只打印该范围内的偶数页。
.PrintToFile	如果是 1，那么将打印机指令送到一个文件中。一定要在 .PrToFileName 参数中指定文件名。
.Collate	如果是 1，那么当打印多份文档时组织页。
.FileName	要打印的文档的路径和文件名。如果省略，那么 Word 将打印活动文档。
_____________

请参阅

文档、模板和加载项

FilePrintDefault

FilePrintSetup

ToolsOptionsPrint


FilePrintDefault

FilePrintDefault

使用“打印”和“打印设置”对话框（“文件”菜单）及“选项”对话框（“工具”菜单）中“打印”选项卡上的当前设置打印活动文档。

_____________

请参阅

文档、模板和加载项

FilePrint

FilePrintSetup

ToolsOptionsPrint


FilePrintPreview, FilePrintPreview()

FilePrintPreview [On]

FilePrintPreview()

FilePrintPreview 语句在活动文档和打印预览之间切换。

参数	说明
On	在打印预览或先前的视图中显示文档： 省略    切换打印预览。 0 (零)    取消打印预览。 1 切换到打印预览。
The FilePrintPreview() 函数返回下列数值。

数值	说明
-1	活动文档处在打印预览状态
0 (零)	如果活动文档处在其它视图中
_____________

请参阅

文档、模板和加载项

ClosePreview

FilePrintPreviewFullScreen

FilePrintPreviewPages

ViewZoom


FilePrintPreviewFullScreen

FilePrintPreviewFullScreen

切换打印预览中的标尺、滚动条、状态栏和菜单栏的显示。如果活动文档不在打印预览状态，那么将产生错误。

_____________

请参阅

文档、模板和加载项

ToolsOptionsView


FilePrintPreviewPages, FilePrintPreviewPages()

FilePrintPreviewPages PagesAcross

FilePrintPreviewPages()

The FilePrintPreviewPages 语句指定在页面视图和打印预览中是显示页的一栏还是两栏。参数只能是1或2。如果您想更多地控制页映象的网络，那么请使用 ViewZoom. The FilePrintPreviewPages() 函数返回当前显示页的栏数。如果活动文档既不在页面视图中也不在打印预览中，那么将产生错误。

_____________

请参阅

文档、模板和加载项

FilePrintPreview

ViewPage

ViewZoom


FilePrintSetup 示例

本示例修改连在 COM2 端口上的 PostScript 打印机：

FilePrintSetup .Printer = "PostScript printer on COM2:"

以下示例使用 SendKeys 语句将键序列 ALT+G, 75, ENTER 发送给当前打印机的“选项”对话框。这些指令依赖于“缩放”框的存在，该方框的访问键是 G ，并将比例设为 75 %。

SendKeys "%g75{enter}"

FilePrintSetup .Options


FilePrintSetup

示例

FilePrintSetup [.Printer = text] [, .Options]

修改活动打印机和它的选项。FilePrintSetup 语句的参数对应于“打印设置”对话框（“文件”菜单中的“打印”命令）中的选项。

参数	说明
.Printer	将被激活的新打印机的名称。将该参数指定为与“打印设置”对话框中显示的一样。
.Options	显示一个对话框，在其中显示当前打印机的选项。您可以使用 SendKeys 语句来选择选项。
_____________

请参阅

文档、模板和加载项

FilePrint

SendKeys

ToolsOptionsPrint


FileRoutingSlip 示例

本示例将一个传递名单添加到活动文档中（包括主题行中的当前日期），添加两个接受者，然后为文档选择路径：

curdate$ = Date$(Now())

FileRoutingSlip .Subject = "Status Doc " + curdate$, \

.Message = "Please fill in your status.", .AllAtOnce = 0, \

.ReturnWhenDone = 1, .TrackStatus = 1, .Protect = 1, .AddSlip

FileRoutingSlip .Address = "Sara Levine", .AddRecipient

FileRoutingSlip .Address = "Carlos Alicea", .AddRecipient

FileRoutingSlip .RouteDocument


FileRoutingSlip

示例

FileRoutingSlip [.Subject = text] [, .Message = text] [, .AllAtOnce = number] [, .ReturnWhenDone = number] [, .TrackStatus = number] [, .Protect = number] [, .AddSlip] [, .RouteDocument] [, .AddRecipient] [, .OldRecipient] [, .ResetSlip] [, .ClearSlip] [, .ClearRecipients] [, .Address = text]

添加、删除或修改活动文档的传递名单或将活动文档的路径选为传递名单指定的接受者。 FileRoutingSlip 的参数对应于“添加传递名单”对话框（“文件”菜单，“添加传递名单”命令）中的选项。

参数	说明
.Subject	电子邮件信息中的主题行文本。
.Message	您想要优先的选用文档图标的信息。
.AllAtOnce	指定接受者如何接受文档： 0 (零)    将文档发送给由“地址”指定的第一个接收者。 1 将文档同时发送给所有的接收者，每个接收者一份。
.ReturnWhenDone	如果是 1，那么当最后一个接收者选择了“文件”菜单中的“发送”命令时，将文档送回原来的发送者。
.TrackStatus	如果是 1，那么每次文档向前发送一次都向原来的发送者送回一具消息。
.Protect	指定文档的保护级别： 0 (零)    不保护。 1 所有的改动都将作修订标记。 2 接受者可以添加批注。 3 接受者只能在格式域中加入信息。
.Address	您传递文档的接受者的地址。如果您要添加多个接受者，那么必须使用多条 FileRoutingSlip 指令将它们一一加入。如果您正在一个接一个地为接受者传递文档，那么请按照您希望的传递文档顺序添加接受者名称。.
每一条 FileRoutingSlip 指令只能指定下列参数之一。

参数	说明
.AddSlip	为活动文档添加一个传递名单。 注意当您关闭一个带有附加的传递名单的文档时，Word 将显示一条信息询问您是否要传递该文档。如果您想要在一个包含有 DocClose、FileClose、FileCloseAll 或 FileExit 指令的宏中取消这个消息，那么您必须将这些语句的 .Save 参数设置为 1 或 2。Word 会关闭该文档或没有传递的文档。
.RouteDocument	传递活动文档。
.AddRecipient	将 .Address 参数指定的地址添加到接受者列表中。
.OldRecipient	只有当文档还没有被传递时，才将 .Address 参数指定的地址添入到接收者列表之中，当您为一个已传递的文档记录了一次传递名单的修改时，带有 .OldRecipient 参数的 FileRoutingSlip 指令为已经接收到文档的接收者作记录。
.ResetSlip	准备将要重新传递的文档。如果文档还没有完成它的第一次传递，那么Word显示一条信息。
.ClearSlip	从活动文档中删除传递名单。
.ClearRecipients	从接受者列表中删除所有地址。
_____________

请参阅

文档、模板和加载项

FileSendMail


FileSave

FileSave

保存活动文档或模板。如果模板未被命名，FileSave 显示“另存为”对话框（“文件”菜单）。

_____________

请参阅

文档、模板和加载项

FileSaveAll

FileSaveAs

IsDocumentDirty()

IsTemplateDirty()


FileSaveAll

FileSaveAll [Save] [, OriginalFormat]

保存所有的修改过的文件，包括 Normal 模板和任何改动过的打开的文档所选用的模板。如果您的宏对自动图文集词条、其它的宏或键盘、菜单和工具栏对齐方式作了修改，那么最好包含一条 FileSaveAll 语句。

参数	说明
Save	指定如果文档是“脏的”，也就是说从最后一次保存文档或模板以来，它们又被作了修改，那么是否提示用户保存该文档或模板： 0 (零)    提示用户保存每一个作过修改的文档或模板。 1 自动保存所有修改过的文档和模板。
OriginalFormat	指定当保存一个具有外来文件格式而且作过修改但该修改又不能以原始格式加以保存的文档时，是否做出提示： 0 (零)    以 Word 格式保存文档。 1 以其原始格式保存文档。 2 或省略    提示用户以 Word 格式保存文档。
_____________

请参阅

文档、模板和加载项

FileSave

FileSaveAs

IsDocumentDirty()

IsTemplateDirty()


FileSaveAs 示例

本示例以 TEST.RTF 为文件名，以 RTF 格式保存活动文档：

FileSaveAs .Name = "TEST.RTF", .Format = 6


FileSaveAs

示例

FileSaveAs [.Name = text] [, .Format = number] [, .LockAnnot = number] [, .Password = text] [, .AddToMru = number] [, .WritePassword = text] [, .RecommendReadOnly = number] [, .EmbedFonts = number] [, .NativePictureFormat = number] [, .FormsData = number]

用一个新的名字或格式保存活动文档。FileSaveAs 语句的参数对应于“文件”菜单“另存为”对话框中的选项。

参数	说明
.Name	新的名字。如果您不指定 .Name 参数，那么取当前目录和名字为默认值。如果文档从未保存过，Word 以一个默认的名字保存，例如，以 DOC1.DOC 保存文档1，以 DOC2.DOC 保存文档2，依此类推。注意如果具有默认名字的文档已经存在，那么Word将覆盖该文档，而不作任何提示。
.Format	指定新的格式： 0 (零)    Word 文档 1 文档模板 2 纯文本（保存在ANSI字符集中的扩展字符） 3 带分行符的纯文本（保存在ANSI字符集中的扩展字符） 4 MS-DOS 文本 （保存在 IBM PC 字符集中的扩展字符） 5 MS-DOS 带分行符的纯文本（保存在 IBM PC 字符集中的扩展字符） 6 RTF格式 您可以指定其它的文件格式，这些文件格式必须列在 WIN.INI 文件[MSWord 文本转换器] 节中。要指定正确的值，按顺序向下数，从 0 (零)开始，直到您希望的文件格式，然后加上100。
.LockAnnot	如果是 1，那么为批注锁定文档。您也可以通过 ToolsProtectDocument语句锁定文档。
.Password	为打开文档设置口令。
.AddToMru	如果是 1，那么将文档名放在“文件”菜单底部的最近用过的文件列表的首位（注意MRU是“最近使用”的缩写）。
.WritePassword	为保存修改的文档设置口令。
.RecommendReadOnly	如果是 1，那么当打开文档时显示一条信息提示用户文档以只读方式打开。
.EmbedFonts	如果是 1，那么在文档中嵌入TrueType字体。
.NativePictureFormat	如果是 1，那么只保存导入图形的Windows版本。
.FormsData	如果是 1，那么以一个数据记录的格式保存用户输入的数据。注意该格式必须是非保护的，否则 FileSaveAs 将产生错误。
_____________

请参阅

文档、模板和加载项

Converter$()

ConverterLookup()

FileSave

FileSaveAll

Name

ToolsOptionsSave

ToolsProtectDocument


FileSendMail

FileSendMail

为通过 Microsoft Mail 发送活动文档打一个消息窗口。使用带有 .SendMailAttach 参数的 ToolsOptionsGeneral 语句控制文档是以消息窗口中的文本发送还是作为附件发送。

_____________

请参阅

文档、模板和加载项

ToolsOptionsGeneral


FileSummaryInfo 示例

本示例设置活动文档的标题：

FileSummaryInfo .Title = "Exploration of the Upper Amazon."

下一示例用“摘要信息”对话框（“文件”菜单）中“主题”框中的文本定义变量。

Dim dlg As FileSummaryInfo

GetCurValues dlg

subject$ = dlg.Subject


FileSummaryInfo

示例

FileSummaryInfo [.Title = text] [, .Subject = text] [, .Author = text] [, .Keywords = text] [, .Comments = text] [, .FileName = text] [, .Directory = text] [, .Template = text] [, .CreateDate = text] [, .LastSavedDate = text] [, .LastSavedBy = text] [, .RevisionNumber = text] [, .EditTime = text] [, .LastPrintedDate = text] [, .NumPages = text] [, .NumWords = text] [, .NumChars = text] [, .NumParas = text] [, .NumLines = text] [, .Update] [, .FileSize = text]

为活动文档设置摘要信息，并且允许在对话框中访问该信息。FileSummaryInfo 语句的参数对应于“摘要信息”对话框（“文件”菜单）和“统计信息”对话框（“统计信息”按钮）的选项，除了 .EditTime之外，对应于“统计信息”对话框的选项的所有参数都是只读的。

参数	说明
.Title	文档的标题
.Subject	文档的主题
.Author	文档的作者
.Keywords	用于标识文档的关键字
.Comments	关于该文档的备注
.FileName	当使用 FileSummaryInfo 作为一条语句时，本参数指定作摘要信息修改的文件的名字（该文件必须被打开）。当从一个 FileSummaryInfo 对话记录中返回信息时，本参数指定活动文档的文件名（不包括路径）
.Directory	文档的目录位置（只读）
.Template	文档模板（只读）
.CreateDate	创建日期（只读）
.LastSavedDate	最后保存文档的日期（只读）
.LastSavedBy	最后保存文档者的名字（只读）
.RevisionNumber	保存文档的次数（只读）
.EditTime	打开文档的总时间（以分钟为单位）
.LastPrintedDate	最后一次打印该文档的日期（只读）
.NumPages	页的数目（只读）
.NumWords	单词的数目（只读）
.NumChars	字符的数目（只读）
.NumParas	段落的数目（只读）
.NumLines	行的数目（只读）
.Update	更新摘要信息
.FileSize	文档的大小，格式为“36,352字节”
注释

为了保证您能够通过使用 FileSummaryInfo 对话记录返回最新的摘要信息或文档统计信息，请在定义对话记录之前包含语句 FileSummaryInfo .Update 。

_____________

请参阅

文档、模板和加载项

DocumentStatistics


FileTemplates

FileTemplates [.Template = text] [, .LinkStyles = number]

修改与活动文档相关联的模板。如果您想要添加或删除全局模板，那么请使用 AddAddIn, AddInState 和 DeleteAddIn。语句的参数对应于“模板和加载宏”对话框（“文件”菜单，“模板”命令）中的选项。

参数	说明
.Template	要联接的模板的路径和文件名。
.LinkStyles	如果是 1，那么活动文档的样式链接到活动模板上 --- Word 在每次打开文档时都从选用的模板中复制样式。
_____________

请参阅

文档、模板和加载项

AddAddIn

AddInState

DeleteAddIn

FileNew

Organizer


FoundFileName$()

FoundFileName$(Number)

返回在最近一次 FileFind 操作中找到的一个文件的名称。参数 Number 是一个从 1 到 CountFoundFiles()函数的返回值之间的数。如果您想查阅示例，请参阅 FileFind 示例。

_____________

请参阅

文档、模板和加载项

CountFoundFiles()

FileFind


GetAddInID() 示例

本示例显示两条信息之一，具体显示哪一条取决于指定的模板是否当前装入的。

id = GetAddInID("C:\TEMPLATES\MYDOT.DOT")

If id > 0 Then

MsgBox "MYDOT.DOT is global template number" + Str$(id) + "."

Else

MsgBox "MYDOT.DOT is not currently a global template."

End If


GetAddInID()

示例

GetAddInID(AddIn$)

返回一个编号，该编号对应于指定的全局模板或加载项在“模板和加载项”对话框（“文件”菜单，“模板”命令）中的全局模板和加载项列表中的位置： 1 对应于第一个模板或加载项，2对应于第二个，依此类推。如果 AddIn$ is not 不是当前的全局模板或加载项，那么GetAddInID() 返回 0 (零).

参数	说明
AddIn$	全局模板或Word加载项库（WLL）的路径和文件名。
_____________

请参阅

文档、模板和加载项

AddAddIn

AddInState

ClearAddIns

CountAddIns()

DeleteAddIn

GetAddInName$()


GetAddInName$() 示例

本示例在一个消息框中显示一个当前全局模板和加载项的列表：

size = CountAddIns() - 1

Dim GlobalAddIns$(size)

For i = 0 To size

GlobalAddIns$(i) = GetAddInName$(i + 1)

msg$ = msg$ + GlobalAddIns$(i) + Chr$(13)

Next

MsgBox msg$, "Current Global Templates and Add-Ins"


GetAddInName$()

示例

GetAddInName$(AddInID)

返回全局模板或加载项的路径和文件名，该全局模板或加载项在“模板和加载项”对话框（“文件”菜单，“模板”命令）中的全局模板和加载项列表中的位置对应于AddInID: 1 对应于第一个全局模板或加载项，2对应于第二个，依此类推。

_____________

请参阅

文档、模板和加载项

AddAddIn

AddInState

ClearAddIns

CountAddIns()

DeleteAddIn

GetAddInID()


GetDocumentVar$() 示例

此 AutoOpen 宏判定是否存在一个建议者所做的注释，并且如果存在，则显示它：

Sub MAIN

worknote$ = GetDocumentVar$("reminder")

If worknote$ <> "" Then

MsgBox worknote$, "Note from last time"

End If

End Sub


GetDocumentVar$()

示例

GetDocumentVar$(VariableName$)

返回与 VariableName$相关联的字符串，该变量是前边用 SetDocumentVar 语句为活动文档设置的。如果插入点不在一个文档之中---例如，宏编辑窗口处于活动状态---那么将产生错误。

_____________

请参阅

文档、模板和加载项

SetDocumentVar


InsertFile 示例

本示例将 PRICES.DOC 本示例将:

InsertFile .Name = "C:\PRICES\PRICES.DOC"

下一示例将用书签 "sportscars" 作了标记的 PRICES.DOC 那一部分插入到活动文档之中:

InsertFile .Name = "PRICES.DOC", .Range = "sportscars"

下一示例创建一个新的文档，然后为 C:\TMP 目录下带有 .TXT文件扩展名的每个文件插入一个 INCLUDETEXT 域：

FileNewDefault

ChDir "C:\TMP"

name$ = Files$("*.TXT")

While name$ <> ""

InsertFile name$, .Link = 1, .ConfirmConversions = 0

InsertPara

name$ = Files$()

Wend


InsertFile

示例

InsertFile .Name = text [, .Range = text] [, .ConfirmConversions = number] [, .Link = number]

在插入点处将指定文件的全部或部分插入。

参数	说明
.Name	要插入的文件的路径和文件名。如果未指定路径，则当前路径有效。
.Range	如果 .Name 指定的文件是一个Word文档，那么 .Range 就是一个书签。如果该文件是一个其它类型的文件（例如，是一个 Microsoft Excel 工作表），那么 .Range 就指一个命名的范围或单元格范围（例如，R1C1:R3C4）。如果Word不能识别 .Range，那么将产生错误。
.ConfirmConversions	指定当以不同于 Word 的格式插入文件时，Word 是否显示“转换文件”对话框。
.Link	如果是 1，那么插入一个 INCLUDETEXT 域而不是文件本身的内容。
_____________

请参阅

文档、模板和加载项

InsertDatabase

InsertField


Name 示例

本示例使用 ChDir 设置当前目录，然后将那个目录中的文件 COGS.DOC 重命名为 COGS88.DOC 。如果没有 ChDir 指令在前边执行，那么 Name 指令就必须为每个文件名指定完整的路径。

ChDir "C:\MYDOCS\MEMOS\JULY"

Name "COGS.DOC" As "COGS88.DOC"

下一示例将文件 COGS.DOC 移到另一个目录之中，并且保持该文件名不变。

Name "C:\TMP\COGS.DOC" As "C:\DOCS\COGS.DOC"


Name

示例

Name OldName$ As NewName$

重命名或移动一个文件。如果您不用 OldName$ 和 NewName$ 参数包含路径，那么 Name 使用当前目录作为路径---“打开”对话框（“文件”菜单）中选择的目录。为参数 NewName$包含一个不同的路径，您就可以将一个文件移动一个不同的目录中。您不能用 Name 移动目录或将一个文件移到另一个驱动器上。

参数	说明
OldName$	文件以前的名字。如果由 OldName$ 参数指定的文件不存在或已经打开，那么将产生错误。
NewName$	文件的新名字。如果由 NewName$ 参数指定的文件已经存在，那么将产生错误。
参数 OldName$ 和 NewName$ 不接受通配符—星号 --- t星号 (*) 和问号 (?)。

_____________

请参阅

文档、模板和加载项

ChDir

CopyFile

FileSaveAs

Kill

MkDir

RmDir


Organizer 示例

本示例从活动模板中复制自动图文集词条到 Normal 模板中。首先，活动模板的名字从“模板和加载项”对话框（“文件”菜单，“模板”命令）中取得。如果文本框空着，意即活动文档是一个模板，那么模板的文件名从“统计信息”对话框（“文件”菜单，“模板”命令，“摘要信息”按钮）中取得。然后，保存在活动模板中的自动图文集词条的编号将被返回。最后，使用一个 For...Next 循环，Organizer 指令为每一条自动图文集词条作一次重复操作。

Sub MAIN

Dim dlg As FileTemplates

GetCurValues dlg

template$ = dlg.Template

If template$ = "" Then

Redim dlg As DocumentStatistics

GetCurValues dlg

template$ = dlg.Directory + "\" + dlg.FileName

End If

MsgBox template$

num = CountAutoTextEntries(1)

If num = 0 Then Goto bye

For count = 1 To num

Organizer .Copy, .Source = template$, \

.Destination = "C:\WINWORD\TEMPLATE\NORMAL.DOT", \

.Name = AutoTextName$(count, 1), .Tab = 1

Next count

bye:

End Sub


Organizer

示例

Organizer [.Copy, ] [.Delete, ] [.Rename, ] [.Source = text, ] [.Destination = text, ] .Name = text [, .NewName = text] [, .Tab = number]

删除或重命名样式、自动图文集词条、工具栏和宏，并且在模板之间复制这些元素。Organizer 语句的参数对应于“管理器”对话框（“文件”菜单，“宏”命令）中的选项。

参数	说明
.Copy	从源到目的点复制指定内容。
.Delete	从源中删除指定内容。
.Rename	重命名源中的指定内容。
.Source	包含您想要复制、删除或重命名内容的文档或模板的文件名。其中可以包括路径。
.Destination	您想要将内容复制到的文档或模板的文件名。其中可以包括路径。
.Name	您想要复制，删除或重命名的样式、自动图文集词条、工具栏或宏的名称。
.NewName	指定内容的新的名称，与参数 .Rename共同使用。
.Tab	您想要复制、删除或重命名内容的种类： 0 (零)    样式 1 自动图文集 2 工具栏 3 宏 在您用 Dialog 和 Dialog() 函数显示对话框时，您也可以用这些值指定选择哪一个表。
注释

当您用 Organizer 对一个未打开的文件作出修改时，Word在后台打开该文件，保存修改，然后关闭该文件。如果您需要对该文件作出很大的改动，那么如果您先打开文件，再执行 Organizer 指令，然后用 FileClose 1 指令关闭该文件并保存修正，那么将是比较快的。

_____________

请参阅

文档、模板和加载项

EditAutoText

FileTemplates

FormatStyle

NewToolbar

ToolsMacro


SaveTemplate

SaveTemplate

如果活动模板不是 Normal 模板，那么保存对活动模板的修改。如果您的宏包含对一些内容的修改，例如，对非 Normal 模板的自动图文集词条或键盘，工具栏和菜单对齐方式的修改，那么最好包含一条 SaveTemplate 指令保存改动。如果您要保存对所有文档和模板的修改，包括对 Normal 模板的修改，那么请使用在保存的修改之前不请求确认。您可以在运行之前使用 FileSaveAll。

SaveTemplate 不要求在保存前进行确认。您可以在运行 SaveTemplate 前使用 MsgBox() 确认要保存的修改。

_____________

请参阅

文档、模板和加载项

FileSave

FileSaveAll


SetDocumentVar 示例

本示例在关闭提醒注释之前提示用户将该提醒注释与文档共同保存。如果该宏被命名为 FileClose，那么它将在每次用户选择“文件”菜单中的“关闭”命令时运行（ FileClose 指令运行内部命令）。

指令 On Error Goto CloseNow 用来保证如果用户在取消 InputBox$() 对话框时，不会显示出 WordBasic 错误信息。指令 Err = 0 和 On Error Resume Next 重新设置错误处理并保证如果用户取消了保存修改的提示时不会显示错误。

On Error Goto CloseNow

worknote$ = InputBox$("Type a note for next time:")

SetDocumentVar "reminder", worknote$

CloseNow:

Err = 0

On Error Resume Next

FileClose

如果您想查阅 AutoOpen 宏（该宏在每次打开文档时显示最近的提示信息）的示例，请参阅 GetDocumentVar$() 示例。


SetDocumentVar, SetDocumentVar()

示例

SetDocumentVar VariableName$, VariableText$

SetDocumentVar(VariableName$, VariableText$)

SetDocumentVar 语句将字符串 VariableText$ 与活动文档相关联。您可以将参数 VariableName$ 与 GetDocumentVar$() 函数共同使用，用来返回当文档是活动的时相关联的字符串。该变量和文档一起保存。您可以为单个文档设置多个文档变量。如果插入点不在一个文档内部---例如，如果宏编辑窗口是活动的---那么将产生错误。

SetDocumentVar() 函数与该语句作同样的操作，并且如果变量被成功设置也返回-1。

_____________

请参阅

文档、模板和加载项

GetDocumentVar$()


ToolsOptionsFileLocations 示例

本示例将文档的默认目录设为 C:\MYDOCS:

ToolsOptionsFileLocations .Path = "DOC-PATH", \

.Setting = "C:\MYDOCS"


ToolsOptionsFileLocations

示例

ToolsOptionsFileLocations .Path = text , .Setting = text

设置默认目录。语句ToolsOptionsFileLocations 的参数对应于“选项”对话框（“工具菜单）“文件位置”选项卡上的选项。新的设置立刻生效。

参数	说明
.Path	WINWORD6.INI 文件的 [Microsoft Word] 节中下列行之一（使用此文本）： DOC-PATH PICTURE-PATH USER-DOT-PATH WORKGROUP-DOT-PATH INI-PATH AUTOSAVE-PATH TOOLS-PATH CBT-PATH STARTUP-PATH
.Setting	默认目录的路径或一个空串 ("") 用来从 WINWORD6.INI中删除该行。
_____________

请参阅

文档、模板和加载项

SetPrivateProfileString


EditFind 示例

本示例查找带有单下划线格式编排的“Trey Research”的下一个实例：

EditFindClearFormatting	'Clear leftover formats

EditFindFont .Underline = 1

EditFind .Find = "Trey Research", .Direction = 0, \

.WholeWord = 0, .MatchCase = 0, .Format = 1

下一个示例将字符串“Tip: ”插在每个 Heading 6 段落的开始处。语句 StartOfDocument 和 While EditFindFound() 是任何在每次找到指定项目后重复一系列操作的宏的关键所在。

StartOfDocument

EditFindClearFormatting

EditFindStyle .Style = "Heading 6"

EditFind .Find = "", .Direction = 0, .Format = 1, .Wrap = 0

While EditFindFound()

StartOfLine

Insert "Tip: "

EditFindStyle .Style = "Heading 6"

EditFind .Find = "", .Direction = 0, .Format = 1, .Wrap = 0

Wend


EditFind

示例

EditFind [.Find = text] [, .Direction = number] [, .WholeWord = number] [, .MatchCase = number] [, .PatternMatch = number] [, .SoundsLike = number] [, .Format = number] [, .Wrap = number]

查找指定文本，格式编排或指定文本的特定格式编排的下一个实例。 EditFind 语句的参数对应于“查找”对话框（“编辑”菜单）中的选项。用于 While...Wend 循环之中。 EditFind 非常适用于当您每次在文档中查找到某一文本或格式编排时需要重复做一系列操作的情况。 WordBasic “帮助”中的许多示例倒都说明了 EditFind 的这一一般用法。

参数	解释
.Find	要待查找的文本，在仅用作格式编排查找时为一个空字符串 ("") 。可以查找特殊字符，例如段落标记，这样做必须确定正确的字符代码。例如， "^p" 对应于段落标记， "^t" 对应于制表符。如果需要了解特殊字符的完整列表，请参阅使用键盘代码来查找及替换特殊字符。 如果 .PatternMatch 设置为 1，可以指定通配符和其他高级搜索条件。例如，用 "*(ing)" 查找所有以 "ing" 为结尾的字。有关详细信息，请参阅高级搜索条件。 要搜索符号字符，将符号的 ANSI 值跟在脱字符 (^) 和一个“0”之后。例如， "^0151" 对应于长划线 ( --- ) 。有关符号及其 ANSI 值的表格，请参阅 Microsoft Word 用户指南 的附录 A “字符集”。
.Direction	搜索方向： 0 向文档结尾搜索。 1 向文档开头搜索。 默认值是上次搜索方向。如果是第一次执行“查找”或“替换”命令，则默认值是 0。
.WholeWord	如果是 1，对应于选定“全字匹配”复选框。
.MatchCase	如果是 1，对应于选定“区分大小写”复选框。
.PatternMatch	如果是 1，Word 将 .Find 当作含有高级搜索条件符号，如星号 (*) 和问号 (?) 等通配符的字符串（对应于选定“模式匹配”复选框）。
.SoundsLike	如果是 1，对应于选定“同音字”复选框。
.Format	查找带格式的文本或者是忽略格式的文本。 0 忽略格式 1 使用 EditFindFont，EditFindLang，EditFindPara 或 EditFindStyle 指定的格式。
.Wrap	控制如果搜索起始点不是文档开头并且搜索到文档结尾时应如何处理。（反之，如果 .Direction 设置为 1，则控制搜索起始点不在文档结尾并且搜索到文档开头时应如何处理）。 .Wrap 参数也控制如果存在选定范围，而搜索文本在选定范围中末找到时如何处理。 0 或省略    搜索操作结束且宏继续进行。 1 如果存在选定范围，Word 搜索文档的剩余部分。如果遇到文档开头或结尾，Word 继续从另一头开始搜索。 2 如果存在选定范围，Word 显示信息询问是否继续搜索文档的剩余部分。如果遇到文档开头或结尾，Word 显示信息询问是否继续从另一头开始搜索。
EditFind 语句本身并末指定格式编排，为此在进行 EditFind 操作之前，必须有一条或多条 EditFindFont，EditFindLang，EditFindPara 和 EditFindStyle 语句。然后，在 EditFind 语句中，将 .Format 设置为 1。

这里是一些如何高效使用 EditFind 的小窍门：

EditFind 保存任何最近查找替换操作用到的设置。例如，如果最近一次查找操作中，“查找”对话框中的“全字匹配”复选框被选中（或者是参数 .WholeWord 设置为 1），那么 .WholeWord 在新的查找操作中将仍被设置为 1，除非您明确地将它设为 0。在一次查找操作开始之前，必须保证正确设置那些会影响查找结果的选项。

当您要搜索格式时，最好将 EditFindClearFormatting 语句包含在确定要找的格式的语句之前。那样做可以清除由前次查找或替换操作所遗留下的任何格式。

如果您用 While...Wend 循环在文档中查找文本或格式，当每找一次需要重复一次操作时，请记住将 StartOfDocument 用在第一个 EditFind 指令之前。您应该省略 .Wrap 参数或者将它设置为 0。如果您把 .Wrap 设置为 1，那么您可能会陷入在循环中。如果您将 .Wrap 设置为 2，Word 会显示提示信息询问您是否要从文档开头开始继续查找，您必须选择“否”来终止循环，继续宏的其他操作。

_____________

请参阅

查找和替换

EditFindClearFormatting

EditFindFont

EditFindFound()

EditFindLang

EditFindPara

EditFindStyle

EditReplace


EditFindClearFormatting 示例

本示例中的 EditFindClearFormatting 语句确保格式只能指定为粗体和斜体：

EditFindClearFormatting

EditFindFont .Bold = 1, .Italic = 1

EditFind .Find = "", .Format = 1


EditFindClearFormatting

示例

EditFindClearFormatting

清除任何为待查找文本所设定的格式。在用 EditFindFont，EditFindPara 等语句确定格式之前，最好包含 EditFindClearFormatting 语句以确保任何不希望的格式没有被包含进来。

_____________

请参阅

查找和替换

EditFind

EditFindFont

EditFindLang

EditFindPara

EditFindStyle

EditReplace

EditReplaceClearFormatting


EditFindFont 示例

本示例用来查找任何粗体文本：

EditFindClearFormatting

EditFindFont .Bold = 1

EditFind .Find = "", .Format = 1

下面的示例用来查找不是粗体的词“Note”：

EditFindClearFormatting

EditFindFont .Bold = 0

EditFind .Find = "Note", .Format = 1

下面的例子用来查找单词“Note”，无论它是否是粗体。一般地说，您可以用 EditFindClearFormatting 语句删除由一次搜索操作所设定的格式编排。您可以用指令 EditFindFont .Bold = -1 ，删除已设定的粗体格式而不影响前面设定的其他搜索格式。

EditFindFont .Bold = -1

EditFind .Find = "Note", .Format = 1


EditFindFont

示例

EditFindFont [.Points = number] [, .Underline = number] [, .Color = number] [, .Strikethrough = number] [, .Superscript = number] [, .Subscript = number] [, .Hidden = number] [, .SmallCaps = number] [, .AllCaps = number] [, .Spacing = number] [, .Position = number or text] [, .Kerning = number] [, .KerningMin = number or text] [, .Default] [, .Tab = number] [, .Font = text] [, .Bold = number] [, .Italic = number]

本语句放在带有参数 .Format = 1 的 EditFind 或 EditReplace 指令之前时，它用来指定要查找的文本的字符格式。您可以将参数 .Strikethrough，.Superscript，.Subscript，.Hidden，.SmallCaps，.AllCaps ，.Kerning，.Bold 和 .Italic 设置为下列三个值之一。

使用的值	执行
-1	查找文本而不考虑它是否有该格式
0 (zero)	查找那些不具有该格式的文本
1	查找那些具有该格式的文本
有关参数的详细信息，请参阅 FormatFont。

_____________

请参阅

查找和替换

EditFind

EditFindClearFormatting

EditFindLang

EditFindPara

EditFindStyle

EditReplace

EditReplaceFont

FormatFont


EditFindFound() 示例

这个宏统计单词“pillbox”在文档中出现的次数，并将统计结果显示于一个消息方框之中。 EditFindFound() 函数经常与 While...Wend 循环联合使用以实现每当一个指定文本或格式被找到时所要重复执行的一系列指令。

Sub MAIN

count = 0

StartOfDocument

EditFind .Find = "pillbox", .WholeWord = 1, .Format = 0, .Wrap = 0

While EditFindFound()

count = count + 1

EditFind

Wend

MsgBox "The word " + Chr$(34) + "pillbox" + Chr$(34) + \

" was found" + Str$(count) + " times."

End Sub


EditFindFound()

示例

EditFindFound()

返回一个数值，以指示最近的一次 EditFind 操作是否成功。

数值	解释
-1	查找操作成功。
0 (zero)	查找操作失败。
_____________

请参阅

查找和替换

EditFind

EditReplace

While...Wend


EditFindLang 示例

本示例将所有德语词汇设为斜体格式。注意指令 EditReplaceLang .Language = "Deutsch" 用来保存查找到的文本的语言格式。

EditFindClearFormatting

EditReplaceClearFormatting

EditFindLang .Language = "Deutsch"

EditReplaceLang .Language = "Deutsch"

EditReplaceFont .Italic = 1

EditReplace .Find = "", .Replace = "", .Format = 1, \

.ReplaceAll, .Wrap = 1


EditFindLang

示例

EditFindLang .Language = text

本语句放在带有 .Format 设为 1 的参数的 EditFind 或 EditReplace 之前时，用来指定要查找的文本的语言格式。尽管“语言”命令（“工具”菜单）列出了各种语言名字的英文格式，但是用在 .Language 的文本必须用特定的语言格式并且包含口音字符（例如： Italian 必须写作“Italiano”，而 French 必须写作“Fran鏰is”）。有关各种外语名称列表，请参阅 ToolsLanguage。

_____________

请参阅

查找和替换

EditFind

EditFindFont

EditFindPara

EditFindStyle

EditReplace

EditReplaceLang

Language

ToolsLanguage


EditFindPara

EditFindPara [.LeftIndent = number or text] [, .RightIndent = number or text] [, .Before = number or text] [, .After = number or text] [, .LineSpacingRule = number] [, .LineSpacing = number or text] [, .Alignment = number] [, .WidowControl = number] [, .KeepWithNext = number] [, .KeepTogether = number] [, .PageBreak = number] [, .NoLineNum = number] [, .DontHyphen = number] [, .Tab = number] [, .FirstIndent = number or text]

本语句放在带有 .Format 设为 1 的参数的 EditFind 或 EditReplace 语句之前时，用来设定您想要查找的段落格式。您可以将参数 .WidowControl， .KeepWithNext， .KeepTogether， .PageBreak， .NoLineNum 和 .DontHyphen 设为以下三个值之一。

使用的值	执行
-1	查找文本，忽略它的格式
0 (zero)	查找不含格式的文本
1	查找含格式的文本
有关参数的详细信息，请参阅 FormatParagraph 。有关示例，请参阅 EditReplacePara 示例。

_____________

请参阅

查找和替换

EditFind

EditFindFont

EditFindLang

EditFindStyle

EditReplace

EditReplacePara

FormatParagraph


EditFindStyle 示例

本示例查找并选择以“Heading 2”样式为格式的下一个段落：

EditFindClearFormatting

EditFindStyle .Style = "Heading 2"

EditFind .Find = "", .Format = 1

下边的示例在任意样式的段落中查找单词“catnip”的下一个实例。一般来说，您可以用 EditFindClearFormatting 删除在一次搜索操作中所设定的格式。用指令 EditFindStyle .Style = "" 删除已指定的样式而不影响上一次指定的其他搜索样式。

EditFindStyle .Style = ""

EditFind .Find = "catnip", .Format = 1


EditFindStyle

示例

EditFindStyle .Style = text

本语句放在带有 .Format 设为 1 的参数的 EditFind 或 EditReplace 之前时，用来设定要查找的文本的样式。如果设定的样式在活动文档中不存在，或者以大写字母开头的字符串与实际的样式名称不相匹配，将会导致错误。

参数	解释
.Style	您想要查找的样式名称；要想将以前设定的样式删除，可以使用空字符串 ("").
_____________

请参阅

查找和替换

EditFind

EditFindFont

EditFindLang

EditFindPara

EditReplace

EditReplaceStyle

FormatStyle


EditReplace 示例

本例找出文档中所有带下划线的文本，并将下划线格式替换成斜体格式。注意指令 .Wrap = 1意味着不需要用 StartOfDocument 语句，在插入点之前或之后找到的匹配项都会被替换。

EditFindClearFormatting

EditReplaceClearFormatting

EditFindFont .Underline = 1

EditReplaceFont .Italic = 1, .Underline = 0

EditReplace .Find = "", .Replace = "", .Format = 1, \

.ReplaceAll, .Wrap = 1


EditReplace

示例

EditReplace [.Find = text] [, .Replace = text] [, .Direction = number] [, .MatchCase = number] [, .WholeWord = number] [, .PatternMatch = number] [, .SoundsLike = number] [, .FindNext] [, .ReplaceOne] [, .ReplaceAll] [, .Format = number] [, .Wrap = number]

用不同的文本或格式替换一个或所有的带某种文本或格式（或两者兼而有之）的匹配项。如果设定了选定范围，并且 .Wrap 参数省略或设置为 0，那么 .Find 参数所设定的文本内容只在选定范围中被替换。 EditReplace 语句的参数对应于“替换”对话框（“编辑”菜单）中的选项。

参数	解释
.Find	要查找的文本，如果只想对格式进行搜索，则该参数设为空字符串 ("") 。您可以搜索特殊字符，例如段落标记等，要达到这一目的，必须设定正确的字符代码。例如， "^p" 对应于段落标记， "^t" 对应于制表符。有关特殊字符的完整列表，请参阅使用键盘代码来查找及替换特殊字符。 如果参数 .PatternMatch 设为 1，那么您可以使用通配字符或者其他高级搜索条件。例如，用 "*(ing)" 查找任何以 "ing" 结尾的单词。有关详细信息，请参阅高级搜索条件。 将符号的 ANSI 值跟在脱字符 (^) 和一个零 (0) 之后。例如， "^0151" 对应于长划线 ( --- ) 。有关符号及其 ANSI 值的表格，请参阅 Microsoft Word 用户指南 的附录 A “字符集”。
.Replace	要替换的文本，若用于删除 .Find 指定的文本则为空字符串 ("") 。您也可以象在 .Find 中的那样使用特殊字符和高级搜索条件。 要想指定图形或其他非文本项目作为替换项时，先把这些项目放入剪贴板中，然后 将 .Replace 设为 "^c" 。
.Direction	搜索方向： 0 向文档结尾搜索。 1 向文档开头搜索。 默认值是上一次的搜索方向，如果是第一次使用“查找”或“替换”命令则该参数被设为 0。
.MatchCase	如果是 1，相当于选中了“区分大小写”复选框。
.WholeWord	如果是 1，相当于选中了“全字匹配”复选框。
.PatternMatch	如果是 1，Word 将认为 .Find 是一含有高级搜索条件的字符串，例如，含有星号 (*) 和问号 (?) 等通配字符（相当于选中“模式匹配”复选框）。
.SoundsLike	如果是 1，相当于选中“同音字”复选框。
.FindNext	查找 .Find 设定的文本的下一个匹配项。
.ReplaceOne	替换 .Find 设定的第一个文本的匹配项。
.ReplaceAll	替换 .Find 设定的所有文本的匹配项。
.Format	查找和替换带格式的文本或只查找和替换格式： 0 忽略格式。 1 使用指定的格式。
.Wrap	控制如果查找起始点不在文档开头并且查找到文档结尾时应如何处理（反之，如果 .Direction 设置为 �1，则控制查找起始点不在文档结尾并且查找到文档开头时应如何处理）。 .Wrap 参数也控制如果存在选定范围，而在选定范围中末找到要查找文本时如何处理。 0 替换操作结束，宏继续进行。 1 如果存在选定范围，Word 查找文档的剩余部分。如果遇到文档开头或文档结尾，Word 继续从另一头开始查找。 2 如果存在选定范围，Word 显示信息询问是否继续查找文档的剩余部分。如果遇到文档的开头或结尾，Word 显示信息询问是否继续从另一头开始查找。
EditReplace 指令本身并不指定格式，为此在进行 EditReplace 操作之前，必须有一条或多条下列语句： EditFindFont，EditFindLang，EditFindPara，EditFindStyle，EditReplaceFont，EditReplaceLang，EditReplacePara 或 EditReplaceStyle 语句。然后将 EditReplace 指令的参数设置为 1。

这里是一些如何高效地使用 EditReplace 的小窍门：

EditReplace 保留最近一次查找或替换操作的全部设置。例如，在最近一次替换操作中如果“替换”对话框中的“全字匹配”复选框被选中（或者是 .WholeWord 参数设置为 1），那么在新的一次替换操作中 .WholeWord 参数将自动设置为 1。除非您明确地将它设为 0。在一次替换操作之前，必须保证正确设置那些会影响替换操作结果的选项。

当您要搜索并替换格式时，最好将 EditFindClearFormatting 和 EditReplaceClearFormatting 语句包含在确定要找的格式语句之前，这样，您可以消除所有上一次查找或替换操作所遗留下来的任何格式。

_____________

请参阅

查找和替换

EditFind

EditReplaceClearFormatting

EditReplaceFont

EditReplaceLang

EditReplacePara

EditReplaceStyle


EditReplaceClearFormatting

EditReplaceClearFormatting

清除所有为替换文本所设定的格式。在用 EditReplaceFont，EditReplacePara 等语句设定替换格式时，最好将 EditReplaceClearFormatting 语句包含进来以确保没有任何不希望的格式被包含在替换的格式中。有关示例，请参阅 EditReplace 示例。

_____________

请参阅

查找和替换

EditFindClearFormatting

EditReplace

EditReplaceFont

EditReplaceLang

EditReplacePara

EditReplaceStyle


EditReplaceFont

EditReplaceFont [.Points = number] [, .Underline = number] [, .Color = number] [, .Strikethrough = number] [, .Superscript = number] [, .Subscript = number] [, .Hidden = number] [, .SmallCaps = number] [, .AllCaps = number] [, .Spacing = number] [, .Position = number or text] [, .Kerning = number] [, .KerningMin = number or text] [, .Default] [, .Tab = number] [, .Font = text] [, .Bold = number] [, .Italic = number]

本语句后跟参数 .Format 设为 1 的 EditReplace 指令时，该语句指定替换文本的字符格式，您可以将 .Strikethrough，.Superscript，.Subscript， .Hidden，.SmallCaps，.AllCaps，.Kerning，.Bold 和 .Italic ，设置为以下三个数值之一。

使用的值	执行
-1	保持所找到文本中给定的格式
0 (zero)	从所找到的文本中删除格式
1	对所找到的文本应用所给格式
有关参数的详细信息，请参阅 FormatFont 。有关示例，请参阅 EditFindLang 示例。

_____________

请参阅

查找和替换

EditFindFont

EditReplace

EditReplaceClearFormatting

EditReplaceLang

EditReplacePara

EditReplaceStyle


EditReplaceLang

EditReplaceLang .Language = text

若该语句后跟参数 .Format 设置为 1的 EditReplace 指令，则用于指定替换文本的语言格式。尽管“工具”菜单的“语言”命令中以英文形式列出了各种语言的名字，参数 .Language 的值必须是该特定语言的形式并且包含任何口音字符（例如， Italian 必须写作“Italiano”，而 French 必须写作“Fran鏰is”）。有关各种外语名称列表，请参阅 ToolsLanguage。

有关示例，请参阅 EditFindLang 示例。

_____________

请参阅

查找和替换

EditFindLang

EditReplace

EditReplaceClearFormatting

EditReplaceFont

EditReplacePara

EditReplaceStyle

ToolsLanguage


EditReplacePara 示例

该示例将当前具有 1 英寸左缩进的活动文档的所有段落改为 2 英寸左缩进：

StartOfDocument

EditFindClearFormatting

EditReplaceClearFormatting

EditFindPara .LeftIndent = "1 in"

EditReplacePara .LeftIndent = "2 in"

EditReplace .Find = "", .Replace = "", .ReplaceAll, \

.Format = 1, .Wrap = 0


EditReplacePara

示例

EditReplacePara [.LeftIndent = number or text] [, .RightIndent = number or text] [, .Before = number or text] [, .After = number or text] [, .LineSpacingRule = number] [, .LineSpacing = number or text] [, .Alignment = number] [, .WidowControl = number] [, .KeepWithNext = number] [, .KeepTogether = number] [, .PageBreak = number] [, .NoLineNum = number] [, .DontHyphen = number] [, .Tab = number] [, .FirstIndent = number or text]

当后面跟有参数 .Format 设置为 1 的 EditReplace i指令时，本语句指定替换文本的段落格式。您可以将参数 .WidowControl，.KeepWithNext， .KeepTogether，.PageBreak，.NoLineNum 和 .DontHyphen 设置为以下三个数值之一。

使用的值	执行
-1	保持找到的文本所给格式的状态
0 (zero)	删除找到的文本所给格式
1	将所给格式应用于找到的文本
有关参数的详细信息，请参阅 FormatParagraph。

_____________

请参阅

查找和替换

EditFindPara

EditReplace

EditReplaceClearFormatting

EditReplaceFont

EditReplaceLang

EditReplaceStyle

FormatParagraph


EditReplaceStyle 示例

本示例将所有“Heading 4”样式的段落改为“Heading 3”样式的段落：

StartOfDocument

EditFindClearFormatting

EditReplaceClearFormatting

EditFindStyle .Style = "Heading 4"

EditReplaceStyle .Style = "Heading 3"

EditReplace .Find = "", .Replace = "", .ReplaceAll, \

.Format = 1, .Wrap = 0


EditReplaceStyle

示例

EditReplaceStyle .Style = text

当后跟参数 .Format 设置为 1 的 EditReplace 指令时，本语句指定替换文本的样式。如果在活动文档中不存在所指样式或大写字母开头的名字与实际样式名不匹配，将会产生错误。

参数	解释
.Style	表示替换文本的样式名称。若想从替换格式中删除一个样式，则使用空字符串 ("")。
_____________

请参阅

查找和替换

EditFindStyle

EditReplace

EditReplaceClearFormatting

EditReplaceFont

EditReplaceLang

EditReplacePara

FormatStyle


RepeatFind 示例

本示例统计活动文档中单词“success”出现的次数并在消息框中显示结果：

StartOfDocument

EditFind .Find = "success", .Direction = 0, .WholeWord = 1, \

.MatchCase = 0, .Format = 0, .Wrap = 0

While EditFindFound()

count = count + 1

RepeatFind

Wend

MsgBox "The word " + Chr$(34) + "success" + Chr$(34) \

+ " occurs" + Str$(Count) + " times."


RepeatFind

示例

RepeatFind

重复最近一次的 EditFind 或 EditGoTo 操作。注意当重复 EditFind 命令时，对 .Direction， .WholeWord， .MatchCase， .PatternMatch， .Format 和 .Wrap 的设置都将重复。

_____________

请参阅

查找和替换

EditFind

EditGoTo

EditRepeat


AnnotationRefFromSel$() 示例

本示例移至下一个批注标记处，并设置变量 mark$ 为批注标记内的字符：

EditGoTo "a"

mark$ = AnnotationRefFromSel$()


AnnotationRefFromSel$()

示例

AnnotationRefFromSel$()

返回与插入点有关的批注标记或选定内容的起始位置。插入点的位置必须在文档窗口中紧邻某一批注标记的前面或在批注区的某一批注内；否则返回字符“［0］”。

注意，因为 Word 把整个批注标记作为一个单独的符号，所以您不能用 Selection$() 函数返回该字符。

_____________

请参阅

脚注、尾注和批注：语句和函数

EditGoTo

GoToAnnotationScope

GoToNextItem

GoToPreviousItem

ShowAnnotationBy


EditConvertAllEndnotes 示例

本示例把所有尾注转换为脚注。如果产生 WordBasic 错误 509 ("This command is not available") ，则错误句柄显示消息"No endnotes to convert" 而不是标准 WordBasic 错误信息。其他错误情况产生标准消息。

On Error Goto trap

EditConvertAllEndnotes

trap:

Select Case Err

Case 509 : MsgBox "No endnotes to convert."

Case Else : Error Err

End Select


EditConvertAllEndnotes

示例

EditConvertAllEndnotes

把活动文档中的所有尾注转换为脚注。如果没有尾注则出错。

_____________

请参阅

脚注、尾注和批注：语句和函数

EditConvertAllFootnotes

EditConvertNotes

EditSwapAllNotes


EditConvertAllFootnotes

EditConvertAllFootnotes

把活动文档中的所有脚注转换为尾注。如果没有脚注则出错。使用类似语句的示例，请参阅 EditConvertAllEndnotes 示例.

_____________

请参阅

脚注、尾注和批注：语句和函数

EditConvertAllEndnotes

EditConvertNotes

EditSwapAllNotes


EditConvertNotes

EditConvertNotes

把选中的脚注转换为尾注，或进行相反操作。若插入点或选定内容不在脚注或尾注区，或者如果在该区中没有注释，则出错。

_____________

请参阅

脚注、尾注和批注：语句和函数

EditConvertAllEndnotes

EditConvertAllFootnotes

EditSwapAllNotes


EditSwapAllNotes

EditSwapAllNotes

把文档中所有脚注转换为尾注，所有尾注转换为脚注。插入点既可在文档窗口也可在脚注或尾注区。如果没有脚注或尾注，则出错。

_____________

请参阅

脚注、尾注和批注：语句和函数

EditConvertAllEndnotes

EditConvertAllFootnotes

EditConvertNotes


GoToAnnotationScope 示例

本示例把与包含插入点的批注相关的文档文本拷贝到剪贴板。第一条 If 指令确定批注区是否打开，插入点是否在其中。 GoToAnnotationScope e选中相关文档文本。第二条 If 指令确定在运行 EditCopy 之前文档文本是否选中。

If ViewAnnotations() = -1 And WindowPane() = 3 Then

GoToAnnotationScope

If SelType() = 2 Then

EditCopy

Else

MsgBox "No text to select."

End If

OtherPane

Else

MsgBox "Please place the insertion point in an annotation."

End If


GoToAnnotationScope

示例

GoToAnnotationScope

选定与包含插入点的批注相关的某一范围的文档文本。如果插入点不在批注区的某一批注内，则出错。

批注的范围是指在插入批注标记时所选定的文本。当插入点在批注区的批注内时，这个文本带底纹出现。如果在插入批注时没有选定文本，则 GoToAnnotationScope 把插入点移至文档文本中紧邻批注标记之前的位置。

_____________

请参阅

脚注、尾注和批注：语句和函数

GoToNextItem

GoToPreviousItem

OtherPane

ViewAnnotations()

WindowPane()


InsertAnnotation

InsertAnnotation

在插入点处插入一个批注标记，打开批注区，并把插入点放在批注区。如果选定了文本，则批注标记插在选定文本的后面。当插入点在批注区的相关批注内时，该选定文本带底纹出现。如果文档窗口太小以至不能显示批注区，则出错。

_____________

请参阅

脚注、尾注和批注：语句和函数

GoToAnnotationScope

InsertFootnote

ShowAnnotationBy

ViewAnnotations


InsertFootnote 示例

本示例在插入点处插入一个自动编号的脚注引用标记，插入一个脚注并关闭脚注区：

InsertFootnote .NoteType = 0

Insert "Sara Levine, "

Italic 1 : Insert "The Willow Tree"

Italic 0 : Insert " (Lone Creek Press, 1993)."

ClosePane


InsertFootnote

示例

InsertFootnote [.Reference = text] [, .NoteType = number]

在插入点处插入一个脚注或尾注引用标记，打开脚注或尾注区，并将插入点放在该区内。 InsertFootnote 语句中的参数对应“脚注和尾注”对话框（脚注”命令，“插入”菜单）中的选项。

参数	说明

.Reference	一个自定义引用标记。如果省略，则 Word 插入一个自动标号的引用标记

要指定一个符号，可使用语法 {FontName CharNum}. FontName 是包含该符号的字体的名称。装饰字体的名称出现在“符号”对话框中的“字体”框中。（“插入”菜单）。 CharNum 是对应插入符号位置的数值与 31 的和，该位置在符号表中从左到右数。您也可以在《Microsoft Word 用户指南》的附录 A “字符集”中查找字符代码。比如，要在 Symbol 字体符号表的位置 56 处指定一个 omega (Ω) 。Reference = "{Symbol 87}"。

.NoteType	指明插入脚注或尾注：

0          脚注

1            尾注

省略    最近插入的类型

_____________

请参阅

脚注、尾注和批注：语句和函数

InsertAnnotation

NoteOptions

ViewFootnoteArea

ViewFootnotes


NoteOptions 示例

本示例在使用 “A,B,C” 格式并以“A”开头的文本下放置脚注;每开始一个新节，脚注重新编号：

NoteOptions .FootnotesAt = 1, .FootNumberAs = 2, \

.FootStartingNum = "1", .FootRestartNum = 1


NoteOptions

示例

NoteOptions [.FootnotesAt = number] [, .FootNumberAs = number] [, .FootStartingNum = text] [, .FootRestartNum = number] [, .EndnotesAt = number] [, .EndNumberAs = number] [, .EndStartingNum = text] [, .EndRestartNum = number]

指定脚注和尾注的位置和格式。 NoteOptions 语句对应“附注选项”对话框（“脚注”命令，“插入”菜单）中的选项。

参数	说明

.FootnotesAt	指定在何处放置脚注：

0	页面底端

1	文本下方

.FootNumberAs	指定脚注引用标记的格式：

0	1, 2, 3,...

1	a, b, c,�

2	A, B, C,...

3	i, ii, iii,...

4	I, II, III,...

.FootStartingNum	脚注的起始标号；如果 .FootStartingNum 不是 1， .FootRestartNum 必须设置为 0 。

.FootRestartNum	指定在分页符或分节符之后如何对脚注标号：

0	连续编号

1	在每节处重新编号

2	在每页处重新编号

.EndnotesAt	指定在何处放置尾注：

0	节末尾

1	文档末尾

.EndNumberAs	指定尾注引用标记的格式：有关值，请参阅 .FootNumberAs 参数

.EndStartingNum	尾注的起始编号；如果 .EndStartingNum 不是 1，则 .EndRestartNum 必须设置为 0。

.EndRestartNum	指定在分节符后如何对尾注编号：

0	连续编号

1	在每节处重新编号

_____________

请参阅

脚注、尾注和批注：语句和函数

InsertFootnote


ResetNoteSepOrNotice 示例

本示例打开脚注接续注明区，确定是否有接续注明。如果该区处段落标记外还包含其它东西，则 ResetNoteSepOrNotice 删除该注明。如果没有 If 条件语句，而且接续注明设置为默认形式，则出错。

ViewFootnoteContNotice

EditSelectAll

paraMark$ = Chr$(13)

If Selection$() <> paraMark$ Then ResetNoteSepOrNotice

ClosePane


ResetNoteSepOrNotice

示例

ResetNoteSepOrNotice

把脚注或尾注的分隔符、接续注明，或接续分隔符重新设置为默认格式。除非首先打开了一个分隔符区，否则 ResetNoteSepOrNotice 出错。

_____________

请参阅

脚注、尾注和批注：语句和函数

NoteOptions

ViewEndnoteContNotice

ViewEndnoteContSeparator

ViewEndnoteSeparator

ViewFootnoteContNotice

ViewFootnoteContSeparator

ViewFootnoteSeparator


ShowAnnotationBy 示例

本示例指示 Word 只显示由 Sara Levine 做的批注，然后显示批注区：

ShowAnnotationBy "Sara Levine"

ViewAnnotations 1


ShowAnnotationBy

示例

ShowAnnotationBy ReviewerName$

在批注区打开时，显示由 ReviewerName$ 所做的批注。 ReviewerName$ 必须与批注区顶部列表里审阅者名称中的一个相吻合。要显示所有批注，可指定 ReviewerName$ 为“全部审阅者”。

_____________

请参阅

脚注、尾注和批注：语句和函数

ViewAnnotations


ViewAnnotations, ViewAnnotations()

ViewAnnotations [On]

ViewAnnotations()

 ViewAnnotations 语句打开或关闭批注区。如果活动文档中没有批注，则出错。

参数	说明
On	指定打开或关闭批注区： 0          关闭批注区。 1 打开批注区。 省略    开关批注区的显示。
 ViewAnnotations() 函数返回下列值：

值	说明
0	如果批注区关闭
-1	如果批注区打开
_____________

请参阅

脚注、尾注和批注：语句和函数

InsertAnnotation

ViewEndnoteArea

ViewFootnoteArea

ViewFootnotes


ViewEndnoteArea, ViewEndnoteArea()

ViewEndnoteArea [On]

ViewEndnoteArea()

在标准和大纲视图下， ViewEndnoteArea 语句打开或关闭尾注区。在页面视图下， ViewEndnoteArea 把插入点移入或移出尾注区。如果活动文档中没有尾注，则出错。

参数	说明
On	指定打开或关闭尾注区： 0      在标准和大纲视图下，关闭尾注区；在页面视图下不起作用。 1 在标准和大纲视图下，打开尾注区；在页面视图下，在尾注及其文档文本中相关引用标记之间移动插入点。 省略    在标准和大纲视图下，开关尾注区的显示；在页面视图下，在尾注及其文档文本中相关引用标记之间移动插入点。
 ViewEndnoteArea() 函数返回下列值：

值	说明
0	如果尾注区关闭
-1	如果尾注区打开
_____________

请参阅

脚注、尾注和批注：语句和函数

ViewAnnotations

ViewFootnoteArea

ViewFootnotes


ViewEndnoteContNotice

ViewEndnoteContNotice

打开一个包含尾注接续注明的区，尾注接续注明指出尾注在下页中继续出现。

_____________

请参阅

脚注、尾注和批注：语句和函数

ResetNoteSepOrNotice

ViewEndnoteContSeparator

ViewEndnoteSeparator

ViewFootnoteContNotice


ViewEndnoteContSeparator

ViewEndnoteContSeparator

打开一个包含尾注接续分隔符的区, 该分隔符出现在从前一页接续下来的尾注文本之前。

_____________

请参阅

脚注、尾注和批注：语句和函数

ResetNoteSepOrNotice

ViewEndnoteContNotice

ViewEndnoteSeparator

ViewFootnoteContSeparator


ViewEndnoteSeparator

ViewEndnoteSeparator

打开一个包含尾注分隔符的区，该分隔符出现在文档文本和尾注之间。

_____________

请参阅

脚注、尾注和批注：语句和函数

ResetNoteSepOrNotice

ViewEndnoteContNotice

ViewEndnoteContSeparator

ViewFootnoteSeparator


ViewFootnoteContNotice

ViewFootnoteContNotice

打开一个包含脚注接续注明的区，该接续注明指出脚注在下页继续出现。

_____________

请参阅

脚注、尾注和批注：语句和函数

ResetNoteSepOrNotice

ViewEndnoteContNotice

ViewFootnoteContSeparator

ViewFootnoteSeparator


ViewFootnoteContSeparator

ViewFootnoteContSeparator

打开一个包含脚注接续分隔符的区，该分隔符出现在从前一页接续下来的脚注文本之前。

_____________

请参阅

脚注、尾注和批注：语句和函数

ResetNoteSepOrNotice

ViewEndnoteContSeparator

ViewFootnoteContNotice

ViewFootnoteSeparator


ViewFootnotes, ViewFootnotes()

ViewFootnotes

ViewFootnotes()

在标准视图下， ViewFootnotes 语句根据下列规则打开或关闭脚注或尾注区：

如果文档包含脚注，则打开脚注区。

如果文档包含尾注，但不包含脚注，则打开尾注区。

如果脚注或尾注区已经打开，则关闭该区。

在页面视图下, ViewFootnotes 根据下列规则移动插入点：

如果文档只有脚注，则把插入点移至脚注区；如果只有尾注，则把插入点移至尾注区。

如果文档既有脚注又有尾注，则显示对话框要求用户选择脚注或是尾注区。

如果插入点已经在脚注或尾注区中，则把插入点移至文档区。

如果文档既不包含脚注又不包含尾注，则 ViewFootnotes 不起作用。

 ViewFootnotes() 函数返回下列值：

值	说明
0	如果脚注和尾注区都没打开
-1	如果脚注或尾注区已打开
_____________

请参阅

脚注、尾注和批注：语句和函数

ViewEndnoteArea

ViewFootnoteArea


ViewFootnoteSeparator

ViewFootnoteSeparator

打开一个包含脚注分隔符的区，该分隔符出现在文档文本和脚注之间。

_____________

请参阅

脚注、尾注和批注：语句和函数

ResetNoteSepOrNotice

ViewEndnoteSeparator

ViewFootnoteContNotice

ViewFootnoteContSeparator


AddDropDownItem 示例

本示例向由书签“Dropdown 1”标记的下拉式表单域添加三个项目：

AddDropDownItem "Dropdown1", "Red"

AddDropDownItem "Dropdown1", "Blue"

AddDropDownItem "Dropdown1", "Green"


AddDropDownItem

示例

AddDropDownItem BookmarkName$, ItemText$

向下拉式表单添加一个项目。一个下拉式表单域可以有 25 个项目。如果试图添加超过 25 个的项目，将出现错误。

参数	解释
BookmarkName$	标记下拉式表单域的书签名。如果您指定了一个不是标记下拉式表单域的书签名，将出现错误。
ItemText$	添加到下拉式表单域中的项目。
_____________

请参阅

表单

DropDownFormField

RemoveAllDropDownItems

RemoveDropDownItem


CheckBoxFormField

CheckBoxFormField

在插入点插入一个复选框表单域。CheckBoxFormField 相应于“表单”工具栏的“复选框表单域”按钮。有关使用表单域的详细内容，请参阅《Microsoft Word 使用手册》的第14章“表单”。

_____________

请参阅

表单

DropDownFormField

InsertFormField

TextFormField


DropDownFormField

DropDownFormField

在插入点插入一个下拉式表单域。DropDownFormField 相应于“表单”工具栏中的“下拉式表单域”按钮。有关使用表单域的详细内容，请参阅《Microsoft Word 使用手册》的第14章“表单”。

_____________

请参阅

表单

AddDropDownItem

CheckBoxFormField

InsertFormField

RemoveAllDropDownItems

RemoveDropDownItem

TextFormField


EnableFormField 示例

本示例根据在“选项”对话框（“工具”菜单）里的“用户信息”选项卡中所指定的用户名，决定是否允许改变表单域。该宏可以是 AutoNew 宏的一部分，后者每当根据表单模板创建一个文档时运行。

Dim dlg As ToolsOptionsUserInfo

GetCurValues dlg

If dlg.Name = "Stella Richards" Then

EnableFormField "TotalSales", 1

Else

EnableFormField "TotalSales", 0

End If


EnableFormField

示例

EnableFormField BookmarkName$, Enable

允许或防止在填充表单时改变指定表单域。

参数	解释
BookmarkName$	标记表单域的书签名。
Enable	指定表单域能否被填充或修改： 0 该表单域不能改变。 1 该表单域能改变。
_____________

请参阅

表单

InsertFormField


FormFieldOptions 示例

本示例为选定表单域指定帮助文字。帮助文字是显示于状态栏和按 F1 键后 Word 所显示的方框中。

FormFieldOptions .OwnHelp = 1, .HelpText = "Briefly summarize " + \

"your favorite activity. Provide specific details.", \

.OwnStat = 1, .StatText = "What you like to do best..."

本示例利用 FormFieldOptions 对话记录，用一个数字定义变量 curType ，该数字相应于为选定表单域设置的 .Type。您可将本例作为一个如何返回以 FormFieldOptions设置的选项信息的样板。

Dim dlg As FormFieldOptions

GetCurValues dlg

curType = dlg.Type


FormFieldOptions

示例

FormFieldOptions [.Entry = text] [, .Exit = text] [, .Name = text] [, .Enable = number] [, .TextType = number] [, .TextWidth = number or text] [, .TextDefault = text] [, .TextFormat = text] [, .CheckSize = number] [, .CheckWidth = number or text] [, .CheckDefault = number] [, .Type = number]  [, .OwnHelp = number] [, .HelpText = text] [, .OwnStat = number] [, .StatText = text]

改变选定表单域的性质。FormFieldOptions 申明的自变量相应于对话框中的选项，该对话框在选定了表单域且单击“表单”工具栏中的“表单域选项”按钮，或从快捷键菜单中选择“表单域选项”之后显示出。如果选定了多个表单域 FormFieldOptions 改变选定范围内的第一个表单域的性质。如果没有选定表单域，或者试图设置不适于选定表单域的选项，将出现错误。

参数	解释
.Entry	当表单域接受焦点时运行的宏。
.Exit	当表单域失去焦点时运行的宏。
.Name	标记表单域的书签名。
.Enable	若为 1，则允许填允表单时改变表单域。
.TextType	为文字型表单域指定类型： 0 常规文字 1 数字 2 日期 3 当前日期 4 当前时间 5 计算
.TextWidth	为文字型表单域指定最大宽度： 0 不限制 > 0 最大宽度，以字符数计
.TextDefault	文字型表单域的默认文字。
.TextFormat	为文字型表单域指定与 .TextType 相适的格式。如果 .TextType 设置成零即“常规文字”，则可用下面的值：“大写”，“小写”，“首字母大写”，“标题大写”。关于其它文字类型的可用格式，请看“文字型表单域选项”对话框中的“文字格式”中的项目。
.CheckSize	为复选框表单域指定是否要设置固定尺寸： 0 “自动设置”（根据周围文字的字体尺寸决定复选框表单域的尺寸） 1 “指定”（由 .CheckWidth 指定固定尺寸）
.CheckWidth	为 .CheckSize 设置成 1的复选框表单域指定固定宽度和高度，以“磅”或文字量度表示。
.CheckDefault	为复选框表单域指定在默认时复选框是被清除还是被选中： 0 清除 1 选定
.Type	指定表单域类型： 0 或省略 文字型表单域 1 复选框表单域 2 下拉式表单域
.OwnHelp	指定当表单域包含焦点且按 F1 键后显示在信息框中的文字的来源： 0 由 .HelpText 指定的“自动设置文字”输入项的文字。如果 .HelpText 指定了空串（""），则不显示信息框 1 由 .HelpText 指定的文字
.HelpText	如果 .OwnHelp 设置成0，则为包含有表单域帮助文字的“自动图文集”项的名称。如果 .OwnHelp 设置成 1，则为帮助文字。
.OwnStat	指定当表单域包含焦点时显示在状态栏中的文字的来源： 0 由 .StatText 指定的“自动图文集”项的文字。如果 .StatText 指定了一空串（""），则不显示任何文字。 1 由 .StatText 指定的文字
.StatText	如果 .OwnStat 设置成 0，则“自动图文集”项名含有表单域的状态栏文字，如果 .OwnStat 设置成 1，则文字显示在状态栏中。
可利用 FormFieldOptions 对话记录查询有关选定表单域的信息。有关详细内容，请参阅参照项中的第二个示例。

_____________

请参阅

表单

EnableFormField

InsertFormField


GetFormResult() 示例

这是一个关于“退出”宏的示例，一旦用户将焦点移到另一个表单域，该宏检测下拉式表单域中选定的项目。如果项目是“Paris”，则显示一个信息框。该退出宏为由书签“Dropdown 1”所标记的域而设置。

Sub MAIN

city$ = GetFormResult$("Dropdown1")

If city$ = "Paris" Then

MsgBox "We offer daily excursions to Versailles!"

End If

End Sub

有关“进入——退出”宏的详细内容，请参阅《Microsoft Word 开发工具》中的第 9 章“WordBasic 详细技术”。有关表单和表单域的详细内容，请参阅《Microsoft Word 使用手册》第 14 章“表单”。


GetFormResult(), GetFormResult$()

示例

GetFormResult(BookmarkName$)

GetFormResult$(BookmarkName$)

GetFormResult() 返回一个相应于书签 BookmarkName$（当您插入一个表单域时 Word 自动添加书签）所标记的复选框表单域或下拉式表单域的设置情况的数字。GetFormResult() 返回数值如下：

对于复选框表单域，如果清除复选框返回 0，如果选中复选框返回 1。

对于下拉式表单域，如果选择第一项返回 0，选择第二项返回 1，等等。

注意如果对文字型表单域使用 GetFormResult() ，将出现错误。

GetFormResult$() 返回一个相应于由书签 BookmarkName$ 所标记的表单域的设置情况的字符串。GetFormResult$() 返回数值如下：

对于复选框表单域，如果清除复选框返回“0”，如果选中复选框返回“1”。

对于下拉式表单域，返回当前选定的项目。

对于文字型表单域，返回当前文字。

_____________

请参阅

表单

SetFormResult


InsertFormField 示例

本示例插入一个指定状态栏文字的下拉式表单域，然后向表单域添加三个城市名。

InsertFormField .Name = "Cities", .Enable = 1, .Type = 2, \

.OwnStat = 1, .StatText = "Select a city."

AddDropDownItem "Cities", "Bonn"

AddDropDownItem "Cities", "Paris"

AddDropDownItem "Cities", "Tokyo"

下面的示例插入一个 8 磅高和宽，默认选择的复选框表单域。“WriteSettings”指定为当焦点离开复选框时运行的“进入——退出”宏。在宏中，后面的指令可以利用 GetFormResult() 和 SetPrivateProfileString 在文本文件中记录用户是否选中了复选框。

InsertFormField .Exit = "WriteSettings", .Name = "Check1", \

.Enable = 1, .CheckSize = 1, .CheckWidth = "8 pt", \

.CheckDefault = 1, .Type = 1

下面的示例插入一个文字型表单域。参数 .TextType = 1 指定正文为数字，并且 .TextFormat = "0%" 指定数字显示成百分比，默认百分比为 100%。

InsertFormField .Name = "PercentComplete", .Enable = 1, \

.TextType = 1, .TextWidth = "4", \

.TextDefault = "100%", .TextFormat = "0%", .Type = 0


InsertFormField

示例

InsertFormField [.Entry = text] [, .Exit = text] [, .Name = text] [, .Enable = number] [, .TextType = number] [, .TextDefault = text] [, .TextWidth = number or text] [, .TextFormat = text] [, .CheckSize = number] [, .CheckWidth = number or text] [, .CheckDefault = number] [, .Type = number] [, .OwnHelp = number] [, .HelpText = text] [, .OwnStat = number] [, .StatText = text]

在插入点插入一个表单域。InsertFormField 申明的参数相应于“表单域”（“插入”菜单）和“表单域选项”对话框中的选项。

参数	解释
.Entry	当表单域收到焦点时运行的宏。
.Exit	当表单域失去焦点时运行的宏。
.Name	标记该表单域的书签名。
.Enable	若为 1，则在填充表单时允许改变该表单域。
.TextType	当插入文字型表单域时，指定类型： 0 常规文字 1 数字 2 日期 3 当前日期 4 当前时间 5 计算
.TextDefault	文字型表单域的默认文字
.TextWidth	当插入文字型表单域时，指定最大宽度： 0 不限制 > 0 最大宽度，以字符数计
.TextFormat	当插入文字型表单域时，指定与 .TextType 相适的格式。如果 .TextType 设置成 0 即“常规文字”，则可用下面的值表示：“大写”，“首字母大写”，“标题大写”。关于其它文字类型的可用格式，请参阅“文字型表单域选项”对话框中的“文字格式”框中的项目。
.CheckSize	当插入复选框表单域时，指定是否要设置固定尺寸： 0 “自动设置”（根据周围文字的字体尺寸决定尺寸） 1 “指定”（由 .CheckWidth 指定固定尺寸）
.CheckWidth	当插入复选框表单域且 .CheckSize 设成 1 时，指定以磅值或文字量度的固定宽度和高度。
.CheckDefault	当插入复选框表单域时，指定复选框默认状态： 0 清除 1 选中
.Type	指定插入的表单域类型： 0 或省略 文字型表单域 1 复选框表单域 2 下拉式表单域
.OwnHelp	指定当表单域包含焦点且按动 F1 键后显示在信息框中的文字的来源： 0 由 .HelpText 指定的“自动图文集”输入项的文字。如果 .HelpText 指定了空串（""），则不显示信息框 1 由 .HelpText 指定的文字
.HelpText	如果 .OwnHelp 设成 0，则“自动图文集”项名包含表单域的帮助文字，如果 .OwnHelp 设成 1，则为帮助文字。
.OwnStat	指定当表单域包含焦点时显示在状态栏中的文字的来源： 0 由 .StatText 指定的“自动图文集”输入项的文字。如果 .StatText 指定空串（""），则不显示任何文字。 1 由 .StatText 指定的文字
.StatText	如果 .OwnStat 设成 0。为包含表单域状态栏文字的“自动图文集”输入项的名称，如果 .OwnStat 设成 1，则为显示在状态栏中的文字。
_____________

请参阅

表单

AddDropDownItem

CheckBoxFormField

DropDownFormField

EnableFormField

FormFieldOptions

RemoveAllDropDownItems

RemoveDropDownItem

TextFormField


RemoveAllDropDownItems

RemoveAllDropDownItems BookmarkName$

从下拉式表单域中删除所有项目。

参数	解释
BookmarkName$	标记该下拉式表单域的书签名。如果指定的不是标记下拉式表单域的书签，将出现错误。
_____________

请参阅

表单

AddDropDownItem

DropDownFormField

RemoveDropDownItem


RemoveDropDownItem 示例

本示例从由书签“Droopdown 1”标记的下拉式表单域中删除三个项目。

RemoveDropDownItem "Dropdown1", "Red"

RemoveDropDownItem "Dropdown1", "Blue"

RemoveDropDownItem "Dropdown1", "Green"


RemoveDropDownItem

示例

RemoveDropDownItem BookmarkName$, ItemText$

从下拉式表单域中删除一个项目。

参数	解释
BookmarkName$	标记该下拉式表单域的书签名。如果指定的不是标记下拉式表单域的书签，将出现错误。
ItemText$	要从下拉式表单域删除的项目。
_____________

请参阅

表单

AddDropDownItem

DropDownFormField

RemoveAllDropDownItems


SetFormResult 示例

下面的示例是每次创建表单时运行的 AutoNew 宏。它为文字型表单域设置的默认结果是“NameText”，为复选框表单域设的是“AgeCheck”，为下拉式表域设的是“PreferencesList”。然后它对表单进行文档保护。

Sub MAIN

SetFormResult "NameText", "John Jones", 1

SetFormResult "AgeCheck", 1, 1

SetFormResult "PreferencesList", 2, 1

ToolsProtectDocument .Type = 2

End Sub

下面的示例更新由书签“DateField”确认的文字型表单域。该表单域包含一个日期域，由 SetFormResult 指令更新。

SetFormResult "DateField"


SetFormResult

示例

SetFormResult BookmarkName$, Result[$] [, DefaultResult]

设置由书签 BookmarkName$（当您插入表单域时，Word 自动添加书签）标记的表单域的结果。根据表单域类型，将 Result[$] 指定为字符串或数字：

对于复选框表单域，指定 0 时清除复选框，1 选中复选框。

对于下拉式表单域，指定 0 选择第一项，1 选择第二项，等等。也可以用字符串指定该项目本身。

对于文字型表单域，指定字符串。

如果您没有指定 Result[$]，SetFormResult 更新指定表单域内的任意域。

如果 DefaultResult 为 1，则该结果成为该域的默认结果。每当包含该表单域的文档以“表单”类型进行保护时，显示该默认结果。

_____________

请参阅

表单

GetFormResult()


TextFormField

TextFormField

在插入点插入文字型表域。TextFormField 相应于“表单”工具栏中的“文字型表单域”按钮。有关使用表单域的详细内容，请参阅《Microsoft Word 使用手册》第 14 章“表单”。

_____________

请参阅

表单

CheckBoxFormField

DropDownFormField

InsertFormField


ToolsProtectDocument

ToolsProtectDocument [.DocumentPassword = text] [, .NoReset = number] [, .Type = number]

保护文档防止改变。根据 .Type 值，用户可进行一些诸如添加批注或修订标记等有限的改变。如果该文档已被保护，将出现错误。

参数	解释
.DocumentPassword	在选择“解除文档保护”（“工具”菜单）选项解除对文档的保护时所要求的口令。
.NoReset	若为 1，则在利用 ToolsProtectDocument （只当 .Type 2 时才可运用）保护表单防止改变时 Word 不将表单域重新设置成默认结果。此选项允许表单设计者创建一个“进入”或“退出”宏，该宏先从表单消除保护，再修改表单，然后再次保护表单而不重新设置表单域。注意当您用“表单”工具栏或“保护文档”对话框（“工具”菜单）保护表单时通常都要重新设置表单域。
.Type	保护类型： 0 或省略 用户可以选择和编辑正文，但所有的改变都以修订标记进行跟踪。 1 用户只可添加批注。 2 用户只可选择和修改表单域中的正文。 若要指定多节表单域中哪个节被保护，哪个节不被保护请使用 ToolsProtectSection。
与可用于保护文档防止打开或保存的 FileSaveAs 或 ToolsOptionsSave 不同，ToolsProtectDocument 控制文档打开时允许用户做什么。

_____________

请参阅

表单

FileSaveAs

ToolsOptionsSave

ToolsProtectSection

ToolsUnprotectDocument


ToolsProtectSection 示例

本示例保护文档表单，但不保护文档的第二节。

ToolsProtectDocument .Type = 2

ToolsProtectSection .Section = 2, .Protect = 0


ToolsProtectSection

示例

ToolsProtectSection .Protect = number [, .Section = number]

当用 ToolsProtectDocument 以表单类型保护文档时，允许或放弃对节的保护。当以批注或修订标记类型保护文档时，ToolsProtectSection 无效。

参数	解释
.Protect	指定允许还是放弃保护指定节： 0 或省略 放弃保护 1 允许保护
.Section	需要允许或放弃保护的节：1 相应于第一节，2 相应于第二节，等等。
_____________

请参阅

表单

ToolsProtectDocument

ToolsUnprotectDocument


ToolsUnprotectDocument

ToolsUnprotectDocument [.DocumentPassword = text]

消除对活动文档的保护。如果该文档是未保护的，则出现错误。

参数	解释
.DocumentPassword	用于保护文档的口令。注意口令是区分大小写的。 如果文档以口令保护而您没有指定 .DocumentPassword，则出现一个对话框提示用户输入口令。
_____________

请参阅

表单

ToolsProtectDocument

ToolsProtectSection


Help

Help

按所选择的上下文显示帮助信息。假如上下文都是不可变的，比如插入点是在 Word 文档中而不是在一个域中，那么 Help 命令就会显示 Word “帮助”的“目录”窗口。

_____________

请参阅

帮助

HelpActiveWindow

HelpTool


HelpAbout 示例

本例定义了一个“关于 Microsoft Word”对话框的对话记录，它保存了对话记录中的当前值，然后在一个信息框中显示出这一序列号。

Dim dlg As HelpAbout

GetCurValues dlg

MsgBox "序列号: " + dlg.AppSerialNumber


HelpAbout

示例

HelpAbout [.AppName = text] [, .AppCopyright = text] [, .AppUserName = text] [, .AppOrganization = text] [, .AppSerialNumber = text]

HelpAbout 函数不需其他参数，即可显示“关于 Microsoft Word”对话框（帮助菜单中）。它能给出来 Word 的版本号、序列号、版权信息以及获准使用者的姓名。

HelpAbout 函数的参数是只读的，与其他 WordBasic 函数不同。HelpAbout 函数不能用来设定一个值。但您可以为 HelpAbout 函数定义一个对话记录，然后以类似于函数返回信息方式，来使用这个对话记录。用这种方法，对话记录便可以从“关于 Microsoft Word”对话框中返回信息。

参数	解释
.AppName	显示“关于 Microsoft Word”对话框中的名称及版本号
.AppCopyright	Word 的版权声明
.AppUserName	获准使用 Word 有效复制版的使用者姓名
.AppOrganization	当安装 Word 时所提供的系统名
.AppSerialNumber	Word 有效复制版的序列号
_____________

请参阅

帮助

AppInfo$()

DocumentStatistics

GetSystemInfo

MicrosoftSystemInfo


HelpActiveWindow

HelpActiveWindow

显示说明当前视图或窗格有关命令的帮助主题。

_____________

请参阅

帮助

Help

HelpTool


HelpContents

HelpContents

显示 Word 帮助目录窗口。

_____________

请参阅

帮助

Help

HelpIndex


HelpExamplesAndDemos

HelpExamplesAndDemos

显示一个窗口，从此窗口中可以找到“帮助”中所有的示例。

_____________

请参阅

帮助

HelpQuickPreview


HelpIndex

HelpIndex

显示帮助命令中的索引。

_____________

请参阅

帮助

Help

HelpContents


HelpKeyboard

HelpKeyboard

显示有关键盘和鼠标快捷方式的帮助主题列表。


HelpPSSHelp

HelpPSSHelp

显示帮助命令中有关用于 Microsoft Word 支持服务的信息。


HelpQuickPreview

HelpQuickPreview

开始显示一个介绍 Microsoft Word 的教学课程。

_____________

请参阅

帮助

HelpExamplesAndDemos


HelpSearch

HelpSearch

显示一个用于帮助命令中执行关键字搜索的“搜索”对话框。


HelpTipOfTheDay 示例

显示“日积月累”对话框的例子。

Dim dlg As HelpTipOfTheDay

x = Dialog(dlg)


HelpTipOfTheDay

示例

HelpTipOfTheDay .StartupTips = number

当您开始使用 Word 时，本函数控制是否显示“日积月累”对话框。当显示这个询问输入项的例子时，您可以使用一个 Dialog 或 Dialog() 说明来决定是否显示“日积月累”对话框。。

参数	解释
.StartupTips	1 表示每次您开始使用 Word 时显示“日积月累”对话框。


HelpTool

HelpTool

本函数把鼠标箭头变成一个提问标记，在您选择的下一个命令或单击某一部分 Word 窗口时，得到与操作相关的帮助信息。如果单击文本，Word 会显示一个说明当前段落和字符格式的提示框。

_____________

请参阅

帮助

Help

HelpActiveWindow


HelpUsingHelp

HelpUsingHelp

显示说明如何使用帮助命令的帮助主题列表。


HelpWordPerfectHelp 示例

显示“WordPerfect 用户帮助”对话框的例子。

Dim dlg As HelpWordPerfectHelp

x = Dialog (dlg)


HelpWordPerfectHelp

示例

HelpWordPerfectHelp

配合 Dialog 或 Dialog() 指令，显示“WordPerfect 用户帮助”对话框（“帮助”菜单）。

_____________

请参阅

帮助

HelpWordPerfectHelpOptions


HelpWordPerfectHelpOptions

HelpWordPerfectHelpOptions [.CommandKeyHelp = number] [, .DocNavKeys = number] [, .MouseSimulation = number] [, .DemoGuidance = number] [, .DemoSpeed = number] [, .HelpType = number]

在“WordPerfect 用户帮助”的功能中设置选项。 HelpWordPerfectHelpOptions 的参数与“帮助选项”对话框（在“帮助”菜单中，“WordPerfect 用户帮助”命令，）中的选项是一一对应的。

参数	解释
.CommandKeyHelp	设定 1 时，Word 中的击键与 WordPerfect 击键一致。
.DocNavKeys	设定 1 时，箭头键以及 PAGE UP，PAGE DOWN，HOME，END 和 ESC 各键在WordPerfect 中保持原来各自的功能。
.MouseSimulation	设定 1 时，在演示期间，鼠标箭头的移动作为“WordPerfect 用户帮助”中的选择选项。
.DemoGuidance	设定 1 时，当用户在演示期间被要求输入时，“WordPerfect 用户帮助”显示帮助文本信息。
.DemoSpeed	控制演示的速度： 0 快速 1 中速 2 慢速
.HelpType	指定“WordPerfect 用户帮助”显示帮助文本信息或者演示您选择的 WordPerfect 命令： 0 帮助文本信息 1 演示
_____________

请参阅

帮助

HelpWordPerfectHelp


Toolbar Button Images and Numbers
工具栏按钮图符和编号

通过在AddButton和ChooseButtonImage 指令中指定相关的图符号，您可以为工具栏按钮选择图符。以下主题显示了每一图符及其相关编号。

按钮图符 1-78

按钮图符 79-156

按钮图符 157-234

按钮图符 235-312


Button Images 1-78
按钮图符 1-78

1	27	53
2	28	54
3	29	55
4	30	56
5	31	57
6	32	58
7	33	59
8	34	60
9	35	61
10	36	62
11	37	63
12	38	64
13	39	65
14	40	66
15	41	67
16	42	68
17	43	69
18	44	70
19	45	71
20	46	72
21	47	73
22	48	74
23	49	75
24	50	76
25	51	77
26	52	78
_____________

请参阅

按钮图符 79-156

按钮图符 157-234

按钮图符 235-312


Button Images 79-156
按钮图符 79-156

79	105	131
80	106	132
81	107	133
82	108	134
83	109	135
84	110	136
85	111	137
86	112	138
87	113	139
88	114	140
89	115	141
90	116	142
91	117	143
92	118	144
93	119	145
94	120	146
95	121	147
96	122	148
97	123	149
98	124	150
99	125	151
100	126	152
101	127	153
102	128	154
103	129	155
104	130	156
_____________

请参阅

按钮图符 1-78

按钮图符 157-234

按钮图符 235-312


Button Images 157-234
按钮图符 157-234

157	183	209
158	184	210
159	185	211
160	186	212
161	187	213
162	188	214
163	189	215
164	190	216
165	191	217
166	192	218
167	193	219
168	194	220
169	195	221
170	196	222
171	197	223
172	198	224
173	199	225
174	200	226
175	201	227
176	202	228
177	203	229
178	204	230
179	205	231
180	206	232
181	207	233
182	208	234
_____________

请参阅

按钮图符 1-78

按钮图符 79-156

按钮图符 235-312


Button Images 235-312
按钮图符 235-312

235	261	287
236	262	288
237	263	289
238	264	290
239	265	291
240	266	292
241	267	293
242	268	294
243	269	295
244	270	296
245	271	297
246	272	298
247	273	299
248	274	300
249	275	301
250	276	302
251	277	303
252	278	304
253	279	305
254	280	306
255	281	307
256	282	308
257	283	309
258	284	310
259	285	311
260	286	312
_____________

请参阅

按钮图符 1-78

按钮图符 79-156

按钮图符 157-234


WordBasic Statements and Functions Index
WordBasic 语句和函数索引

-A-

Abs()

Activate

ActivateObject

AddAddIn, AddAddIn()

AddButton

AddDropDownItem

AddInState, AddInState()

AllCaps, AllCaps()

AnnotationRefFromSel$()

AppActivate

AppClose

AppCount()

AppGetNames, AppGetNames()

AppHide

AppInfo$()

AppIsRunning()

AppMaximize, AppMaximize()

AppMinimize, AppMinimize()

AppMove

AppRestore, AppRestore()

AppSendMessage

AppShow

AppSize

AppWindowHeight, AppWindowHeight()

AppWindowPosLeft, AppWindowPosLeft()

AppWindowPosTop, AppWindowPosTop()

AppWindowWidth, AppWindowWidth()

Asc()

AtEndOfDocument()

AtStartOfDocument()

AutoMarkIndexEntries

AutoText

AutoTextName$()

-B-

Beep

Begin Dialog...End Dialog

Bold, Bold()

BookmarkName$()

BorderBottom, BorderBottom()

BorderInside, BorderInside()

BorderLeft, BorderLeft()

BorderLineStyle, BorderLineStyle()

BorderNone, BorderNone()

BorderOutside, BorderOutside()

BorderRight, BorderRight()

BorderTop, BorderTop()

-C-

Call

Cancel

CancelButton

CenterPara, CenterPara()

ChangeCase, ChangeCase()

CharColor, CharColor()

CharLeft, CharLeft()

CharRight, CharRight()

ChDefaultDir

ChDir

CheckBox

CheckBoxFormField

ChooseButtonImage

Chr$()

CleanString$()

ClearAddIns

ClearFormField

Close

ClosePane

ClosePreview

CloseUpPara

CloseViewHeaderFooter

CmpBookmarks()

ColumnSelect

ComboBox

CommandValid()

Connect

ControlRun

Converter$()

ConverterLookup()

ConvertObject

CopyBookmark

CopyButtonImage

CopyFile

CopyFormat

CopyText

CountAddIns()

CountAutoTextEntries()

CountBookmarks()

CountDirectories()

CountDocumentVars()

CountFiles()

CountFonts()

CountFoundFiles()

CountKeys()

CountLanguages()

CountMacros()

CountMenuItems()

CountMenus()

CountMergeFields()

CountStyles()

CountToolbarButtons()

CountToolbars()

CountToolsGrammarStatistics()

CountWindows()

CreateSubdocument

-D-

Date$()

DateSerial()

DateValue()

Day()

Days360()

DDEExecute

DDEInitiate()

DDEPoke

DDERequest$()

DDETerminate

DDETerminateAll

Declare

DefaultDir$()

DeleteAddIn

DeleteBackWord

DeleteButton

DeleteWord

DemoteList

DemoteToBodyText

Dialog

DialogEditor

Dim

DisableAutoMacros

DisableInput

DlgControlId()

DlgEnable, DlgEnable()

DlgFilePreview, DlgFilePreview$()

DlgFocus, DlgFocus$()

DlgListBoxArray, DlgListBoxArray()

DlgSetPicture

DlgText, DlgText$()

DlgUpdateFilePreview

DlgValue, DlgValue()

DlgVisible, DlgVisible()

DocClose

DocMaximize, DocMaximize()

DocMinimize, DocMinimize()

DocMove

DocRestore

DocSize

DocSplit, DocSplit()

DocumentStatistics

DocWindowHeight, DocWindowHeight()

DocWindowPosLeft, DocWindowPosLeft()

DocWindowPosTop, DocWindowPosTop()

DocWindowWidth, DocWindowWidth()

DoFieldClick

DOSToWin$()

DottedUnderline, DottedUnderline()

DoubleUnderline, DoubleUnderline()

DrawAlign

DrawArc

DrawBringForward

DrawBringInFrontOfText

DrawBringToFront

DrawCallout

DrawClearRange

DrawCount()

DrawCountPolyPoints()

DrawDisassemblePicture

DrawEllipse

DrawExtendSelect

DrawFlipHorizontal

DrawFlipVertical

DrawFreeformPolygon

DrawGetCalloutTextbox

DrawGetPolyPoints

DrawGetType()

DrawGroup

DrawInsertWordPicture

DrawLine

DrawNudgeDown

DrawNudgeDownPixel

DrawNudgeLeft

DrawNudgeLeftPixel

DrawNudgeRight

DrawNudgeRightPixel

DrawNudgeUp

DrawNudgeUpPixel

DrawRectangle

DrawResetWordPicture

DrawReshape

DrawRotateLeft

DrawRotateRight

DrawRoundRectangle

DrawSelect, DrawSelect()

DrawSelectNext

DrawSelectPrevious

DrawSendBackward

DrawSendBehindText

DrawSendToBack

DrawSetCalloutTextbox

DrawSetInsertToAnchor

DrawSetInsertToTextbox

DrawSetPolyPoints

DrawSetRange, DrawSetRange()

DrawSnapToGrid

DrawTextBox

DrawUngroup

DrawUnselect

DropDownFormField

DropListBox

-E-

EditAutoText

EditBookmark

EditButtonImage

EditClear

EditConvertAllEndnotes

EditConvertAllFootnotes

EditConvertNotes

EditCopy

EditCut

EditFind

EditFindClearFormatting

EditFindFont

EditFindFound()

EditFindLang

EditFindPara

EditFindStyle

EditGoTo

EditLinks

EditObject

EditPaste

EditPasteSpecial

EditPicture

EditRedo

EditRepeat

EditReplace

EditReplaceClearFormatting

EditReplaceFont

EditReplaceLang

EditReplacePara

EditReplaceStyle

EditSelectAll

EditSwapAllNotes

EditTOACategory

EditUndo

EmptyBookmark()

EnableFormField

EndOfColumn, EndofColumn()

EndOfDocument, EndOfDocument()

EndOfLine, EndOfLine()

EndOfRow, EndOfRow()

EndOfWindow, EndOfWindow()

Environ$()

Eof()

Err

Error

ExistingBookmark()

ExitWindows

ExtendMode()

ExtendSelection

-F-

FieldSeparator, FieldSeparator$()

FileClose

FileCloseAll

FileClosePicture

FileConfirmConversions, FileConfirmConversions()

FileExit

FileFind

FileList

FileName$()

FileNameFromWindow$()

FileNameInfo$()

FileNew

FileNewDefault

FileNumber

FileOpen

FilePageSetup

FilePreview

FilePrint

FilePrintDefault

FilePrintPreview, FilePrintPreview()

FilePrintPreviewFullScreen

FilePrintPreviewPages, FilePrintPreviewPages()

FilePrintSetup

FileRoutingSlip

Files$()

FileSave

FileSaveAll

FileSaveAs

FileSendMail

FileSummaryInfo

FileTemplates

Font, Font$()

FontSize, FontSize()

FontSizeSelect

FontSubstitution

For...Next

FormatAddrFonts

FormatAutoFormat

FormatBordersAndShading

FormatBullet

FormatBulletDefault, FormatBulletDefault()

FormatBulletsAndNumbering

FormatCallout

FormatChangeCase

FormatColumns

FormatDefineStyleBorders

FormatDefineStyleFont

FormatDefineStyleFrame

FormatDefineStyleLang

FormatDefineStyleNumbers

FormatDefineStylePara

FormatDefineStyleTabs

FormatDrawingObject

FormatDropCap

FormatFont

FormatFrame

FormatHeaderFooterLink

FormatHeadingNumber

FormatHeadingNumbering

FormatMultilevel

FormatNumber

FormatNumberDefault, FormatNumberDefault()

FormatPageNumber

FormatParagraph

FormatPicture

FormatRetAddrFonts

FormatSectionLayout

FormatStyle

FormatStyleGallery

FormatTabs

FormFieldOptions

FormShading, FormShading()

FoundFileName$()

Function...End Function

-G-

GetAddInID()

GetAddInName$()

GetAttr()

GetAutoCorrect$()

GetAutoText$()

GetBookmark$()

GetCurValues

GetDirectory$()

GetDocumentVar$()

GetDocumentVarName$()

GetFieldData$()

GetFormResult(), GetFormResult$()

GetMergeField$()

GetPrivateProfileString$()

GetProfileString$()

GetSelEndPos()

GetSelStartPos()

GetSystemInfo, GetSystemInfo$()

GetText$()

GoBack

Goto

GoToAnnotationScope

GoToHeaderFooter

GoToNextItem

GoToPreviousItem

GroupBox

GrowFont

GrowFontOnePoint

-H-

HangingIndent

Help

HelpAbout

HelpActiveWindow

HelpContents

HelpExamplesAndDemos

HelpIndex

HelpKeyboard

HelpPSSHelp

HelpQuickPreview

HelpSearch

HelpTipOfTheDay

HelpTool

HelpUsingHelp

HelpWordPerfectHelp

HelpWordPerfectHelpOptions

Hidden, Hidden()

HLine

Hour()

HPage

HScroll, HScroll()

-I-

If...Then...Else

Indent

Input

Input$()

InputBox$()

Insert

InsertAddCaption

InsertAnnotation

InsertAutoCaption

InsertAutoText

InsertBreak

InsertCaption

InsertCaptionNumbering

InsertChart

InsertColumnBreak

InsertCrossReference

InsertDatabase

InsertDateField

InsertDateTime

InsertDrawing

InsertEquation

InsertExcelTable

InsertField

InsertFieldChars

InsertFile

InsertFootnote

InsertFormField

InsertFrame

InsertIndex

InsertMergeField

InsertObject

InsertPageBreak

InsertPageField

InsertPageNumbers

InsertPara

InsertPicture

InsertSectionBreak

InsertSound

InsertSpike

InsertSubdocument

InsertSymbol

InsertTableOfAuthorities

InsertTableOfContents

InsertTableOfFigures

InsertTimeField

InsertWordArt

InStr()

Int()

IsDocumentDirty()

IsExecuteOnly()

IsMacro()

IsTemplateDirty()

Italic, Italic()

-J-

JustifyPara, JustifyPara()

-K-

KeyCode()

KeyMacro$()

Kill

-L-

Language, Language$()

LCase$()

Left$()

LeftPara, LeftPara()

Len()

Let

Line Input

LineDown, LineDown()

LineUp, LineUp()

ListBox

LockDocument, LockDocument()

LockFields

Lof()

LTrim$()

-M-

MacroCopy

MacroDesc$()

MacroFileName$()

MacroName$()

MacroNameFromWindow$()

Magnifier, Magnifier()

MailMerge

MailMergeAskToConvertChevrons, MailMergeAskToConvertChevrons()

MailMergeCheck

MailMergeConvertChevrons, MailMergeConvertChevrons()

MailMergeCreateDataSource

MailMergeCreateHeaderSource

MailMergeDataForm

MailMergeDataSource$()

MailMergeEditDataSource

MailMergeEditHeaderSource

MailMergeEditMainDocument

MailMergeFindRecord

MailMergeFirstRecord

MailMergeFoundRecord()

MailMergeGotoRecord, MailMergeGotoRecord()

MailMergeHelper

MailMergeInsertAsk

MailMergeInsertFillIn

MailMergeInsertIf

MailMergeInsertMergeRec

MailMergeInsertMergeSeq

MailMergeInsertNext

MailMergeInsertNextIf

MailMergeInsertSet

MailMergeInsertSkipIf

MailMergeLastRecord

MailMergeMainDocumentType, MailMergeMainDocumentType()

MailMergeNextRecord

MailMergeOpenDataSource

MailMergeOpenHeaderSource

MailMergePrevRecord

MailMergeQueryOptions

MailMergeReset

MailMergeState()

MailMergeToDoc

MailMergeToPrinter

MailMergeViewData, MailMergeViewData()

MarkCitation

MarkIndexEntry

MarkTableOfContentsEntry

MenuItemMacro$()

MenuItemText$()

MenuMode

MenuText$()

MergeFieldName$()

MergeSubdocument

MicrosoftAccess

MicrosoftExcel

MicrosoftFoxPro

MicrosoftMail

MicrosoftPowerPoint

MicrosoftProject

MicrosoftPublisher

MicrosoftSchedule

MicrosoftSystemInfo

Mid$()

Minute()

MkDir

Month()

MoveButton

MoveText

MoveToolbar

MsgBox, MsgBox()

-N-

Name

NewToolbar

NextCell, NextCell()

NextField, NextField()

NextObject

NextPage, NextPage()

NextTab()

NextWindow

NormalFontPosition

NormalFontSpacing

NormalStyle

NormalViewHeaderArea

NoteOptions

Now()

-O-

OK

OKButton

On Error

OnTime

Open

OpenSubdocument

OpenUpPara

OptionButton

OptionGroup

Organizer

OtherPane

OutlineCollapse

OutlineDemote

OutlineExpand

OutlineLevel()

OutlineMoveDown

OutlineMoveUp

OutlinePromote

OutlineShowFirstLine, OutlineShowFirstLine()

OutlineShowFormat

Overtype, Overtype()

-P-

PageDown, PageDown()

PageUp, PageUp()

ParaDown, ParaDown()

ParaKeepLinesTogether, ParaKeepLinesTogether()

ParaKeepWithNext, ParaKeepWithNext()

ParaPageBreakBefore, ParaPageBreakBefore()

ParaUp, ParaUp()

ParaWidowOrphanControl, ParaWidowOrphanControl()

PasteButtonImage

PasteFormat

PathFromMacPath$()

PauseRecorder

Picture

PrevCell, PrevCell()

PrevField, PrevField()

PrevObject

PrevPage, PrevPage()

PrevTab()

PrevWindow

Print

PromoteList

PushButton

PutFieldData

-R-

Read

Redim

REM

RemoveAllDropDownItems

RemoveBulletsNumbers

RemoveDropDownItem

RemoveFrames

RemoveSubdocument

RenameMenu

RepeatFind

ResetButtonImage

ResetChar, ResetChar()

ResetNoteSepOrNotice

ResetPara, ResetPara()

Right$()

RightPara, RightPara()

RmDir

Rnd()

RTrim$()

RunPrintManager

-S-

SaveTemplate

ScreenRefresh

ScreenUpdating, ScreenUpdating()

Second()

Seek, Seek()

Select Case

SelectCurAlignment

SelectCurColor

SelectCurFont

SelectCurIndent

SelectCurSentence

SelectCurSpacing

SelectCurTabs

SelectCurWord

SelectDrawingObjects

Selection$()

SelectionFileName$()

SelInfo()

SelType, SelType()

SendKeys

SentLeft, SentLeft()

SentRight, SentRight()

SetAttr

SetAutoText

SetDocumentDirty

SetDocumentVar, SetDocumentVar()

SetEndOfBookmark

SetFormResult

SetPrivateProfileString, SetPrivateProfileString()

SetProfileString, SetProfileString()

SetSelRange

SetStartOfBookmark

SetTemplateDirty

Sgn()

ShadingPattern, ShadingPattern()

Shell

ShowAll, ShowAll()

ShowAllHeadings

ShowAnnotationBy

ShowHeadingNumber

ShowNextHeaderFooter

ShowPrevHeaderFooter

ShowVars

ShrinkFont

ShrinkFontOnePoint

ShrinkSelection

SizeToolbar

SkipNumbering, SkipNumbering()

SmallCaps, SmallCaps()

SortArray

SpacePara1, SpacePara1()

SpacePara15, SpacePara15()

SpacePara2, SpacePara2()

Spike

SplitSubdocument

StartOfColumn, StartOfColumn()

StartOfDocument, StartOfDocument()

StartOfLine, StartOfLine()

StartOfRow, StartOfRow()

StartOfWindow, StartOfWindow()

Stop

Str$()

Strikethrough, Strikethrough()

String$()

Style

StyleDesc$()

StyleName$()

Sub...End Sub

Subscript, Subscript()

Superscript, Superscript()

SymbolFont

-T-

TabLeader$()

TableAutoFormat

TableAutoSum

TableColumnWidth

TableDeleteCells

TableDeleteColumn

TableDeleteRow

TableFormula

TableGridlines, TableGridlines()

TableHeadings, TableHeadings()

TableInsertCells

TableInsertColumn

TableInsertRow

TableInsertTable

TableMergeCells

TableRowHeight

TableSelectColumn

TableSelectRow

TableSelectTable

TableSort

TableSortAToZ

TableSortZToA

TableSplit

TableSplitCells

TableToText

TableUpdateAutoFormat

TabType()

Text

TextBox

TextFormField

TextToTable

Time$()

TimeSerial()

TimeValue()

Today()

ToggleFieldDisplay

ToggleFull

ToggleHeaderFooterLink

ToggleMainTextLayer

TogglePortrait

ToggleScribbleMode

ToolbarButtonMacro$()

ToolbarName$()

ToolbarState()

ToolsAddRecordDefault

ToolsAdvancedSettings

ToolsAutoCorrect

ToolsAutoCorrectDays, ToolsAutoCorrectDays()

ToolsAutoCorrectInitialCaps, ToolsAutoCorrectInitialCaps()

ToolsAutoCorrectReplaceText, ToolsAutoCorrectReplaceText()

ToolsAutoCorrectSentenceCaps, ToolsAutoCorrectSentenceCaps()

ToolsAutoCorrectSmartQuotes, ToolsAutoCorrectSmartQuotes()

ToolsBulletListDefault

ToolsBulletsNumbers

ToolsCalculate, ToolsCalculate()

ToolsCompareVersions

ToolsCreateEnvelope

ToolsCreateLabels

ToolsCustomize

ToolsCustomizeKeyboard

ToolsCustomizeMenuBar

ToolsCustomizeMenus

ToolsGetSpelling, ToolsGetSpelling()

ToolsGetSynonyms, ToolsGetSynonyms()

ToolsGrammar

ToolsGrammarStatisticsArray

ToolsHyphenation

ToolsHyphenationManual

ToolsLanguage

ToolsMacro

ToolsManageFields

ToolsMergeRevisions

ToolsNumberListDefault

ToolsOptions

ToolsOptionsAutoFormat

ToolsOptionsCompatibility

ToolsOptionsEdit

ToolsOptionsFileLocations

ToolsOptionsGeneral

ToolsOptionsGrammar

ToolsOptionsPrint

ToolsOptionsRevisions

ToolsOptionsSave

ToolsOptionsSpelling

ToolsOptionsUserInfo

ToolsOptionsView

ToolsProtectDocument

ToolsProtectSection

ToolsRemoveRecordDefault

ToolsRepaginate

ToolsReviewRevisions

ToolsRevisionAuthor$()

ToolsRevisionDate()

ToolsRevisionDate$()

ToolsRevisions

ToolsRevisionType()

ToolsShrinkToFit

ToolsSpelling

ToolsSpellSelection

ToolsThesaurus

ToolsUnprotectDocument

ToolsWordCount

-U-

UCase$()

Underline, Underline()

UnHang

UnIndent

UnlinkFields

UnlockFields

UpdateFields

UpdateSource

-V-

Val()

ViewAnnotations, ViewAnnotations()

ViewBorderToolbar

ViewDraft, ViewDraft()

ViewDrawingToolbar

ViewEndnoteArea, ViewEndnoteArea()

ViewEndnoteContNotice

ViewEndnoteContSeparator

ViewEndnoteSeparator

ViewFieldCodes, ViewFieldCodes()

ViewFooter, ViewFooter()

ViewFootnoteArea, ViewFootnoteArea()

ViewFootnoteContNotice

ViewFootnoteContSeparator

ViewFootnotes, ViewFootnotes()

ViewFootnoteSeparator

ViewHeader, ViewHeader()

ViewMasterDocument, ViewMasterDocument()

ViewMenus()

ViewNormal, ViewNormal()

ViewOutline, ViewOutline()

ViewPage, ViewPage()

ViewRibbon, ViewRibbon()

ViewRuler, ViewRuler()

ViewStatusBar, ViewStatusBar()

ViewToggleMasterDocument

ViewToolbars

ViewZoom

ViewZoom100

ViewZoom200

ViewZoom75

ViewZoomPageWidth

ViewZoomWholePage

VLine

VPage

VScroll, VScroll()

-W-

WaitCursor

Weekday()

While...Wend

Window()

WindowArrangeAll

WindowList

WindowName$()

WindowNewWindow

WindowNumber

WindowPane()

WinToDOS$()

WordLeft, WordLeft()

WordRight, WordRight()

WordUnderline, WordUnderline()

Write

-Y-

Year()


CommandValid() 示例

本示例测试“撤消”命令（“编辑”菜单）是否可用。如果可用，则以前的编辑和格式编排命令将被撤消。

If CommandValid("EditUndo") Then

EditUndo

Else

MsgBox "Command not available."

End If


CommandValid()

示例

CommandValid(CommandName$)

如果 CommandName$ 在当前环境可用，则返回 -1；如果该命令不可用或 CommandName$ 不是一个对应 Word 命令或对话框选项的 WordBasic 语句,则返回 0。

_____________

请参阅

宏

IsMacro()


CountMacros() 示例

本示例把内部命令的数目存入 builtins ，然后把内部命令名的列表插入活动文档：

loaded = CountMacros(0, 0, 1)

active = CountMacros(1)

normal = CountMacros(0)

templates = active + normal

nonbuiltins = loaded + templates

builtins = CountMacros(0, 1) - nonbuiltins

For count = 1 to builtins

pos = count + nonbuiltins

Insert Str$(count) + Chr$(9) + MacroName$(pos, 0, 1)

InsertPara

Next count


CountMacros()

示例

CountMacros([Context] [, All] [, Global])

返回在指定环境中的可用的宏的数目。

参数	解释
Context	指明要计算宏数目的模板： 0 或省略    “标准”模板 1 活动模板 注意，如果您指明 1 并且“标准”模板是活动模板，则 CountMacros() 返回 0。
All	如果为 1，则所有可用宏，添加的命令以及内部命令都被计数。
Global	如果为 1，则只有存储在已加载共用模板内的宏以及添加的命令被计数。
_____________

请参阅

宏

MacroName$()


DisableAutoMacros 示例

本示例创立一个基于“Memo”模板的新的文档。这里假定该“Memo”模板含有一个可提供一系列对话框的 AutoNew 宏。DisableAutoMacros 语句可防止 AutoNew 运行。

DisableAutoMacros

FileNew .Template = "MEMO"


DisableAutoMacros

示例

DisableAutoMacros [Disable]

使 AutoOpen，AutoClose，AutoNew 和 AutoExit 宏无效直到用指令 DisableAutoMacros 0 使它们重新有效或重新启动 Word。您可以在激活一个自动宏的行之前放置一个 DisableAutoMacros 语句——比如，一个 FileNew 指令， 这个指令创建一个基于含有AutoNew 宏的模板的文档。

参数	解释
Disable	指明是否使自动宏无效： 0 （零）    使自动宏有效。 1 或省略    使自动宏无效。
您不可以使用 DisableAutoMacros 来使一个 AutoExec 宏或当前宏无效。比如，您不可以在一个 AutoOpen 宏中放置 DisableAutoMacros 语句来使 AutoOpen 无效。要使AutoExec 宏无效，可在程序管理器中启动 Word 时按住 SHIFT 键或使用下面命令行：

winword.exe /m

您可以使用下面命令行来使所有自动宏无效，包括 AutoExec：

winword.exe /mDisableAutoMacros


IsMacro() 示例

如果活动窗口是一个宏编辑窗口，则本示例创立一个新文档：

If IsMacro() = -1 Then FileNewDefault


IsMacro()

示例

IsMacro([WindowNumber])

如果由 WindowNumber 指定的窗口是一个宏编辑窗口，那么返回 -1，否则返回 0。

参数	解释
WindowNumber	指明“窗口”菜单中的一个窗口：1 对应第一个窗口， 2 对应第二个窗口，依此类推。如果 WindowNumber 为 0 或省略，则对应活动窗口。如果窗口编号与“窗口”菜单中编号不对应，则出错。
_____________

请参阅

宏

MacroFileName$()

MacroNameFromWindow$()

SelInfo()


KeyMacro$()

KeyMacro$(Count [, Context])

返回一个带有与默认状态不同的键分配的宏名或内部命令名。

参数	解释
Count	范围在 1 到 CountKeys() 之间的一个数值，这个数值指明了要返回的命令或宏名的自定义键分配情况
Context	含有自定义键分配的模板： 0 或省略    “标准”模板 1 活动模板
有关具体示例，请参阅 KeyCode() 示例。

_____________

请参阅

宏

CountKeys()

KeyCode()

MenuItemMacro$()


MacroCopy 示例

本示例把 MyTest 宏从 MYTEMP.DOT 复制到“标准”模板。新的宏命名为 MyFinal。

MacroCopy "C:\TEMPLATE\MYTEMP:MyTest", "Global:MyFinal"


MacroCopy

示例

MacroCopy [Template1:]Macro1$, [Template2:]Macro2$ [, ExecuteOnly]

把一个宏从一个打开模板复制到另一个模板。MacroCopy 不能替换一个打开的宏。如果一个模板附加到一个在文档窗口中打开的文档或作为共用模板加载，那么在这个模板就打开了。如果您只是执行新宏，则它不能被编辑。

参数	解释
Template1, Template2	打开含有您要复制的宏的模板，并打开您要把宏复制过去的模板。如果您在模板名中未指明扩展名，则赋予 .DOT 扩展名。 如果该模板不在由“选项”对话框（“工具”菜单）中“文件位置”选项卡上“文件类型”框的“用户模板”所指定的目录中，则需在模板名中加入路径。
Macro1$, Macro2$	要复制的宏名以及新宏名。
ExecuteOnly	如果非零，则只执行目标宏。注意这个操作不能逆转。在第一次执行时，做一份宏的备份会很有帮助。
如果您不指明一个源或目标模板，则假定为“标准”模板。您可以在一个 MacroCopy 指令中使用语法 Global:MacroName$ 来指明“标准”模板作为源或目标模板。例如：

MacroCopy "MyTemp:DelStylesTest", "Global:DelStyles"

尽管加入“Global:”不是必需的，但加入后可使 MacroCopy 指令在“标准”模板中更易读。.

_____________

请参阅

宏

IsExecuteOnly()


MacroDesc$() 示例

本示例打印一份“标准”模板中宏的列表以及对它们的描述。要打印活动模板的类似的列表，可对第一和第二指令分别替换为 CountMacros(1) 和 MacroName$(count, 1) 。

For count = 1 To CountMacros(0)

name$ = MacroName$(count, 0)

Bold 1

Insert name$ + Chr$(9)

Bold 0

Insert MacroDesc$(name$)

InsertPara

Next count


MacroDesc$()

示例

MacroDesc$(Name$)

返回与宏 Name$ 相对应的描述。当您选择“宏”对话框（“工具”菜单）中的宏，或者当您选择一个分配给菜单或工具栏的宏时，这种描述就会分别显示在“描述”框和状态栏中。您可以用 ToolsMacro 来设置宏的描述。

如果在活动模板或“标准”模板中不存在 Name$ 所指定的宏，则出错。如果在两者中都存在 Name$ ，则返回活动模板中的对应这个宏的描述。

_____________

请参阅

宏

CountMacros()

KeyMacro$()

MacroName$()

MenuItemMacro$()

ToolsMacro


MacroFileName$()

MacroFileName$([MacroName$])

返回一个模板的路径和文件名，这个模板含有由 MacroName$ 所指定的宏。Word 首先在活动模板中（如果不是“标准”模板）搜索该宏，接着在“标准”模板中搜索，然后在所有已加载共用模板（按字母顺序）中搜索，最后在内部命令中搜索（在该宏运行时，Word 搜索的顺序）。如果 MacroName$ 省略，则 MacroFileName$() 返回一个模板的路径和文件名，这个模板含有正在运行的宏。如果 MacroName$ 所指定的宏不存在， MacroFileName$() 返回一个空字符串 ("")。

_____________

请参阅

宏

MacroDesc$()

MacroName$()

MacroNameFromWindow$()


MacroName$()

MacroName$(Count [, Context] [, All] [, Global])

返回在指定环境中定义的宏的名称。

参数	解释
Count	一个数值，这个数值指明了在指定环境中位于宏的内部列表上的位置。与“宏”对话框（“工具”菜单）中的列表不同，其中的顺序不是按字母排列的。这个数值可以在 1 和指定环境中由 CountMacros() 所返回的数值之间变动。 如果您指定 Count 为 0， 则 MacroName$() 回活动（或最近活动）宏编辑窗口中的宏名。
Context	指明生成宏内部列表的模板： 0 “标准”模板 1 活动模板 注意，如果当“标准”模板是活动模板并且 Count 大于 0 时，您指定为 1，则出错。.
All	如果为 1 ，则所有可用宏，添加的命令以及内部命令按下列次序列表：存储在活动文档中的宏，存储在“标准”文档中的宏，存储在已加载共用文档中的宏，添加的命令以及内部命令。
Global	如果为 1 ，则只有存储在已加载共用模板中的宏和添加的命令列表。
有关使用 MacroName$() 的示例，请参阅 MacroDesc$() 示例。

_____________

请参阅

宏

CountMacros()


MacroNameFromWindow$()

MacroNameFromWindow$([WindowNumber])

返回指定宏编辑窗口中的宏的名称。如果指定窗口不是宏编辑窗口，则 MacroNameFromWindow$() 返回一个空字符串 ("")。

参数	解释
WindowNumber	指定“窗口”菜单上的一个窗口：1 对应第一个窗口，2 对应第二个窗口，依此类推。如果 WindowNumber 为 0 或省略，则假定为活动窗口。如果 WindowNumber 与“窗口”菜单上的窗口不对应，则出错。
_____________

请参阅

宏

IsMacro()

MacroFileName$()

MacroName$()


MenuItemMacro$() 示例

这个示例定义了一个数组变量，这个变量含有命令名和分配给当前工作环境中“文件”菜单的宏。要为活动模板的“文件”菜单定义一个类似的数组，可把第一条指令替换为 CountMenuItems("File", 0, 1) ，把第四条指令替换为 MenuItemMacro$("File", 0, count, 1) 。

numItems = CountMenuItems("File", 0, 0)

Dim fileItem$(numItems - 1)

For count = 1 To numItems

fileItem$(count - 1) = MenuItemMacro$("File", 0, count, 0)

Next count


MenuItemMacro$()

示例

MenuItemMacro$(Menu$, Type, Item [, Context])

返回与指定菜单项相关的宏或内部命令的名称。

参数	解释
Menu$	一个菜单或快捷菜单的名称。菜单名列在“自定义”对话框（“工具”菜单）中“菜单”选项卡上的“更改菜单项”框里。 在菜单名中带下划线的字母前加和字符 (&)是可选的（例如，您既可以用 "File"，也可以用 "&File"）。不要加入带括号的短语如 "(No Document)" 和 "(Shortcut)"，即使该文本出现在“自定义”对话框中也是如此。
Type	菜单的类型： 0 当一个文档打开时位于菜单栏上的菜单。 1 当没有文档打开时位于菜单栏上的菜单。 2 快捷菜单。
Item	一个表示菜单项在菜单上位置的数值。这个数值可以在 1 和由 CountMenuItems() 返回的数值之间变动。命令之间的分隔线也被认为是菜单项。如果 Item 表示的是一个分隔线的位置，那么 MenuItemMacro$() 返回字符串 "(Separator)"。 注意象“文件”菜单上最近使用过的文件的列表或“工具”菜单上检查工具的列表都对应单个的菜单项。如果您指明一个列表的位置， MenuItemMacro$() 返回一个空字符串 ("")。
Context	指明要返回的宏或命令名的菜单分配： 0 (或省略    当一个基于“标准”模板的文档是活动文档时，可用的菜单分配 1 当前可用的菜单分配 注意可用的分配取决于自定义设置项，所有活动模板，所有已加载共用模板以及“标准”模板。
_____________

请参阅

宏

CountMacros()

KeyMacro$()

MacroDesc$()

MacroName$()

MenuItemText$()

ToolsCustomizeMenus


PauseRecorder

PauseRecorder

停止和重启动宏记录。PauseRecorder 是一个内部 Word 命令，当用户选择“宏”工具栏上的“暂停记录”按钮时运行，这条语句在宏中一般不显示。


REM 示例

本示例演示了在一个宏中加入注释的四种方法。

REM MyMacro Title -- MyName Here

'More about MyMacro

ParaDown	'Move to start of next paragraph

ParaUp	REM Moves to start of previous paragraph


REM

示例

REM Comments

'Comments

指明解释性文本，在宏运行时，Word 将忽略它们。您可以使用一个单引号 (') 来代替 REM 。每一种标记方法都有其优缺点：REM 使得注释很容易与 WordBasic 指令区分开来，但所占据的空间位置却比单引号多。


ShowVars 示例

本示例把变量 name$ 和 age 定义为文本文件 DATA.TXT 第一行中的项。这些变量显示在可对值进行调整的对话框里。

Open "C:\TMP\DATA.TXT" For Input As #1

Input #1, Name$, Age

ShowVars


ShowVars

示例

ShowVars

显示一组变量及其当前值的列表以帮助您调试活动宏。借助 ShowVars 宏，您可以暂停宏并在您所希望的地方检查变量。

_____________

请参阅

宏

MsgBox()

Print

Stop


ToolsMacro 示例

这个示例为存储在“标准”模板中的宏 Test 打开一个宏编辑窗口。

ToolsMacro .Name = "Test", .Show = 1, .Edit


ToolsMacro

示例

ToolsMacro .Name = text [, .Run] [, .Edit] [, .Show = number] [, .Delete] [, .Rename] [, .Description = text] [, .NewName = text] [, .SetDesc]

运行或记录一个宏，设置一个宏的描述，对一个宏改名，或在宏编辑窗口中打开一个新的或已存在的宏。ToolsMacro 语句的参数与“宏”对话框（“工具”菜单）中的选项相对应。注意 .Rename 和 .NewName 参数是为与以前版本的 Word 相兼容而加入的。

参数	解释
.Name	宏的名称。
.Run	运行该宏。
.Edit	打开一个含有由 .Name 所指定宏的宏编辑窗口。
.Show	指明环境： 0 所有可用宏；包括已加载共用模板中的宏 1 “标准”模板中的宏 2 内部命令 3 如果活动文档不是基于“标准”模板之上，则表示活动文档中的宏；否则表示第一个已加载共用模板中的宏（共用宏按字母顺序列出）。 > 3    剩余共用模板中的宏（按字母顺序） 省略    Word 将搜索在“宏”对话框中最后选择的环境中的宏。要确保运行正确的宏，尤其是在一个宏名在模板之间可能冲突的情况下，您必须为 .Show 指明一个值。
.Delete	删除指定的宏。
.Rename	对指定的宏改名。
.Description	该宏指明一个新的描述；与 .SetDesc联用。如果该宏被分配给一个菜单或工具栏并且被选中或被鼠标指点，那么对应的描述将显示在状态栏里。
.NewName	为该宏取的新名，与 .Rename 联用。
.SetDesc	为该宏设置一个新的描述。
_____________

请参阅

宏

CountMacros()

IsMacro()

KeyMacro$()

MacroDesc$()

MacroFileName$()

MacroNameFromWindow$()

MenuItemMacro$()

Organizer

PauseRecorder


Converting Word Version 2.x Macros
转换 Word 2.x 中的宏

概述

WW2_ 语句和函数

使用段落标记

调整启动选项

错误检查

Word 的限制条件

创建并显示对话框

剪切和粘贴文本

使用 SendKeys

查找和替换文本

查找域

使用页眉和页脚

新补充的格式

用新语句和函数替换 Window API 调用

调用宏和子程序时环境的问题

利用共用模板

各种各样的 "gotchas"

命名变量，子程序和用户定义的函数


Overview
概述

在您第一次打开一个 Word 2.x 模板，或者创建一个基于该模板的新的文档，或者使用“模板”命令（“文件”菜单）把该模板附加在一个文档上时，Word 转换该模板中的宏。（注意 Word 6.0 不能直接转换 Word 1.x 的宏，可先在 Word 2.x 中打开 Word 1.x 模板，然后在 Word 6.0 中打开）。对模板进行转换后，您必须保存它以保存转换后的结果。如果您没有保存该模板， Word 将在您下次使用该模板时再次进行转换。

如果您想充分控制宏的转换（也就是说，如果您不想让 Word 自动转换您的宏），您可以对宏进行人工转换。要做到这一点，可在 Word 2.x 中打开每一个宏，把宏代码复制到一个普通文档并保存这个文档。然后，在Word 6.0 中，打开这个文档，在 Normal 模板或一个新的自定义模板下，为原来的每一个宏建立一个新宏，再把文本从这个文档中拷入宏编辑窗口。调试每一个宏，判断代码中的哪一部分需要修改，以得到与 Word 2.x 相同的结果。

当Word 自动转换宏时，您可能需要人工调整其中的一些宏以完成转换。本主题将努力识别有关您的宏的区域，要想从这些宏中得到您想要的结果，您也许需要对这些区域加以注意。


WW2_ statements and functions
WW2_ 语句和函数

为提高兼容性，大量 Word 2.x 的 WordBasic 语句和函数装入 Word 6.0，并给予 "WW2_" 前缀（比如，WW2_CountMenuItems() 和 WW2_EditFind）。当宏转换器遇到任何这些 Word 2.x 的语句或函数中的一个时，将替换以带有 WW2_ 的名称。

WW2_ 函数提供 Word 2.x 的语法，但并不在 Word 2.x 下运行。比如，WW2_Insert 在 Word 6.0 中插入“智能剪切与粘贴”的设置；WW2_EditFind 必须使用 Word 6 中的代码来搜索特殊的字符。

下面是全部 WW2_ 语句和函数的列表：

WW2_ChangeCase WW2_ChangeRulerMode WW2_CountMenuItems() WW2_EditFind WW2_EditFindChar WW2_EditReplace WW2_EditReplaceChar WW2_FileFind WW2_FileTemplates WW2_Files$() WW2_FootnoteOptions WW2_FormatBordersAndShading WW2_FormatCharacter WW2_FormatDefineStyleChar WW2_GetToolButton() WW2_GetToolMacro$() WW2_Insert WW2_InsertFootnote WW2_InsertIndex WW2_InsertSymbol WW2_InsertTableOfContents WW2_KeyCode WW2_MenuMacro$()	WW2_MenuText$() WW2_PrintMerge WW2_PrintMergeCheck WW2_PrintMergeCreateDataSource WW2_PrintMergeCreateHeaderSource WW2_PrintMergeHelper WW2_PrintMergeSelection WW2_PrintMergeToDoc WW2_PrintMergeToPrinter WW2_RenameMenu WW2_RulerMode WW2_TableColumnWidth WW2_TableRowHeight WW2_ToolsHyphenation WW2_ToolsMacro WW2_ToolsOptionsGeneral WW2_ToolsOptionsKeyboard WW2_ToolsOptionsMenus WW2_ToolsOptionsPrint WW2_ToolsOptionsToolbar WW2_ToolsOptionsView WW2_ToolsRevisionsMark WW2_ViewZoom
注意， CommandValid() 带有一个字符串来指明一个命令名。Word 6 并不把这个字符串转换为一个有效的 Word 6 命令名，也不给它添加 "WW2_" 。必须在已转换的宏中检查所有这种函数，以保证被测试的命令名有效（比如，把 "InsertBookmark" 改为 "WW2_InsertBookmark" 或 "EditBookmark")。

记住下面这些 Word 2.x ，WW2_ 命令及 Word 6.0 中对应命令的细节，并注意比较。

WW2_Files$() 只返回文件名，而 Word 6.0 Files$() 函数返回路径和文件名。

WW2_Insert 与 Word 6.0 中的 Insert 语句结果相同，但在选中文本时除外。如果当前选中内容在其末尾包含一个分节符， WW2_Insert 将覆盖它，而 Word 6.0 的 Insert 不覆盖。如果选中一个单词并包括其后的空格符，WW2_Insert 将替换该空格符，而 Insert 语句不替换。

Word 6.0 通过包含 Word 2.x 中的如 WW2_EditFind 和 WW2_EditReplace 语句来提供对查找以及替换宏操作的兼容性。注意 Word 2.x 中的特殊字符代码在 WW2_EditFind 和 WW2_EditReplace 中仍然有效。但是，如果指明 ANSI 字符 34（直引号）作为 Word 6.0 中 WW2_EditFind，、WW2_EditReplace、EditFind 或 EditReplace 中的查找文本，查找结果将既有直引号又有花引号（ANSI 字符 147 和 148）；在 Word 2.x 宏中，ANSI 34 则只找到直引号。

有关查找和替换的修改部分的详细内容，请参阅查找和替换文本。

Word 2.x 语句 ViewHeaderFooter 在 Word 6.0 中改为 NormalViewHeaderArea 语句，但是使用 NormalViewHeaderArea 语句将得不到类似 Word 2.x 中的对话框。

Word 2.x 语句 IconBarMode 在 Word 6.0 中继续得到支持，但不产生结果。

有一些 WW2_ 语句对应 Word 2.x 中的对话框。其中的一些不能用来在 Word 6.0 中显示 Word 2.x 的对话框（尽管这些语句仍可用来设置选项或通过对话记录来返回信息）。已转换的 Word 2.x 宏要显示与任何下列语句有关的对话框都必须人工更新。

NormalViewHeaderArea
WW2_EditFindChar
WW2_EditReplaceChar
WW2_FormatDefineStyleChar
WW2_PrintMerge
WW2_PrintMergeCheck
WW2_PrintMergeHelper
WW2_PrintMergeSelection
WW2_PrintMergeToDoc
WW2_PrintMergeToPrinter
WW2_ToolsOptionsGeneral
WW2_ToolsOptionsKeyboard
WW2_ToolsOptionsMenus
WW2_ToolsOptionsToolbar
WW2_ToolsOptionsView
WW2_ViewZoom


Working with paragraph marks
使用段落标记

在 Word 2.x 中，两个 ANSI 字符 13 和 10 指明一个段落标记。在 Word 6.0 中，只用 ANSI 字符 13 代表一个段落标记。任何以语句：

para$ = Chr$(13) + Chr$(10)

为前提的 Word 2.x 宏在 Word 6.0 文档中将不能正常工作。Word 2.x 宏经常利用这个前提条件来搜索段落标记，或测试一个选中内容以判断它是否含有一个段落标记。在任何已转换的 Word 2.x 宏中修改这一前提条件，将改变与 Word 6.0 文档的不兼容性。

但是，在 Word 2.x 中的段落标记和在 Word 6.0 中打开的纯文本文档中的段落标记仍然等于 ANSI 字符 13 和 10；只有当一个 Word 2.x 文档或纯文本文档按 Word 6.0 格式保存时，段落标记才转换为 ANSI 字符 13。如果您的宏需要在两种格式下工作，必须在修改这一前提条件之前检查当前格式。


Modifying startup options
调整启动选项

Word 6.0的启动选项现在位于 WINWORD6.INI中。在 GetProfileString$() 或 SetProfileString 指令中，指明 Word 部分的宏 ("Microsoft Word 2.0",

"Microsoft Word", "MSWord Text Converters", "MSWord Editable

Sections")将返回 或设置 WINWORD6.INI而不是WIN.INI中的信息。如果您需要返回或设置 WIN.INI中 Word 2.x 部分的选项，请使用 GetPrivateProfileString$() 和 SetPrivateProfileString，它们将允许您明确指明一个 INI 文件。


Error checking
错误检查

由于 Word 6.0 中的错误信息比 Word 2.x 中的信息要具体得多，因此您可能需要更新错误处理例程以处理新的错误。比如，如果插入点或选中内容不在一个表格中， StartOfRow 和 EndOfRow 语句将产生一个出错信息。记住下面两点：

没有使用 GetCurValues 而操作对话框的例程在 Word 2.x 中不产生错误，但在 Word 6.0 中产生错误。

如果在一个对话框定义过程中指明的数组变量未定义，Word 6.0 将显示出错信息。


Limits in Word
Word 的限制条件

您可能会希望修改您的宏中有关 Word 限制条件的假设，因为一些限制条件现在已经改变（比如 ，可同时打开的文档窗口由九个变为现在的内存允许的任意多个）。在转换 Word 2.x 宏时，一个需要考虑的变化是 Call 指令调用其他宏和子程序的嵌套层次数减小了。但是，在 Word 2.x 中，可用内存常常在一个宏的嵌套层次达到 Word 6.0 的内部最大值 9 之前就已经不够了。

有关 Word 6.0 的新的限制条件和其他变动的详细内容，请参阅WordBasic 中的新内容和《Microsoft Word 速成手册》。


Creating and displaying dialog boxes
创建并显示对话框

在 Word 2.x 中，选项按钮和复选框在由 OptionButton 和 CheckBox 指令参数定义的矩形中是按垂直方向对齐的。在 Word 6.0 中，选项按钮和复选框在该矩形的顶部对齐。在 Word 2.x 宏中，如果该矩形比所需尺寸要大，那么当转换对话框时，选项按钮或复选框就可能放不下。必要时，可以把对话框定义粘贴到“对话框编辑器”并重新调整控制的尺寸。

在 Word 6.0 中，列表框不再识别空字符串。如果一个宏在分配给列表框的数组中加入一个空字符串，则列表项在该空字符串后被截断。比如，如果您建立下面的数组：

ListBox1$(0) = "hello"
ListBox1$(1) = ""
ListBox1$(2) = "hello"

然后在定义一个对话框时将其分配给一个列表框，那么在显示该对话框时，列表框的 "hello" 后面将没有字符出现。要修改这个对话框，要么从数组中去除空字符串，要么在空字符串处添加一个空格，比如：

ListBox1$(1) = " "

在 Word 6.0 中，一个不带“取消”按钮的自定义对话框将不能使用对话“控制”菜单来关闭。可采取两种办法来解决：使用 MsgBox 命令而不用自定义对话框（注意，一个消息框只能显示 256 个字符），或者在定义对话框时，加入一个“取消”按钮，然后在初始化时隐藏这个“取消”按钮。

在 Word 2.x 中，用 InputBox$() 显示的输入框把输入焦点设置在“确定”按钮上，要通过键盘选择“确定”按钮，用户可以按 ENTER，要在文本框中插入一个新行，用户可以按 SHIFT+ENTER。在 Word 6.0 中，用 InputBox$() 显示的输入框把输入焦点设置在文本框上，当用户按 ENTER 时，Word 在文本框中插入一个新行；要通过键盘选择“确定”，用户必须按 TAB 来把输入焦点设置到“确定”按钮然后再按 ENTER。

如果您想在您的宏中保留 Word 2.x InputBox$() 的性能，那么必须用 Dialog 或 Dialog() 指令而不是用 InputBox$()来建立一个自定义对话框。如果您使用了 Word 6.0 的 InputBox$() 函数，那么可以通过判断返回的字符串来确定它是否可用，如果用户想选择“确定”按钮但却不小心按了 ENTER ，则清除这个字符串，这样做可以使得您的宏容错性更好。


Cutting and pasting text
剪切和粘贴文本

“选项”对话框（“工具”菜单）中的“编辑”选项卡含有一个新的编辑选项。使用“使用智慧型剪贴”可以在您删除文本时取消不必要的空格，在插入文本时添加空格。在进行删除、剪切或粘贴文本的宏中，可使用 ToolsOptionsEdit 来控制这个选项，确定这个选项与您的宏的前提条件相对应。对于 Word 2.x 宏，前提条件很可能会使这个功能不能使用，因此可在您的宏中添加下面的指令以使其与 Word 6.0 作用相同。

Sub MAIN

Dim dlg As ToolsOptionsEdit

GetCurValues dlg

reset = dlg.SmartCutPaste

dlg.SmartCutPaste = 0

ToolsOptionsEdit dlg

' Word 2.x macro instructions

ToolsOptionsEdit .SmartCutPaste = reset

End Sub


Using SendKeys
使用 SendKeys

宏转换器并不修改由 SendKeys 语句指定的击键操作以使其适应 Word 6.0 中菜单、菜单项以及对话框控制的变动。比如，在 Word 2.x 中指令

SendKeys "%ob"

显示“项目符号和编号”对话框（“工具”菜单）。在 Word 6.0 中，同样的语句显示“边框和底纹”对话框（“格式”菜单）。所以应在已转换的 Word 2.x 宏中搜索所有的 SendKeys 指令以使其在 Word 6.0 中仍能正常工作。


Finding and replacing text
查找和替换文本

Word 6.0 的EditFind 和 EditReplace 语句已经更新。新版本对 .Direction 使用不同的值，并使用新的 .Wrap 参数来控制提示（有关细节，请参阅 EditFind）。同时，在查找和替换特殊字符时所用的一些字符代码也已改变（比如，对于人工分页，用 "^m" 代替了 "^d"）。

出于这些原因，Word 6.0 在查找和替换文本操作中通过加入 Word 2.x 的这些语句如 WW2_EditFind 和 WW2_EditReplace 来提供兼容性。注意，Word 2.x 的特殊字符代码在 WW2_EditFind 和 WW2_EditReplace 中仍然能够工作。

在一条 Word 2.x 的EditFind 指令中，您可以设置 .Direction 为 2 来向文档的末尾搜索并在到达末尾时放置 Word 给出提示。如果在搜索开始时，有选中内容，则 Word 2.x 先搜索选中内容，然后继续选中内容之后的搜索。而 Word 6.0 中的 WW2_EditFind 指令不再继续这种在选中内容之后的搜索。除非您的宏确定在 WW2_EditFind 指令运行之前没有选中内容，否则，您可能需要用 Word 6.0 的 EditFind 并设置 .Direction 为 0，新的 .Wrap 参数为 1 来重写这个指令。

用 Word 6.0 的 InsertSymbol 命令插入的字体名和符号的 ANSI 代码是隐藏的；Word 把这些符号识别为 ANSI 字符 40（左圆括号）。必须知道已转换的用来搜索左圆括号的 Word 2.x 的宏也会查找到 Word 6.0 文档中由 InsertSymbol 插入的符号。


Searching for fields
查找域

在 Word 2.x 中，左域字符和域名之间没有空格。在 Word 6.0 中，在左域字符之后和右域字符之前插入了一个空格。如果您有对特定域进行搜索并对其执行某些动作的宏，那么必须考虑这个变动。考虑下面由 Word 2.x 转换过来的宏，注意在查找文本中 ^19 和 DATE 之间没有空格。

REM UnlinkDateFields -- unlinks each DATE field in the document

Sub MAIN

StartOfDocument

EditFindClearFormatting

WW2_EditFind .Find = "^19DATE", .Direction = 2, .Format = 0, .MatchCase = 0

While EditFindFound()

UnlinkFields

WW2_EditFind .Find = "^19DATE", .Direction = 2, .Format = 0, .MatchCase = 0

Wend

End Sub

您必须假定文档中含有这样的域，即该域的左域字符后有不同数目的空格，尤其该文档是 Word 2.x 文档时。要考虑到这些，上面的宏可以重写为包括两个循环：一个是对于左域字符后没有空格的 DATE 域，一个是对于左域字符后有一个或多个空格 (^w) 的 DATE 域。注意下面的宏使用了 Word 6.0 的EditFind 和 EditReplace，可以为一个域字符指明 ^d 。

REM UnlinkDateFields -- unlinks each DATE field in the document

Sub MAIN

EditFindClearFormatting

ViewFieldCodes 1

EditFind .Find = "^dDATE", .Direction = 0, .Wrap = 1, .Format = 0, \

.MatchCase = 0

While EditFindFound()

UnlinkFields

EditFind .Find = "^dDATE", .Direction = 0, .Wrap = 1

Wend

EditFind .Find = "^d^wDATE", .Direction = 0, .Wrap = 1

While EditFindFound()

UnlinkFields

EditFind .Find = "^d^wDATE", .Direction = 0, .Wrap = 1

Wend

End Sub

您还必须知道在 Word 6.0 中有四个域的名称已经改变。但是，当您在 Word 6.0 中打开一个含有一个或多个这些域的 Word 2.x 的文档时，Word 不会更新该域的名称。这些域仍然象以前一样工作，但它们的名称不会改变为 Word 6.0 的名称，除非您编辑该域代码。

下表给出了这四个域：

Word 2.x	Word 6.0
INCLUDE	INCLUDETEXT
IMPORT	INCLUDEPICTURE
FTNREF	NOTEREF
GLOSSARY	AUTOTEXT
如果您有搜索这些域的宏，那么您可能需要添加代码来考虑两种域名同时出现在同一文档中的情况。


Working with headers and footers
使用页眉和页脚

在 Word 6.0 中，最普通的使用页眉和页脚的方法是在页面视图中用 ViewHeader 语句来显示它们。这种方法的一个限制是 Word 只能显示存在于文档中的页的页眉和页脚（也就是说，可在页面视图中显示的页）。

要为文档使用只有很少文本或没有文本的页眉和页脚（比如，一个可使类似书籍的文档基于其上的模板），您必须使用 NormalViewHeaderArea 语句来显示标准视图的页眉/页脚窗格中的任何页眉和页脚。NormalViewHeaderArea 语句对应 Word 2.x 的 ViewHeaderFooter 语句。两者参数相同，而且可以使用对话记录和 GetCurValues 来返回 NormalViewHeaderArea的当前值，但是，在 Word 6.0 中，您不能显示 Word 2.x 的 ViewHeaderFooter 对话框。

下面指令与 Word 6.0 宏指令是等价的：

FilePageSetup .DifferentFirstPage = 1, .OddAndEvenPages = 1

NormalViewHeaderArea .FirstPage = 1, .OddAndEvenPages = 1

但是在一个没有文本或分页的文档里，下面的指令将显示在标准视图的页眉/页脚窗格中的奇数页眉：

NormalViewHeaderArea .Type = 4

而下面的指令在页面视图只显示第一页的页眉。

ViewHeader

当有足够的文本来进行分页时（或用 InsertBreak 来分页时），ViewHeader 指令可以在页面视图中显示奇数页眉。

从 Word 2.x 转换过来的宏可以自动地使用 NormalViewHeaderArea 语句，就象以前使用 ViewHeaderFooter 一样。要复制 Word 2.x 功能到新的 Word 6.0 宏，也必须使用 NormalViewHeaderArea 。如果您的 Word 6.0 的宏需要在页面视图中使用 ViewHeader 而不管活动文档或模板中的页数，那么可以编写代码，插入一个或两个临时分页符，调整页眉和页脚，然后再取消临时分页符。


New formatting implementations
新补充的格式

Word 6.不但增添了许多新的格式，而且对 Word 2.x 的一些格式语句和函数进行了修订，使其功能更完善。在转换 Word 2.x 宏时，如果您希望保留 Word 2.x 格式所产生的结果，就可能需要重写一些使用了格式语句的代码。下面是一些具体情况：

Word 6.0 现在具有基于印刷信息之上的“上标”、“下标”和“小型大写字母”格式，这个印刷信息保存在指定的字体里。Word 2.x 中通过增加文本和减小字体尺寸来建立上标和下标文本的宏，可转换到 Word 6.0 里做同样的事情。但是，使用这种技术的指令可以进行人工调整以利用 Word 的新的字体格式。

Word 2.x 的FormatParagraph 语句的 .LineSpacing 参数在 Word 6.0 的 FormatParagraph 中被分割为两个参数：.LineSpacingRule 和 .LineSpacing。在 Word 2.x 中要指明确切的行距，您必须对 .LineSpacing 参数指明一个负值（比如，"-10 pt"）。在 Word 6.0 中使用同样的格式，您可以从下面两种方法中选一种执行：指明.LineSpacingRule 为“精确”（值 4）并给 .LineSpacing 一个正值（比如，"10 pt"）；或者给 .LineSpacing 一个负值（比如， "-10 pt"），这样，使用这种格式的 Word 2.x 的指令在转换时就不会出错。

但是，在 Word 6.0 运行了一个 .LineSpacing 为负值的指令后，.LineSpacingRule 的值就设置为 4（“精确”），.LineSpacing 的值修改为一个正值。因此，如果您的宏包含任何在 Word 6.0 FormatParagraph 对话记录中测试 .LineSpacing 是否为负值的条件语句（如 If...Then...Else 或 While...Wend），它们都将返回“假”。每一个测试 .LineSpacing 为负值的语句都必须调整为或者测试 .LineSpacing 是否为正值，或者测试 .LineSpacingRule 的值是否为 4，或者测试两者，这将取决于所需的信息。

Word 6.0 提供两种样式：段落和字符。由 StyleName$() 返回的当前样式名取决于插入点或选中内容位于何处。比如，如果在“正文”段落中选中一个单词，且该单词上没有施加任何字符样式，则 StyleName$() 返回“正文”。但是，如果这个单词有一个字符样式，如 StyleName$() 返回 "ArialBold"。要使 StyleName$() 返回基本段落的样式，而不管施加到当前选中内容的任何字符样式，请使用下面的代码：

EditBookmark "tmp"

SelType 1

reset$ = StyleName$()

Style "Default Paragraph Font"

parastyle$ = StyleName$()

Style reset$

EditGoto "tmp"

EditBookmark "tmp", .Delete

在 Word 6.0 中，可以在宏中使用 Organizer 命令来复制多种样式，自动图文集项，工具栏以及宏，一个宏可以在由一个函数如 CountStyles() 所返回的项目数的基础上，建立一个循环，对每一项运行 Organizer 指令。

在 Word 6.0 中的宏如同在 Word 2.x 中一样，可使用 FormatStyle 语句的 .FileName,.Source 和 .Merge 参数来从文档或模板合并所有的样式，或者合并所有的样式到文档或模板。使用这种方法的 Word 2.x 的宏在转换到 Word 6.0 时，只需很少改动和根本不需改动。


Replacing Windows API calls with new statements and functions
用新语句和函数替换 Window API 调用

在 Word 6.0 中一些新的 WordBasic 语句和函数可以提供 Word 2.x Declare 语句所提供的普通 Windows API 调用的功能。在从 Word 2.x 转换一个宏到 Word 6.0 时，您必须考虑这个宏的哪些 Windows API 调用可以转换为新的内部 WordBasic 函数。

比如，可以在 Word 6.0 中使用应用程序控制语句如 AppSize、AppMove 和 AppMinimize 等来控制任何一个 Windows 应用程序的状态。而不仅仅是 Word。如果您的宏试图使用 Windows API 调用来调整非 Word 应用程序，那么您可能需要考虑用相应的 WordBasic 语句来替换该应用程序的调用。同时，一些新的语句如 AppGetNames、AppCount() 和 AppIsRunning() 也可以扩展宏的能力，用来调整和返回整个 Windows 环境的信息。

AppSendMessage 是添加到 Word 6.0 中的一个功能很强的语句，它允许宏发送任何 Windows API 消息及相关参数（在 Microsoft Windows 3.1 软件开发工具中描述）到任何正在运行的 Windows 应用程序。如果您正在转换一个使用 Windows API 函数调用从事同样事情的 Word 2.x 的宏，那么可以调整这个宏以利用 AppSendMessage。

Word 6.0 添加了两条语句，ScreenUpdating 和 ScreenRefresh ，来提供一些显示控制，这种控制只能在 Windows API EchoOff 函数里找到。注意， ScreenUpdating 并不提供与 EchoOff 相同的功能，工具栏可以隐藏和显示，状态栏可以更新，消息框可以提示信息，等等。如果您有一个使用 Windows API EchoOff 函数的 Word 2.x 的宏，那么可以考虑使用 Word 6.0 的屏幕更新语句来代替，如果该语句能够满足要求的话。

在 Word 6.0 中，您可以使用 GetPrivateProfileString$() 和 SetPrivateProfileString 来返回和调整任何初始化文件的设置，这些初始化文件可以是 WIN.INI，WINWORD6.INI，其他 Windows 应用程序的初始化文件或您自己的初始化文件如 MACROVAR.INI。如果您正在转换一个使用 Windows API 调用来做类似事情的 Word 2.x 的宏，那么可以考虑是否用内部语句和函数来完成同样的任务。


Issues of context when calling macros and subroutines
调用宏和子程序时环境的问题

在 Word 2.x 和 Word 6.0 中，您可以通过 ToolsMacro 指令或使用下面的语法从一个宏调用另一个宏。

[Call] MacroName[.SubName] [ArgumentList]

有时，会有多于一个指定的宏是可用的。在这种情况下， Word 6.0 在确定运行哪一个宏时，使用与 Word 2.x 不同的法则。一般来说，Word 2.x 在解决名称冲突时，倾向于活动模板，而 Word 6.0 则倾向于包含调用宏的模板。下面的示例显示了这一点：

考虑包含宏 Welcome 的模板 MY.DOT。

'Welcome macro (MY.DOT)

Sub Main

MsgBox "I am the Welcome macro in MY.DOT"

End Sub

考虑在模板 NORMAL.DOT 中包含同名宏。

'Welcome macro (NORMAL.DOT)

Sub Main

MsgBox "I am the Welcome macro in NORMAL.DOT"

End Sub

现在考虑 Nomal 模板中的另一个宏，这个宏创建一个基于 MY.DOT 的文档，然后运行 Welcome。

'Macro in NORMAL.DOT that runs NORMAL.DOT version of Welcome

Sub Main

FileNew .Template = "MY.DOT"

Welcome

End Sub

在 Welcome 运行时，MY.DOT 是活动的。在 Word 2.x 中，运行 MY.DOT 中的 Welcome 是因为名称冲突的解决倾向于活动模板。在 Word 6.0 中，由于含有调用宏的模板有优先权，因而运行 NORMAL.DOT 的 Welcome。

是否可以不修改那些有相同名称的宏和子程序的名称而又可以忽略它们的行为？有两种办法：用 ToolsMacro 来替代 Call，或者加入 WW2CallingConvention 语句。

如果您想在活动模板中运行一个宏的主子程序，而不管哪一个模板含有它要调用的宏（而且您不需要传送任何值），请使用 ToolsMacro 指令，并设置 .Show 为 3（活动模板环境的值）。

'Macro in NORMAL.DOT that runs MY.DOT version of Welcome

Sub Main

FileNew .Template = "MY.DOT"

ToolsMacro .Name = "Welcome", .Show = 3, .Run

End Sub

注意，在您调用带有 ToolsMacro 的宏的任何时候，最好都能指明 .Show。否则，环境值将由在“宏”对话框中最近所选择的环境决定。这与 Word 2.x 中的 ToolsMacro是不同的，在 Word 2.x 中，如果您省略了 .Show， Word 首先会在活动模板中查找这个宏，然后在 Nomal 模板中查找，最后在内部命令中查找。

如果您希望 Word 6.0a 按 Word 2.x 的方式来解决名称冲突问题，可使用 WW2CallingConvention 。利用 WW2CallingConvention，您的宏可以使用 Call 指令调用在活动模板宏里的宏或子程序，即使有同名宏已经存在于调用模板里也是如此。如果您要传递值给一个有名称冲突问题的宏，则必须加入 WW2CallingConvention 语句。如果不要传递值，可使用 ToolsMacro 语句并设置 .Show 为 3，就象上面说的那样。

注释

WW2CallingConvention 是在 Word 6.0a 里附加的。注意，任何使用包含有 WW2CallingConvention 宏的人必须有 Word 6.0a 。可以在含有 WW2CallingConvention 的宏中加入 CommandValid()来检查是否能够在当前所运行的 Word 版本中使用这个新语句。有关信息内

容，请参阅 WW2CallingConvention。


Taking advantage of global templates
利用共用模板

如果您正在从 Word 2.x 的各种模板中转换一整套复杂的宏到 Word 6.0 中，那么出于下面的原因，您可以考虑利用共用模板：

如果您正在从 Word 2.x 的各种模板中转换一整套复杂的宏到 Word 6.0 中，那么出于下面的原因，您可以考虑利用共用模板： MacroCopy 的例程来复制这些宏的部分或全部到一个用户的 Normal 模板，这样这些宏在任何时候都将是可用的。在 Word 6.0 中，您只需分配一个模板，让其含有全部这些宏，然后指导用户用“模板和加载项”对话框（“文件”菜单）把这个模板作为共用模板加载。有了共用模板，就不必与用户的 Normal 模板打交道了。

如果您分配多个 Word 2.x 模板，每个都有自己的一套宏，那么您可以重新组织这些模板以利用共用模板。操作基于某一给定模板的新文档的宏不需要保存在该模板里，而可以放在一个共用模板里。通过把宏保存在一个共用模板里，您还可以避免交叉模板命名冲突。

从 Word 2.x 的模板冲突转变到 Word 6.0 的使用单个共用模板，以自动定义用户的 Word 环境，这个过程需要对已有的 Word 2.x 模板进行一些代码重写和重新组织工作。然而，为自定义 Word 而使用共用模板，将使得转换的 Word 2.x 模板在 Word 6.0 及以后版本中具有长期稳定性。


Miscellaneous gotchas
各种各样的 "gotchas"

在您转换 Word 2.x 宏到 Word 6.0 时，必须在宏中查找下面这些假设。如果这些宏在这些假设条件下运行，那么在 Word 6.0 中对这些宏的变动就有可能导致难以预料或不正确的结果。

如果文档中最后的段落标记与预定义书签"\Para" 和 "\Page"的其余部分相邻的话，那么书签将不再选择该段落标记。比如，在 Word 2.x 中，如果插入点或选中内容在最后一页上，那么指明 "\Page" 的 EditGoto 指令会选中文档的最后一个段落标记；而在 Word 6.0 中，这个段落标记就被排除了。如果一个已转换的 Word 2.x 宏利用了该段落标记是选中内容的一部分这个假设，那么您必须调整这个宏。

在 Word 2.x 中，如果您的宏使用了 FileSaveAs 把活动文档保存为非 Word 文档格式的文件格式，那么 Word 将保存该文件但仍保留原活动文档为活动的。 在 Word 6.0 中， Word 将保存该文件，然后关闭原活动文档（如果它已经保存了的话），并把新的具有外部格式的文件作为活动文档。

如果已转换的 Word 2.x 宏假设在把一个文件存为外部格式后对该文件的修改都是在对原 Word 文档格式文件进行修改，那么就会出错。这种修改实际发生在外部格式文件的内容上，因为它是活动的。您可以在 Word 6.0 中调整您的 Word 2.x 宏，使其关闭外部格式文件，在需要调整 Word 文档格式文件时，再打开原 Word 文档格式文件。

一个包含 OnTime 指令的宏，在指定时间到来时将运行指定宏，而不管 Word 是否是活动的应用程序。在 Word 2.x 中，如果指定时间到来，而 Word 不是活动应用程序，那么将等待一旦 Word 成为活动的应用程序，就立即运行这个宏。任何基于以下假设——即由于 OnTime 而使指定宏运行时，Word 将为活动的应用程序——的 Word 2.x 宏都必须调整，利用新的假设或使用另一种时间例程。


Naming variables, subroutines and user-defined functions
命名变量，子程序和用户定义的函数

如果您的变量名，子程序名和用户定义的函数名与 Word 6.0 的保留字（如语句或函数名）相同，那么必须进行修改。

如果一个保存于另一个宏中的子程序或函数名与 WordBasic 中对应对话框语句的参数名相同， 那么就不能调用这个子程序或函数。比如，如果您有一个名为 "Library" 的宏，包含一个名为 "Wrap" 的子程序，那么您不能在同一模板的另一个宏中调用该子程序。

指令 Library .Wrap 在这个宏中将产生错误，因为 .Wrap 是 EditFind 语句的一个参数。

如果您在 Word 2.x 宏中查到有名字与 Word 保留字相同的子程序或用户定义的函数，那么必须对其改名以避免上述错误发生。


CountMergeFields() 示例

下面例子将合并域名的一个列表插入活动文档：

For n = 1 To CountMergeFields()

Insert MergeFieldName$(n)

InsertPara

Next


CountMergeFields()

示例

CountMergeFields()

返回数据源的域名记录中或附加于活动主文档的域名源中域的数目。如果活动文档不是一个主文档，数据源或域名源，CountMergeFields() 返回 0（零）。

_____________

请参阅

邮件合并

InsertMergeField

MergeFieldName$()


GetMergeField$() 示例

下面例子显示当前数据记录中 FirstName 域的内容：

MsgBox GetMergeField$("FirstName")


GetMergeField$()

示例

GetMergeField$(FieldName$)

返回当前数据记录中指定合并域的内容。如果主文档不是活动文档或者 FieldName$ 不存在，GetMergeField$() 返回一个空串 ("")。

_____________

请参阅

邮件合并

CountMergeFields()

MergeFieldName$()


InsertMergeField 示例

下面例子插入一个 MERGEFIELD 域，此域在邮件合并时由数据源中的城市名替代：

InsertMergeField .MergeField = "City"


InsertMergeField

示例

InsertMergeField .MergeField = text

插入一个 MERGEFIELD 域，邮件合并时 Word 为每个合并文档替换此域。如果活动文档不是一个主文档，产生一个错误。

参数	解释
.MergeField	一个合并域名对应您要插入的信息类型。域名出现在数据源第一条记录中或域名源中（如果一个域名源关联于主文档）。
_____________

请参阅

邮件合并

InsertField

MailMergeInsertAsk

MailMergeInsertFillIn

MailMergeInsertIf

MailMergeInsertMergeRec

MailMergeInsertMergeSeq

MailMergeInsertNext

MailMergeInsertNextIf

MailMergeInsertSet

MailMergeInsertSkipIf


MailMerge 示例

下面例子将主文档与数据记录号 50 到 100 的数据记录合并，并且将合并的文档送到一个新文档中。

MailMerge .CheckErrors = 2, .Destination = 0, .MergeRecords = 1, \

.From = 50, .To = 100, .MailMerge


MailMerge

示例

MailMerge [.CheckErrors = number] [, .Destination = number] [, .MergeRecords = number] [, .From = number] [, .To = number] [, .Suppression = number] [, .MailMerge] [, .MailSubject = text] [, .MailAsAttachment = number] [, .MailAddress = text]

或者为邮件合并设置选项，或者将主文档与指定数据记录合并，或者两者都执行。如果活动文档不是一个主文档，产生一个错误。

参数	解释
.CheckErrors	指定如何检查和报告邮件合并错误： 0 模拟邮件合并，在新文档中报告错误。 1 执行邮件合并，每个错误产生时暂停并报告。 2 执行邮件合并，在新文档中报告所有错误。
.Destination	指定合并的文档输出位置： 0 新文档 1 打印机 2 电子邮件；支持消息传递应用程序界面（MAPL）和与销售商无关消息传递标准（VIM） 3 传真
.MergeRecords	指定是否合并全部数据记录： 0 合并全部数据记录。 1 合并由 .From 和 .To 指定范围的数据记录。
.From	待合并的第一条数据记录号。
.To	待合并的最后一条数据记录号。
.Suppression	指定是否为空合并域打印空白行： 0 不打印空白行。 1 打印空白行。
.MailMerge	执行邮件合并（如果您只想设置选项，省略 .MailMerge）。
.MailSubject	如果输出位置是电子邮件，指定主题文本。
.MailAsAttachment	如果置 1 并且输出位置是电子邮件或传真，合并文档作为附件发送。
.MailAddress	如果输出位置是电子邮件或传真，指定包含电子邮件地址或传真号码的合并域名。
_____________

请参阅

邮件合并

MailMergeCheck

MailMergeQueryOptions

MailMergeToDoc

MailMergeToPrinter


MailMergeAskToConvertChevrons, MailMergeAskToConvertChevrons()

MailMergeAskToConvertChevrons [Prompt]

MailMergeAskToConvertChevrons()

当您打开 Word for Macintosh 创建的文档时，文档中包含引号 (� �)，MailMergeAskToConvertChevrons 语句控制 Word 显示一个提示，询问您是否将引号之内的正文转换成合并域。

参数	解释
Prompt	指定是否显示一个提示： 0 不显示提示；Word 是否转换合并域由 MailMergeConvertChevrons 控制。 1 显示提示。 省略 切换显示提示选项。
MailMergeAskToConvertChevrons() 函数当选择 Word 显示提示返回 -1，否则返回 0（零）。

_____________

请参阅

邮件合并

MailMergeConvertChevrons


MailMergeCheck

MailMergeCheck .CheckErrors = number

检查并报告所有错误。查错的同时可以执行邮件合并，也可以不执行。

参数	解释
.CheckErrors	指定查错时是否执行邮件合并： 0 模拟邮件合并，在新文档中报告错误。 1 执行邮件合并，每个错误产生时暂停并报告。 2 执行邮件合并，在新文档中报告所有错误。
_____________

请参阅

邮件合并

MailMerge


MailMergeConvertChevrons, MailMergeConvertChevrons()

MailMergeConvertChevrons [Convert]

MailMergeConvertChevrons()

当您打开 Word for Macintosh 创建的文档时，文档中包含引号 (� �)，如果 MailMergeAskToConvertChevrons() 返回 0（零），MailMergeConvertChevrons 控制 Word 是否将引号之内的正文转换成合并域。如果 MailMergeAskToConvertChevrons() 返回 1，当 Word 显示提示询问您是否想转换引号时 MailMergeConvertChevrons 控制默认的按钮。

参数	解释
Convert	控制是否转换引号（或如果出现提示时的默认按钮）： 0 不转换引号（或设置提示中的默认按钮为“否”）。 1 转换引号（或设置提示中的默认按钮为“是”）。 省略 切换决定是否转换引号的设置（或切换提示中的默认按钮）。
MailMergeConvertChevrons() 函数当默认按钮为“否”时返回 0（零），默认按钮为“是”时返回 -1。

_____________

请参阅

邮件合并

MailMergeAskToConvertChevrons


MailMergeCreateDataSource

MailMergeCreateDataSource .FileName = text [, .PasswordDoc = text] [, .HeaderRecord = text] [, .MSQuery] [, .SQLStatement = text] [, .SQLStatement1 = text] [, .Connection = text] [, .LinkToSource = number]

创建一个 Word 文档为邮件合并保存数据。MailMergeCreateDataSource 将一个新数据源附加给活动文档，如果活动文档不是主文档，附加后成为主文档。

若要创建一个带有以后要填写表格的新数据源，只需要指定参数 .FileNema 和 .HeaderReco（如果要保护新数据源还有 .PasswordDoc）．

参数	解释
.FileName	新数据源的路径和文件名
.PasswordDoc	保护新数据源的口令
.HeaderRecord	域名记录的域名。如果省略，使用下列标准域名记录：“称谓，名，姓，职称，公司，地址 1，地址 2，城市，省，，邮政编码，国家，住宅电话，公司电话”。使用 WIN.INI 文件中［intl］段的“sList”设置所指定的字符分隔域名。
如果安装了 Microsoft Query，您可以用参数 .MSQuery，.SQLStatement 和 .Connection 从主数据源——例如，一个 Microsoft Excel 工作簿——获取数据。

参数	解释
.MSQuery	使用 Microsoft Query（如已安装）从主数据源中获取由 .SQLStatement 和 .Connection 指定的数据。请注意如果只有 .MSQuery，不带其他参数，则仅显示已安装的 Microsoft Query。
.SQLStatement	为获取数据定义查询选项。有关有效查询字符串的内容，请参阅相应的 ODBC（开放数据库连接）驱动器的“帮助”文件。
.SQLStatement1	如果查询字符串长度超过 255 个字符，.SQLStatement 指定字符串的第一部分，.SQLStatement 1指定第二部分。
.Connection	指定一个范围执行 .SQLStatement 定义的查询。如何指定范围取决于数据获取方式。例如， 当使用 ODBC 获取数据时，您应指定一个连接字符串。有关有效连接字符串的内容，请参阅相应 ODBC 驱动器的“帮助”文件。 当使用 DDE（动态数据交换）从 Microsoft Excel 中获取数据时，您应该指定一个命名范围。 当从 Microsoft Access 中获取数据时，您应指定“表格”或“查询”，后跟一个表格名字或查询。
.LinkToSource	如果置 1，在新数据源和主数据源之间建立链接。
注释

ODBC 驱动器的“帮助”文件在您的 Windows 目录的“SYSTEM”子目录下，文件名以“DRV”开头，扩展名是 .HLP(例如，DRVFOX.HLP 及 DRVACCSS.HLP）。

_____________

请参阅

邮件合并

MailMergeCreateHeaderSource

MailMergeEditDataSource

MailMergeOpenDataSource


MailMergeCreateHeaderSource

MailMergeCreateHeaderSource [.FileName = text] [.PasswordDoc = text] [, .HeaderRecord = text]

创建一个 Word 文档存放域名记录，邮件合并时使用此域名记录而不用数据源域名记录。MailMergeCreateHeaderSource 将新域名源附加给活动文档，如果活动文档不是主文档，附加后成为主文档。

参数	解释
.FileName	新域名源的路径和文件名
.PasswordDoc	保护新域名源的口令
.HeaderRecord	域名记录的域名。如果省略，使用下列标准域名记录：“称谓，名，姓，职称，公司，地址 1，地址 2，城市，省，邮政编码，国家，住宅电话，公司电话”。使用 WIN.INI 文件中［intl］段的“sList”设置所指定字符分隔域名。
_____________

请参阅

邮件合并

MailMergeCreateDataSource

MailMergeEditHeaderSource

MailMergeOpenHeaderSource


MailMergeDataForm

MailMergeDataForm

显示一个“数据表单”对话框，用于输入一条新的数据记录。在主文档、数据源或者以表格单元格或分隔符字符分界的任何文档中，您都可以使用 MailMergeDataForm。

_____________

请参阅

邮件合并

MailMergeEditDataSource


MailMergeDataSource$()

MailMergeDataSource$(Type)

返回数据或域名信息、数据获取方式或者当前连接字符串或查询字符串。

类型	值及描述
0	数据源的路径和文件名
1	域名源的路径和文件名
2	作为正文返回的一个数字，指明如何为邮件合并操作提供数据： 0 从一个 Word 文档，或通过一个 Word 文件转换器。 1 从 Microsoft Access 中的动态数据交换（DDE） 2 从 Microsoft Excel 中 DDE 3 从 Microsoft Query 中 DDE 4 开放数据库连接
3	作为正文返回的一个数字，指明如何为邮件合并操作提供域名源。请参阅“Type 2”的值及描述。
4	到数据源的连接字符串
5	查询字符串（SQLstatement）
_____________

请参阅

邮件合并

MailMergeCreateDataSource

MailMergeEditDataSource

MailMergeOpenDataSource


MailMergeEditDataSource

MailMergeEditDataSource

主文档为活动时执行下列某一操作：

如果数据源是一个 Word 文档，则打开数据源（如果已经打开，激活数据源）。

如果 Word 通过动态数据交换（DDE）访问数据——使用 Microsoft Excel,Microsoft Access 或 Microsoft FoxPro 等应用——显示此应用中的数据源。

如果 Word 通过开放数据库连接（ODBC）访问数据，显示一个 Word 文档中的数据。请注意如果安装了 Microsoft Query，则不进行数据转换，而是出现一段信息提供显示 Microsoft Query 的选项。

_____________

请参阅

邮件合并

MailMergeCreateDataSource

MailMergeEditMainDocument

MailMergeOpenDataSource


MailMergeEditHeaderSource

MailMergeEditHeaderSource

打开附加于活动主文档的域名源；如果已经打开则激活域名源。如果活动文档不是一个主文档，或者没有关联一个域名源，则产生一个错误。

_____________

请参阅

邮件合并

MailMergeCreateHeaderSource

MailMergeEditDataSource

MailMergeOpenHeaderSource


MailMergeEditMainDocument

MailMergeEditMainDocument

激活与活动域名源或数据源关联的邮件合并主文档。如果没有附加着活动域名源或数据源的主文档，或者主文档没有打开，则产生一个错误。

_____________

请参阅

邮件合并

MailMergeEditDataSource


MailMergeFindRecord 示例

下面例子查找姓是“Perez”的第一条数据记录，并显示一个合并文档。如果找到此记录，记录号存放在变量 numRecord 中。

MailMergeFindRecord .Find = "Perez", .Field = "LastName"

If MailMergeFoundRecord() Then

numRecord = MailMergeGotoRecord()

End If


MailMergeFindRecord

示例

MailMergeFindRecord .Find = text, .Field = text

如果主文档是活动的，而且合并数据为可见状态，为给定域中包含指定文本的第一条数据记录显示一个合并文档。如果数据源是活动的，而且是一个 Word 文档，MailMergeFindRecord 选择符合指定条件的第一行。在主文档、数据源或者数据以表格单元格或分隔符字符分隔的任何文档中，您都可以使用 MailMergeFindRecord。

参数	解释
.Find	在指定域中要查找的文本。
.Field	限定搜索指定的域名。
_____________

请参阅

邮件合并

MailMergeFirstRecord

MailMergeFoundRecord()

MailMergeGotoRecord

MailMergeLastRecord

MailMergeNextRecord

MailMergePrevRecord

MailMergeViewData


MailMergeFirstRecord

MailMergeFirstRecord

如果主文档中合并数据为可见状态，为查询结果中的第一条数据记录（如果查询选项不起作用，为数据源中第一条记录）显示一个合并文档。本语句仅在主文档活动时有效。

_____________

请参阅

邮件合并

MailMergeFindRecord

MailMergeGotoRecord

MailMergeLastRecord

MailMergeNextRecord

MailMergePrevRecord

MailMergeViewData


MailMergeFoundRecord()

MailMergeFoundRecord()

返回值指明最近一次 MailMergeFindRecord 操作是否成功。

值	解释
-1	查找操作成功。
0	查找操作不成功。
有关示例，请参阅MailMergeFindRecord 示例。

_____________

请参阅

邮件合并

MailMergeFindRecord


MailMergeGotoRecord, MailMergeGotoRecord()

MailMergeGotoRecord RecordNumber

MailMergeGotoRecord()

如果主文档中合并数据为可见状态，MailMergeGotoRecord 为对应于 RecordNumber的数据记录显示一个合并文档。请注意， RecordNumber 是当前查询选项产生的查询结果中记录的位置，因此末必是数据源中记录的位置。

MailMergeGotoRecord() 函数返回当前显示的数据记录号。如果活动文档不是一个主文档，语句和函数都会产生一个错误。有关使用 MailMergeGotoRecord() 的示例，请参阅 MailMergeFindRecord 示例。

_____________

请参阅

邮件合并

MailMergeFindRecord

MailMergeFirstRecord

MailMergeLastRecord

MailMergeNextRecord

MailMergePrevRecord

MailMergeViewData


MailMergeHelper 示例

下面例子显示“邮件合并帮助器”对话框。

Dim dlg As MailMergeHelper

GetCurValues dlg

x = Dialog(dlg)


MailMergeHelper

示例

MailMergeHelper

与 Dialog 或 Dialog() 指令一起使用，显示“邮件合并帮助器”对话框（“邮件合并”命令，“工具”菜单）。此对话框中您可以建立主文档，创建和编辑数据源以及执行邮件合并。

_____________

请参阅

邮件合并

MailMerge


MailMergeInsertAsk

MailMergeInsertAsk .Name = text [, .Prompt = text] [, .DefaultBookmarkText = text] [, .AskOnce = number]

将一个 ASK 域插入到主文档的插入点处。替换时一个 ASK 域将显示一个对话框，提示把文本赋给指定的书签。

参数	解释
.Name	您在对话框中键入的文本将赋给此书签。
.Prompt	出现在对话框中的一个提示（例如，“Your Initials：”）。
.DefaultBookmarkText	赋给书签的默认文本。
.AskOnce	如果置 1，Word 只在合并开始时显示一次提示，而不是每条数据记录提示一次。
有关详细内容，请参阅 ASK域。

_____________

请参阅

邮件合并

InsertField

MailMergeInsertFillIn

MailMergeInsertSet


MailMergeInsertFillIn

MailMergeInsertFillIn [.Prompt = text] [, .DefaultFillInText = text] [, .AskOnce = number]

将一个 FILLIN 域插入到主文档的插入点处。替换时一个 FILLIN 域将显示一个对话框，提示把文本插入主文档中域的位置。

参数	解释
.Prompt	出现在对话框中的一个提示（例如，“Your Initials：”）。
.DefaultFillInText	插入到域位置的默认文本。
.AskOnce	如果置 1，Word 只在合并操作开始时显示一次提示，而不是每条数据记录提示一次。
有关详细内容，请参阅 FILLIN域。

_____________

请参阅

邮件合并

InsertField

MailMergeInsertAsk

MailMergeInsertSet


MailMergeInsertIf

MailMergeInsertIf .MergeField = text, .Comparison = number [, .CompareTo = text] [, .TrueAutoText = text] [, .TrueText = text] [, .FalseAutoText = text] [, .FalseText = text]

将一个 IF 域插入到主文档的插入点处。替换时一个 IF 域将一条数据记录的一个域与指定值比较，根据比较结果插入适当的文本。

参数	解释
.MergeField	与 .CompareTo 指定的文本作比较的合并域名。
.Comparison	指定比较关系操作符： 0 = （等于） 1 <> （不等于） 2 < （小于） 3 > （大于） 4 <= （小于等于） 5 >= （大于等于） 6 = " " （为空） 7 <> " " （不为空）
.CompareTo	与合并域作比较的正文。此参数是必需的，除非 .Comrmparison 为 6（为空）或为7（不为空）。
.TrueAutoText	如果比较结果为真，一个自动图集词条中含有被插入的正文（.TrueText 被忽略）。
.TrueText	如果比较结果为真插入此文本。
.FalseAutoText	如果比较结果为假，一个自动图文集词条中被插入的文本（.FalseText 被忽略）。
.FalseText	如果比较结果为假插入此文本。
有关详细内容，请参阅 IF域。

_____________

请参阅

邮件合并

InsertField

MailMergeInsertNext

MailMergeInsertNextIf

MailMergeInsertSkipIf


MailMergeInsertMergeRec

MailMergeInsertMergeRec

将一个 MERGEREC 域插入到主文档的插入点处。一个 MERGEREC 域在邮件合并时插入当前数据记录的记录号（数据记录在当前查询结果中的位置），有关详细内容，请参阅 MERGEREC域。

_____________

请参阅

邮件合并

InsertField

MailMergeInsertMergeSeq


MailMergeInsertMergeSeq

MailMergeInsertMergeSeq

将一个 MERGESEQ 域插入到主文档的插入点处。一个 MGRGESEQ 域将插入一个编号，此编号是基于所合并数据记录的顺序（例如，合并记录号 50 到 100 的数据记录，在合并 50 号记录时插入 1）。有关详细内容，请参阅 MERGESEQ域。

_____________

请参阅

邮件合并

InsertField

MailMergeInsertMergeRec


MailMergeInsertNext

MailMergeInsertNext

将一个 NEXT 域插入到主文档的插入点处。一个 NEXT 域跳过当前记录，而合并下一条数据记录的域，因此在同一个合并文档中可以合并多条记录的数据（例如，一个邮件标签工作表）。有关详细内容，请参阅 NEXT域。

_____________

请参阅

邮件合并

InsertField

MailMergeInsertNextIf


MailMergeInsertNextIf

MailMergeInsertNextIf .MergeField = text, .Comparison = number, .CompareTo = text

将一个 NEXTIF 域插入到主文档的插入点处。如果 NEXTIF 域的比较为真，Word 把下一条数据记录合并到当前合并文档中 NESTIF 域后面的合并域，否则把下一条数据记录合并到一个新的合并文档。一般最好不用 NGXTIF 域而指定查询选项。有关参数描述，请参阅 MailMergeInsertIf 。有关详细内容，请参阅 NEXTIF域。

_____________

请参阅

邮件合并

InsertField

MailMergeInsertIf

MailMergeInsertNext

MailMergeInsertSkipIf


MailMergeInsertSet

MailMergeInsertSet .Name = text [, .ValueText = text] [, .ValueAutoText = text]

将一个 SET 域插入到主文档的插入点处。SET 域定义指定书签的文本。

参数	解释
.Name	所定义的书签名
.ValueText	赋给书签的文本
.ValueAutoText	自动图文集词条，所含的正文将赋给书签（.ValueText 被忽略）
有关详细内容，请参阅 SET域。

_____________

请参阅

邮件合并

InsertField

MailMergeInsertAsk

MailMergeInsertFillIn


MailMergeInsertSkipIf

MailMergeInsertSkipIf .MergeField = text , .Comparison = number [, .CompareTo = text]

将一个 SKIPIF 域插入主文档的插入点处。如果 SKIPIF 域的比较为真，Word 取消当前合并文档，跳到下一条数据记录。一般最好不用 SKIPIF 域，而指定查询选项。有关参数描

述，请参阅 MailMergeInsertIf 。有关详细内容，请参阅 SKIPIF域。

_____________

请参阅

邮件合并

InsertField

MailMergeInsertIf

MailMergeInsertNext

MailMergeInsertNextIf


MailMergeLastRecord

MailMergeLastRecord

如果主文档中合并的数据为可见状态，为当前查询结果中最后一条数据记录（或者如果查询选项不起作用时，为数据源中的最后一条记录）显示一个合并文档。本语句仅在主文档活动时有效。

_____________

请参阅

邮件合并

MailMergeFindRecord

MailMergeFirstRecord

MailMergeGotoRecord

MailMergeNextRecord

MailMergePrevRecord

MailMergeViewData


MailMergeMainDocumentType, MailMergeMainDocumentType()

MailMergeMainDocumentType Type

MailMergeMainDocumentType()

MailMergeMainDocumentType 将活动窗口变为主文档。请注意，如果主文档已经是活动文档，Word 将删去任何附加的数据源。

参数	解释
Type	利用主文档创建的合并文档的类型： 0 或省略 套用信函 1 邮件标签 2 信封 3 分类目录文档
MailMergeMainDocumentType() 函数当活动文档是一个主文档时返回 Type 参数值之一，如果是一个标准 Word 文档返回 -1。

_____________

请参阅

邮件合并

MailMergeCreateDataSource

MailMergeOpenDataSource

MailMergeReset


MailMergeNextRecord

MailMergeNextRecord

如果主文档中合并的数据为可见状态，为当前查询结果的下一条记录（或者如果查询选项不起作用时，为数据源中下一条记录）显示一个合并文档。本语句仅在主文档活动时有效。

_____________

请参阅

邮件合并

MailMergeFindRecord

MailMergeFirstRecord

MailMergeGotoRecord

MailMergeLastRecord

MailMergePrevRecord

MailMergeViewData


MailMergeOpenDataSource

MailMergeOpenDataSource .Name = text [, .ConfirmConversions = number] [, .ReadOnly = number] [, .LinkToSource = number] [, .AddToMru = number] [, .PasswordDoc = text] [, .PasswordDot = text] [, .Revert = number] [, .WritePasswordDoc = text] [, .WritePasswordDot = text] [, .Connection = text] [, .SQLStatement = text] [, .SQLStatement1 = text]

将指定数据源附加给活动文档，如果活动文档不是主文档，附加后成为主文档。

参数	解释
.Name	数据源名。请注意您可以指定一个 Microsoft Query文件（.QRY）代替数据源、连接字符串及查询字符串。
.LinkToSource	如果置 1，每次打开主文档时执行.Connection 和 .SQLStatement 指定的查询。
.Connection	指定一个范围执行 .SQLStatement 定义的查询。如何指定范围取决于数据获取方式。例如： 当通过 ODBC 获取数据时，您应指定一个连接字符串。有关有效连接字符串的内容，请参阅相应 ODBC 驱动器的“帮助”文件。 当使用动态数据交换（DDE）从 Microsoft Excel 中获取数据时，您应指定一个命名范围。 当从 Microsoft Access 中获取数据时，您应指定“表格”或“查询”，后跟一个表格名字或查询。
.SQLStatement	为获取数据定义查询选项。有关有效查询字符串的内容，请参阅相应 ODBC 驱动器的“帮助”文件。
.SQLStatement1	如果查询字符串长度超过 255 个字符，.SQLStatement 指定字符串的第一部分，.SQLStatement 1 指定第二部分。
注释

ODBC 驱动器的“帮助”文件在您的 Windows 目录的“SYSTEM”子目录下，文件名以“DRV”开头，扩展名是 .HLP（例如，DRVFOX.HLP 及 DRVACCSS.HLP）。

有关其他参数的描述，请参阅 FileOpen。

_____________

请参阅

邮件合并

FileOpen

MailMergeCreateDataSource

MailMergeEditDataSource

MailMergeOpenHeaderSource


MailMergeOpenHeaderSource

MailMergeOpenHeaderSource .Name = text [, .ConfirmConversions = number] [, .ReadOnly = number] [, .AddToMru = number] [, .PasswordDoc = text] [, .PasswordDot = text] [, .Revert = number] [, .WritePasswordDoc = text] [, .WritePasswordDot = text]

把指定域名源附加绘活动文档，活动文档若不是主文档，附加后变为主文档。以后使用域名源中的域名记录，不用数据源中的域名记录。有关参数描述，请参阅 FileOpen。

_____________

请参阅

邮件合并

MailMergeCreateHeaderSource

MailMergeEditHeaderSource

MailMergeOpenDataSource


MailMergePrevRecord

MailMergePrevRecord

如果主文档中合并的数据为可见状态，为当前查询结果的前一条记录（或者如果查询选项不起作用时，为数据源中的前一条记录）显示一个合并文档。本语句仅在主文档为活动时有效。

_____________

请参阅

邮件合并

MailMergeFindRecord

MailMergeFirstRecord

MailMergeGotoRecord

MailMergeLastRecord

MailMergeNextRecord


MailMergeQueryOptions

MailMergeQueryOptions .SQLStatement = text [.SQLStatement1 = text]

指定邮件合并的查询选项。您可以用 MailMergeQueryOptions 改变由 MailMergeCreateDataSource 或 MailMergeOpenDataSource 指令设置的查询选项。如果活动文档不是一个主文档，产生一个错误。

参数	解释
.SQLStatement	可选的查询字符串，从一个主数据源获取一部分数据。有关有效查询字符串的内容，请参阅相应 ODBC 驱动器的“帮助”文件。
.SQLStatement1	如果查询字符串长度超过 255 个字符，.SQLStatement 指定字符串的第一部分，.SQLStatement 1 指定第二部分。
注释

ODBC 驱动器的“帮助”文件在您的 Windows 目录的“SYSTEM”子目录下，文件名以“DRV”开头，扩展名是 .HLP（例如，DRVFOX.HLP 及 DRVACCSS.HLP）。

_____________

请参阅

邮件合并

MailMergeCreateDataSource

MailMergeOpenDataSource


MailMergeReset

MailMergeReset

解除数据和域名源与主文档的附加关系，将主文档还原成标准 Wrod 文档。如果活动文档不是一个主文档，产生一个错误。

_____________

请参阅

邮件合并

MailMergeMainDocumentType


MailMergeState() 示例

下面例子是在执行邮件合并前检查活动文档的状态。如果活动文档不是主文档，Word 显示一个信息框。如果是主文档但没有附加的数据源，则附加一个数据源。其他状态下，立即开始邮件合并。

Select Case MailMergeState(0)

Case 0

MsgBox "Not a mail merge main document."

quitmacro = 1

Case 1, 3

MailMergeOpenDataSource .Name = "C:\DATA\DATA.DOC"

Case Else

End Select

If quitmacro = 1 Then Goto bye

MailMergeToPrinter

bye:


MailMergeState()

示例

MailMergeState(Type)

返回当前邮件合并设置状态的四种不同信息类型之一。如果活动文档不是一个主文档，数据源或者域名源，Type 1，Type 2 和 Type 3 返回 -1。

类型	值和描述
0	返回活动文档信息： 0 标准 Word 文档 1 主文档，不带附加的数据或域名源 2 主文档，带附加的数据源 3 主文档，带附加的域名源 4 主文档，带附加的数据和域名源 5 数据源或域名源；相关联的主文档已打开
1	返回主文档类型： 0 套用信函 1 邮件标签 2 信封 3 分类目录
2	返回选定的邮件合并选项信息： 0 空白行取消和查询选项末激活 1 空白行取消激活 2 查询选项激活 3 空白行取消和查询选项激活
3	返回邮件合并输出位置： 0 新文档 1 打印机 2 电子邮件 3 传真
_____________

请参阅

邮件合并

MailMergeMainDocumentType


MailMergeToDoc

MailMergeToDoc

合并数据记录与主文档，将合并文档结果送到一个新文档。如果最近一次邮件合并指定了数据记录合并范围，只有在范围内的记录被合并。

_____________

请参阅

邮件合并

MailMerge

MailMergeToPrinter


MailMergeToPrinter

MailMergeToPrinter

合并数据记录与主文档，打印合并文档结果。如果最近一次邮件合并指定了数据记录合并范围，只有在范围内的记录被合并。

_____________

请参阅

邮件合并

MailMerge

MailMergeToDoc


MailMergeViewData, MailMergeViewData()

MailMergeViewData [DisplayResults]

MailMergeViewData()

MailMergeViewData 函数控制主文档中的合并域的显示。如果活动文档不是主文档，则产生错误。

参数	解释
DisplayResults	指定显示引号 (� �) 内的合并域名还是显示当前数据记录中替换合并域的信息。 0 合并域名 1 当前数据记录中信息
The MailMergeViewData() 函数当显示合并域名时返回 0（零），当显示当前数据记录中信息时返回 1。

_____________

请参阅

邮件合并

MailMergeEditDataSource


MergeFieldName$() 示例

下面例子定义一个数组包含主文档中可用的域名（本例运行时主文档必须是活动的）：

numFields = CountMergeFields()

Dim mmFields$(numFields - 1)

For count = 1 To numFields

mmFields$(count - 1) = MergeFieldName$(count)

Next count


MergeFieldName$()

示例

MergeFieldName$(Count)

返回数据源或域名源中的一个域名。在以 Word 表格形式建立的数据源中，域名作为栏标题出现在第一行。在以带分界符的列表形式建立的数据源中，域名在第一段落中。如果活动文档不是主文档，您运行 MergeFieldName$() 将产生一个错误。

参数	解释
Count	此数对应数据源或域名源中的域名，如 1 指第一个域名，2 指定第二个，等等。
_____________

请参阅

邮件合并

CountMergeFields()

InsertMergeField


ToolsAddRecordDefault

ToolsAddRecordDefault

在数据源末尾添加一条空记录。例如，ToolsAddRecordDefault 给包含邮件合并数据的 Word 文档中一个表格底部添加一个空行。ToolsAddRecordDefault 可以用于邮件合并中当作数据源的任何文档。

_____________

请参阅

邮件合并

MailMergeEditDataSource

ToolsRemoveRecordDefault


ToolsRemoveRecordDefault

ToolsRemoveRecordDefault

删除包含插入点的数据记录——例如，删除包含插入点的表格行。ToolsAddRecordDefault 可以用于邮件合并中当作数据源的任何文档。

_____________

请参阅

邮件合并

MailMergeEditDataSource

ToolsAddRecordDefault


AtEndOfDocument()

AtEndOfDocument()

如果插入点在文档结尾，返回 -1 ；否则，返回 0 （零）。不同于 EndOfDocument() 函数，AtEndOfDocument() 不移动插入点。

_____________

请参阅

移动插入点和选定

AtStartOfDocument()

EndOfDocument


AtStartOfDocument()

AtStartOfDocument()

如果插入点在文档开始，返回 -1 ；否则，返回 0 （零）。不同于 StartOfDocument 函数，AtStartOfDocument 不移动插入点。

_____________

请参阅

移动插入点和选定

AtEndOfDocument()

StartOfDocument


CharLeft 示例

这个示例把插入点往左移动五个字符。If 条件句判定是否有选定内容。如果有选定内容，在把插入点往左移动五个字符之前，CharLeft 1 指令改变选定范围到原选定内容左端的插入点。这保证无论有没有选定内容都把插入点移动五个字符。

If SelType() = 2 Then

CharLeft 1

CharLeft 5

Else

CharLeft 5

End If

下面的示例选定当前段落并把选定内容缩小一个字符，以使段落文字被选择，但不选段落标记。如果需要复制一段文字但不包括段落编排格式（保存在段落标记中），就可以这样做。

EditGoTo "\Para"

CharLeft 1, 1


CharLeft, CharLeft()

示例

CharLeft [Count] [, Select]

CharLeft([Count] [, Select])

CharLeft 语句把插入点或选定内容的活动端（按下 SHIFT+左箭头键移动的那一端）往左移动指定字符数。

参数	解释
Count	要移过的字符数。如果省略，则假定为 1 。负值把插入点或选定内容的活动端往右移动。
Select	指定是否选定文本： 0 或省略 不选定文本。如果已有选定内容，则CharLeft 把插入点往选定内容左侧移动 Count-1 个字符。 非 0 选定文本。如果已有选定内容，则 CharLeft 把选定内容活动端移到文档开始。 在从左往右构造的典型选定内容中，活动端更接近文档结尾，CharLeft 缩小选定范围。如果选定内容从右往左构造，则 CharLeft 扩展选定范围。
如果有选定内容，CharLeft 1 改变选定范围到位于原选定内容左端的插入点。

CharLeft() 函数与语句功能相同，并返回下列值。

值	解释
0	如果插入点或选定内容的活动端不能往左移动。
-1	如果插入点或选定内容的活动端往左移动了任何字符数，甚至小于 Count 。 例如， CharLeft(10) 在即使插入点距离文档开始只有三个字符的时候，仍然返回 -1 。.
_____________

请参阅

移动插入点和选定

CharRight

SentLeft

SentRight

WordLeft

WordRight


CharRight 示例

这个示例把插入点移动到本句开始，然后选定往右的五个字符。

SentLeft

CharRight 5, 1

下面的例子首先把选定内容往右扩展五个字符，复制选定内容，然后往选定内容右方移动插入点五个字符。注意到 CharRight 6 用于往选定内容右方移动插入点五个字符。这条指令等价于 CharRight 1 加上 CharRight 5 ，其中  CharRight 1 移动插入点到选定内容的右端末尾，CharRight 5 移动五个字符。

CharRight 5, 1

EditCopy

CharRight 6


CharRight, CharRight()

示例

CharRight [Count] [, Select]

CharRight([Count] [, Select])

CharRight 语句把插入点或选定内容的活动端（当您按下 SHIFT+右箭头键时移动的一端）往右移动指定个字符。

参数	解释
Count	移动的字符数。如果省略， 就假设为 1 。负值把插入点或选定内容的活动端往左移动。
Select	指定是否选定文本: 0 或省略 不选定文本。如果已有选定内容，CharRight 把插入点往选定内容右方移动 Count-1 个字符。 非 0 选定文本。如果已有选定内容，CharRight 往文档结尾移动选定内容的活动端。 在从左往右构造的典型选定内容中，活动端更接近文档结尾，CharRight 扩展选定范围。如果选定内容从右往左构造，则 CharRight 缩小选定范围。
如果有选定内容， CharRight 1 改变选定内容到位于原选内容右端的插入点。

CharRight() 函数与语句功能相同，并返回下列值：

值	解释
0	如果插入点或选定内容活动端不能往右移动。
-1	如果插入点或选定内容活动端往右移动任何个字符，甚至小于 Count 。例如，即使插入点仅仅位于文档结尾三个字符， CharRight(10) 也返回 -1 。
_____________

请参阅

移动插入点和选定

CharLeft

SentLeft

SentRight

WordLeft

WordRight


ColumnSelect 示例

这个示例在列表的当前行和接下来的两行中选定数字和制表字符，如下图所示：

StartOfLine

ColumnSelect

WordRight 2

LineDown 2


ColumnSelect

示例

ColumnSelect

打开列选择模式来选定一列文本，例如选定两行或多行文本中位于同一制表位上的数字。Cancel 语句或其他作用于列选择的都会使这种模式结束。ColumnSelect 不选定 WORD 表格中的列；可用 TableSelectColumn 实现此目的。

_____________

请参阅

移动插入点和选定

Cancel

ExtendSelection


EditSelectAll

EditSelectAll

选定整个文档。


EndOfColumn 示例

这个示例把插入点从表格中的任何位置，移动到最后一行的最后一个单元格的开始位置。

EndOfRow

EndOfColumn


EndOfColumn, EndofColumn()

示例

EndOfColumn [Select]

EndOfColumn ([Select])

EndOfColumn 语句移动插入点或扩展选定内容（如果 Select 不为零），到包含插入点或选定内容的表格的列的底端。如果选定内容时不止一列，则插入点移动到或选定内容扩展到选定内容最右列的底端。如果插入点或选定内容不在表格中，就会发生错误。

注释

如果表格的最后一行没有对应于包含当前选定内容的表列的单元格（例如，您已删除或合并最后一行的单元格），EndOfColumn 就移动插入点或扩展选定内容到表格的上一行的底端。

The EndOfColumn() 函数与语句功能相同，并返回下列值之一：

值	解释
0	如果插入点未曾移动或选定内容未曾扩展（即，如果它已经在表列的底端）。
-1	如果插入点已移动或选定内容被扩展
_____________

请参阅

移动插入点和选定

EndOfRow

StartOfColumn


EndOfDocument, EndOfDocument()

EndOfDocument [Select]

EndOfDocument([Select])

The EndOfDocument 语句移动插入点到文档结尾，或者，如果 Select 不为零，把选定内容活动端（当您按下 CTRL+SHIFT+END 后移动的那端）移动到文档的结尾。

EndOfDocument() 函数与语句功能相同，并返回下列值之一：

值	解释
0	如果插入点或选定内容活动端未曾移动（即，如果它已经在文档结尾）
-1	如果插入点或选定内容活动端被移动
_____________

请参阅

移动插入点和选定

AtEndOfDocument()

StartOfDocument


EndOfLine 示例

这个示例选定当前行和段落标记（如果在行尾有的话）。指令 EditGoTo "\Line" 效果与此相同。

StartOfLine

EndOfLine 1

下面的示例选定当前行但不选定段落标记（如果在行尾有的话）。

EndOfLine

StartOfLine 1


EndOfLine, EndOfLine()

示例

EndOfLine [Select]

EndOfLine ([Select])

The EndOfLine 语句移动插入点到当前行的行尾，或者，如果 Select 不为零，把选定内容活动端（当您按下 SHIFT+END 后移动的那端）移动到包含选定内容活动端的那一行的行尾。如果行尾有段落标记，则 EndOfLine 把插入点放在段落标记的左边；而 EndOfLine 1 把选定内容活动端移过段落标记。

EndOfLine() 函数与语句功能相同，并返回下列值之一：

值	解释
0	如果插入点或选定内容活动端未曾移动（即，如果它已经在行尾）。
-1	如果插入点或选定内容活动端被移动。
请避免只使用 EndOfLine 定位到段落结尾，除非您确信该段只有一行（例如,单词列表中的一个词）。否则，请代之以下列指令：

ParaDown	'定位到下一段的开始

CharLeft	'回返一个字符

_____________

请参阅

移动插入点和选定

EndOfRow

ParaDown

StartOfLine


EndOfRow 示例

这个示例删除选定的单元格或包含插入点的单元格，以及右边的所有单元格。

EndOfRow 1

TableDeleteCells


EndOfRow, EndOfRow()

示例

EndOfRow [Select]

EndOfRow ([Select])

EndOfRow 语句移动插入点或者扩展选定内容（如果 Select 不为零），到包含插入点或选定内容的表格行的最后一个单元格。如果扩展选定内容时移动超过一行，则移动插入点或扩展选定内容到选定内容最后一行的最后一个单元格。如果插入点或选定内容不在表格中，则会发生错误。

EndOfRow() 函数与语句功能相同，并返回下列值之一：

值	解释
0	如果插入点未移动或选定内容未扩展（即，如果它已经在行尾）。
-1	如果插入点被移动或选定内容被扩展。
_____________

请参阅

移动插入点和选定

EndOfColumn

EndOfLine

StartOfRow


EndOfWindow, EndOfWindow()

EndOfWindow [Select]

EndOfWindow([Select])

The EndOfWindow 语句把插入点，或者如果 Select 不为零的话，把选定内容活动端（当您按下 CTRL+SHIFT+PAGE DOWN 后移动的那端）移动到当前文档窗口中所见内容的右下角。

EndOfWindow() 函数与语句功能相同，并返回下列值之一：

值	解释
0	如果插入点或选定内容活动端未移动（即，如果它已在窗口的右下角）。
-1	如果插入点或选定内容活动端被移动。
有关示例请参阅 StartOfWindow 示例。

_____________

请参阅

移动插入点和选定

EndOfDocument

StartOfWindow


ExtendSelection 示例

这个示例选定从插入点到书签“ MyMark ”（包括该书签）之间的所有文本。

ExtendSelection

EditGoTo "MyMark"

Cancel


ExtendSelection

示例

ExtendSelection [Character$]

选择下列某一操作：

如果扩展模式关闭，则激活扩展模式（在扩展模式中，正常移动插入点的操作会移动选定内容的活动端）。

如果扩展模式已打开，则扩展选定内容到下一文本单元（按下列顺序进行：单词、句子、段落、节、整个文档）。

如果指定了 Character$ ，则将选定内容从插入点或选定内容固定端（按下 SHIFT+箭头键时不移动的选定内容端）扩展到指定字符下一次出现的位置，而不改变扩展模式。

可以配合 EditGoTo 和 EditFind 使用 ExtendSelection ，将选定内容扩展到指定位置或一块文本。使用 Cancel 语句取消选定扩展模式。

_____________

请参阅

移动插入点和选定

Cancel

ColumnSelect

ExtendMode()

ShrinkSelection


GetSelEndPos() 示例

这个宏显示一个信息框，如果没有选定内容话。用户定义函数 checksel 比较选定内容开始和结束处的字符位置。如果位置相同，表明没有选定内容，函数返回 0 （零），信息框被显示出来。

Sub MAIN

If checksel = 0 Then MsgBox "There is no selection."

End Sub

Function checksel

If GetSelStartPos() = GetSelEndPos() Then

checksel = 0

Else

checksel = 1

End If

End Function


GetSelEndPos()

示例

GetSelEndPos()

返回选定内容结尾相对于文档开始的字符位置。文档开始的字符位置为 0 （零）。选定内容结尾定义为距文档开始最远的那端。包括显示非打印字符的所有字符都计算在内。隐藏字符也被计入，即使它们没显示出来。

_____________

请参阅

移动插入点和选定

GetSelStartPos()

GetText$()

SetSelRange


GetSelStartPos()

GetSelStartPos()

返回选定内容开始相对于文档开始的字符位置。文档开始的字符位置为 0 （零）。选定内容开始定义为距文档开始最近的那端。包括显示非打印字符的所有字符都计算在内。隐藏字符也被计入，即使它们没显示出来。

有关示例请参阅 GetSelEndPos() 示例。

_____________

请参阅

移动插入点和选定

GetSelEndPos()

GetText$()

SetSelRange


GetText$() 示例

这个示例设置变量 a$ 为文档的前 10 个字符。

a$ = GetText$(0, 10)


GetText$()

示例

GetText$(CharPos1, CharPos2)

返回从 CharPos1 到 CharPos2 的无格式文本。注意，GetText$() 不返回不显示的隐藏文本，尽管 WORD 在决定返回文本的范围时把隐藏文本计算在内。虽然 GetText$() 当您需要返回文档文本而不改变选定内容时比较方便，但是指定范围内的域、表格和分页符等特殊文档元素可能会产生不可预计的结果。

参数	解释
CharPos1	定义相对于文档开始（其字符位置为 0 （零））的范围起始的字符位置
CharPos2	定义范围结束的字符位置
_____________

请参阅

移动插入点和选定

GetSelEndPos()

GetSelStartPos()

SetSelRange


GoBack 示例

象下面这样的 AutoExec 宏，每当您启动 WORD 时就运行一次。如果在“文件'菜单底端列出了至少一个文档，这个宏就打开文档，并把插入点移动到最近的编辑位置。

Sub MAIN

If FileName$(1) <> "" Then

FileList 1

GoBack

End If

End Sub


GoBack

示例

GoBack

在最近的四个编辑位置之间移动插入点（与按下 SHIFT+F5 作用相同）。

_____________

请参阅

移动插入点和选定

EditGoTo


GoToHeaderFooter

GoToHeaderFooter

把插入点从页眉移动到页脚，或者相反。如果插入点不在页眉或页脚，会发生错误。

_____________

请参阅

移动插入点和选定

CloseViewHeaderFooter

ShowNextHeaderFooter

ShowPrevHeaderFooter

ViewFooter

ViewHeader


GoToNextItem

GoToNextItem

把插入点移动到 Item 所指定的下一个项目。

参数	解释
Item	您想要定位的项目。下列语句是可用的： GoToNextAnnotation GoToNextEndnote GoToNextFootnote GoToNextPage GoToNextSection GoToNextSubdocument
_____________

请参阅

移动插入点和选定

EditGoTo

GoToHeaderFooter

GoToPreviousItem


GoToPreviousItem

GoToPreviousItem

把插入点移动到 Item 所指定的上一个项目。

参数	解释
Item	您想要定位的项目。下列语句是可用的： GoToPreviousAnnotation GoToPreviousEndnote GoToPreviousFootnote GoToPreviousPage GoToPreviousSection GoToPreviousSubdocument
_____________

请参阅

移动插入点和选定

EditGoTo

GoBack

GoToNextItem


HLine

HLine [Count]

水平滚动活动文档。一“行”对应于在水平滚动条的滚动箭头上单击一次。

参数	解释
Count	要滚动的数量，以行计算： 省略 往右滚动一行 > 0  往右滚动指定行数 < 0  往左滚动指定行数；如果在页边距上有文字，则仅滚入左页边距
_____________

请参阅

移动插入点和选定

HPage

HScroll

VLine


HPage

HPage [Count]

水平滚动活动文档。HPage 对应于单击滚动块左边或右边的水平滚动条。

参数	解释
Count	要滚动的数量，以文档窗口宽度计算： 省略 往右滚动一个窗口宽度 > 0  往右滚动指定的窗口宽度数 < 0  往左滚动指定的窗口宽度数
_____________

请参阅

移动插入点和选定

HLine

HScroll

VPage


HScroll, HScroll()

HScroll Percentage

HScroll()

HScroll 语句按文档窗口宽度的百分比水平滚动到指定的位置。HScroll 相当于拖动水平滚动条的滚动块。

HScroll() 函数返回以窗口宽度百分比表示的当前水平滚动位置。HScroll() 不返回负值；如果文档滚入左页边距，则 HScroll() 返回 0 （零）。

_____________

请参阅

移动插入点和选定

HLine

HPage

VScroll


Insert 示例

这个示例在插入点插入文字“ Hamlet ”（不带引号）。

Insert "Hamlet"

下面的示例在插入点插入带引号的文字“ Hamlet ”。

Insert Chr$(34) + "Hamlet" + Chr$(34)

这个示例在插入点插入文字“ GroupA:35 ”。为了创建字符串的数字部分，使用 Str$() 转换数字变量为字符串，LTrim$() 删除 Str$() 自动添加的前导空格。

num = 35

num$ = LTrim$(Str$(num))

Insert "GroupA:" + num$


Insert

示例

Insert Text$

在插入点插入指定的文字。您可以用带 Insert 的 Chr$() 函数来插入引号、制表字符、不可分连字符和换行符这样的字符。您也可以用 Str$() 函数先把数字转换为文字再插入。

_____________

请参阅

移动插入点和选定

Chr$()

InsertPara

LTrim$()

Str$()


LineDown 示例

这个示例把插入点往下移动五行：

LineDown 5

下面的示例用 LineDown() 来计算文档中的行数：

StartOfDocument

lines = 1

While LineDown()

lines = lines + 1

Wend

MsgBox "There are" + Str$(lines) + " lines in the document."


LineDown, LineDown()

示例

LineDown [Count] [, Select]

LineDown([Count] [, Select])

LineDown 语句把插入点或选定内容活动端（按下 SHIFT+下箭头键时移动的那端）往下移动指定的行数。

参数	解释
Count	要往下移动的行数；如果省略，则假定为 1 。负值往上移动插入点或选定内容活动端。
Select	指定是否选定文本： 0 或省略 不选定文本。如果已有选定内容，则 LineDown 在选定内容下方把插入点移动Count 行。 非 0 选定文本。如果已有选定文本，则 LineDown 把选定内容活动端往文档结尾移动。 在从左往右的典型选定模式中，选定内容活动端更靠近文档结尾，故LineDown 扩展选定内容。在从右往左形成的选定内容中，它减少选定内容。
LineDown() 函数与语句功能相同，并返回下列值：

值	解释
0	如果插入点或选定内容活动端不能往下移动
-1	如果插入点或选定内容活动端移动了若干行，即使小于 Count 。例如，即使插入点仅位于文档结尾三行之上， LineDown(10) 也返回 -1 。
_____________

请参阅

移动插入点和选定

LineUp

ParaDown

ParaUp


LineUp 示例

这个示例将插入点往上移动 20 行：

LineUp 20

下面的示例显示一个信息框，如果插入点在文档第一行的话：

If LineUp() = 0 Then MsgBox "No lines above here."


LineUp, LineUp()

示例

LineUp [Count] [, Select]

LineUp([Count] [, Select])

LineUp 语句把插入点或选定内容活动端（按下 SHIFT+上箭头键时移动的那端）往上移动指定的行数。

参数	解释
Count	要往上移动的行数；如果省略，则假定为 1 。负值往下移动插入点或选定内容活动端。
Select	指定是否选定文本： 0 或省略 不选定文本。如果已有选定内容，则 LineUp 在选定内容上方把插入点移动 Count 行。 非 0 选定文本。如果已有选定文本，则 LineUp 把选定内容活动端往文档开始移动。 在从左往右的典型选定模式中，选定内容活动端更靠近文档结尾，故 LineUp 缩小选定范围。在从右往左形成的选定内容中，它扩展选定内容。
LineUp() 函数与语句功能相同，并返回下列值：

值	解释
0	如果插入点或选定内容活动端不能往上移动。
-1	如果插入点或选定内容活动端移动了若干行，即使小于 Count 。例如，即使插入点仅位于文档开始三行之下， LineUp(10) 也返回 -1 。
_____________

请参阅

移动插入点和选定

LineDown

ParaDown

ParaUp


NextCell 示例

这个示例移动选定内容到下一单元格，然后用 SelType() 判断该单元格是否为空。如果 SelType() 返回 1 （对插入点的值，表明单元格为空），就出现一个信息框。

NextCell

If SelType() = 1 Then MsgBox "Empty cell!"

下面的示例用 NextCell() 函数判断插入点是否在最后一个单元格。如果当前单元格是最后一个，则选定整个表格。如果当前单元格不是最后一个，就选定下一个单元格。

If NextCell() = 0 Then TableSelectTable


NextCell, NextCell()

示例

NextCell

NextCell()

NextCell 语句选定下一个表格单元格的内容（作用与在表格中按下 TAB 相同）。如果选定内容多于一个单元格，则 NextCell 选定的是选定内容中的第一个单元格的内容。如果插入点或选定内容在表格的最后一个单元格，那么 NextCell 添加一个新行。

NextCell() 与语句功能相同，但插入点或选定内容完全在最后一个单元格内时除外，此时返回 0 （零）而不扩大选定内容，而语句增加一个新行。

注释

您可以使用 EditGoTo .Destination = "\Cell" 来选定当前单元格的内容。设置了预定义书签“\Cell”和许多其他书签，并自动更新。有关预定义书签的内容，请参阅预定义书签。

_____________

请参阅

移动插入点和选定

PrevCell


NextField 示例

这个示例计算文档中域的数量（除去 XE, TA, TC 和 RD 域），并把结果显示在信息框中。注意到 While...Wend 循环不包括 NextField 语句，因为 While NextField() 指令也移动选定内容。

StartOfDocument

count = 0

While NextField()

count = count + 1

Wend

MsgBox "Number of fields in the document:" + Str$(Count)


NextField, NextField()

示例

NextField

NextField()

NextField 语句选定下一个域，不管该域是以其代码还是结果显示。 NextField 跳过下列格式编排为隐藏文字的域： XE （索引项）、 TA （作者项）、 TC （目录项）和 RD （引用文档）。

NextField() 函数与语句功能相同，并返回下列值：

值	解释
0	如果没有下一个域（也就是说，如果选定内容没移动）
1	如果选定内容被移动
域代码显示时，您可以用 EditFind 定位到任何类型的下一个域，包括 XE、TA、TC 和 RD 域，如果隐藏内容被显示的话。指定“^d”（域字符的代码）为 .Find 参数的文字，如下列指令所示：

ViewFieldCodes 1

EditFind .Find = "^d", .Direction = 0, .Format = 0

若只查找 XE 域，请指定“^dXE”作为要查找的文本。

_____________

请参阅

移动插入点和选定

PrevField


NextObject 示例

这个示例把插入点移动到当前页的第一个文档对象。EditGoTo "\Page" 指令选定当前页，SelType 1 指令取消选定内容，而把插入点留在当页顶端。NextObject 指令移动插入点到第一个文档对象。

ViewPage

EditGoTo "\Page"

SelType 1

NextObject


NextObject

示例

NextObject

把插入点移动到页面视图当前页中的下一个文档对象（与按下 ALT+下箭头键作用相同）。文档对象包括文本栏、表格单元格、脚注和图文框等。

NextObject 语句从页面上的第一个文本栏的顶端以下列顺序移过文档对象：

每一个文本栏，按第一个到最后一个的顺序（如果多于一个的话），移过所有表格单元格，然后移过文本栏内出现的所有脚注。

图文框（如果有的话），以它们出现在标准视图上的顺序，从前一个分页符到下一个分页符。

NextObject 最后移到第一个文本栏的顶端，然后再次在文档对象中循环。

使用 NextObject 时请记住以下几点：

您可以这样确认文档对象：当活动文档处于页面视图时，在“选项”对话框（“工具”菜单）的"视图”选顶卡中选定“文本边界”复选框。

WORD 不把 OLE 对象（如嵌入的绘图和图表）视作文档对象，除非给它们加了图文框。

如果插入点在页眉或页脚内，则 NextObject 在页眉和页脚之间移动。

使用 NextObject 之前一定要切换到页面视图。

_____________

请参阅

移动插入点和选定

PrevObject


NextPage 示例

这个示例向前滚动一页，把插入点定位在文档窗口的顶端。如果文档已滚动到最大限度，则显示一个信息框。

ViewPage

If NextPage() = 0 Then

MsgBox "Can't scroll!"

Else

StartOfWindow

End If


NextPage, NextPage()

示例

NextPage

NextPage()

NextPage 语句在页面视图上往前滚动一页，而不移动插入点（与在页面视图中单击垂直滚动条的“向前一页”按键作用相同）。如果您想在滚动之后移动插入点，请在宏中的 NextPage 语句后面加入一个 StartOfWindow 语句。

NextPage 从一页上的当前位置滚动到下一页的同样相对位置。若要滚动到下一页的开始，而不管显示的是当前页的哪一部分，请用指令 EditGoTo .Destination = "p" 代替 NextPage。不过请注意，EditGoTo 也移动插入点。

NextPage() 函数与语句功能相同，并返回下列值：

值	解释
0	如果没有下一页（也就是说，文档不滚动）
1	如果文档滚动
注释

NextPage 和 NextPage() 只可用于页面视图，如果在其他视图中运行，就会产生错误。

_____________

请参阅

移动插入点和选定

EditGoTo

PageDown

PrevPage

ViewPage

VPage


NextWindow

NextWindow

激活在“窗口”菜单中列在活动窗口的紧后面的窗口。如果活动窗口在列表中是最后一个，则 NextWindow 激活列表顶端的窗口。如果活动窗口是唯一打开的文档窗口，则这个语句什么也不做。

注释

在“窗口”菜单中按字母顺序列出各窗口名。如果文件不是保存于当前目录中，则在窗口名中包括路径。当您改变当前目录，例如，在“打开”对话框（“文件”菜单）中选定新目录，则窗口名可能改变，导致 WORD 重新按字母顺序排序。

_____________

请参阅

移动插入点和选定

Activate

ChDir

PrevWindow

Window()

WindowList

WindowName$()

WindowNumber


PageDown 示例

这个示例从插入点把选定内容往下扩展两屏。

PageDown 2, 1

下面的示例对插入点与文档结尾之间的屏数进行计数。PageDown() 函数用于检测何时到达文档结尾。

n = 0

While PageDown()

n = n + 1

Wend

MsgBox "Number of screens:" + Str$(n)


PageDown, PageDown()

示例

PageDown [Count] [, Select]

PageDown([Count] [, Select])

PageDown 语句把插入点或选定内容活动端（按下 SHIFT+PAGE DOWN键时移动的那一端）往下移动指定的屏数，其中一屏等于活动窗口的高度。如果在插入点或选定内容与文档结尾之间不足一屏，则 PageDown 把插入点或选定内容活动端移到文档结尾。

参数	解释
Count	要滚动的屏数；如果省略，则假定为 1 。负值把插入点或选定内容活动端往上移动。
Select	指定是否选定文本： 0 或省略 不选定文本。如果已有选定内容，PageDown 在选定内容之下把插入点移动 Count-1 屏。 非 0 选定文本。如果已有选定内容，则 PageDown 把选定内容活动端往文档结尾移动。 在从左往右形成的典型选定内容中，选定内容更靠近文档结尾，PageDown 扩展选定内容。在从右往左形成的选定内容中，它缩减选定内容。
PageDown() 函数与语句功能相同，并返回下列值：

值	解释
0	如果插入点或选定内容活动端不能往下移动
-1	如果插入点或选定内容活动端往下移动了若干屏，即使小于 Count 。例如，即使插入点距文档结尾仅一屏， PageDown(2) 也返回 -1。
_____________

请参阅

移动插入点和选定

EditGoTo

HPage

HScroll

NextPage

PageUp

VPage

VScroll


PageUp 示例

这个示例从插入点往上选定一屏。如果插入点以上小于一屏，则选定内容扩展到文档开始。

PageUp 1, 1

If CmpBookmarks("\StartOfSel", "\StartOfDoc") = 0 Then

Print "Selected to start of document."

End If


PageUp, PageUp()

示例

PageUp [Count] [, Select]

PageUp([Count] [, Select])

PageUp 语句把插入点或选定内容活动端（按下 SHIFT+PAGE UP 键时移动的那一端）往上移动指定的屏数，其中一屏等于活动窗口的高度。如果在插入点或选定内容与文档开始之间不足一屏，则 PageUp 把插入点或选定内容活动端移到文档开始。

参数	解释
Count	要滚动的屏数；如果省略，则假定为 1 。负值把插入点或选定内容往下移动。
Select	指定是否选定文本： 0 或省略 不选定文本。如果已有选定内容， PageUp 在选定内容之上把插入点移动 Count-1 屏。 非 0 选定文本。如果已有选定内容， 则 PageUP 把选定内容活动端往文档开始移动。 在从左往右形成的典型选定内容中，选定内容更靠近文档结尾，PageUP 缩减选定内容。在从右往左形成的选定内容中，它扩展选定内容。
PageUp() 函数与语句功能相同，并返回下列值：

值	解释
0	如果插入点或选定内容活动端不能往上移动
-1	如果插入点或选定内容活动端往上移动了若干屏，即使小于 Count 。例如，即使一条 PageUp 指令就可以到达文档的开始， PageUp(2) 也返回 -1 。
_____________

请参阅

移动插入点和选定

EditGoTo

HPage

HScroll

PageDown

PrevPage

VPage

VScroll


ParaDown 示例

这个示例在文档的每一段落前插入三个星号 (***) 。由于 While ParaDown() 指令把插入点逐渐移动到最后一段结尾，而此时不就插入星号，所以 If 控制结构使用 CmpBookmarks() 来测试是否满足这一条件，如果满足就退出 While...Wend 循环。

StartOfDocument

Insert "***"

While ParaDown()

If CmpBookmarks("\Sel", "\EndOfDoc") <> 0 Then

Insert "***"

End If

Wend


ParaDown, ParaDown()

示例

ParaDown [Count] [, Select]

ParaDown([Count] [, Select])

ParaDown 语句把插入点或选定内容活动端（按下 CTRL+SHIFT+下箭头键时移动的那一端）往下移动指定的段落数。

不管插入点在段落内处于什么位置，也不管段落中是否有选定内容， ParaDown 指令总是移动插入点到下一段落的开始。唯一的例外是插入点位于文档的最后一段内，此时 ParaDown 把插入点移动到该段结尾。如果当前选定内容包括多个段落，则 ParaDown 指令把插入点移动到选定内容结尾后的第一段的开始。

参数	解释
Count	要滚动的段数；如果省略，则假定为 1 。负值把插入点或选定内容往上移动。
Select	指定是否选定文本： 0 或省略 不选定文本。如果已有选定内容， ParaDown 在选定内容之下把插入点移动 Count 段。 非 0 选定文本。如果已有选定内容，则 ParaDown 把选定内容活动端往文档结尾移动。 在从左往右形成的典型选定内容中，选定内容更靠近文档结尾， ParaDown 扩展选定内容。在从右往左形成的选定内容中，它缩减选定内容。
ParaDown() 函数与语句功能相同，并返回下列值：

值	解释
0	如果插入点或选定内容活动端不能往下移动。
-1	如果插入点或选定内容活动端往下移动了若干段，即使小于 Count 。例如，即使插入点在文档最后一段的开始， ParaDown(2) 也返回 -1 。
_____________

请参阅

移动插入点和选定

LineDown

PageDown

ParaUp


ParaUp 示例

这个示例查找到短语“按下 F1 获得帮助”下一次出现的位置，然后选定它周围一段的全部文本。

EditFind .Find = "Press F1 for Help"

ParaUp

ParaDown 1, 1

请注意，您也可以把预定义书签“ \ Para”用在 EditGoTo "\Para" 指令中，以此选定包含插入点或选定内容的段落。


ParaUp, ParaUp()

示例

ParaUp [Count] [, Select]

ParaUp([Count] [, Select])

ParaUp 语句把插入点或选定内容活动端（按下 CTRL+SHIFT+上箭头键时移动的那一端）往上移动指定的段落数。

如果插入点在一段的开始，则指令 ParaUp 把插入点移到前一段的开始。如果插入点不在一段的开始，或者如果有选定内容，则 ParaUp 把插入点移动到本段的开始。如果当前选定内容包括多个段落，则 ParaUp 指令把插入点移动到第一个选定段落的开始。

参数	解释
Count	要滚动的段数；如果省略，则假定为 1 。负值把插入点或选定内容往下移动。
Select	指定是否选定文本： 0 或省略 不选定文本。如果已有选定内容， ParaUp 在选定内容之上把插入点移动 Count-1 段。 非 0 选定文本。如果已有选定内容，则 ParaUp 把选定内容活动端往文档开始移动。 在从左往右形成的典型选定内容中，选定内容更靠近文档结尾， ParaUp 缩减选定内容。在从右往左形成的选定内容中，它扩展选定内容。
ParaUp() 函数与语句功能相同，并返回下列值：

值	解释
0	如果插入点或选定内容活动端不能往上移动。
-1	如果插入点或选定内容活动端往上移动了若干段，即使小于 Count 。例如，即使插入点在文档第一段的结尾，ParaUp(2) 也返回 -1。
_____________

请参阅

移动插入点和选定

LineUp

PageUp

ParaDown


PrevCell 示例

如果插入点在第一个单元格中，这个示例就选定整个表格。

If PrevCell() = 0 Then TableSelectTable


PrevCell, PrevCell()

示例

PrevCell

PrevCell()

PrevCell 语句选定前一个单元格的内容（与在表格中按下 SHIFT+TAB 作用相同）。如果已有包括多个单元格的选定内容，则 PrevCell 选定选定内容中的第一个单元格。

PrevCell() 函数与语句功能相同，并返回下列值：

值	解释
0	如果选定内容完全包含于第一行最左的单元格中（也就是说，选定内容未移动）
-1	如果选定内容被移动
_____________

请参阅

移动插入点和选定

NextCell


PrevField 示例

这个宏对插入点之上的域（ XE, TA, TC 和 RD 域除外）的数目进行计数，并把结果显示在信息框中。

Sub MAIN

count = 0

While PrevField()

count = count + 1

Wend

MsgBox "Fields above the insertion point:" + Str$(count)

End Sub


PrevField, PrevField()

示例

PrevField

PrevField()

PrevField 语句选定前一个域，不管该域是以代码还是以结果显示。PrevField 跳过下列格式编排为隐藏文字的域： XE （索引项）、 TA （作者项）、 TC （目录项）和 RD （引用文档）。

PrevField() 函数与语句功能相同，并返回下列值：

值	解释
0	如果没有前一个域（也就是说，如果选定内容没移动）
1	如果选定内容被移动
域代码显示时，您可以用 EditFind 定位到任何类型的前一个域，包括 XE, TA, TC 和 RD 域，如果隐藏内容被显示的话。只需指定“^d”（域字符的代码）为 .Find 参数的文本，指定 1 为 .Direction 参数，如下列指令所示：

ViewFieldCodes 1

EditFind .Find = "^d", .Direction = 1, .Format = 1

若要查找 XE 域，请指定“^dXE”作为要查找的文本。

_____________

请参阅

移动插入点和选定

NextField


PrevObject

PrevObject

把插入点移动到页面视图当前页中的前一个文档对象（与按下 ALT+上箭头键作用相同）。文档对象包括图文框、脚注、表格单元格和文本栏等。

PrevObject 语句从页面上的第一个文本栏的顶端以下列顺序移过文档对象：

图文框（如果有的话），以它们出现在标准视图上的顺序，从下一个分页符到前一个分页符

每一个文本栏，按最后一个到第一个的顺序（如果多于一个的话），移过所有脚注，然后移过文本栏内出现的所有表格单元格

PrevObject 最后移到下一个文本栏的顶端，然后再次在文档对象中循环。

使用 PrevObject 时请记住以下几点：

您可以这样确认文档对象：当活动文档处于页面视图时，在“选项”对话框（“工具”菜单）的"视图”选顶卡中选定“文本边界”复选框。

WORD 不把 OLE 对象（如嵌入的绘图和图表）视作文档对象，除非给它们加了图文框。

如果插入点在页眉或页脚内，则 PrevObject 在页眉和页脚之间移动。

使用 PrevObject 之前一定要切换到页面视图。

_____________

请参阅

移动插入点和选定

NextObject


PrevPage 示例

这个示例把文档切换到页面视图，滚动到前一页，然后移动插入点到窗口顶端：

ViewPage

PrevPage

StartOfWindow


PrevPage, PrevPage()

示例

PrevPage

PrevPage()

PrevPage 语句在页面视图上往回滚动一页，而不移动插入点（与在页面视图中单击垂直滚动条的“往回一页”按钮作用相同）。如果您想在滚动之后移动插入点，请在宏中的 PrevPage 语句后面包括一个 StartOfWindow 语句。

PrevPage 从一页上的当前位置滚动到前一页的同样相对位置。若要滚动到前一页的开始，而不管显示的是当前页的哪一部分，请用指令 EditGoTo .Destination = "p-1" 代替 PrevPage 。不过请注意， EditGoTo 也移动插入点。

PrevPage() 函数与语句功能相同，并返回下列值：

值	解释
0	如果没有前一页（也就是说，文档不滚动）
1	如果文档滚动
注释

PrevPage 和 PrevPage() 只可用于页面视图，如果在其他视图中运行，就会产生错误。

_____________

请参阅

移动插入点和选定

EditGoTo

NextPage

PageUp

ViewPage

VPage


PrevWindow

PrevWindow

激活在“窗口”菜单中列于活动窗口的前一个的窗口。如果活动窗口在列表中是第一个，则 PrevWindow 激活列表底端的窗口。如果活动窗口是唯一打开的文档窗口，则这个语句什么也不做。

注释

在“窗口”菜单中按字母顺序列出各窗口名。如果文件不是保存于当前目录中，则在窗口名中包括路径。当您改变当前目录时，例如在“打开”对话框（“文件”菜单）中选定新目录，则窗口名可能改变，导致 WORD 重新按字母顺序排序。

_____________

请参阅

移动插入点和选定

Activate

ChDir

NextWindow

Window()

WindowList

WindowName$()

WindowNumber


SelectCurAlignment 示例

这个示例把插入点放在与当前段落对齐方式不同的第一个后续段落的开始。如果直到文结尾对齐方式都相同，则 WORD 显示一个信息框。

SelectCurAlignment

CharRight

If CmpBookmarks("\Sel", "\EndOfDoc") = 0 Then

MsgBox "No variation in alignment found."

End If


SelectCurAlignment

示例

SelectCurAlignment

往前扩展选定内容，直到遇到段落对齐方式不同的文本。有四种段落对齐方式：左对齐、居中对齐、右对齐和两端对齐。

_____________

请参阅

移动插入点和选定

CenterPara

FormatParagraph

JustifyPara

LeftPara

RightPara

SelectCurIndent

SelectCurSpacing

SelectCurTabs


SelectCurColor 示例

这个示例从文档开始扩展选定内容，直到以不同颜色进行格式编排的第一个字符，然后显示选定内容的字符数。

StartOfDocument

SelectCurColor

n = Len(Selection$())

MsgBox "Contiguous characters with the same color:" + Str$(n)


SelectCurColor

示例

SelectCurColor

往前扩展选定内容，直到遇到不同颜色的文本。

_____________

请参阅

移动插入点和选定

CharColor

FormatFont

SelectCurFont


SelectCurFont 示例

这个示例把选定内容扩展到第一个字体或字体磅值不同的字符，然后增加字体磅值到下一个可能的设置。

SelectCurFont

GrowFont


SelectCurFont

示例

SelectCurFont

往前扩展选定内容，直到遇到不同字体或字体磅值的文字。

_____________

请参阅

移动插入点和选定

Font

FontSize

FormatFont

SelectCurColor


SelectCurIndent 示例

这个示例判断文档中的所有段落是否以同样的左右缩进进行格式编排，然后显示表明结果的信息框。

StartOfDocument

SelectCurIndent

LineDown

If LineDown() = 0 Then

MsgBox "All paragraphs share the same left and right indents."

Else

MsgBox "Not all paragraphs share the same left and right indents."

End If


SelectCurIndent

示例

SelectCurIndent

从插入点开始往前扩展选定内容，直到遇到不同左右段落缩进的文本。

_____________

请参阅

移动插入点和选定

FormatParagraph

Indent

SelectCurAlignment

SelectCurSpacing

SelectCurTabs

UnIndent


SelectCurSentence 示例

这个示例定义变量 a$ 为本句的文本。为了避免选定内容包括多个句子时发生错误，第一条指令取消了选定内容（如果有的话）。

If SelType() = 2 Then SelType 1	'Cancel selection, if any

SelectCurSentence

a$ = Selection$()


SelectCurSentence

示例

SelectCurSentence

选定包含插入点或选定内容的整个句子，包括尾部空格。如果 SelectCurSentence 运行时选定内容多于一个句子，则会发生错误。

_____________

请参阅

移动插入点和选定

SelectCurWord

SentLeft

SentRight


SelectCurSpacing 示例

这个示例演示一种跳到与当前段落行距不同的下一个段落的开始的快速方法。如果直到文档结尾行距都相同，则 WORD 显示一个信息框。

SelectCurSpacing

CharRight

If CmpBookmarks("\Sel", "\EndOfDoc") = 0 Then

MsgBox "No variation in spacing found."

End If


SelectCurSpacing

示例

SelectCurSpacing

从插入点开始往前扩展选定内容，直到遇到不同行距的段落。

_____________

请参阅

移动插入点和选定

FormatParagraph

SelectCurAlignment

SelectCurIndent

SelectCurTabs

SpacePara1

SpacePara15

SpacePara2


SelectCurTabs 示例

这个示例判断当前段落第一个制表位的位置，然后对下面与原段落制表符设置不同的段落设置相同的制表位。由于 NextTab() 返回以磅值表示的位置，故此磅值也用于 FormatTabs 指令中。

n = NextTab(0)

SelectCurTabs

CharRight

SelectCurTabs

FormatTabs .Position = Str$(n) + "pt"


SelectCurTabs

示例

SelectCurTabs

从插入点开始往前扩展选定内容，直到遇到不同制表位的段落。

_____________

请参阅

移动插入点和选定

FormatTabs

SelectCurAlignment

SelectCurIndent

SelectCurSpacing


SelectCurWord 示例

这个示例定义变量 a$ 为包含插入点的词中的字符。如果有选定内容，第一条指令取消它，所以实际上 a$ 被定义为选定内容的第一个词。

If SelType() = 2 Then SelType 1	'Cancel selection, if any

SelectCurWord

a$ = Selection$()


SelectCurWord

示例

SelectCurWord

选定包含插入点或选定内容的整个词。双击一个词会选定该词及其尾部空格（如果有的话），而 SelectCurWord 不选定尾部空格。如果 SelectCurWord 运行时选定内容多于一个词，则会发生错误。

_____________

请参阅

移动插入点和选定

SelectCurSentence

WordLeft

WordRight


SentLeft 示例

这个示例删除文档中包含短语“ see page ”的句子。也就是说，本例删除对其他页的交叉引用。您可以用 SelectCurSentence 代替 SentLeft 和 SentRight 1, 1 两条指令。

StartOfDocument

EditFind .Find = "see page", .WholeWord = 1, .Direction = 0, .Format = 0

While EditFindFound()

SentLeft

SentRight 1, 1

EditClear

EditFind .Find = "see page", .WholeWord = 1, .Direction = 0, \

.Format = 0

Wend


SentLeft, SentLeft()

示例

SentLeft [Count,] [Select]

SentLeft([Count,] [Select])

SentLeft 语句把插入点或选定内容的活动端（当您按下 SHIFT+箭头键时移动的一端）往左移动指定个句子。

参数	解释
Count	移动的句数。如果省略， 就假设为 1 。负值把插入点或选定内容的活动端往右移动。
Select	指定是否选定文本： 0 或省略 不选择文本。如果已有选定内容， SentLeft 把插入点往选定内容左方移动 Count-1 个句子。 非 0 选定文本。如果已有选定内容， SentLeft 往文档开始移动选定内容的活动端。 在从左往右构造的典型选定内容中，活动端更接近文档结尾， SentLeft 缩减选定范围。如果选定内容从右往左构造，则 SentLeft 扩展选定范围。
请注意， WORD 计空的表格单元格为一个“句子”，另外，不管长短和标点符号， WORD 认为每个段落至少包含一个句子。

SentLeft() 函数与语句功能相同，并返回下列值：

值	解释
0	如果插入点或选定内容活动端不能往左移动。
-1	如果插入点或选定内容活动端往左移动任何个句子，甚至小于 Count 。例如，即使插入点距文档开始仅三个句子， SentLeft(10) 也返回 -1 。
_____________

请参阅

移动插入点和选定

CharLeft

ParaUp

SelectCurSentence

SentRight

StartOfLine

WordLeft


SentRight 示例

这个示例对文档中的句子数量进行计数（不包括段落标记），并将结果显示在信息框中：

StartOfDocument

count = 0

While SentRight() <> 0

If Right$(Selection$(), 1) <> Chr$(13) Then count = count + 1

Wend

MsgBox "Number of sentences in document:" + Str$(Count)


SentRight, SentRight()

示例

SentRight [Count,] [Select]

SentRight([Count,] [Select])

SentRight 语句把插入点或选定内容的活动端（当您按下 SHIFT+箭头键时移动的一端）往右移动指定个句子。

参数	解释
Count	移动的句子数。如果省略，就假设为 1。负值把插入点或选定内容的活动端往左移动。
Select	指定是否选定文本： 0 或省略 不选择文本。如果已有选定内容， SentRight 把插入点往选定内容右方移动 Count-1 个句子。 非 0 选定文本。如果已有选定内容， SentRight 往文档结尾移动选定内容的活动端。 在从左往右构造的典型选定内容中，活动端更接近文档结尾， SentRight 扩展选定内容。如果选定内容从右往左构造，则 SentRight 缩减选定内容。
请注意， WORD 计空的表格单元格为一个“句子”。另外，不管长短和标点符号，WORD 认为每个段落至少包含一个句子。

SentRight() 函数与语句功能相同，并返回下列值：

值	解释
0	如果插入点或选定内容活动端不能往右移动。
-1	如果插入点或选定内容活动端往右移动任何个句子，甚至小于 Count 。例如，即使插入点距文档结尾仅三个句子， SentRight(10) 也返回 -1 。
_____________

请参阅

移动插入点和选定

CharRight

EndOfLine

ParaDown

SelectCurSentence

SentLeft

WordRight


SetSelRange 示例

这个示例选定文档中的前 20 个字符。

SetSelRange 0, 20


SetSelRange

示例

SetSelRange Pos1, Pos2

选定字符位置 POS1 与字符位置 POS2 之间的字符。文档开始处的字符位置为 0（零），第一个字符后的位置是 1，第二个字符后的位置是 2，依此类推。包括显示非打印字符在内的所有字符都计入在内。隐藏字符即使不显示也同样计入。请注意，文档并不滚动，即使所选定的字符在文档窗口上看不见。

_____________

请参阅

移动插入点和选定

GetSelEndPos()

GetSelStartPos()

GetText$()


ShrinkSelection

ShrinkSelection

把选定内容缩减到下一个较小的文本单元。按以下顺序进行：整个文档，节，段落，句子，词，插入点。插入点是原选定内容的开始。无选定内容时运行 ShrinkSelection 会产生声音提示。

不同于 ExtendSelection，ShrinkSelection 不激活也不要求扩展状态。

_____________

请参阅

移动插入点和选定

ExtendMode()

ExtendSelection


StartOfColumn 示例

这个示例把插入点从表格中的任何位置移动到第一行结尾：

TableSelectRow

StartOfColumn


StartOfColumn, StartOfColumn()

示例

StartOfColumn [Select]

StartOfColumn([Select])

StartOfColumn 语句移动插入点到包含插入点的表格列的顶端，或扩展选定内容（如果 Select 不为零）到包含选定内容的表格列的顶端。如果选定内容多于一列，则插入点移动到包含选定内容结尾的表格列的顶端。如果插入点或选定内容不在表格中，就会发生错误。

注释

如果表格的第一行没有对应于包含当前选定内容的表列的单元格（例如，您已删除或合并第一行的单元格），StartOfColumn 就移动插入点到表格第一行的开始。

StartOfColumn() 函数与语句功能相同，并返回下列值之一：

值	解释
0	如果插入点未曾移动或选定内容未曾扩展（即，如果它已经在表列的顶端）。
-1	如果插入点被移动或选定内容被扩展
如果插入点不在表格中，则 StartOfColumn 和 StartOfColumn() 会产生错误。

_____________

请参阅

移动插入点和选定

EndOfColumn

StartOfRow


StartOfDocument 示例

这个示例把插入点移到文档开始，然后使 WORD 准备开始替换操作：

StartOfDocument

EditFindClearFormatting

EditReplaceClearFormatting

'Instructions that perform a replace operation go here


StartOfDocument, StartOfDocument()

示例

StartOfDocument [Select]

StartOfDocument([Select])

StartOfDocument 语句移动插入点到文档开始，或者，如果 SELECT 不为零，把选定内容活动端（当您按下 CTRL+SHIFT+HOME时移动的那端）移动到文档的开始。

StartOfDocument() 函数与语句功能相同，并返回下列值之一：

值	解释
0	如果插入点或选定内容活动端未曾移动（即，如果它已经在文档开始）。
-1	如果插入点或选定内容活动端被移动
_____________

请参阅

移动插入点和选定

AtStartOfDocument()

EndOfDocument


StartOfLine 示例

这个示例把插入点移动到当前段落的开始，而不管段落长度或插入点在其中的位置。第一条指令选定整个段落。

EditGoTo "\Para"

StartOfLine

书签“ \ Para”是 WORD 定义并自动更新的几个预定义书签之一。有关详细内容请参阅 预定义书签。


StartOfLine, StartOfLine()

示例

StartOfLine [Select]

StartOfLine ([Select])

StartOfLine 语句移动插入点到当前行的行首，或者，如果 SELECT 不为零，把选定内容活动端（当您按下 SHIFT+HOME 时移动的那端）移动到包含选定内容活动端的那一行的行首。

StartOfLine() 函数与语句功能相同，并返回下列值之一：

值	解释
0	如果插入点或选定内容活动端未曾移动（即，如果它已经在行首）。
-1	如果插入点或选定内容活动端被移动
请避免只使用 StartOfLine 定位到段落开始，除非您确信该段只有一行（例如,单词列表中的一个词）。

_____________

请参阅

移动插入点和选定

EndOfLine

ParaUp

StartOfRow


StartOfRow 示例

这个示例把插入点从表格中的任何位置移动到第一个单元格的开始。

StartOfRow

StartOfColumn


StartOfRow, StartOfRow()

示例

StartOfRow [Select]

StartOfRow ([Select])

StartOfRow 语句移动插入点或者扩展选定内容（如果 SELECT 不为零）到包含插入点或选定内容的表格行的第一个单元格的开始。如果选定内容多于一行，则移动插入点或扩展选定内容到选定内容第一行的第一个单元格。如果插入点或选定内容不在表格中，则会发生错误。

StartOfRow() 函数与语句功能相同，并返回下列值之一：

值	解释
0	如果插入点未移动或选定内容未扩展（即，如果它已经在行首）。
-1	如果插入点被移动或选定内容被扩展
_____________

请参阅

移动插入点和选定

EndOfRow

StartOfColumn

StartOfLine


StartOfWindow 示例

这个示例选定活动文档窗口中可见的内容。

StartOfWindow

EndOfWindow 1


StartOfWindow, StartOfWindow()

示例

StartOfWindow [Select]

StartOfWindow([Select])

StartOfWindow 语句把插入点，或者，如果 SELECT 不为零的话，把选定内容活动端（当您按下 CTRL+SHIFT+PAGE UP 时移动的那端）移动到文档窗口中当前看得见的内容的左上角。.

StartOfWindow() 函数与语句功能相同，并返回下列值之一：

值	解释
0	如果插入点或选定内容活动端未移动（即，如果它已在窗口的左上角）。
-1	如果插入点或选定内容活动端被移动
_____________

请参阅

移动插入点和选定

EndOfWindow

StartOfDocument


VLine

VLine [Count]

垂直滚动活动文档。一“行”对应于单击一次垂直滚动条上的滚动箭头。

参数	解释
Count	要滚动的数量，以行计算： 省略 往下滚动一行 > 0  往下滚动指定的行数 < 0  往上滚动指定的行数
_____________

请参阅

移动插入点和选定

HLine

VPage

VScroll


VPage

VPage [Count]

垂直滚动活动文档。 VPage 对应于单击滚动块上边或下边的垂直滚动条。

参数	解释
Count	要滚动的数量，以屏数计算： 省略 往下滚动一屏 > 0  往下滚动指定的屏数 < 0  往上滚动指定的屏数
_____________

请参阅

移动插入点和选定

HPage

VLine

VScroll


VScroll 示例

这个示例滚动到活动文档中间：

VScroll 50


VScroll, VScroll()

示例

VScroll Percentage

VScroll()

VScroll 语句垂直滚动到指定的文档长度百分比。VScroll 对当于拖动垂直滚动条上的滚动块。

VScroll() 函数返回以文档长度百分比表示的当前垂直滚动位置。

_____________

请参阅

移动插入点和选定

HScroll

VLine

VPage


WordLeft, WordLeft()

WordLeft [Count,] [Select]

WordLeft([Count,] [Select])

WordLeft 语句把插入点或选定内容的活动端（当您按下 CTRL+SHIFT+左箭头键时移动的一端）往左移动指定个词。

参数	解释
Count	要移动的词数。如果省略， 就假设为 1 。负值把插入点或选定内容的活动端往右移动。
Select	指定是否选定文本： 0 或省略 不选定文本。如果已有选定内容， WordLeft 把插入点往选定内容左方移动 COUNT-1 个词。 非 0 选定文本。如果已有选定内容， WordLeft 往文档开始移动选定内容的活动端。 在从左往右构造的典型选定内容中，活动端更接近文档结尾， WordLeft 缩减选定范围。如果选定内容从右往左构造，则 WordLeft 扩展选定范围。
请注意， WORD 把单词后的空格视为单词的部分。不过， WORD 把标点符号、制表字符和段落标记计为一个“词”。例如，如果一个词以引号括起来，则用 WordLeft 把插入点从右引号后的位置移动到左引号前的位置所需的指令为 WordLeft 3。

WordLeft() 函数与语句功能相同，并返回下列值：

值	解释
0	如果插入点或选定内容活动端不能往左移动。
-1	如果插入点或选定内容活动端往左移动任何个词，甚至小于 Count 。例如，即使插入点距文档开始仅三个词， WordLeft(10) 也返回 -1 。
_____________

请参阅

移动插入点和选定

CharLeft

SelectCurWord

SentLeft

WordRight


WordRight 示例

这个示例对选定内容中的单词数量进行计数（包括标点符号、制表字符和段落标记），并将结果显示在信息框中：

EditBookmark "CountMe", .Add

SelType 1

While CmpBookmarks("\Sel", "CountMe") = 6 \

Or CmpBookmarks("\Sel", "CountMe") = 8

WordRight

count = count + 1

Wend

EditGoTo "CountMe"

EditBookmark "CountMe", .Delete

MsgBox "There are" + Str$(count) + " words in the selection."


WordRight, WordRight()

示例

WordRight [Count,] [Select]

WordRight([Count,] [Select])

WordRight 语句把插入点或选定内容的活动端（当您按下 CTRL+SHIFT+右箭头键时移动的一端）往右移动指定个词。

参数	解释
Count	要移动的词数。如果省略， 就假设为 1 。负值把插入点或选定内容的活动端往左移动。
Select	指定是否选定文本： 0 或省略 不选定文本。如果已有选定内容，WordRight 把插入点往选定内容右方移动 COUNT-1 个词。 非 0 选定文本。如果已有选定内容， WordRight 往文档结尾移动选定内容的活动端。 在从右往右构造的典型选定内容中，活动端更接近文档结尾， WordRight 扩展选定内容。如果选定内容从右往右构造，则 WordRight 缩减选定内容。
请注意，WORD 把单词后的空格视为单词的部分。不过，WORD 把标点符号、制表字符和段落标记计为一个“词”。

WordRight() 函数与语句功能相同，并返回下列值：

值	解释
0	如果插入点或选定内容活动端不能往右移动。
-1	如果插入点或选定内容活动端往右移动任何个词，甚至小于 Count 。例如，即使插入点距文档结尾仅三个词， WordRight(10) 也返回 -1 。
_____________

请参阅

移动插入点和选定

CharRight

SelectCurWord

SentRight

WordLeft


ActivateObject 示例

本示例把插入点移至下一个 Microsoft WordArt 对象，并激活它以进行编辑。

EditGoTo "o'MSWordArt.2'"

ActivateObject


ActivateObject

示例

ActivateObject

激活选中的嵌入对象以进行编辑，或者运行与选中图标相关的声音或图象文件（比如，一个声音文件与麦克风图标相关）。ActivateObject 等价于在选中嵌入图象上双击鼠标键。

_____________

请参阅

对象链接和嵌入

EditGoTo

EditObject


EditLinks 示例

本示例解除一个已存在的与 Microsoft Excel 5.0 电子表格的链接，并进行自动更新：

EditLinks .UpdateMode = 0, .Locked = 0, .Link = "\Sel", \

.Application = "Excel.Sheet.5", .Item = "R1C1:R5C3", \

.FileName = "C:\XLS\SALES.XLS"

下面的示例选择活动文档与 Microsoft Excel 5.0 电子表格之间的所有链接，并手动更新：

StartOfDocument

ViewFieldCodes 1

EditFind "^d LINK Excel.Sheet.5", .Format = 0, .Wrap = 0

While EditFindFound()

Dim dlg As EditLinks

GetCurValues dlg

dlg.UpdateMode = 1

EditLinks dlg

CharRight

RepeatFind

Wend


EditLinks

示例

EditLinks [.UpdateMode = number,] [.Locked = number,] [.SavePictureInDoc = number,] [.UpdateNow,] [.OpenSource,] [.KillLink,] .Link = text, .Application = text, .Item = text, .FileName = text

为指定的链接设置选项。Link 语句的参数对应“链接”对话框（“编辑”菜单）中的选项。

参数	解释
.UpdateMode	确定更新该链接方式： 0 自动 1 手工
.Locked	指明是否锁定该链接： 0 解除该链接锁定 1 锁定该链接
.SavePictureInDoc	如果为 1，在 Word 文档中保存该链接对象复本。
.UpdateNow	更新指定链接。
.OpenSource	打开指定链接的源（比如，一 Microsoft Excel 电子表格）。
.KillLink	用最新的内容替换指定的链接。
.Link	指明“链接”对话框中所列的链接，该对话框中的选项将设置为： "1" 对应列表中的第一个链接， "2" 对应列表中的第二个链接，等等。注意这个数值必须在引号里。您也可以使用已定义的书签 "\Sel" 来指明当前选中的链接。
.Application	提供链接的文档的类型，这个类型与其出现在 Link 域代码中的类型一样。比如，对于一个 Word 文档为 "Word.Document.6"，对于 Microsoft Excel 5.0 电子表格为 "Excel.Sheet.5"。
.Item	用来识别链接信息的文字（比如，在一个 Word 文档中的一个名为 "INTERN_LINK2" 的书签，或者在 Microsoft Excel 电子表格中的一定范围内的单元，如 R1C1:R5C3）。
.FileName	包含链接项的源文档的路径和文件名。
最后三个参数对应于在“更改源”对话框中选择“更改源”按钮并设置选项。

_____________

请参阅

对象链接和嵌入

EditPasteSpecial

InsertField

LockFields

UnlinkFields

UnlockFields


EditObject 示例

本示例选中活动文档中的下一个公式，在“公式编辑器”中打开并进行编辑。

EditGoTo "q"

EditObject


EditObject

示例

EditObject

在与 OLE（对象链接与嵌入）对象相关的应用程序中，打开该对象以进行编辑。OLE 对象包括“公式编辑器”中的公式，由 WordArt 创建的字体，Microsoft Excel 的图表等等。

_____________

请参阅

对象链接和嵌入

ActivateObject

EditGoTo

InsertObject


EditPasteSpecial

EditPasteSpecial [.IconNumber = number] [, .Link = number] [, .DisplayIcon = number] [, .Class = text] [, .DataType = text] [, .IconFilename = text] [, .Caption = text]

在插入点插入剪贴板中的内容。EditPasteSpecial 的参数对应“选择性粘贴”对话框（“编辑”菜单）中的选项。与 EditPaste 不同，EditPasteSpecial 允许您控制粘贴信息的格式，并建立一个与该信息源的链接（比如，一张 Microsoft Excel 电子表格）。

参数	解释
.IconNumber	如果 .DisplayIcon 设置为 1， 则该数值对应您想在某程序文件中使用的图标，而这个程序文件由 .IconFileName 指明。图标出现在“更改图标”对话框中（“对象”命令，“插入”菜单）：0 对应第一个图标，1 对应第二个图标等等。如果省略，则使用第一个（默认）图标。
.Link	指明是否建立链接： 0 或省略 不建立链接。 1 建立链接。
.DisplayIcon	指明是否把一个链接显示为图标： 0 或省略 链接不显示为图标。 1 链接显示为图标。
.Class	剪裁板内容的对象类别。这个参数不能设置。但是，您可以把一个对话记录定义为 EditPasteSpecial，然后用对话记录返回 .Class 的当前值。
.DataType	为粘贴内容指明格式： Bitmap    Windows 位图 DIB    Windows 独立于设备的位图 Object    OLE（对象链接与嵌入）对象 PICT    Window 图元文件 RTF    Rich-text format Text    无格式文本
.IconFilename	如果 .DisplayIcon 为 1，则表示程序文件的路径和文件名，这个程序文件保存了要显示的图标。
.Caption	如果 .DisplayIcon 为 1，则显示图标的题注；如果省略，Word 将插入对象的名称。
注释

对每一个剪贴板项并不是所有数据类型都是可用的。比如，如果剪贴板含有从一个Word 文档选中的文本，则可用的数据类型是“对象”、“图片”、“带格式文本(RTF)”和“无格式文本”。对于从一个 Microsoft Excel 电子表格选中的内容，则可用的格式是“位图”、“对象”、“图片”、“带格式文本 (RTF)”和“无格式文本”。如果您指明一个不可用的数据类型，则出错。

有关链接的详细内容，请参阅与其它应用程序交换信息。

_____________

请参阅

对象链接和嵌入

EditCopy

EditCut

EditLinks

EditPaste

InsertField


EditPicture 示例

本示例定位到下一个图形，并打开进行编辑。

EditGoTo "g"

CharRight 1, 1

EditPicture


EditPicture

示例

EditPicture

打开选中的图形进行编辑。

_____________

请参阅

对象链接和嵌入

EditObject

FormatPicture

InsertPicture

Picture


InsertChart

InsertChart

启动 Microsoft Graph 并显示一个默认的图表进行编辑。当用户退出 Microsoft Graph 时，该图表嵌入活动文档。指令 InsertChart 与指令 InsertObject .Class= "MSGraph" 作用相同。

_____________

请参阅

对象链接和嵌入

InsertDrawing

InsertExcelTable

InsertObject


InsertDatabase

InsertDatabase [.Format = number] [, .Style = number] [, .LinkToSource = number] [, .Connection = text] [, .SQLStatement = text] [, .SQLStatement1 = text] [, .PasswordDoc = text] [, .PasswordDot = text] [, .DataSource = text] [, .From = text] [, .To = text] [, .IncludeFields = number]

跟踪来自某一数据源（比如，一个独立的 Word 文档，一张 Microsoft Excel 电子表格，或一个 Microsoft Access 数据库）的数据，并作为一份表格插入到活动文档中。

参数	解释
.Format	指明列于“表格自动套用格式”对话框（“表格”菜单）中“格式”下的一种格式，0 表示列表中的第一种格式 (“无”)，1 表示第二种格式，等等。
.Style	指明由 .Format 所指定格式的哪一种属性用于该表格。可以使用下列任意组合值之和： 0 无 1 边框 2 底纹 4 字体 8 颜色 16    自动匹配 32    标题行 64    末行 128    首列 256    末列
.LinkToSource	如果为 1，建立新表格与数据源之间的链接。
.Connection	由 ODBC 驱动程序使用的一个连接字符串。有关有效连接字符串的内容，请参阅相应 ODBC 驱动程序的“帮助”文件。
.SQLStatement	一个可选查询字符串，用来跟踪一个主数据源中的某一部分数据以插入文档。有关有效查询字符串，请参阅相应 ODBC 驱动程序的“帮助”文件。
.SQLStatement1	如果查询字符串大于 255 个字符，那么 .SQLStatement 指明该字符串的第一部分，.SQLStatement1 指明第二部分。
.PasswordDoc	打开数据源所需的口令（如果有的话）。
.PasswordDot	如果该数据源是一个 Word 文档，则表示打开附加模板所需的口令（如果有的话）。
.DataSource	数据源的路径和文件名。
.From	在您要插入的数据记录范围内第一个记录的编号。
.To	在您要插入的数据记录范围内最后一个记录的编号。
.IncludeFields	如果为 1，则表示出现在新表格第一行中的是来自数据源的域名。
注释

ODBC 驱动程序的“帮助”文件位于 Windows 目录的 SYSTEM 子目录下，文件名以字母"DRV" 开头，以 .HLP 扩展名结尾（比如，DRVFOX.HLP 和 DRVACCSS.HLP)。

_____________

请参阅

对象链接和嵌入

InsertExcelTable

MailMergeCreateDataSource


InsertEquation

InsertEquation

如果您的计算机安装了 Microsoft Equation Editor ，则启动 Equation Editor。当用户退出 Equt+ation Editor 时，方程就嵌入到活动文档。指令 InsertEquation 与指令 InsertObject .Class = "Equation"作用相同。

_____________

请参阅

对象链接和嵌入

ActivateObject

EditObject

InsertChart

InsertDrawing

InsertExcelTable

InsertWordArt


InsertObject 示例

本示例启动 Microsoft Paintbrush 。当用户从“文件”菜单选择“退出并返回”命令时，Word 在插入点插入下面的域： {EMBED PBrush \ * MERGEFORMAT}。

InsertObject .Class = "PBrush"

下面的示例插入一个链接到文件 FLOCK.BMP 的嵌入对象。

InsertObject .FileName = "C:\WIN31\FLOCK.BMP", .Link = 1, \

.Tab = 1, .Class = "PBrush"


InsertObject

示例

InsertObject [.IconNumber = number] [, .FileName = text] [, .Link = number] [, .DisplayIcon = number] [, .Tab = number] [, .Class = text] [, .IconFilename = number] [, .Caption = text]

启动一个对象链接与嵌入 (OLE) 应用程序，以在其中创建一个对象，或利用一个指定文件立即创建一个嵌入对象。在两种情况下，InsertObject 都在插入点插入一个 EMBED 域。

参数	解释
.IconNumber	如果 .DisplayIcon 设置为 1，则表示一个图标的编号，这个图标是您要插入到由 .IconFilename 所指定的程序文件中去的。图标出现在“更改图标”对话框中（“对象”命令，“插入”菜单）：0 表示第一个图标，1 表示第二个图标，等等。如果省略，则使用第一个（默认）图标。
.FileName	要作为嵌入对象存入活动文档的文件的路径和文件名。 如果您指明了 .FileName，那么您必须设置 .Tab 为 1，并指明 .Class。有关把一个已存在的文件作为一个对象插入的示例，请参阅本条目的第二个示例。
.Link	如果为 1，则把嵌入对象链接到由 .FileName 指定的文件中去。当文件修改时，Word 更新该嵌入对象。
.DisplayIcon	指明一个链接是否显示为一个图标： 0 或省略 链接不显示为图标。 1 链接显示为图标。
.Tab	当您用一个 Dialog 或 Dialog() 指令显示“对象”对话框时，指明选择哪种选项卡： 0 “新建”选项卡。 1 “由文件创建”选项卡。
.Class	要插入的新对象的类型名，该类型名与“对象”对话框（“插入”菜单）中“新建”选项卡上列出的类型名一样。
.IconFilename	如果 .DisplayIcon 为 1 ，则表示被显示图标的程序文件的路径和文件名已被保存。
.Caption	如果 .DisplayIcon 为 1，则表示要显示的图标的题注；如果省略，则 Word 插入对象的名称。
_____________

请参阅

对象链接和嵌入

ActivateObject

EditObject

InsertChart

InsertDrawing

InsertExcelTable


InsertPicture 示例

本示例插入一个内容为位图 WINLOGO.BMP 的 INCLUDEPICTURE 域。

InsertPicture .Name = "WINLOGO.BMP", .LinkToFile = 1


InsertPicture

示例

InsertPicture .Name = text [, .LinkToFile = number]  [, .New]

在插入点插入一个图形。如果 .LinkToFile 设置为 1 或 2 ，则该图形作为一个INCLUDEPICTURE 域插入，这样您就可以在该图形文件改变时，更新内容。

参数	解释
.Name	要插入的图形的路径和文件名。如果省略了路径，则默认为当前目录。
.LinkToFile	指明是否把图形作为一个域插入，以及是否把图形数据存入文档： 0 或省略 插入由 .Name 参数指定的图形。 1 在插入点插入一个 INCLUDEPICTURE 域并把图形数据存入文档。 2 在插入点插入一个 INCLUDEPICTURE 域并通过添加 \d 开关防止图形数据存入文档。
.New	插入一个 1 英寸见方，四周带有边界的空的图元文件图形。
_____________

请参阅

对象链接和嵌入

InsertDrawing

InsertFile

InsertObject


InsertSound

InsertSound

启动“声音记录器”以让用户可以记录和插入一个声音。当用户退出“声音记录器”时，这个声音嵌入到活动文档。如果计算机上没有安装声音设备，则出错。

_____________

请参阅

对象链接和嵌入

InsertChart

InsertDrawing

InsertExcelTable

InsertObject


InsertWordArt

InsertWordArt

如果安装了 Microsoft WordArt ，则启动 WordArt。当用户退出 WordArt 时，WordArt 对象就嵌入到活动文档中。指令 InsertWordArt 与指令 InsertObject .Class = "WordArt" 作用相同。

_____________

请参阅

对象链接和嵌入

ActivateObject

EditObject

InsertChart

InsertDrawing

InsertEquation

InsertExcelTable


CreateSubdocument

CreateSubdocument

把选定的大纲标题转换到子文档中。如果活动文档不在主控文档中或不在大纲视图模式下，或者选定内容跨越一个子文档边界，那么出错。如果选定的第一段不是一个标题，也将出错。

_____________

请参阅

大纲和主控文档

InsertSubdocument

MergeSubdocument

OpenSubdocument

RemoveSubdocument

SplitSubdocument

ViewMasterDocument


DemoteToBodyText

DemoteToBodyText

通过使用“正文”样式把选定标题降级为正文。如果选定段落已经经过“正文”样式编排则 DemoteToBodyText 无效。

_____________

请参阅

大纲和主控文档

OutlineDemote

OutlineMoveDown

OutlinePromote


InsertSubdocument 示例

本示例把文档 SUB1.DOC 作为一个只读或锁定子文档添加到活动文档的开头。

StartOfDocument

ViewMasterDocument

InsertSubdocument .Name = "C:\MYDOCS\SUB1.DOC", .ReadOnly = 1


InsertSubdocument

示例

InsertSubdocument .Name = text [, .ConfirmConversions = number] [, .ReadOnly = number] [, .PasswordDoc = text] [, .PasswordDot = text] [, .Revert = number] [, .WritePasswordDoc = text] [, .WritePasswordDot = text]

把指定文件作为一个子文档添加到活动主控文档中。如果活动文档不在大纲或主控文档视图模式下，则出错。有关参数描述，请参阅 FileOpen。

_____________

请参阅

大纲和主控文档

CreateSubdocument

FileOpen

MergeSubdocument

OpenSubdocument

RemoveSubdocument

SplitSubdocument

ViewMasterDocument


MergeSubdocument

MergeSubdocument

把一个主控文档的各选定子文档合并为一个子文档。如果只选定了一个子文档，或者活动文档不在主控文档或大纲视图模式下，则出错。

_____________

请参阅

大纲和主控文档

CreateSubdocument

InsertSubdocument

OpenSubdocument

RemoveSubdocument

SplitSubdocument

ViewMasterDocument


OpenSubdocument

OpenSubdocument

打开由插入点位置标识的子文档，或者主控文档选定内容的开头部分。Word 在一个独立的文档窗口中打开该文档。如果活动文档不是主控文档，或者主控文档不在主控文档或大纲视图模式下，则出错。

_____________

请参阅

大纲和主控文档

CreateSubdocument

FileOpen

InsertSubdocument

MergeSubdocument

RemoveSubdocument

SplitSubdocument

ViewMasterDocument


OutlineCollapse 示例

本示例把文档中每一个标题折叠一个级别。

ViewOutline

EditSelectAll

OutlineCollapse


OutlineCollapse

示例

OutlineCollapse

在选定标题下折叠一个级别标题或正文。如果活动文档不在大纲或主控文档视图模式下，则出错。

_____________

请参阅

大纲和主控文档

OutlineExpand

ShowAllHeadings


OutlineDemote 示例

本示例对文档中“标题 2”后的每一段进行降级。

StartOfDocument : ViewOutline

EditFindClearFormatting

EditFindStyle .Style = "Heading 2"

EditFind .Find = "", .Direction = 0, .Format = 1, .Wrap = 0

While EditFindFound()

ParaDown

OutlineDemote

EditFind .Direction = 0

Wend


OutlineDemote

示例

OutlineDemote

把下一个标题级别样式用于选定标题（“标题 1”到“标题 8”）或正文。

_____________

请参阅

大纲和主控文档

OutlineMoveDown

OutlinePromote


OutlineExpand 示例

本示例展开文档的每一个标题。

ViewOutline

EditSelectAll

OutlineExpand


OutlineExpand

示例

OutlineExpand

在选定标题下展开一个级别标题或正文。如果活动文档不在大纲或主控文档视图模式下，则出错。

_____________

请参阅

大纲和主控文档

OutlineCollapse

ShowAllHeadings


OutlineLevel() 示例

本示例删除文档中没有用内部标题级别样式编排的全部段落。

StartOfDocument

ViewNormal

While ParaDown()

ParaUp	'Go to each paragraph in turn.

If OutlineLevel() = 0 Then	'If it's not a heading,

ParaDown 1, 1	'select it, then

EditClear	'delete it.

Else	'If it is a heading,

ParaDown	'go to the next paragraph

End If

Wend	'and begin the process again.


OutlineLevel()

示例

OutlineLevel()

返回一个代表选定段落标题级别的数值。如果选定段落的样式不是一个内部标题级别样式，则返回 0。如果选定的是多个段落，则 OutlineLevel() 返回选定内容中第一段的标题样式。

_____________

请参阅

大纲和主控文档

FormatStyle

StyleName$()


OutlineMoveDown

OutlineMoveDown

把选定段落移到下一个可见段落的下方。正文只有在被选定或折叠时，才随标题移动。

_____________

请参阅

大纲和主控文档

OutlineDemote

OutlineMoveUp


OutlineMoveUp

OutlineMoveUp

把选定段落移到下一个可见段落的上方。正文只有在被选定或折叠时，才随标题移动。

_____________

请参阅

大纲和主控文档

OutlineMoveDown

OutlinePromote


OutlinePromote 示例

如果当前段落的每个字符，包括段落标记，都是黑体，那么本示例将升级该段落的标题样式级别。

ViewOutline

EditGoTo "\Para"

If Bold() = 1 Then OutlinePromote


OutlinePromote

示例

OutlinePromote

把前一个标题级别样式用于选定的标题（“标题 2”到“标题 8”）或正文。

_____________

请参阅

大纲和主控文档

OutlineDemote

OutlineMoveUp


OutlineShowFirstLine, OutlineShowFirstLine()

OutlineShowFirstLine [On]

OutlineShowFirstLine()

OutlineShowFirstLine 语句控制大纲视图中正文的显示。您可以使用这条语句来隐藏正文的其他部分，而只显示第一行以更容易对文档进行查找。如果活动文档不在大纲或主控文档视图模式下，则出错。

参数	解释
On	指定是否显示正文的第一行。 0          显示全部正文。 1 或省略 只显示正文第一行。
OutlineShowFirstLine() 函数返回下列值：

值	解释
0	显示正文的全部行。
-1	显示正文的第一行。
_____________

请参阅

大纲和主控文档

OutlineCollapse

OutlineShowFormat


OutlineShowFormat

OutlineShowFormat

在大纲视图模式下显示字符格式；如果已经显示为字符格式，则隐藏起来。如果活动文档不在大纲或主控文档视图模式下，则出错。

_____________

请参阅

大纲和主控文档

OutlineShowFirstLine

ViewDraft


RemoveSubdocument

RemoveSubdocument

把选定子文档的内容合并到主控文档并取消子文档。RemoveSubdocument 不删除子文档。如果活动文档不在主控文档或大纲视图模式下，或者插入点不在子文档中，则出错。

_____________

请参阅

大纲和主控文档

CreateSubdocument

InsertSubdocument

MergeSubdocument

OpenSubdocument

SplitSubdocument

ViewMasterDocument


ShowAllHeadings 示例

本示例切换到大纲视图模式下，并显示全部文本。

ViewOutline

ShowHeading9

ShowAllHeadings


ShowAllHeadings

示例

ShowAllHeadings

在大纲视图模式下，用于在显示全部文本（标题和正文）和只显示标题两种状态间切换。要确保显示全部文本，请在运行 ShowAllHeading 指令之前加入一个 ShowHeading9 指令，以显示不带正文的全部标题。

ShowAllHeadings 只在大纲视图和主控文档视图模式下有效，如果在其他视图下运行该语句则出错。

_____________

请参阅

大纲和主控文档

OutlineCollapse

OutlineExpand

OutlineShowFirstLine

ShowHeadingNumber


ShowHeadingNumber 示例

本示例利用大纲视图对文档的各节重新排序。假定一个字母引用的标题格式编排为“标题 1”段落，且已经打乱了顺序，那么这个宏可以很快对各节按字母顺序排列。折叠的标题和正文将与“标题 1”段落一起移动。

ViewOutline

ShowHeading1

EditSelectAll

TableSort .Order = 0


ShowHeadingNumber

示例

ShowHeadingNumber

在大纲视图模式下，把全部标题显示至指定标题级别并隐藏下面各级别标题和正文。Number 是 1 到 9 之间的一个整数；您不能用一个变量代替 Number。

ShowHeadingNumber 只在大纲视图和主控文档视图模式下可用，如果在其他视图下运行该语句则出错。

_____________

请参阅

大纲和主控文档

OutlineCollapse

OutlineExpand

OutlineShowFirstLine

ShowAllHeadings


SplitSubdocument

SplitSubdocument

把一个已存在的子文档拆分为在主控文档，或大纲视图中同一级别上的两个子文档。拆分在插入点处（或在选定内容的开头，如果有的话）进行。如果活动文档不在主控文档或大纲视图模式下，或者插入点不在一个子文档中段落的开头处，则出错。

_____________

请参阅

大纲和主控文档

CreateSubdocument

InsertSubdocument

MergeSubdocument

OpenSubdocument

RemoveSubdocument

ViewMasterDocument


ViewOutline, ViewOutline()

ViewOutline

ViewOutline()

ViewOutline 语句把活动文档切换到大纲视图模式下。ViewOutline() 函数返回下列值：

值	解释
0	如果活动文档不在大纲视图下
-1	如果活动文档在大纲视图下
_____________

请参阅

大纲和主控文档

FilePrintPreview

ViewDraft

ViewMasterDocument

ViewNormal

ViewPage


CenterPara, CenterPara()

CenterPara

CenterPara()

居中对齐选定段落。

CenterPara() 函数返回下列数值：

值	解释
0	选中文本中无居中格式
-1	选中文本中的一部分是居中格式，或者有不只一种对齐方式
1	选中内容的全部都是居中方式
_____________

请参阅

段落格式

FormatParagraph

JustifyPara

LeftPara

RightPara


CloseUpPara 示例

本宏切换“段前”格式编排：使得在选中段落之前有一行或者没有行。

Sub MAIN

Dim dlg As FormatParagraph

GetCurValues dlg

If Val(dlg.Before) <> 0 Then

CloseUpPara

Else

OpenUpPara

End If

End Sub


CloseUpPara

示例

CloseUpPara

删除在选中段落前增加空格的段落格式编排。CloseUpPara 语句对应于将“格式”菜单“段落”对话框中的“缩进和间距”选项卡的“段前”选项设置为 0。

_____________

请参阅

段落格式

FormatParagraph

OpenUpPara


FormatDropCap 示例

本示例将每一节的第一个字符置为首字下沉格式。语句 .EditGoTo .Destination = "s" 将插入点移到下一节的起始位置。如果函数 CmpBookmarks("tmp", "\Sel") 返回数值 0，指出插入点没有移动而且再没有多余的节存在，那么临时书签将删除，本次宏操作结束。

StartOfDocument

FormatDropCap .Position = 1, .DropHeight = "3"

EditBookmark .Name = "temp", .Add

EditGoTo .Destination = "s"

While CmpBookmarks("temp", "\Sel") <> 0

FormatDropCap .Position = 1, .DropHeight = "3"

CharLeft

EditBookmark .Name = "temp", .Add

EditGoTo .Destination = "s"

Wend

EditBookmark .Name = "temp", .Delete


FormatDropCap

示例

FormatDropCap [.Position = number] [, .Font = text] [, .DropHeight = number or text] [, .DistFromText = number or text]

为当前段落的第一个字符插入一个图文框，使它变成首字下沉格式。FormatDropCap 语句的参数对应于“格式”菜单“首字下沉”对话框中的选项。

参数	解释
.Position	指定首字下沉的位置，或者删除首字下沉格式： 0 或省略 没有首字母下沉格式编排 1 下沉（在本段落中的行在下沉首字符周围回绕） 2 以页边距方式（本段落中仍保持平齐的行）
.Font	想用的下沉首字母的字体
.DropHeight	在周围文本行中所指定的下沉字母的高度
.DistFromText	下沉首字符与段落中其余部分的距离，以磅为单位，或者以一种文本度量为单位。
_____________

请参阅

段落格式

FormatFrame

InsertFrame


FormatParagraph 示例

本示例设置两端对齐格式，并且将选中内容中的每一个段落的上下增加一英寸的间距。

FormatParagraph .Alignment = 3, .Before = "1 in", .After = "1 in"


FormatParagraph

示例

FormatParagraph [.LeftIndent = number or text] [, .RightIndent = number or text] [, .Before = number or text] [, .After = number or text] [, .LineSpacingRule = number] [, .LineSpacing = number or text] [, .Alignment = number] [, .WidowControl = number] [, .KeepWithNext = number] [, .KeepTogether = number] [, .PageBreak = number] [, .NoLineNum = number] [, .DontHyphen = number] [, .Tab = number] [, .FirstIndent = number or text]

对选中段落使用段落格式编排。FormatParagraph 语句的参数对应于“格式”菜单“段落”对话框中的选项。

参数	解释
.LeftIndent	左缩进，以磅为单位或以一种文本度量为单位。
.RightIndent	右缩进，以磅为单位或以一种文本度量为单位。
.Before	段落前间距的宽度，以磅为单位或以一种文本度量为单位。
.After	段落之后间距的宽度，以磅为单位或以一种文本度量为单位。
.LineSpacingRule	用于决定行间距的尺度： 0 或省略 单行行距 1 1.5 倍行距 2 2 倍行距 3 最小值 4 固定值 5 多倍行距 如果您指定单行行距、1.5倍行距、2倍行距，而且为参数 .LineSpacing 指定一个值，那么 .LineSpacing 优先。
.LineSpacing	用于本段落中所有行的间距（当 .LineSpacingRule 参数被设置为最少、固定、多倍行距时）。
.Alignment	设置段落对齐方式： 0 左对齐 1 居中对齐 2 右对齐 3 两端对齐
.WidowControl	如果是 1，那么用来防止分页符将段落的单行放在页首或页尾（对应于选中“孤行控制”复选框）。
.KeepWithNext	如果是 1，那么本段落将与下边的段落放在同一页中（对应于选中“与下段同页”复选框）。
.KeepTogether	如果是 1，那么段落中的所有行将安排在同一页中（对应于选中“段中不分页”复选框）。
.PageBreak	如果是 1，那么段落开头总是放在一个新页的页首（对应于选中“段前分页”复选框）。
.NoLineNum	如果是 1，那么将段落编号关闭。（对应于选中“取消行号”复选框）。
.DontHyphen	如果是 1，那么段落不进行自动断字功能。（对应于选中“取消断字”复选框）。
.Tab	当您用 Dialog 或 Dialog() 函数显示“段落”对话框时用来选择选项卡： 0 “缩进和间距”选项卡 1 “正文排列”选项卡
.FirstIndent	首行缩进，以磅为单位，或者以一种文本度量为单位。
_____________

请参阅

段落格式

EditFindPara

EditReplacePara

FormatBordersAndShading

FormatDefineStylePara

FormatStyle

FormatTabs

ParaKeepLinesTogether

ParaKeepWithNext

ParaPageBreakBefore

ParaWidowOrphanControl

Style


FormatTabs 示例

本示例在 1.5 英寸处设置一个右对齐制表位：

FormatTabs .Position = "1.5 in", .Align = 2, .Set

下一示例清除所有用户定义的制表位：

FormatTabs .ClearAll


FormatTabs

示例

FormatTabs [.Position = text] [, .DefTabs = number or text] [, .Align = number] [, .Leader = number] [, .Set] [, .Clear] [, .ClearAll]

设置或清除选中段落中的制表位。FormatTabs 语句的参数对应于“格式”菜单“制表位”对话框中的选项。

参数	解释
.Position	制表位的位置，以一种文本度量为单位。
.DefTabs	当前文档中默认的制表位的位置，以磅为单位或者以一种文本度量为单位。
.Align	制表位对齐方式： 0 左 1 居中 2 右 3 小数点 4 竖线
.Leader	制表位前导字符： 0 无 1 虚线 2 短线 3 下划线
.Set	设置特定的自定义的制表位。
.Clear	清除特定的自定义的制表位。
.ClearAll	清除所有的自定义的制表位。
_____________

请参阅

段落格式

FormatDefineStyleTabs

NextTab()

PrevTab()

TabLeader$()

TabType()


HangingIndent

HangingIndent

在选中段落中使用悬挂缩进格式，或者将选中内容第一个段落的当前悬挂缩进增加到下一个制表位。

_____________

请参阅

段落格式

Indent

UnHang

UnIndent


Indent

Indent

将选中段落中的左缩进位置调整到选中内容中第一个段落的下一个制表位处。Indent 语句保存第一行或悬挂式缩进格式的设置。

_____________

请参阅

段落格式

FormatParagraph

HangingIndent

UnIndent


InsertPara

InsertPara

在插入点插入一个段落标记。

_____________

请参阅

段落格式

Chr$()

Insert


JustifyPara, JustifyPara()

JustifyPara

JustifyPara()

JustifyPara 语句调整选中段落为两端对齐格式。JustifyPara() 函数返回下列数值：

值	解释
0	选中内容中没有两端对齐格式
-1	选中内容中的一部分是两端对齐格式，或者有不只此一种对齐格式
1	所有选中内容都是两端对齐格式
_____________

请参阅

段落格式

CenterPara

FormatParagraph

LeftPara

RightPara


LeftPara, LeftPara()

LeftPara

LeftPara()

LeftPara 将选中段落与左缩进对齐。

LeftPara() 函数返回下列数值：

值	解释
0	选中内容中没有左对齐格式
-1	选中内容中的一部分左对齐格式
1	选中内容的全部都是左对齐格式
_____________

请参阅

段落格式

CenterPara

FormatParagraph

JustifyPara

RightPara


NextTab() 示例

本示例将 NextTab() 函数与 TabType() 联合使用，返回一个数值对应于选中内容的第一个制表位的对齐方式。

firstTabType = TabType(NextTab(0))


NextTab()

示例

NextTab(Position)

返回选中内容的第一个段落中， .Position 参数指出位置右边的下一个制表位的位置，参数以磅为单位给出。

下表为由磅到其他度量的转换到表。

1 inch  =  72 points

1 centimeter  =  28.35 points

1 pica  =  12 points

_____________

请参阅

段落格式

FormatTabs

PrevTab()

TabLeader$()

TabType()


OpenUpPara 示例

如果当前段落的前边没有间距，那么本示例将“段前”选项设置为“12磅”。

Dim dlg As FormatParagraph

GetCurValues dlg

If dlg.Before = "0 pt" Then OpenUpPara


OpenUpPara

示例

OpenUpPara

将“格式”菜单“段落”对话框“缩进和间距”选项卡中的“段前”选项设置为“12 磅”。

_____________

请参阅

段落格式

CloseUpPara

FormatParagraph


ParaKeepLinesTogether, ParaKeepLinesTogether()

ParaKeepLinesTogether [On]

ParaKeepLinesTogether()

ParaKeepLinesTogether 语句添加或删除选中段落中的“段中不分页”段落格式。当 Word 为本文档重新分页时，一个段落中所有具有“段中不分页”格式的行将保持在同一页中。

参数	解释
On	指定是添加还是删除“段中不分页”格式： 1 添加“段中不分页”格式 0 删除“段中不分页”格式 省略 切换“段中不分页”格式
ParaKeepLinesTogether() 函数返回下列数值：

值	解释
0	选中段落中没有“段中不分页”格式
-1	选中段落中的一部分具有“段中不分页”格式
1	选中内容的全部都具有“段中不分页”格式
_____________

请参阅

段落格式

FormatParagraph

ParaKeepWithNext

ParaPageBreakBefore


ParaKeepWithNext, ParaKeepWithNext()

ParaKeepWithNext [On]

ParaKeepWithNext()

ParaKeepWithNext 语句添加或删除选中段落的“与下段同页”段落格式 。具有“与下段同页”格式 的段落在 Word 重新分页时，仍然与后继段落在同一页上。

参数	解释
On	指定是添加还是删除“与下段同页”格式： 1 添加“与下段同页”格式。 0 删除“与下段同页”格式。 省略 切换“与下段同页”格式。
ParaKeepWithNext() 函数返回下列数值：

值	解释
0	选中段落中没有“与下段同页”格式
-1	选中段落中的一部分是“与下段同页”格式
1	选中内容的全部都是“与下段同页”格式
_____________

请参阅

段落格式

FormatParagraph

ParaKeepLinesTogether

ParaPageBreakBefore


ParaPageBreakBefore, ParaPageBreakBefore()

ParaPageBreakBefore [On]

ParaPageBreakBefore()

ParaPageBreakBefore 语句添加或删除选中段落的“段前分页”格式。无论何时打印文档时，具有“段前分页”格式的段落总是放在一个新页的页首。

参数	解释
On	指定是添加还是删除“段前分页”格式： 1 添加“段前分页”格式。 0 删除“段前分页”格式。 省略 切换“段前分页”格式。
ParaPageBreakBefore() 函数返回下列数值：

值	解释
0	选中段落中没有“段前分页”格式
-1	选中段落中的一部分是“段前分页”格式
1	选中段落中全部都是“段前分页”格式
_____________

请参阅

段落格式

FormatParagraph

ParaKeepLinesTogether

ParaKeepWithNext


ParaWidowOrphanControl, ParaWidowOrphanControl()

ParaWidowOrphanControl [On]

ParaWidowOrphanControl()

ParaWidowOrphanControl 语句添加或删除选中段落的“孤行控制”段落格式。具有“孤行控制”格式的段落可以防止分页符将段落的一个单行放在页首或页尾。

参数	解释
On	指定是添加还是删除“孤行控制”格式： 1 添加“孤行控制”格式。 0 删除“孤行控制”格式。 省略 切换“孤行控制”格式。
ParaWidowOrphanControl() 函数返回下列数值：

值	解释
0	选中段落中没有“孤行控制”格式
-1	选中段落中的一部分是“孤行控制”格式
1	选中段落中的全部都是“孤行控制”格式
_____________

请参阅

段落格式

FormatParagraph

ParaKeepLinesTogether

ParaKeepWithNext

ParaPageBreakBefore


PrevTab() 示例

本示例显示一个消息框指明当前段落中最后一个制表位的位置，以英寸为单位。在第一条语句中， PrevTab(8.5 * 72) 返回最后的制表符的位置，以磅为单位，给出的参数是每页 8.5 英寸宽，每英寸 72 磅。返回的数值除以 72 给出以英寸为单位的位置。下三条语句准备将显示在消息框中的数值，该数值的小数点后最多有两位数字。

LastPos = PrevTab(8.5 * 72) / 72

LastPos$ = Str$(LastPos)

dot = InStr(LastPos$, ".")

LastPos$ = Left$(LastPos$, dot + 2)

MsgBox "Position of last tab stop: " + LastPos$ + " inches"


PrevTab()

示例

PrevTab(Position)

返回选中内容第一段中的由参数 Position 指定的位置的左边的下一个制表位的位置，参数以磅为单位给出。

下表为由磅到其他度量的转换到表：

1 inch  =  72 points

1 centimeter  =  28.35 points

1 pica  =  12 points

_____________

请参阅

段落格式

FormatTabs

NextTab()

TabLeader$()

TabType()


ResetPara 示例

如果当前段落为“正文”样式，那么本示例删除非本样式的其他的段落格式编排。

If StyleName$() = "Normal" Then ResetPara


ResetPara, ResetPara()

示例

ResetPara

ResetPara()

ResetPara 语句将选中文本中末定义在当前段落样式中的段落格式编排删除。例如，如果您用 0.5 英寸缩进格式化一个段落，而该段落所使用的样式没有左缩进，那么 ResetPara 将删除该缩进格式。

ResetPara() 函数返回下列数值，而不删除段落格式编排。

值	解释
0	选中内容的第一段中包含有不同于该段使用的段落样式所定义的段落格式编排
-1	选中内容的第一段中不包含有不同于该段落使用的段落样式所定义的段落格式编排
_____________

请参阅

段落格式

FormatParagraph

NormalStyle

ResetChar


RightPara 示例

本示例将每个右对齐段落格式增加一个 2 英寸的左缩进。

StartOfDocument

While ParaDown()	'Check each paragraph one by one,

ParaUp	'including the first paragraph

If RightPara() = 1 Then	'If right-aligned, then indent left

FormatParagraph .LeftIndent = "2 in"

End If

ParaDown

Wend


RightPara, RightPara()

示例

RightPara

RightPara()

RightPara 语句将选中段落按照右缩进格式对齐。

RightPara() 函数返回下列数值：

值	解释
0	选中内容中没有右对齐格式
-1	选中内容的一部分是右对齐格式
1	选中内容的全部都是右对齐格式
_____________

请参阅

段落格式

CenterPara

FormatParagraph

JustifyPara

LeftPara


SpacePara1, SpacePara1()

SpacePara1

SpacePara1()

SpacePara1 语句将选中段落改为单行间距。准确的行间距值取决于本段落中最大的字体的字体的大小。

SpacePara1() 函数返回下列数值：

值	解释
0	选中内容中没有单行间距格式
-1	选中内容中一部分是单行间距格式
1	选中内容全部是单行间距格式
_____________

请参阅

段落格式

CloseUpPara

FormatParagraph

OpenUpPara

SpacePara15

SpacePara2


SpacePara15, SpacePara15()

SpacePara15

SpacePara15()

SpacePara15 语句将选中段落的行间距改为 1.5 倍行距。准确的间距取决于段落中最大字符的字体大小加 6 磅。

SpacePara15() 函数返回下列数值：

值	解释
0	选中内容中没有 1.5 倍行距格式
-1	选中内容的一部分是 1.5 倍行距格式
1	选中内容的全部都是 1.5 倍行距格式
_____________

请参阅

段落格式

CloseUpPara

FormatParagraph

OpenUpPara

SpacePara1

SpacePara2


SpacePara2, SpacePara2()

SpacePara2

SpacePara2()

SpacePara2 语句将选中内容改为 2 倍行距格式。准确的行距值取决于本段落中最大的字符的磅值加 12 磅。

SpacePara2() 函数返回下列数值：

值	解释
0	选中内容中没有 2 倍行距格式
-1	选中内容的一部分是 2 倍行距格式
1	选中内容的全部都是 2 倍行距格式
_____________

请参阅

段落格式

CloseUpPara

FormatParagraph

OpenUpPara

SpacePara1

SpacePara15


TabLeader$() 示例

本示例判断位于 3/4 英寸处的制表位是否含有一个下划线前导字符。如果含有，那么 FormatTabs 指令将前导字符改为“无”。

ViewNormal

If TabLeader$(54) = "_" Then

FormatTabs .Position = "54 pt", .Leader = 0

End If


TabLeader$()

示例

TabLeader$(Pos)

返回位置 Pos 处的用户定义制表位的前导字符，该参数以磅为单位给出（1 英寸 = 72 磅）。如果选中段落多于一个段落，那么 TabLeader$() 函数只考虑第一个段落的设置。

当  TabLeader$() 函数返回一个空串（“”）时，可能有三种情况：在位置 Pos 处没有制表位；制表位是默认的制表位；文档在大纲视图中。如果在 Pos 处有自定义制表位，那么， TabLeader$() 函数返回下列数值之一。

值	解释
(space)	无前导字符（对应于一种设置为“无”的制表前导字符）
.	虚线
-	短线
_	下划线
如果您想改变制表先导，那么请使用 FormatTabs。

_____________

请参阅

段落格式

FormatTabs

NextTab()

PrevTab()

TabType()


TabType() 示例

本示例判断位于 3/4 英寸处的制表位是否为居中格式。如果是居中格式，FormatTabs 指令将其改为左对齐格式。

If TabType(54) = 1 Then

FormatTabs .Position = "54 pt", .Align = 0

End If


TabType()

示例

TabType(Pos)

返回位置 Pos 处的用户定义的用户定义的对齐方式或默认的制表位，参数 .Pos 以磅为单位给出（72 磅 = 1 英寸）。如果有多个段落被选中，那么 TabType() 函数仅为第一段落的设置有效。

如果在位置 Pos 处没有制表位，那么 TabType() 函数返回 -1。如果在位置 Pos 处有制表位，那么 TabType() 返回下列数值之一。

值	解释
0	左对齐或默认
1	居中对齐
2	右对齐
3	右对齐
4	竖线对齐
_____________

请参阅

段落格式

FormatTabs

NextTab()

PrevTab()

TabLeader$()


UnHang

UnHang

删除选中段落中的悬挂缩进格式，或者将选中内容的第一段中的当前悬挂缩进移到上一个制表位处。

_____________

请参阅

段落格式

HangingIndent

UnIndent


UnIndent

UnIndent

将选中段落的左缩进位置移到选中内容中的第一段的上一个制表位处。Unlndent 语句保持第一行或悬挂缩进的设置。

_____________

请参阅

段落格式

Indent

UnHang


CountToolsGrammarStatistics()

CountToolsGrammarStatistics()

返回您用 ToolsGrammar 语句进行语法检查时所存贮的统计内容的数目。您可以用这个数字来定义一个二维数组的大小，用这个数组存放 ToolsGrammarStatisticsArray 语句产生的统计内容。

有关示例，请参阅ToolsGrammarStatisticsArray 示例。

_____________

请参阅

校对

ToolsGrammar

ToolsGrammarStatisticsArray

ToolsOptionsGrammar


ToolsGetSpelling 示例

本示例检查单词“kolor”的拼写，然后在一系列消息框中显示最多五个系统建议的替换单词：

Dim suggest$(4)

ToolsGetSpelling suggest$(), "kolor"

For count = 0 To 4

If suggest$(count) <> "" Then MsgBox suggest$(count)

Next


ToolsGetSpelling, ToolsGetSpelling()

示例

ToolsGetSpelling FillArray$() [, Word$] [, MainDic$] [, SuppDic$] [, Mode]

ToolsGetSpelling(FillArray$() [, Word$] [, MainDic$] [, SuppDic$] [, Mode])

ToolsGetSpelling 将拼错单词的建议的替换词写入一个数组。建立的替换词以拼写检查中出现的顺序放入数组。

参数	解释
FillArray$	数组；必须定义在 ToolsGetSpelling 语句运行之前，该语句用建议替换词填充该数组。
Word$	您想要得到建议替换词的那个单词。如果 Word$ 缺省，那么 Word 将使用离插入点最近的单词。
MainDic$	代表指定语言中的主词典语言名称的文本字符串。有关正确的外语名称列表，请参阅ToolsLanguage。如果您既没有指定单词，也没有指定主词典，那么 Word 将使用最接近插入点的单词的语言格式做为主词典的语言格式。
SuppDic$	用户定义词典的路径和文件名（例如，“C:\WINWORD\USER1.DIC”）。如果在用户定义词典中找到了 Word$ 中定义的单词，那么 ToolsGetSpelling 语句不会将任何单词放在数组之中。如果 .SuggestFromMainDictOnly (ToolsOptionsSpelling 语句中) 设置为 0，那么系统建议的替换单词不仅在主词典中搜索而且在用户词典中搜索。注意变位单词仅从主词典中搜索。
Mode	指定 Word 为 Word$ 指定的单词给出建议的方式： 0 或省略    返回 Word$ 指定的单词的系统建议的正确拼写。 1 当 Word$ 中含有问号 (?) 和星号 (*) 通配符时，返回匹配该搜索条件统建议的替换单词。 2 返回 Word$ (的变位词（与 Word$ 定的单词的字母完全相同而位置不同的词）。Word 不从用户词典中返回变位词。注意，如果您正使用不同于 Word 自带的拼写检查器，本功能可能是无效的。
ToolsGetSpelling() 函数返回拼写检查器所建议的替换单词的数目。如果拼写正确，那么返回 0。

_____________

请参阅

校对

ToolsGetSynonyms

ToolsLanguage

ToolsOptionsSpelling


ToolsGetSynonyms 示例

本示例提示用户输入一个单词。并且在一个消息框中显示最多五个这个词的同义词：

word$ = InputBox$("Display synonyms for: ", "Get Synonyms")

Dim synonyms$(4)

ToolsGetSynonyms synonyms$(), word$

list$ = synonyms$(0)

For count = 1 To 4

If synonyms$(count) <> "" Then

list$ = list$ + ", " + synonyms$(count)

End If

Next

MsgBox list$, "Synonyms for " + word$


ToolsGetSynonyms, ToolsGetSynonyms()

示例

ToolsGetSynonyms FillArray$() [, Word$] [, MainDic$]

ToolsGetSynonyms(FillArray$() [, Word$] [, MainDic$])

ToolsGetSynonyms 语句将一个单词的同义词填写到一个数组之中。

参数	解释
FillArray$	将要填写的数组。该数组必须在使用 ToolsGetSynonyms 语句填写同义词之前定义好。
Word$	您想要查同义词的单词。如果 Word$ 省略，Word 认为离插入点最近的单词为待查单词。
MainDic$	该语言名称在指定语言的主字典中使用。有关各种外语名称的正确拼写列表，请参阅ToolsLanguage。如果您既不指定单词，也不指定主词典，那么 Word 将使用对应于离插入点最近的单词的语言格式的词典。
ToolsGetSynonyms() 函数返回下列数值。

数值	解释
0	如果没有同义词存在，则返回 0
-1	如果找到一个或多个同义词，则返回 -1
_____________

请参阅

校对

ToolsGetSpelling


ToolsGrammar 示例

本示例显示一个消息框询问是否检查语法。如果用户选择了“是”按钮（返回数值 -1），Word 将开始检查语法。

ans = MsgBox("Check grammar now?", 3)

If ans = -1 Then ToolsGrammar


ToolsGrammar

示例

ToolsGrammar

显示“语法”对话框（“工具”菜单），并开始检查活动文档的语法。

_____________

请参阅

校对

ToolsSpelling


ToolsGrammarStatisticsArray 示例

本示例定义了一个二维数组用来存贮语法的统计信息，并用当前活动文档的语法统计信息填充该数组，然后在插入点插入统计信息的两栏列表（该表的左栏是统计、平均和索引的名称，右栏是与左栏对应相关的统计信息，两栏之间用制表符分隔）：

numstats = CountToolsGrammarStatistics()

size = numstats -1

Dim docstats$(size, 1)

ToolsGrammarStatisticsArray docstats$()

For count = 0 To size

InsertPara

Insert docstats$(count, 0) + Chr$(9) + docstats$(count, 1)

Next


ToolsGrammarStatisticsArray

示例

ToolsGrammarStatisticsArray TwoDimensionalArray$()

执行一次语法检查。有关活动文档的可用的语法统计信息填入一个二维数组之中。

参数	解释
TwoDimensionalArray$()	二维数组，必须在 ToolsGrammarStatisticsArray 语句运行之前定义，该数组中的第一维是统计、平均和索引的名称，第二维是与第一维相关联的统计信息。
_____________

请参阅

校对

CountToolsGrammarStatistics()


ToolsOptionsGrammar 示例

本示例指定拼写与语法同时检查，然后开始语法检查。

ToolsOptionsGrammar .CheckSpelling = 1, .ShowStatistics = 1

ToolsGrammar


ToolsOptionsGrammar

示例

ToolsOptionsGrammar [.Options = number] [.CheckSpelling = number] [, .ShowStatistics = number]

设置语法检查选项， ToolsOptionsGrammar 语句的参数对应于“选项”对话框（“工具”菜单）的“语法”选项卡中的选项。

参数	解释
.Options	用来指定使用哪套语法规则： 0 所有的规则 1 商业书信规则 2 非正式书信规则 3 第一种用户设置的规则 4 第二种用户设置的规则 5 第三种用户设置的规则
.CheckSpelling	如果是 1，那么在语法检查的同时，检查拼写。
.ShowStatistics	如果是 1，那么在语法检查完毕之后，显示可读性统计。
有关以上描述的选项的详细信息，请选择“选项”对话框中的“语法”选项卡，然后选择“帮助”按钮。

_____________

请参阅

校对

ToolsGrammar


ToolsOptionsSpelling 示例

本示例做一次拼写检查，在检查中，全部用大写字母拼写的单词以及包含有编号的单词不在检查范围之内。用户自定义的词典 MYTERMS.DIC 与主词典共同使用。

ToolsOptionsSpelling .IgnoreAllCaps = 1, .IgnoreMixedDigits = 1,\

.Type = 0, .CustomDict1 = "C:\WINWORD\MYTERMS.DIC"

ToolsSpelling


ToolsOptionsSpelling

示例

ToolsOptionsSpelling [.AlwaysSuggest = number] [, .SuggestFromMainDictOnly = number] [, .IgnoreAllCaps = number] [, .IgnoreMixedDigits = number] [, .ResetIgnoreAll] [, .Type = number] [, .CustomDictn = text]

设置在文档中进行拼写检查的选项。ToolsOptionsSpelling 语句的参数对应于“选项”对话框（“工具”菜单）的“拼写”选项卡中的选项。

参数	解释
.AlwaysSuggest	如果是 1，那么对于每一个拼写错误的单词都给出一个替换拼写的建议。
.SuggestFromMainDictOnly	如果是 1，那么仅从主词典中给出拼写建议。
.IgnoreAllCaps	如果是 1，那么忽略那些全部用大写字母写的单词。
.IgnoreMixedDigits	如果是 1，那么忽略那些带有编号的单词。
.ResetIgnoreAll	重新设置“全部忽略”列表，这样 Word 不会忽略那些您在本次 Word 操作过程中进行拼写检查时，选作“全部忽略”的单词。
.Type	搜索用的字典类型： 0 标准的 2 完全的 3 医学的 4 法律的 注意，如果您指定了 2，3 或 4，而相应的词典未装入，那么将会导致错误。如果您想了解如何购买附加字典，那么请您与 Microsoft 用户服务部门联系。
.CustomDictn	将要创建或添加的用户自定义词典的路径及名称；包括每个用户自定义词典分隔参数 .CustomDictn 在内，其中编号最多有 10 个。
有关以上所描述的选项的详细信息，请选择“选项”对话框中的“拼写”选项卡，然后选择“帮助”按钮。

_____________

请参阅

校对

ToolsSpelling

ToolsSpellSelection


ToolsSpelling 示例

本示例询问是否要检查拼写，如果用户选择“是”按钮，则检查拼写：

ans = MsgBox("Check spelling now?", 3)

If ans = -1 Then

StartOfDocument

ToolsSpelling

End If


ToolsSpelling

示例

ToolsSpelling

检查当前选定范围内的拼写，如果没有选择范围，那么检查从插入点位置开始到文档结束处的拼写是否正确。

_____________

请参阅

校对

ToolsOptionsSpelling

ToolsSpellSelection


ToolsSpellSelection 示例

本示例询问是否检查当前选定内容的拼写，如果用户选择了“是”按钮，则检查拼写。

ans = MsgBox("Check spelling of selection?", 3)

If ans = -1 Then ToolsSpellSelection


ToolsSpellSelection

示例

ToolsSpellSelection

检查当前选定范围内的拼写。如果选定范围只是一个单词的一部分，或者插入点在一个单词的结尾处，那么选定范围将扩大到包含整个单词。如果插入点不在一个单词中或者不是跟在一个单词后边，那么 Word 将检查下一个单词。

_____________

请参阅

校对

ToolsOptionsSpelling

ToolsSpelling


ToolsThesaurus

ToolsThesaurus

显示“同义词库”对话框（“工具”菜单），该对话框列出了选定单词的可替换词。

_____________

请参阅

校对

ToolsGetSynonyms


FormatAutoFormat 示例

本示例使用存贮于 REPORT1.DOT 中的样式对活动文档进行自动格式化。

FormatStyleGallery .Template = "REPORT1"

FormatAutoFormat


FormatAutoFormat

示例

FormatAutoFormat

根据 ToolsOptionsAutoFormat 语句设置的选项对文档进行自动格式化。如果您想控制文档的外观，那么您可以在使用 FormatAutoFormat 之前或之后用 FormatStyleGallery 复制样式到活动文档上。

_____________

请参阅

节和文档格式

FormatStyleGallery

ToolsOptionsAutoFormat


FormatColumns 示例

本示例将当前节格式化为三个等宽栏的格式，并在栏之间显示一个竖直的线。

FormatColumns .Columns = "3", .EvenlySpaced = 1, .ColLine = 1


FormatColumns

示例

FormatColumns [.Columns = number or text] [, .ColumnNo = text] [, .ColumnWidth = text] [, .ColumnSpacing = text] [, .EvenlySpaced = number] [, .ApplyColsTo = number] [, .ColLine = number] [, .StartNewCol = number]

将文档的全部或部分格式化为指定数目的栏，或者改变已存在的栏的宽度及栏与栏的间距。FormatColumns 语句的参数对应于“分栏”对话框（“格式”菜单）中的选项。

参数	解释
.Columns	将要格式化成的栏数，格式化的对象是由参数 .ApplyColsTo 指定的文档中的部分。
.ColumnNo	如果 .EvenlySpaced 参数设置为 0，那么该参数为将要格式化的栏号。如果您正从 FormatColumns 对话记录中返回信息，那么该参数指明您想返回宽度的那个栏号。 如果您想单独设置一栏的宽度，那么您就需要包含一条附加的 FormatColumns 指令来设置最后一栏的宽度。如果您仅包含了一条 FormatColumns 语句，那么栏的最后编号将与参数 .ColumnNo 一致。例如，如果您要改变含有三栏的节的第一栏的宽度，那么该指令执行之后将只剩下一栏。要想保持三栏格式，您必须再包含一条附加的 FormatColumns 语句，而且将 .ColumnNo 参数设置为 3。
.ColumnWidth	由参数 .ColumnNo 指定的栏的宽度，或者如果 .EvenlySpaced 参数设置为 1，那么该参数指定文档中由 .ApplyColsTo 参数指定的每一栏的宽度。
.ColumnSpacing	栏间的间距。
.EvenlySpaced	如果是 1，那么每栏具有相同的宽度。
.ApplyColsTo	指定文档中哪些部分使用栏格式： 0 本节 1 插入点之后 2 选取的节 3 选取的文本 4 整个文档
.ColLine	如果是 1，那么在栏之间增加一条线。
.StartNewCol	如果是 1，那么对应于选中“开始新栏”复选框（只有在 .ApplyColsTo 指定“插入点之后”时才有效）。
_____________

请参阅

节和文档格式

TableColumnWidth


FormatHeaderFooterLink

FormatHeaderFooterLink

用前一节中对应的页眉或页脚代替当前的页眉或页脚。如果前一节中没有对应的页眉和页脚，那么将产生错误。

_____________

请参阅

节和文档格式

ShowNextHeaderFooter

ShowPrevHeaderFooter

ToggleHeaderFooterLink

ViewHeader


FormatHeadingNumbering

FormatHeadingNumbering [.Remove] [, .Preset = number]

添加或删除选定内容中的标题的编号。标题是以九种内部标题样式之一格式化的段落。

参数	解释
.Remove	删除选定内容中的标题编号。
.Preset	对应于“标题编号”对话框（“格式”菜单）中编号方案的一种编号。 要想确定正确的编号，请打开“标题编号”对话框，确定方案中的编号。从左到右，预设方案的编号依次是 1 到 6。
_____________

请参阅

节和文档格式

FormatBulletsAndNumbering


FormatPageNumber

FormatPageNumber [.ChapterNumber = number] [, .NumRestart = number] [, .NumFormat = number] [, .StartingNum = number] [, .Level = number] [, .Separator = number]

确定用于当前节的页编号格式。FormatPageNumber 语句的参数对应于“页码格式”对话框（“插入”菜单，“页码”命令）中的选项。

参数	解释
.ChapterNumber	如果是 1，那么包含页码的同时包含章节号。
.NumRestart	确定是否能够设置一种不同的开始编号： 0  选择“续前节”选项（ .StartingNum 参数的设置无效）。 1 选择“起始页码”选项（编号方式起始于 .StartingNum 设置的编号）。
.NumFormat	页码格式： 0 1 2 3... 1 a b c... 2 A B C... 3 i ii iii... 4 I II III...
.StartingNum	当前节的起始页码（如果 .NumRestart 设置为 1）。
.Level	对应于用于每一章第一段的标题层次的一个编号（包括页码和章节号）。
.Separator	如果您指定了 .ChapterNumber 参数，那么该参数指定页码与章节号间的分隔符： 0 连字符 1 句点 2 冒号 3 长划线 4 短划线
_____________

请参阅

节和文档格式

InsertPageNumbers


FormatSectionLayout

FormatSectionLayout [.SectionStart = number] [, .VertAlign = number] [, .Endnotes = number] [, .LineNum = number] [, .StartingNum = number] [, .FromText = text] [, .CountBy = text] [, .NumMode = number]

将节格式编排用于选中节。本命令的存在是为了与早期 Word版本的兼容性。FormatSectionLayout 语句的参数与 FilePageSetup 相同。

_____________

请参阅

节和文档格式

FilePageSetup


ToggleHeaderFooterLink

ToggleHeaderFooterLink

如果当前页眉或页脚没有与前一节相链接，那么用前一节中对应的页眉和页脚代替当前的页眉和页脚并且链接。如果当前页眉或页脚已经链接，那么 ToggleHeaderFooterLink 分隔该链接，使您可以独立的修改页眉或页脚。如果插入点不在页眉或页脚中，那么将会导致错误。

_____________

请参阅

节和文档格式

FormatHeaderFooterLink

ShowNextHeaderFooter

ShowPrevHeaderFooter

ViewHeader


Abs() 示例

这个示例切换隐藏文字的显示。您可以把这个示例作为 Word 中复选框的切换的模式。在 Word 复选框中，选定的复选框值为 1；清除的复选框值为 0 （零）。本例从复选框的当前值中减 1 来保存此值，并用 Abs() 返回结果的绝对值。

Dim dlg As ToolsOptionsView

GetCurValues dlg

dlg.Hidden = Abs(dlg.Hidden - 1)

ToolsOptionsView dlg


Abs()

示例

Abs(n)

返回 n 的绝对值。例如， Abs(-5) 返回值 5 。

_____________

请参阅

字符串和数字

Int()

Rnd()

Sgn()


Asc() 示例

这个示例移动到下一段落的开始处，检查插入点右侧的字符。如果该字符是段落标记，表明这是一个空段落，则显示一个信息框。

ParaDown

If Asc(Selection$()) = 13 Then

ans = MsgBox("Empty paragraph. Continue?", 4)

End If


Asc()

示例

Asc(a$)

返回 a$ 的第一个字符的字符码。尽管“ Asc ”是 ASCII 的缩写，Asc() 实际上返回 ANSI 码。此函数名是为兼容目的保留的。您可以用语法 Asc(Selection$)) 返回插入点右侧字符的代码（例如，测试段落标记）。

_____________

请参阅

字符串和数字

Chr$()

Len()


Chr$() 示例

这个示例显示一个有两行内容的信息框：

MsgBox "This is the first line" + Chr$(13) + "This is the second line"

下面的示例创建一个表格，包含从 ANSI 127 到 ANSI 255 的符号（通常称为扩展字符集）。第一条指令要求用户命名他或她想看其符号的字体。

fontchoice$ = InputBox$("Please enter the Font Name ", \

"Symbol Table", "Symbol")

For i = 127 To 255

Font "Times New Roman"

Insert Str$(i) + Chr$(9)

Font fontchoice$

Insert Chr$(i)

InsertPara

Next


Chr$()

示例

Chr$(CharCode)

返回 ANSI 字符代码为 CharCode 的字符。

从 0 （零）到 31 （包括 0 和 31 ）的字符代码，与标准 ASCII 码的显示非打印字符相匹配。例如，Chr$(13) 是回车字符，而 Chr$(9) 是制表字符。您可以用 Chr$(13) 在 MsgBox 的信息字符串中创建新行（但在 InputBox$() 中则不行）。

下表列举了一些您可以用 Chr$() 产生的特殊字符。

值	返回字符
Chr$(9)	制表符
Chr$(11)	换行符 (SHIFT+ENTER)
Chr$(13)	回车符
Chr$(30)	不可分连字符
Chr$(31)	可选连字符
Chr$(32)	空格符
Chr$(34)	引号
Chr$(160)	不可分空格
指定字符码符号的外观随所用的字体不同而不同。从 127 到 255 （包括 127 和 255 ）的字符码，根据所用字体的不同，返回不同的符号。

由于引号在 WordBasic 中被用于标明字符串的开始，所以如果您想在字符串中包括引号，必须使用 Chr$(34) 。例如，若要创建一个信息为“键入 "Yes" 或 "No" ”的信息框，您就得使用下列语句：

MsgBox "Type " + Chr$(34) + "Yes" + Chr$(34) + " or " + \

Chr$(34) + "No" + Chr$(34)

_____________

请参阅

字符串和数字

Asc()

Str$()


CleanString$() 示例

这个示例用 CleanString$() 来删除选定文本中的显示非打印字符。

temp$ = Selection$()

clean$ = CleanString$(temp$)


CleanString$()

示例

CleanString$(Source$)

把 Source$() 中的显示非打印字符和特殊 Word 字符改为空格（ ANSI 字符码 32 ）。除非特别指明，下列字符会被改为空格。

ANSI 码	说明
1-29	非打印字符。字符 13 （段落标记）不删除。字符 10 被转换为字符 10 ，除非它在字符 13 之后，此时字符 10 被删除。字符 7 被删除，除非它在字符 13 之后，此时字符 7 转换为字符 9 （制表字符）。
31	非打印字符。字符 31 被删除，而不是转换为空格。
160	不可分空格
172	可选连字符
176	不可分空格
182	段落标记字符
183	项目符号字符
如果选定内容中包括域且域代码被显示，则 CleanString$() 把域字符改为空格。

_____________

请参阅

字符串和数字

LTrim$()

RTrim$()


InStr() 示例

这个示例把变量 pos 的值设置为 7 ：

list$ = "Bonn, Paris, Tokyo"

city$ = "Paris"

pos = InStr(list$, city$)

下面的示例把 pos 设置为 15 。请注意，如果 Index 不指定，则 pos 的值为 2 。

pos = InStr(3, "Bonn, Paris, Tokyo", "o")

下面的示例指定带文件扩展名的文件名给 name$，定义 prefix$ 为不带扩展名的文件名。

name$ = "SUMMARY.DOC"

dot = InStr(name$, ".")

If dot > 1 Then prefix$ = Left$(name$, dot - 1)


InStr()

示例

InStr([Index,] Source$, Search$)

返回 Source$ 中 Search$ 开始的字符位置，其中 1 对应第一个字符， 2 对应第二个字符，依此类推。如果 Source$ 中不包含 Seacrch$ ，则 InStr() 返回 0 （零）。

参数	解释
Index	在 Source$ 中开始搜索的字符位置。
Source$	被搜索的文本。
Search$	要搜索的文本。
_____________

请参阅

字符串和数字

Left$()

Len()

LTrim$()

Mid$()

Right$()

RTrim$()


Int() 示例

这个示例把变量 x 的值设置为 98 ：

x = Int(98.6)

下面的示例把 x 设置为 -9 。

x = Int(-9.6)


Int()

示例

Int(n)

返回十进制数 n 的整数部分。如果 n 大于或等于 32,768 或者小于 -32,769 ，则会发生错误。

_____________

请参阅

字符串和数字

Abs()

Rnd()

Sgn()


LCase$() 示例

这个示例以小写字母显示当前目录：

CurDir$ = Files$(".")

MsgBox LCase$(CurDir$)


LCase$()

示例

LCase$(Source$)

返回一个字符串，其中把 Source$() 中的所有字母都转换成小写字母。

_____________

请参阅

字符串和数字

ChangeCase

UCase$()


Left$() 示例

这个示例在状态栏中显示文字“ Legel ”：

a$ = "Legal File List"

Print Left$(a$, 5)

下面的示例用 Left$() 返回断字词的第一部分。InStr() 用于决定连字符 (-) 的位置。Left$() 则用于返回连字符左侧的所有字符。

wholeWord$ = "fade-out"

hyphen = InStr(wholeWord$, "-")

firstWord$ = Left$(wholeWord$, (hyphen - 1))

MsgBox "First part of word: " + firstWord$

可以用类似的一组指令返回 MS-DOS 文件名的文件扩展名之前的字符。不过不是决定连字符的位置，而是要用 InStr() 返回句点 (.) 字符的位置。如果您想把活动文档以不同的文件扩展名保存一份，这可能是有用的。有关示例请参阅 InStr() 示例。


Left$()

示例

Left$(Source$, Count)

返回 Source$ 中的最左的 Count 个字符。

_____________

请参阅

字符串和数字

InStr()

Len()

LTrim$()

Mid$()

Right$()

RTrim$()


Len() 示例

这个示例提示用户键入一个自动图文集项的名字，然后用 Len() 判定该名是否超过 32 个字符的极限。On Error 指令预防用户取消 InputBox$() 对话框时出现“命令失败”信息。

On Error Goto Finish

Start:

a$ = InputBox$("Type a name for the AutoText entry.")

If Len(a$) > 32 Then

MsgBox "Please type no more than 32 characters."

Goto Start

End If

Finish:


Len()

示例

Len(Source$)

返回 Source$ 中的字符数。

_____________

请参阅

字符串和数字

InStr()

Left$()

LTrim$()

Mid$()

Right$()

RTrim$()


LTrim$() 示例

这个示例把数字变量 code 转换为字符串，并删除 Str$() 自动添加的前置空格。然后，变量 lastName$ 与 code$ 合并，保存在变量 license$中。

lastName$ = "Peterson"

code = 1234

code$ = Str$(code)

code$ = LTrim$(code$)

license$ = lastName$ + code$


LTrim$()

示例

LTrim$(Source$)

返回减去前导空格（第一个字符左侧的空格）的 Source$。LTrim$() 对于删除转换为字符串的数字量的前置空格，以及清理用户输入特别有用。

_____________

请参阅

字符串和数字

InStr()

Left$()

Mid$()

Right$()

RTrim$()


Mid$() 示例

这个示例返回一个两个词的字符串的第二个词：

wholeName$ = "Sanjeev Reddy"

space = InStr(wholeName$, " ")

lastName$ = Mid$(wholeName$, space + 1)


Mid$()

示例

Mid$(Source$, Start [, Count])

返回 Source$ 中从给定字符位置开始的一部分。

参数	解释
Source$	源字符串
Start	Source$ 中您想返回的字符串开始的位置。
Count	您想返回的字符串的字符数。如果您不指定 Count，就假定为到字符串结束处的字符数。
_____________

请参阅

字符串和数字

InStr()

Left$()

Len()

LTrim$()

Right$()

RTrim$()


Right$() 示例

这个示例提示用户在 Input$Box$() 对话框输入名和姓。这些指令通过从全名长度中减去名和姓之间的空格位置，来判定空格后的字符数。这样，Right$() 就能从单个字符串中检索出姓。

fullName$ = InputBox$("Please type your first and last name.")

length = Len(fullName$)

space = InStr(fullName$, " ")

lastName$ = Right$(fullName$, length - space)

MsgBox "Last name is " + lastName$ + "."


Right$()

示例

Right$(Source$, Count)

返回 Source$ 中最右的 Count 个字符。

_____________

请参阅

字符串和数字

InStr()

Left$()

Len()

LTrim$()

Mid$()

RTrim$()


Rnd() 示例

这个示例定义变量 num 为 50 到 100 之间的随机整数，然后把该数显示在信息框中。

a = 50

b = 100

num = Int(Rnd() * (b - a) + a)

MsgBox "The random number is" + Str$(num)


Rnd()

示例

Rnd()

返回大于等于 0 （零）小于 1 的实数。若要产生一个 a 与 b 之间的随机整数，请使用下面的用法：

Int(Rnd() * (b  -  a) + a)

_____________

请参阅

字符串和数字

Abs()

Int()

Sgn()


RTrim$() 示例

这个示例提示用户输入他或她的姓，并删除用户可能在姓后键入的多余空格。

lastName$ = InputBox$("Please enter your last name.")

lastName$ = RTrim$(lastName$)


RTrim$()

示例

RTrim$(Source$)

返回去除其尾部空格（最后一个字符右侧的空格）的 Source$。在把用户定义的变量传到宏的其他部分之前进行清理时，RTrim$() 特别有用。

_____________

请参阅

字符串和数字

InStr()

Left$()

LTrim$()

Mid$()

Right$()


Selection$() 示例

这个示例选定文档中的第一个标题，然后用 Selection$() 函数将变量 heading$ 定义为选定的文本：

StartOfDocument

EditFindClearFormatting

EditFindStyle .Style = "heading 1"

EditFind .Find = "", .WholeWord = 0, .MatchCase = 0, \

.Direction = 0, .Format = 1, .Wrap = 0

If EditFindFound() <> 0 Then

heading$ = Selection$()

End If


Selection$()

示例

Selection$()

返回选定内容的普通无格式文本。Selection$() 可返回多达 65,280 个字符或变量存贮空间所能容纳的最多字符数。如果选定内容大多，则会发生错误，且不返回文本。如果没有选定文本，则 Selection$() 返回插入点的下一个字符。

_____________

请参阅

字符串和数字

ExtendSelection

SelInfo()

SelType

ShrinkSelection


Sgn() 示例

这个示例比较两个数值。如果为负，则显示一个信息框。

maySales = 1200

juneSales = 1000

difference = juneSales - maySales

If Sgn(difference) = -1 Then

MsgBox "Sales fell by" + Str$(Abs(difference)) + " dollars!"

End If


Sgn()

示例

Sgn(n)

判定 n 是正值、负指还是 0 （零）。

值	解释
0	如果 n 是 0 （零）
-1	如果 n 是负数
1	如果 n 是正数
_____________

请参阅

字符串和数字

Abs()

Int()

Rnd()


SortArray 示例

这个示例创建一个包含活动文档中所有书签名的数组，然后对这些名字排序。变量 marks$(0) 第一次定义时，表示添加到文档中的第一个书签的名字。数组排序后， marks$(0) 就表示书签名字母顺序列表中的第一个名字。

size = CountBookmarks() - 1

Dim marks$(size)

For count = 0 To size

marks$(count) = BookmarkName$(count + 1)

Next

SortArray(marks$())

下面的示例打开一个包含 100 个姓名和地址列表的文本文件。姓名和地址共有五个域：第一个域是姓名，第二个是街道地址，第三个是城镇，第四个是州或省，第五个是邮政编码。定义了数组 MailList$() 来保存要读入到数组中的姓名和地址。然后，该数组按邮政编码降序来排序（因此有最高邮政编码的行排在最前面）。最后把已排序的姓名和地址重新写回到文件中。请注意，在文档窗口中打开文件和使用 TableSort 语句可以进行同一排序操作。

Open "LIST.TXT" For Input As #1

Dim MailList$(99, 4)

For x = 0 To 99

Read #1, MailList$(x, 0), MailList$(x, 1), MailList$(x, 2), \

MailList$(x, 3), MailList$(x, 4)

Next

Close #1

SortArray MailList$(), 1, 0, 99, 0, 4

Open "NEWLIST.TXT" For Output As #1

For x = 0 To 99

Write #1, MailList$(x, 0), MailList$(x, 1), MailList$(x, 2), \

MailList$(x, 3), MailList$(x, 4)

Next

Close #1


SortArray

示例

SortArray ArrayName[$]() [, Order] [, From] [, To] [, SortType] [, SortKey]

对指定数组的元素进行字母数字排序。对填充自定义对话框列表框的数组进行排序时，SortArray 特别有用。SortArray 可对一维或二维数组进行排序；如果指定数组多于二

维，就会产生错误。

参数	解释
ArrayName[$]()	要排序的一维或二维数组。多于二维的数组不被排序。
Order	排序顺序： 0 或省略 升序 1          降序
From	要排序的第一个元素的序号。默认为 0 （零）。
To	要排序的最后一个元素的序号（必须大于 From ）。
SortType	进行排序的类型（仅用于二维数组）： 0 或省略 对数组矩阵“行”排序。 1          对数组矩阵“列”排序。
SortKey	据之排序的行或列的序号（仅用于二维数组）： 0 （零）表明是第一行或第一列， 1 表明是第二行或列，依此类推。默认值为 0 （零）。 如果 SortType 为0 （零），即行排序，SortKey 就指定决定排序的列。如果 SortType 为 1，即列排序，SortKey 则指定决定排序的行。
下面是 SortArray 指令的几个示例及其作用的说明。

指令	说明
SortArray ArrayTest()	对数组 ArrayTest() 的所有元素按升序进行排序，从元素 0 （零）开始。如果数组是二维的，则对数组矩阵进行行排序，以第一列为排序关键字。
SortArray List$(), 0, 1, 10	对数组 List$() 中编号为 1 到 10 的元素按升序排序。
SortArray MailingList$(), 1, 1, 20, 0, 1	对二维数组 MailingList$() 中编号为 1 到 20 的元素按降序排序。行排序，以第二列为排序关键字。
SortArray Table(), 0, 0, 10, 1, 3	对二维数组 Table() 中编号为 0 （零）到 10 的元素按升序排序。列排序，以第四行为排序关键字。
注释

尽管 SortArray 参数除 ArrayName[$]() 外都是可选的，但是您不能省略您所用的参数之间的参数。例如，SortArray Test(), 0, 0, 2, 0, 1 是有效的指令，但是 SortArray Test(), 0, , , , 1 是无效指令，不会对数组排序。

_____________

请参阅

字符串和数字

Dim

TableSort


Str$() 示例

这个示例用 Str$() 构造一个数字变量，使之可作为信息框字符串的一部分。请注意到在“ were ”之后不需要空格，因为 Str$() 在 a$ 开始处已加进了空格。

sales = 2400

a$ = Str$(sales)

MsgBox "Sales this week were" + a$ + " dollars."

您可以用下面的函数返回不带前导空格的代表数字变量的字符串：

Function MyString$(Num)

If Num >= 0 Then

MyString$ = LTrim$(Str$(Num))

Else

MyString$ = Str$(Num)

End If

End Function

在另一个子程序中，String1$ = MyString$(25) 是调用上述函数中的指令的一个示例。


Str$()

示例

Str$(n)

返回数值 n 的字符串表示。如果 n 是一个正数，则 Str$() 返回一个带前导空格的字符串。若要删除前导空格，请使用 LTrim$()。

_____________

请参阅

字符串和数字

Chr$()

InStr()

Left$()

LTrim$()

Mid$()

Right$()

RTrim$()

String$()

Val()


String$() 示例

这一指令在状态栏中打印文字“ dddd ”。

Print String$(5, 100)

这个示例在第一个选定段落之前插入一行 40 个 ANSI 字符码为 164(�) 的字符。

SelType 1 : ParaDown : ParaUp	'Go to start of paragraph

Insert String$(40, 164)	'Insert character string

InsertPara	'Insert a paragraph mark


String$()

示例

String$(Count, Source$)

String$(Count, CharCode)

返回 Source$ 中的第一个字符或与 ANSI 字符码 CharCode 对应的字符，重复 Count 次。 Count 最大可达 65,280。

_____________

请参阅

字符串和数字

Asc()

Chr$()

InStr()

Str$()


UCase$() 示例

这个示例显示一个 InputBox$() 对话框，提示用户键入一个缩写。当用户选择“确定”时，此文字就被存贮到变量 acronym$ 中，并转换为大写字母。

acronym$ = InputBox$("Please enter an acronym.")

acronym$ = UCase$(acronym$)


UCase$()

示例

UCase$(Source$)

返回一个字符串，其中 Source$ 的所有字母都被转换为大写字母。

_____________

请参阅

字符串和数字

ChangeCase

LCase$()


Val() 示例

在下面的两条指令中，Val() 都返回 10：

num = Val("10")

num = Val("10 Apples")

在下面的两条指令中，Val() 都返回 0 （零）：

num = Val("ten")

num = Val("Apartment 10")

下面的示例提示用户键入一个数，InputBox$() 函数把它作为字符串返回。Val() 转换该字符串为一个数，并乘以 12。Str$() 转换乘积为字符串，以便在信息框中显示。

a$ = InputBox$("How many dozen apples?")

total = Val(a$) * 12

MsgBox a$ + " dozen equals" + Str$(total)


Val()

示例

Val(a$)

返回 a$ 的数字值。Val() 的常见用法是转换包含数码字符的字符串为数字，以便在数学公式中使用。如果 a$ 不以数码字符开始，则 Val() 返回 0 （零）。

_____________

请参阅

字符串和数字

Str$()


CountStyles() 示例

本示例返回在附加于活动文档的模板中使用的所有内部样式和用户创建样式的数目。

n = CountStyles(1, 1)

下一示例将附加模板中的样式合并到活动文档中，然后，从为活动文档定义的样式的数目中减去为模板定义的样式的数目，得到专门为活动文档定义的样式数目。

FormatStyle .Source = 1, .Merge

n = CountStyles(0, 0) - CountStyles(1, 0)


CountStyles()

示例

CountStyles([Context] [, All])

返回为指定上下文定义的样式的数目。

参数	解释
Context	指定要计数的样式的位置： 0或省略    活动文档 1 活动模板
All	指定是否包含内部样式： 0或省略    不包括内部样式。 1 包括内部样式。 注意 Word 包含 75 个内部样式，而且这些内部样式中有两个是默认定义的：“默认段落字体”和“正文”。
_____________

请参阅

样式格式

StyleName$()


FormatDefineStyleBorders

FormatDefineStyleBorders [.ApplyTo = number] [, .Shadow = number] [, .TopBorder = number] [, .LeftBorder = number] [, .BottomBorder = number] [, .RightBorder = number] [, .HorizBorder = number] [, .VertBorder = number] [, .TopColor = number] [, .LeftColor = number] [, .BottomColor = number] [, .RightColor = number] [, .HorizColor = number] [, .VertColor = number] [, .FineShading = number] [, .FromText = number or text] [, .Shading = number] [, .Foreground = number] [, .Background = number] [, .Tab = number]

为当前样式或者在一包含 .Define 参数的 FormatStyle 指令中指定的样式设置边框和底纹格式。注意在修改由 FormatStyle 指定的样式时，应将 FormatDefineStyleBorders 指令放在 FormatStyle 指令后面。

FormatDefineStyleBorders 语句的参数对应于“边框和底纹”对话框（“格式”菜单）中的选项。有关参数的描述，请参阅FormatBordersAndShading。有关如何使用相似语句定义样式的示例，请参阅FormatDefineStyleFont 示例 和 FormatDefineStylePara 示例。

_____________

请参阅

样式格式

FormatBordersAndShading

FormatDefineStyleFont

FormatDefineStylePara

FormatStyle


FormatDefineStyleFont 示例

本示例定义“TestMe”样式的字符格式编排，10 磅，粗体，小写。如果不存在该样式，Word 将创建它。

FormatStyle .Name = "TestMe", .Define

FormatDefineStyleFont .Points = "10", .Bold = 1, .SmallCaps = 1


FormatDefineStyleFont

示例

FormatDefineStyleFont [.Points = number] [, .Underline = number] [, .Color = number] [, .Strikethrough = number] [, .Superscript = value] [, .Subscript = value] [, .Hidden = number] [, .SmallCaps = number] [, .AllCaps = number] [, .Spacing = value] [, .Position = number or text] [, .Kerning = number] [, .KerningMin = number or text] [, .Default] [, .Tab = number] [, .Font = text] [, .Bold = number] [, .Italic = number]

当前样式或在一包含 .Define 参数的 FormatStyle 指令中指定的样式设置字符格式。注意在修改由 FormatStyle 指定的样式时，FormatDefineStyleFont 指令应置于 FormatStyle 指令后面。

FormatDefineStyleFont 语句的参数对应于“字体”对话框（“格式”菜单）中的选项。有关参数的描述，请参阅FormatFont。

_____________

请参阅

样式格式

FormatFont

FormatStyle


FormatDefineStyleFrame

FormatDefineStyleFrame [.Wrap = number] [, .WidthRule = number] [, .FixedWidth = number or text] [, .HeightRule = number] [, .FixedHeight = number or text] [, .PositionHorz = number or text] [, .PositionHorzRel = number] [, .DistFromText = number or text] [, .PositionVert = number or text] [, .PositionVertRel = number] [, .DistVertFromText = number or text] [, .MoveWithText = number] [, .LockAnchor = number] [, .RemoveFrame]

为当前样式或在一包含 .Define 参数的 FormatStyle 指令中指定的样式设置图文框格式。注意在修改用 FormatStyle 指定的样式时，FormatDefineStyleFrame 指令应置于 FormatStyle 指令后面。

FormatDefineStyleFrame 语句的参数对应于“图文框”对话框（“格式”菜单）中的选项。有关参数的描述，请参阅FormatFrame。有关如何使用相似语句定义样式的示例，请参阅FormatDefineStyleFont 示例 和 FormatDefineStylePara 示例。

_____________

请参阅

样式格式

FormatDefineStyleFont

FormatDefineStylePara

FormatFrame

FormatStyle


FormatDefineStyleLang

FormatDefineStyleLang .Language = text [, .Default]

为当前样式或在一包含 .Define 参数的 FormatStyle 指令中指定的样式设置语言格式。注意在修改用 FormatStyle 指定的样式时，FormatDefineStyleLang 指令应置于 FormatStyle 指令后面。

FormatDefineStyleLang 语句的参数对应于“语言”对话框（“工具”菜单）中的选项。有关参数的描述，请参阅ToolsLanguage。有关如何使用相似语句定义样式的示例，请参阅FormatDefineStyleFont 示例 和 FormatDefineStylePara 示例。

_____________

请参阅

样式格式

FormatDefineStyleFont

FormatDefineStylePara

FormatStyle

ToolsLanguage


FormatDefineStyleNumbers

FormatDefineStyleNumbers [.Points = text] [, .Color = number] [, .Before = text] [, .Type = number] [, .After = text] [, .StartAt = text] [, .Include = number] [, .Alignment = number] [, .Indent = text] [, .Space = number or text] [, .Hang = number] [, .Level = text] [, .CharNum = text] [, .Font = text] [, .Strikethrough = number] [, .Bold = number] [, .Italic = number] [, .Underline = number]

为当前样式或在一包含 .Define 参数的 FormatStyle 指令中指定的样式设置编号格式。注意在修改由 FormatStyle 指定的样式时，FormatDefineStyleNumbers 指令应置于 FormatStyle 指令后面。

FormatDefineStyleNumbers 语句的参数对应于“更改”对话框（“格式”菜单，“项目符号和编号”命令）。有关参数的描述，请参阅FormatBullet，FormatMultilevel 和FormatNumber。有关如何使用相似语句定义样式的示例，请参阅FormatDefineStyleFont 示例 和FormatDefineStylePara 示例。

_____________

请参阅

样式格式

FormatBullet

FormatDefineStyleFont

FormatDefineStylePara

FormatMultilevel

FormatNumber

FormatStyle


FormatDefineStylePara 示例

本示例在“TestMe”样式的定义中添加“段前”格式为 4 磅，“段后”格式为 4 磅的编排。

FormatStyle .Name = "TestMe", .Define

FormatDefineStylePara .Before = "4 pt", .After = "4 pt"


FormatDefineStylePara

示例

FormatDefineStylePara [.LeftIndent = number or text] [, .RightIndent = number or text] [, .Before = number or text] [, .After = number or text] [, .LineSpacingRule = number] [, .LineSpacing = number or text] [, .Alignment = number] [, .WidowControl = number] [, .KeepWithNext = number] [, .KeepTogether = number] [, .PageBreak = number] [, .NoLineNum = number] [, .DontHyphen = number] [, .Tab = number] [, .FirstIndent = number or text]

为当前样式或在一包含 .Define 参数的 FormatStyle 指令中指定的样式设置段落格式。注意在修改由 FormatStyle 指定的样式时，FormatDefineStylePara 指令应置于 FormatStyle 指令后面。

FormatDefineStylePara 语句的参数对应于“段落”对话框（“格式”菜单）中的选项。有关参数的描述，请参阅FormatParagraph。

_____________

请参阅

样式格式

FormatParagraph

FormatStyle


FormatDefineStyleTabs

FormatDefineStyleTabs [.Position = text] [, .DefTabs = number or text] [, .Align = number] [, .Leader = number] [, .Set] [, .Clear] [, .ClearAll]

为当前格式或在一包含 .Define 参数的 FormatStyle 指令中指定的样式设置制表位格式。注意在修改由 FormatStyle 指定的样式时，FormatDefineStyleTabs 指令应置于 FormatStyle 指令后面。

FormatDefineStyleTabs 语句的参数对应于“制表位”对话框（“格式”菜单）中的选项。有关参数的描述，请参阅FormatTabs。有关如何使用相似语句定义样式的示例，请参阅FormatDefineStyleFont 示例 和FormatDefineStylePara 示例。

_____________

请参阅

样式格式

FormatDefineStyleFont

FormatDefineStylePara

FormatStyle

FormatTabs


FormatStyle 示例

本示例对选定段落应用“Normal”样式，它与 NormalStyle 语句等同：

FormatStyle .Name = "Normal", .Apply

下一示例将“TestMe”样式的字符格式编排定义为 10 磅，粗体，小写。如果该样式还不存在，Word 将创建该样式：

FormatStyle .Name = "TestMe", .Define

FormatDefineStyleFont .Points = "10", .Bold = 1, .SmallCaps = 1


FormatStyle

示例

FormatStyle .Name = text [, .Delete] [, .Merge] [, .NewName = text] [, .BasedOn = text] [, .NextStyle = text] [, .Type = number] [, .FileName = text] [, .Source = number] [, .AddToTemplate = number] [, .Define] [, .Rename] [, .Apply]

创建，修改，重定义，应用或删除指定样式。您可以用 FormatStyle 将活动文档的相关模板的样式合并入活动文档中。FormatStyle 语句的参数对应于“样式”对话框（“格式”菜单）中的选项。

若要为某样式定义格式，您可在 FormatStyle 指令后跟一个或多个以下指令： FormatDefineStyleBorders，FormatDefineStyleFont，FormatDefineStyleFrame，FormatDefineStyleLang，FormatDefineStyleNumbers，FormatDefineStylePara，FormatDefineStyleTabs

若要复制样式，请使用 Organizer。

参数	解释
.Name	样式的名称。
.Delete	删除指定样式。
.Merge	将由 .FileName 指定的文档或模板的样式合并到活动文档中或反过来将活动文档的样式合并到由 .FileName 指定的文档或模板中。具体由 .Source 指定合并方向。
.NewName	若指定 .Rename，则表示样式的新名称。
.BasedOn	指定样式所基于的一种存在的样式。
.NextStyle	在由 .Name 指定的样式所格式化的段落中按 ENTER 键时，将把 .Nextstyle 所指定的样式自动应用于新段落。
.Type	在创建一新样式时，.Type指定其类型： 0 或省略    段落 1 字符
.FileName	参加样式合并的文档或模板名称。如果 .FileName 省略并且 .Source 值设为 1，则将活动模板的样式合并到活动文档中。
.Source	指定样式合并方向： 0 从活动文档合并到由 .FileName 所指的文件中。 1 从由 .FileName 所指定文件合并到活动文档中。
.AddToTemplate	如果值为 1，则对应于选中了“添加到模板”复选框。
.Define	用后跟指令所指定的格式重新定义一个已存在样式或创建一新样式。
.Rename	重新命名由 .Name 所指定的样式，新名称为 .NewName 的值。
.Apply	将样式应用于选定段落。
_____________

请参阅

样式格式

CountStyles()

FormatDefineStyleBorders

FormatDefineStyleFont

FormatDefineStyleFrame

FormatDefineStyleLang

FormatDefineStyleNumbers

FormatDefineStylePara

FormatDefineStyleTabs

NormalStyle

Organizer

Style

StyleName$()


FormatStyleGallery

FormatStyleGallery .Template = text [, .Preview = number]

从所指定模板复制样式到活动文档中。现有样式将被更新。

参数	解释
.Template	含有您希望使用的样式的模板。允许使用路径。可以省略文件名扩展名 .DOT。
.Preview	指定当您用 Dialog 或 Dialog() 指令来显示对话框时，在“样式库”对话框中预览的内容： 0 活动文档 1 示例文档 2 样式和示例列表
有关示例，请参阅FormatAutoFormat 示例。

_____________

请参阅

样式格式

FormatAutoFormat

FormatStyle

ToolsOptionsAutoFormat


NormalStyle 示例

本示例选择当前段落，并且如果该段落含有字符串“Comments:”，则对其使用“正文”样式。书签“\Para”是 Word 可以自动设置和更新的几个预定义书签之一。有关预定义书签的详细介绍，请参阅预定义书签。

EditGoTo .Destination = "\Para"

If InStr(Selection$(), "Comments:") Then NormalStyle


NormalStyle

示例

NormalStyle

对选定段落应用“Normal”样式。没有与 NormalStyle 对应的函数，但您可以用 StyleName$() 函数决定当前样式。例如，指令 If StyleName$() = "Normal" Then MsgBox "Normal paragraph" 将在当前段落为“Normal”样式下时显示一消息框。

_____________

请参阅

样式格式

FormatStyle

ResetPara

Style

StyleName$()


Style 示例

本示例查找后跟一个段落标记的单词“Overview”的第一个实例并对其应用“Heading 1”样式：

StartOfDocument

EditFind .Find = "Overview^p", .Direction = 0, .MatchCase = 1, \

.Format = 0

If EditFindFound() Then Style "Heading 1"


Style

示例

Style StyleName$

将某一样式应用于选定段落。如果没有指定 StyleName$ 参数，则会产生错误。若要创建一种样式，请用 FormatStyle。

_____________

请参阅

样式格式

FormatStyle

NormalStyle

StyleName$()


StyleDesc$() 示例

本示例在一消息框中显示“Heading 1”样式的描述：

infostyle$ = "Heading 1"

MsgBox StyleDesc$(infostyle$), "Description for " + infostyle$


StyleDesc$()

示例

StyleDesc$(StyleName$)

返回活动文档中指定样式的描述。例如，对于“标题 1”样式的典型描述为“正文 + Arial，14 磅，粗体，空格 之前 12 磅 之后 3 磅”。如果没有指定 StyleName$ ， StyleDesc$() 返回一空串 ("")。

_____________

请参阅

样式格式

CountStyles()

FormatStyle

StyleName$()


StyleName$() 示例

本示例检查文档样式列表中的第一个样式是否在文档中使用。如果未被使用，则显示一个消息框：

FirstStyle$ = StyleName$(1)

StartOfDocument

EditFindClearFormatting

EditFindStyle .Style = FirstStyle$

EditFind .Find = "", .WholeWord = 0, .MatchCase = 0, \

.Direction = 0, .Format = 1, .Wrap = 0

If EditFindFound() = 0 Then

MsgBox "Style " + FirstStyle$ + " is not in use."

End If


StyleName$()

示例

StyleName$([Count,] [Context,] [All])

返回指定样式的名称，或者如果未指定样式，则返回选定内容中第一段落中使用的样式的名称。

参数	解释
Count	在文档或模板的按字母排序样式列表中样式的位置。Context 的值决定是用文档还是模板。Count 的值范围可从 1 到 CountStyles()，其中CountStyles() 返回指定上下文中总的样式数。如果 Count 为 0 或省略，则返回当前样式的名称。
Context	指定所用的样式列表： 0 或省略    活动文档 1 活动模板
All	指定是否包含内部样式： 0 或省略    不包含内部样式。 1 包含内部样式。 注意 Word 含有 75 个内部样式，而且其中 2 个是默认定义的：“默认段落字体”和“正文”。
_____________

请参阅

样式格式

CountStyles()

FormatStyle

StyleDesc$()


InsertExcelTable

InsertExcelTable

启动 Microsoft Excel 并显示一个新的电子表格。在用户退出 Microsoft Excel 时，该表格嵌入到活动文档中。指令 InsertExcelTable 的作用与指令 InsertObject .Class = "ExcelWorksheet"的作用一样。

_____________

请参阅

表格

InsertChart

InsertDatabase

InsertObject


TableAutoFormat 示例

本示例把“Classic 2”表格格式的全部属性应用于含有插入点的表格。如果插入点不在表格中，那么显示一个对话框。

If SelInfo(12) = -1 Then	'If insertion point is in a table

TableAutoFormat .Format = 5, .Borders = 1, .Shading = 1, \

.Font = 1, .Color = 1, .AutoFit = 1, .HeadingRows = 1, \

.FirstColumn = 1, .LastRow = 0, .LastColumn = 1

Else

MsgBox "The insertion point is not in a table."

End If


TableAutoFormat

示例

TableAutoFormat [.Format = number] [, .Borders = number] [, .Shading = number] [, .Font = number] [, .Color = number] [, .AutoFit = number] [, .HeadingRows = number] [, .FirstColumn = number] [, .LastRow = number] [, .LastColumn = number]

把一个预定义的表格形式用于某表格。TableAutoFormat 语句的参数对应于“表格自动套用格式”对话框（“表格”菜单）中的选项。

参数	解释
.Format	所用格式：0 对应“格式”列表框中所列的第一种格式（“无”），1 对应第二种格式，依此类推。
.Borders	如果为 1 ，则使用指定格式的边框属性。
.Shading	如果为 1 ， 则使用指定格式的底纹属性。
.Font	如果为 1 ，则使用指定格式的字体属性。
.Color	如果为 1 ，则使用指定格式的颜色属性。
.AutoFit	如果为 1，则在不修改文本在表格单元格中折返形式的前提下，尽可能减少表格各列的宽度。
.HeadingRows	如果为 1，使用指定格式的标题行属性。
.FirstColumn	如果为 1，使用指定格式的首列属性。
.LastRow	如果为 1，使用指定格式的末行属性。
.LastColumn	如果为 1，使用指定格式的末列属性。
_____________

请参阅

表格

TableColumnWidth

TableHeadings

TableRowHeight

TableUpdateAutoFormat


TableAutoSum

TableAutoSum

插入一个 = (“公式”) 域，这个“公式”域用于计算并显示插入点所在表格单元格以上或以左的全部表格单元格中值的和。有关 Word 如何确定要添加哪些值，请参阅 TableFormula。

_____________

请参阅

表格

TableFormula


TableColumnWidth 示例

本示例对文档中的每一个表格，把第一列的宽度调整到 2 英寸，第二列的宽度调整到 3 英寸。第一个 TableColumnWidth 指令既对第一列进行格式编排，又把选中内容移入第二列。

StartOfDocument

While ParaDown()

If SelInfo(12) =  -1 Then	'If insertion point is in a table

StartOfRow

TableSelectColumn

TableColumnWidth .ColumnWidth = "2 in", .RulerStyle = 0, \

.NextColumn

If SelInfo(18) > 1 Then	'If more than one column

TableColumnWidth .ColumnWidth = "3 in", .RulerStyle = 0

End If

LineDown

End If

Wend


TableColumnWidth

示例

TableColumnWidth [.ColumnWidth = number or text] [, .SpaceBetweenCols = number or text] [, .PrevColumn] [, .NextColumn] [, .AutoFit] [, .RulerStyle = number]

对选中单元格设置列宽及列间距。TableColumnWidth 语句的参数对应于“单元格高度和宽度”对话框（“表格”菜单）中“列”选项卡上的选项。

参数	解释
.ColumnWidth	对选中单元格或列所使用的宽度，以磅或文本为度量单位。（.RulerStyle 指定其他列如何受影响）。
.SpaceBetweenCols	每一列中文本间的距离，以磅或文本为度量单位。
.PrevColumn	在前面参数指定的操作（如果有的话）执行后，选择上一列。
.NextColumn	在前面参数指定的操作（如果有的话）执行后，选择下一列。
.AutoFit	在不修改文本在单元格中折返形式的前提下，尽可能地减少选中单元格的宽度。
.RulerStyle	指定 Word 如何调整表格： 0 如果有选中内容，则只有选中单元格做修改。行宽不保留。如果没有选中内容，则 Word 调整选定列中全部单元格的尺寸。 1 通过对选定内容右边的全部单元格按行宽比例调整来保留行宽。 2 通过只对紧邻选定内容右边的列中的单元格进行调整来保留行宽。 3 通过对选定内容右边的全部单元格按行宽比例调整来保留行宽，并给它们相同的宽度。 4 只修改包含插入点的单元格 （或选定内容的第一个单元格）。不保留行宽。
_____________

请参阅

表格

SelInfo()

TableDeleteColumn

TableRowHeight

TableSelectColumn


TableDeleteCells 示例

如果表格多于两行，那么本示例将删除表格中的第一个单元。

If SelInfo(15) > 2 Then

TableSelectTable

StartOfRow

TableDeleteCells

End If


TableDeleteCells

示例

TableDeleteCells .ShiftCells = number

删除选中的单元。如果插入点或选中内容不在表格中，则出错。

参数	解释
.ShiftCells	设置剩余单元格的移动方向。 0 或省略 单元格向左移。 1 单元格向上移。 2 删除整个行。 3 删除整个列。
_____________

请参阅

表格

SelInfo()

TableDeleteColumn

TableDeleteRow


TableDeleteColumn 示例

本示例删除表格中的第一列。

StartOfRow

TableDeleteColumn


TableDeleteColumn

示例

TableDeleteColumn

删除表格中含插入点的列，或删除含选定内容的全部列。如果插入点或选定内容不在表格中，则出错。

_____________

请参阅

表格

SelInfo()

TableDeleteCells

TableDeleteRow


TableDeleteRow 示例

如果表格多于两行，则本示例删除表格中的最后一行。

If SelInfo(15) > 2 Then

EndOfColumn

TableDeleteRow

End If


TableDeleteRow

示例

TableDeleteRow

删除表格中含插入点的行，或删除含选定内容的全部行。如果插入点或选定内容不在表格中，则出错。

_____________

请参阅

表格

SelInfo()

TableDeleteCells

TableDeleteColumn


TableFormula 示例

本示例添加一行到表格的末尾，并把插入点移到最后一个单元格，然后插入一个计算最后一列值的和的 =(“公式”) 域。

TableSelectTable

EndOfRow

NextCell

EndOfRow

TableFormula .Formula = "=SUM(ABOVE)"


TableFormula

示例

TableFormula [.Formula = text] [, .NumFormat = text]

在插入点插入一个含指定公式的 =(“公式”) 域。如果插入点所在的表格单元格已经包含一个 =(“公式”) 域，那么已存在的域将被含指定公式的域取代。

参数	解释
.Formula	要 =(“公式”) 域计算的数学公式。可以使用对表格单元的电子表格式的引用。比如，"=SUM(a4:c4)" 指定了第四行中的前三个值。有关有效的公式的详细内容，请参阅 = (“公式”)域。
.NumFormat	=(“公式”) 域内容的格式。有关格式样本，请从“表格”菜单选择“公式”命令并查看“编号格式”框中的列表。
如果插入点位于表格中，那么只要在含插入点的单元格以上或以左的单元格中至少有一个有值，指定 .Formula 就是可选的。如果在含插入点单元格以上的单元格有值，则插入的域为 {=SUM(ABOVE)}；如果在含插入点单元格以左的单元格有值，则插入的域为 {=SUM(LEFT)}。如果上面和左面的单元格都含有值，那么 Word 使用下面的法则来确定插入哪个 SUM 函数。

如果紧挨插入点之上的单元格有值，那么 Word 插入 {=SUM(ABOVE)}。

如果紧挨插入点之上的单元格不含值，而紧挨其左面的单元格有值，那么 Word 插入 {=SUM(LEFT)}。

如果相邻单元格都不含值，则 Word 插入 {=SUM(ABOVE)}。

如果您没有指定 .Formula，并且插入点上面和左面的单元格都是空的，则给出域出错信息。

_____________

请参阅

表格

InsertField

TableAutoSum

ToolsCalculate


TableGridlines 示例

本示例在表格虚框未显示的情况下显示表格虚框。您可以把这个指令作为 AutoOpen 宏的一部分使用，这样，每当基于某一特定模板的文档打开时，都显示表格虚框。

If Not TableGridlines() Then TableGridlines 1


TableGridlines, TableGridlines()

示例

TableGridlines [On]

TableGridlines()

TableGridlines 语句显示或隐藏表格虚框。

参数	解释
On	指定显示或隐藏表格虚框： 0 隐藏表格虚框。 1 显示表格虚框。 省略 在本选项开或关之间切换。
TableGridlines() 函数返回下列值：

值	解释
0	如果表格虚框隐藏
-1	如果表格虚框显示
_____________

请参阅

表格

ToolsOptionsView


TableHeadings, TableHeadings()

TableHeadings [On]

TableHeadings()

TableHeadings 语句对选中的行添加和删除表格标题格式。当一个表格跨越多页时，设置为表格标题格式的行将重复出现。

参数	解释
On	指定添加或删除表格标题格式： 0 删除表格标题格式。 1 添加表格标题格式。 省略 切换表格标题格式。
TableHeadings() 函数返回下列值：

值	解释
0	如果所选中的行没有一行设置为表格标题。
-1	如果所选中的行中有一行或多行但不是全部设置为表格标题。
1	如果全部选中行都设置为表格标题。
_____________

请参阅

表格

TableRowHeight


TableInsertCells 示例

本示例选中当前单元格（使用预定义书签“\Cell”）及其下的单元格，然后插入两个新单元格。已存在的单元格将向右移动。If 控制结构确保在运行 TableInsertCells 前选定内容全部位于一个表格内。

EditGoTo "\Cell"

LineDown 1, 1

If SelInfo(12) = -1 Then

TableInsertCells .ShiftCells = 0

Else

MsgBox "Selection extends outside the table."

End If


TableInsertCells

示例

TableInsertCells [.ShiftCells = number]

在表格选定单元格范围的上面或左面插入单元格。如果插入点或选中内容不在表格中，则出错。

参数	解释
.ShiftCells	设置在选定范围内移动单元格的方向： 0 单元格向右移。 1 或省略 把单元格向下移。 2 插入整个一行。 3 插入整个一列。
_____________

请参阅

表格

SelInfo()

TableInsertColumn

TableInsertRow


TableInsertColumn 示例

本示例在含插入点的表格末尾添加一列。

TableSelectTable	'Select the entire table

StartOfColumn	'Move to the end of the first row

TableInsertColumn	'Add a new column


TableInsertColumn

示例

TableInsertColumn

在含插入点的列的左面插入一列，或插入与选定内容的列数相同的列。如果插入点或选中内容不在表格中，则出错。

_____________

请参阅

表格

TableInsertCells

TableInsertRow


TableInsertRow 示例

下面的示例添加一行到表格末尾。

TableSelectTable

CharRight

TableInsertRow

下面的示例添加两行到表格开头。

TableSelectTable

StartOfRow

TableInsertRow .NumRows = 2


TableInsertRow

示例

TableInsertRow [.NumRows = number]

在选定行或含插入点行的上面插入一行。如果插入点或选定内容不在表格中，则出错。如果插入点紧接表格之后，那么 TableInsertRow 在该表格末尾插入一行。

参数	解释
.NumRows	要添加的行数。如果 .NumRows 为 0 或省略，那么 TableInsertRow 在选定内容上方所插入的行数与选定内容的行数相同。
_____________

请参阅

表格

TableInsertCells

TableInsertColumn


TableInsertTable 示例

本示例插入一个 3 列，5 行的表格。

TableInsertTable .NumColumns = 3, .NumRows = 5, \

.InitialColWidth = "2 in"


TableInsertTable

示例

TableInsertTable [.ConvertFrom = number] [, .NumColumns = number] [, .NumRows = number] [, .InitialColWidth = number or text] [, .Wizard] [, .Format = number] [, .Apply = number]

把一系列选定的段落转换为表格，若没有选定内容，则插入一个空表格。如果插入点已经在一个表格内，则出错。

参数	解释
.ConvertFrom	指定用来把文本各项分隔为表格单元格内容的分隔符。 0 段落标记（Word 把相隔的段落放入第二列） 1 制表符 2 逗号
.NumColumns	表格的列数。
.NumRows	表格的行数。
.InitialColWidth	以磅或文本为单位的表格中每列的宽度。如果省略，那么列宽将按照使表格充满页面这样的标准来计算。
.Wizard	运行“表格”向导。
.Format	“表格自动套用格式”对话框（“表格”菜单）中所列出的预定义的格式之一：0 对应“格式”框中所列的第一种格式（“无”），1 对应第二种格式，依此类推。
.Apply	指明由 .Format 所指定格式的哪种属性用于表格。可以使用下列值组合之和。 0 无 1 边框 2 底纹 4 字体 8 颜色 16    自动匹配 32    标题行 64    末行 128    首列 256    末列
_____________

请参阅

表格

TableAutoFormat

TableToText

TextToTable


TableMergeCells 示例

本示例将合并当前选定单元格，如果不能执行这个命令，则显示一个消息框。

On Error Goto No

TableMergeCells

No:

If Err = 509 Then

MsgBox "Sorry, can't merge."

End If


TableMergeCells

示例

TableMergeCells

把同一行中选定的表格单元格合并为一个单元格。选定内容可延伸多行，但是，Word 只合并同一行中的单元格。如果 Word 不能合并单元格，则 TableMergeCells 给出出错信息——比如，只选定了一个单元格。

_____________

请参阅

表格

TableSplitCells


TableRowHeight 示例

本示例对选定行设置最小行高为 2 行，并从左页边距缩进 4 英寸。

TableRowHeight .RulerStyle = "0", .LeftIndent = "1 in", \

.LineSpacingRule = 1, .LineSpacing = "2 li", .Alignment = 0


TableRowHeight

示例

TableRowHeight [.RulerStyle = text] [, .LineSpacingRule = number] [, .LineSpacing = number or text] [, .LeftIndent = number or text] [, .Alignment = number] [, .AllowRowSplit = number] [, .PrevRow] [, .NextRow]

对表格中选定的行设置格式。TableRowHeight 语句的参数与“单元格高度和宽度”对话框（“表格”菜单）中“行”选项卡上的选项相对应。

参数	解释
.RulerStyle	在左缩进修改时，指定 Word 如何调整表格： 0 Word 把单元格移到右边。 1 Word 通过按宽度比例把选定行中的全部单元格变窄，以保持表格右边界的位置不变。 2 Word 通过使第一列的单元格变窄来保持表格右边界的位置不变。 3 Word 通过给选定行中全部单元格相同的宽度并使其变窄来保持表格右边界的位置不变。 4 Word 只缩进含插入点的行（或选定内容中的第一行）。 在行高修改时，指定行如何变动： 0 ，1，2，或 3    如果有选定内容，则影响选定内容。如果无选定内容，则全部行都受影响。 4 只有含插入点的行或选定内容中的第一行受到影响。
.LineSpacingRule	确定行高的法则： 0 自动 1 最小设置 2 精确值
.LineSpacing	以磅或文本为单位的行高。
.LeftIndent	以磅或文本为单位的文本左边界与左页边距之间的距离。
.Alignment	行的对齐方式： 0 左对齐 1 居中 2 右对齐
.AllowRowSplit	如果为 1，则允许行中的文本在分页时分开。
.PrevRow	选定上一行进行格式编排。
.NextRow	选定下一行进行格式编排。
_____________

请参阅

表格

TableColumnWidth

TableHeadings

TableSelectRow


TableSelectColumn 示例

本示例在表格的第一列前添加新的两列。

TableSelectTable	'Select the entire table

StartOfRow	'Go to the first cell

TableSelectColumn	'Select the first column

CharRight 1, 1	'Extend selection to the second column

TableInsertColumn	'Insert two new columns


TableSelectColumn

示例

TableSelectColumn

选定含插入点的表格列，或选定包含选定内容的全部列。如果插入点或选定内容不在表格内，则出错。

_____________

请参阅

表格

TableSelectRow

TableSelectTable


TableSelectRow

TableSelectRow

选定含插入点的表格行，或选定包含选定内容的全部行。如果插入点或选定内容不在表格内，则出错。

_____________

请参阅

表格

TableSelectColumn

TableSelectTable


TableSelectTable 示例

本示例把插入点移到表格中的第一个单元格中。

TableSelectTable

StartOfRow

下面的示例把插入点移到表格第一行的行结束标记处。当插入点在这个位置时，您可以用 TableInsertColumn 在表格末尾处添加一列。

TableSelectTable

StartOfColumn

下面的示例把插入点移到表格后面的第一个字符处。

TableSelectTable

CharRight


TableSelectTable

示例

TableSelectTable

选定含插入点的整个表格。如果插入点或选定内容不在表格内，则出错。如同本条目的示例所示，您可以将 TableSelectTable 与其他 WordBasic 语句一起使用，把插入点可靠地移到表格的第一个单元格中或表格后面的第一个字符处。

_____________

请参阅

表格

TableSelectColumn

TableSelectRow


TableSort 示例

本示例按字母升序排列表格行，首先是第一列，然后是第二列。第一行排除在排序操作之外。

Select Case SelInfo(15)

Case -1

MsgBox "Please place the insertion point in a table."

Case 1

MsgBox "Sorry, can't sort a single-row table."

Case Else

TableSelectTable

TableSort .Order = 0, .FieldNum = "1", .Type = 0, \

.Order2 = 0, .FieldNum2 = "2", .Type2 = 0, \

.DontSortHdr = 1

End Select

下图表示按前面示例排序前后的表格情况。

排序前...	排序后.


TableSort

示例

TableSort [.DontSortHdr = number] [, .FieldNum = number] [, .Type = number] [.Order = number] [, .FieldNum2 = number] [, .Type2 = number] [, .Order2 = number] [, .FieldNum3 = number] [, .Type3 = number] [, .Order3 = number] [, .Separator = number] [, .SortColumn = number] [, .CaseSensitive = number]

对选定段落或表格行进行排序。如果您要对表格单元格中的段落进行排序，那么必须只选定段落而不包括单元格结束标记。如果您选定了单元格结束标记并进行排序，那么 Word 将显示一条消息说明没有找到有效的记录来进行排序操作。 TableSort 的参数对应“排序”对话框（“表格”菜单）中的选项。

参数	解释
.DontSortHdr	如果为 1，则把第一段或表格第一行排除出排序操作。
.FieldNum, .FieldNum2, .FieldNum3	用以排序的域（文本或表格列）的编号。Word 先按 FieldNum 排序，其次是 .FieldNum2，然后是 .FieldNum3。
.Type, .Type2, .Type3	对 .FieldNum, .FieldNum2, .FieldNum3 的排序类型： 0 字母数字 1 数字 2 日期
.Order, .Order2, .Order3	对 .FieldNum, .FieldNum2, .FieldNum3 排序时所用顺序： 0 升序 1 降序
.Separator	分隔符的类型（与表格行无关）： 0 逗号 1 制表符 2 其他（“排序选项”对话框的“其他”框中出现的字符）
.SortColumn	如果为 1，则只对选定列进行排序（需要选定列）。
.CaseSensitive	如果为 1，则区分大小写。
要了解有关上面所描述选项的详细内容，请选择“排序”对话框（“表格”菜单）中的“帮助”按钮。

_____________

请参阅

表格

TableSortAToZ

TableSortZToA


TableSortAToZ

TableSortAToZ

对活动文档中的段落或表格行按字母数字升序排序。如果第一段或表格第一行是一个有效的标题记录，那么它将不包括在排序范围之内。TableSortATotZ 可用来对邮件合并数据源进行排序。

_____________

请参阅

表格

MailMergeEditDataSource

TableSort

TableSortZToA


TableSortZToA

TableSortZToA

对活动文档中的段落或表格行按字母数字降序排序。如果第一段或表格第一行是一个有效的标题记录，那么它将不包括在排序范围之内。TableSortZToA 可用来对邮件合并数据源进行排序。

_____________

请参阅

表格

MailMergeEditDataSource

TableSort

TableSortAToZ


TableSplit 示例

如果一个表格多于 3 行，那么本示例将在其第四行上方拆分该表格。

If SelInfo(15) > 3 Then

StartOfColumn

For i = 1 To 3

TableSelectRow

LineDown

Next

TableSplit

End If


TableSplit

示例

TableSplit

在表格的当前行上方插入一个空段落。除了拆分表格，您还可以在表格是文档中第一个对象的情况下在该表格上方插入一个空段落。如果插入点或选定内容不在表格内，则出错。

_____________

请参阅

表格

TableSplitCells


TableSplitCells

TableSplitCells [.NumColumns = text]

拆分每个选定的单元格。如果插入点或选定内容不在表格内，则出错。

参数	解释
.NumColumns	指定每个选定单元格所要拆分成的单元格数。如果省略，则 Word 把每个单元格拆成两个单元格。
_____________

请参阅

表格

TableMergeCells

TableSplit


TableToText 示例

本示例把选定单元格转换为文本。

TableToText


TableToText

示例

TableToText [.ConvertTo  = number]

把选定行转换为标准文本。行中要转换的全部单元格都必须选定；否则，出错。TableToText 语句的参数对应“将表格转换成文本”对话框（“表格”菜单）中的选项。

参数	解释
.ConvertTo	确定用来分隔单元格内容的分隔符： 0 段落标记 1 或省略 制表符（每一行以一个段落标记结束） 2 逗号（每一行以一个段落标记结束） 3 其他（“将表格转换成文本”对话框的“其他”框中出现的字符）
_____________

请参阅

表格

TableInsertTable

TextToTable


TableUpdateAutoFormat

TableUpdateAutoFormat

用一个预定义的表格格式更新含插入点的表格。比如，如果您对某一个表格使用 TableAutoFormat，然后插入行和列，这样这个表格将与原来面貌不同，而 TableUpdateAutoFormat 可以还原为原来 的格式。

_____________

请参阅

表格

TableAutoFormat


TextToTable

TextToTable [.ConvertFrom = number] [, .NumColumns = number] [, .NumRows = number] [, .InitialColWidth = number or text] [, .Format = number] [, .Apply = number]

根据指定的分隔符将选定文本转换为表格。如果您不带任何参数运行 TextToTable，Word 将按照下面方式使用分隔符：如果没有逗号，则使用制表符；如果没有制表符，则使用逗号，如果制表符和逗号都没有或既有制表符又有逗号，则使用段落标记。TextToTable 语句的参数对应“将文本转换成表格”对话框（“表格”菜单）中的选项。

参数	解释
.ConvertFrom	指定用来 分隔文本的字符： 0 段落标记 1 制表符 2 逗号 3 其他（出现在“将文本转换成表格”对话框的“其他”框中的字符）
.NumColumns	要创建的列数。
.NumRows	要创建的行数。
.InitialColWidth	以磅或文本为单位的列宽。如果省略，那么将按照使表格充满页面的标准计算列宽。
.Format	“表格自动套用格式”对话框（“表格”菜单）中所列出的预定义的格式之一：0 对应“格式”框中所列的第一种格式（“无”），1 对应第二种格式，依此类推。
.Apply	指明由 .Format 所指定格式的哪种属性用于表格。有关属性及其值的列表，请参阅 TableInsertTable。
_____________

请参阅

表格

TableAutoFormat

TableInsertTable

TableToText


ToolsAdvancedSettings 示例

本示例设置 WINWORD6.INI 中 [Microsoft Word] 节的日期格式：

ToolsAdvancedSettings .Application = "Microsoft Word", \

.Option = "DateFormat", .Setting = "M/D/YYYY", .Set


ToolsAdvancedSettings

示例

ToolsAdvancedSettings .Application = text, .Option = text , .Setting = text [, .Delete] [, .Set]

修改设置文件如 WINWORD6.INI, WIN.INI, 或个人设置文件中的键。ToolsAdvancedSettings 的参数对应“高级设置”对话框中的选项，这个对话框可通过从“工具”菜单中选择“宏”命令并运行 Word 命令 ToolsAdvancedSettings 来显示

参数	说明
.Application	.INI 文件节的名称，列于“类型”框中。 注意，通过在该节的名称后带一个空格及包含在圆括号内的一个 .INI 文件名，您可在任何设置文件中设置一个键。比如， "Macro Settings (MY.INI)" 指定 Windows 目录下 MY.INI 文件的 [Macro Settings] 节。
.Option	要设置的键
.Setting	新设置
.Delete	删除该键
.Set	设置该键
有关在设置文件中修改设置的详细内容，请参阅 SetPrivateProfileString.

_____________

请参阅

工具：语句和函数

GetPrivateProfileString$()

GetProfileString$()

SetPrivateProfileString

SetProfileString

ToolsOptionsFileLocations


ToolsCalculate 示例

在本示例中， ToolsCalculate() 函数对两个表格单元中的值相加并返回结果给变量 total 。书签 "sales" 和 "other" 用来表示含值的表格。

Total = ToolsCalculate("sum(sales a5, other b5)")


ToolsCalculate, ToolsCalculate()

示例

ToolsCalculate

ToolsCalculate([Expression$])

 ToolsCalculate 语句把选定内容作为数学表达式来计算，然后在状态栏中先是结果。该结果也放置在剪贴板上。

如果 Expression$ 没有指定，则 ToolsCalculate() 函数与 ToolsCalculate 语句 运行效果相同，只是函数返回结果而不是显示在状态栏并放置在键贴板中。如果您确实指定了 Expression$ ，则其与 = (Formula) 域运行方式相同。 Expression$ 中的值可以是表格单元引用。

有关有效表达式的详细内容，请参阅 = (Formula) 域

_____________

请参阅

工具：语句和函数

TableAutoSum

TableFormula


ToolsCompareVersions 示例

本示例将活动文档与 C:\DRAFT\REV1DOC.DOC进行比较：

ToolsCompareVersions .Name = "C:\DRAFT\REV1DOC.DOC"


ToolsCompareVersions

示例

ToolsCompareVersions .Name = text

显示修订标记，指出活动文档与指定文档何处不同。 ToolsCompareVersions 对应“版本比较”对话框（“修订”命令，“工具”菜单）。

参数	说明
.Name	与活动文档比较的文档名；如果该文档不在当前目录下则加入路径。
_____________

请参阅

工具：语句和函数

ToolsOptionsRevisions

ToolsRevisions


ToolsCreateEnvelope 示例

本示例添加一个带有由变量 to$ 和 from$ 所指定地址的信封到活动文档。收信人地址为黑体。

rtn$ = Chr$(13)

to$ = "Jane Doe"  + rtn$ + "123 Skye St." + \

rtn$ + "OurTown, WA 98107"

from$ = "John Doe" + rtn$ + "456 Erde Lane" + \

rtn$ + "OurTown, WA 98107"

FormatAddrFonts .Bold = 1

ToolsCreateEnvelope .EnvAddress = to$, .EnvReturn = from$, \

.AddToDocument


ToolsCreateEnvelope

示例

ToolsCreateEnvelope [.ExtractAddress = number] [, .EnvAddress = text] [, .EnvOmitReturn = number] [, .EnvReturn = text] [, .PrintBarCode = number] [, .EnvWidth = number or text] [, .EnvHeight = number or text] [, .EnvPaperSize = number] [, .PrintFIMA = number] [, .LabelAutoText = text] [, .UseEnvFeeder = number] [, .AddrFromLeft = number or text] [, .AddrFromTop = number or text] [, .RetAddrFromLeft = number or text] [, .RetAddrFromTop = number or text] [, .PrintEnvLabel] [, .AddToDocument]

创建一个与活动文档同时打印的信封。 ToolsCreateEnvelope 语句对应“信封和标签”对话框（“工具”菜单）中“信封”选项卡上的选项。要指定地址格式，请使用 FormatAddrFonts 和 FormatRetAddrFonts.

参数	说明
.ExtractAddress	指定是否使用由书签 "EnvelopeAddress" （一个用户定义的书签）标记的文本作为收信人地址： 0      没有使用 "EnvelopeAddress" 书签。 1 使用了 "EnvelopeAddress" 书签。
.EnvAddress	指定收信人地址的文本（如果指定了 .ExtractAddress 则忽略).
.EnvOmitReturn	指定是否省略回信地址： 0 不省略回信地址。 1 省略回信地址。
.EnvReturn	指定回信地址的文本。
.PrintBarCode	指定是否添加一个 POSTNET 栏代码：1 添加栏代码，0 则不添加。只用于美国信件。
.EnvWidth, .EnvHeight	当 .EnvPaperSize 对应 Custom Size 时，按当前默认单位或文本度量单位计算的信封宽度和高度。
.EnvPaperSize	对应“信封选项”对话框里“信封尺寸”框中的一个尺寸：0 对应第一个尺寸，1 对应第二个尺寸，等等。
.PrintFIMA	指定是否添加一个 Facing Identification Mark (FIM A) 用于预分类礼节性答复邮件：1 添加 FIM A， 0 不添加。只用于美国邮件。
.LabelAutoText	一个自动图文集词条的名称，该词条用于存储一个数据源的地址域（只在邮件合并过程的创建信封时记录）。
.UseEnvFeeder	对应“进纸”框中所列信封源的一个数字：0 对应第一个信封源，1 对应第二个信封源，等等。
.AddrFromLeft	按当前默认单位或文本度量单位计算的，从信封左边到收信人地址的距离。
.AddrFromTop	按当前默认单位或文本度量单位计算的，从信封上边到收信人地址的距离。
.RetAddrFromLeft	按当前默认单位或文本度量单位计算的，从信封左边到回信地址的距离。
.RetAddrFromTop	按当前默认单位或文本度量单位计算的，从信封上边到回信地址的距离。
.PrintEnvLabel	打印信封
.AddToDocument	把收信人地址和回信地址作为一节添加到文档的开头。
_____________

请参阅

工具：语句和函数

FormatAddrFonts

FormatRetAddrFonts

ToolsCreateLabels


ToolsCreateLabels 示例

本示例创建一个带标签文本的新文档，该标签文本用来打印在 Avery 标签单上。参数 .LabelListIndex = 0 指定 Avery Standard 作为标签产品类型， .LabelIndex = 4 指定产品号码为 5160 （作为地址）。标签文本可从“自动图文集”词条“MyLabelAddress”得到。

ToolsCreateLabels .LabelListIndex = 0, .LabelIndex = 4, \

.LabelDotMatrix = 0, .LabelTray = 1, .AddToDocument, \

.LabelAutoText = "MyLabelAddress"


ToolsCreateLabels

示例

ToolsCreateLabels [.ExtractAddress = number] [.LabelListIndex = number] [, .LabelIndex = number] [, .LabelDotMatrix = number] [, .LabelTray = number] [, .LabelAcross = number] [, .LabelDown = number] [, .SingleLabel = number] [, .LabelRow = number] [, .LabelColumn = number] [, .LabelAutoText = text] [, .LabelText = text] [, .PrintEnvLabel] [, .AddToDocument] [, .LabelTopMargin = number or text] [, .LabelSideMargin = number or text] [, .LabelVertPitch = number or text] [, .LabelHorPitch = number or text] [, .LabelHeight = number or text] [, .LabelWidth = number or text]

创建一个与活动文档同时打印的标签或标签工作表。ToolsCreateLabels 语句的参数对应“信封和标签”对话框（“工具”菜单）中“标签”选项卡上的选项。

参数	说明
.ExtractAddress	指定是否使用由书签 "EnvelopeAddress" （一个用户定义的书签）标记的文本作为标签文本： 0      不使用书签 "EnvelopeAddress" 。 1 使用书签 "EnvelopeAddress" 。
.LabelListIndex	对应“标签选项”对话框（“选项”按键，“信封和标签”对话框）中“标签产品类型”列表里的一项。 对于点阵打印机，该值为： 1 Avery Standard 3 Avery Intl (UK) 4 Avery Intl (France) 6 CoStar LabelWriter 对于激光打印机，该值为： 0 (zero)    Avery Standard 2 Avery Pan European 5 其它
.LabelIndex	对应“标签选项”对话框中“产品编号”框里的一项：0 对应第一项，1 对应第二项，等等。
.LabelDotMatrix	指定打印机类型： 0       激光打印机 1 点阵打印机
.LabelTray	对应“标签选项”对话框中“纸盒”列表框中的一个纸盒： 0 对应列表中的第一个纸盒，1 对应第二个纸盒。只有当 .LabelDotMatrix 设置为 0 时才可用。
.SingleLabel	如果为 1, 则可以通过指定 .LabelRow 和 .LabelColumn. 来打印整页标签中的某一个标签。
.LabelRow	如果 .SingleLabel 设置为 1, 则该行包含您要打印的标签。
.LabelColumn	如果 .SingleLabel 设置为 1, 则该列包含您要打印的标签。
.LabelAutoText	存储标签文本的自动图文集词条的名称（如果指定 .ExtractAddress ，则忽略）。
.LabelText	打印到标签上的文本（如果指定了 .ExtractAddress 或 .LabelAutoText 则忽略）。
.PrintEnvLabel	打印标签。
.AddToDocument	用准备打印的标签文本创建一份新文档。
下列参数用以创建自定义标签，如果 .LabelListIndex, .LabelIndex, 和 .LabelDotMatrix 的组合指定了有效标签，则不必指定下列参数（而且被忽略）。

参数	说明
.LabelAcross	一行中的标签编号
.LabelDown	一列中的标签编号
.LabelTopMargin	标签页的上页边距宽度，按当前默认单位或文本度量单位计算。
.LabelSideMargin	标签页的左右页边距宽度，按当前默认单位或文本度量单位计算。
.LabelVertPitch	从一个标签顶部到其下另一个标签顶部的距离。
.LabelHorPitch	按当前默认单位或文本度量单位计算的，从一个标签左边到横向下一个标签左边的距离。
.LabelHeight	标签高度，按当前默认单位或文本度量单位计算。
.LabelWidth	标签宽度，按当前默认单位或文本度量单位计算。
_____________

请参阅

工具：语句和函数

ToolsCreateEnvelope


ToolsCustomize

ToolsCustomize [.Tab = number]

用指定选项卡显示“自定义”对话框（“工具”菜单）。

参数	说明
.Tab	可选择的选项卡： 0      工具栏 1 菜单 2 键盘
_____________

请参阅

工具：语句和函数

AddButton

ToolsCustomizeKeyboard

ToolsCustomizeMenuBar

ToolsCustomizeMenus


ToolsHyphenation 示例

本示例启动断字，允许全为大写字母时断字，设置一个 24 磅的断字区。

ToolsHyphenation .AutoHyphenation = 1, .HyphenateCaps = 1, \

.HyphenationZone = "24 pt"


ToolsHyphenation

示例

ToolsHyphenation [.AutoHyphenation = number] [.HyphenateCaps = number] [, .HyphenationZone = number or text] [, .LimitConsecutiveHyphens = number]

对选定文本或整个文档断字。 ToolsHyphenation 语句参数对应“断字”对话框（“工具”菜单）中的选项。

参数	说明
.AutoHyphenation	如果为 1, 则不提示就断字。
.HyphenateCaps	如果为 1, 则允许全为大写字母时可断字。
.HyphenationZone	按磅或文本度量单位计算的断字区大小。断字区是指行尾与右页边距之间的距离。
.LimitConsecutiveHyphens	可用连字符结束的连续行的最大数目（若为 0 ，则没有限制）。
_____________

请参阅

工具：语句和函数

ToolsHyphenationManual


ToolsHyphenationManual 示例

本示例在运行 ToolsHyphenationManual 前设置一个 16 磅的断字区。如果用户取消“人工断字”对话框，则错误句柄将阻止错误 102  (“命令失败”) 出现。

ToolsHyphenation .AutoHyphenation = 0, .HyphenationZone = 16

On Error Goto trap

ToolsHyphenationManual

trap:

If Err = 102 Then Goto bye Else Error Err

bye:


ToolsHyphenationManual

示例

ToolsHyphenationManual

对文档断字，在每次 Word 建议某词要进行断字时，显示“人工断字”对话框（“人工”按钮，“断字”对话框，“工具”菜单），这样用户可以人工调整连字符的位置。要在运行 ToolsHyphenationManual 前设置断字选项，请使用 ToolsHyphenation 语句并设置 .AutoHyphenation 为 0 。

_____________

请参阅

工具：语句和函数

ToolsHyphenation


ToolsLanguage 设置

本示例把 Brazilian Portuguese 作为 Normal 样式的一个属性

ToolsLanguage .Language = "Portugu阺 (BR)", .Default


ToolsLanguage

示例

ToolsLanguage .Language = text [, .Default]

为选定文本设置语言格式。语言格式用以标识 Word 的语言校对工具，这样用户就可使用对应特定语言的特定规则。

参数	说明
.Language	语言名称
.Default	添加指定语言格式到活动模板样式的定义中。
下面的列表包含了 .Language 的全部有效设置

要指定这种语言	设置 .Language 为这种文本
No Proofing	0  不包含文本 "(zero)"
Brazilian Portuguese	Portugu阺 (BR)
Catalan	Catal郷
Danish	Dansk
Dutch	Nederlands
Dutch (preferred)	Nederlands (voorkeur)
English (Australian)	English (AUS)
English (U.K.)	English (UK)
English (U.S.)	English (US)
Finnish	Suomi
French	Fran鏰is
French Canadian	Canadien Fran鏰is
German	Deutsch
Italian	Italiano
Norwegian Bokm錶	Norsk Bokm錶
Norwegian Nynorsk	Norsk Nynorsk
Portuguese	Portugu阺 (POR)
Spanish	Espa駉l
Swedish	Svenska
Swiss German	Deutsch (Schweiz)
_____________

请参阅

工具：语句和函数

CountLanguages()

FormatDefineStyleLang

Language


ToolsMergeRevisions 示例

本示例打开 REVISE1.DOC，合并修订标记到 ORIGINAL.DOC，然后对 REVISE2.DOC 执行相同操作：

FileOpen .Name = "C:\DOCS\REVISE1.DOC"

ToolsMergeRevisions .Name = "C:\DOCS\ORIGINAL.DOC"

FileOpen .Name = "C:\DOCS\REVISE2.DOC"

ToolsMergeRevisions .Name = "C:\DOCS\ORIGINAL.DOC"


ToolsMergeRevisions

示例

ToolsMergeRevisions .Name = text

从活动文档合并修订标记到指定文档，如果该文档没有打开，则 Word 将其打开。如果活动文档去掉修订标记不等于去掉修订标记的指定文档，则出错。您可以在 ToolsMergeRevisions 指令后放置一系列 FileOpen 指令，从多个审阅拷贝中收集修订标记到一个文档中。

参数	说明
.Name	要从其中合并修订标记的文档的路径和文件名。
_____________

请参阅

工具：语句和函数

ToolsCompareVersions

ToolsOptionsRevisions

ToolsReviewRevisions

ToolsRevisions


ToolsOptions 示例

本示例显示“选项”对话框中的“视图”选项卡。 On Error Resume Next 指令可在用户选择“取消”时防止 Word 显示错误信息。

On Error Resume Next

ToolsOptions .Tab = 0


ToolsOptions

示例

ToolsOptions .Tab = number

显示“选项”对话框（“工具”菜单）并选中指定选项卡。除非您在 ToolsOptions 前放置了 On Error 指令，否则当对话框被取消时， Word 将显示错误信息。

参数	说明
.Tab	供选择的选项卡： 0      视图 1 一般 2 编辑 3 打印 4 保存 5 拼写 6 语法 7 自动格式 8 修订 9 用户信息 10 兼容性 11 文件定位
_____________

请参阅

工具：语句和函数

ToolsCustomize


ToolsOptionsAutoFormat

ToolsOptionsAutoFormat [.PreserveStyles = number] [, .ApplyStylesHeadings = number] [, .ApplyStylesLists = number] [, .ApplyStylesOtherParas = number] [, .AdjustParaMarks = number] [, .AdjustTabsSpaces = number] [, .AdjustEmptyParas = number] [, .ReplaceQuotes = number] [, .ReplaceSymbols = number] [, .ReplaceBullets = number]

为 FormatAutoFormat 和 FormatAutoFormatBegin 设置自动格式选项。 ToolsOptionsAutoFormat 语句的参数对应“选项”对话框（“工具”菜单）中“自动格式”选项卡上的选项。

参数	说明
.PreserveStyles	如果为 1，则保留以前使用的样式。
.ApplyStylesHeadings	如果为 1，则对标题使用自动样式。
.ApplyStylesLists	如果为 1，则对列表自动样式。
.ApplyStylesOtherParas	如果为 1，则对段落使用自动样式。
.AdjustParaMarks	如果为 1，则添加或取消文档中的段落标记（比如，对电子邮件消息中的多行文本取消段落标记）。
.AdjustTabsSpaces	如果为 1，则自动调整制表符设置和大小。
.AdjustEmptyParas	如果为 1，则取消用来在段落间添加空行的空段落标记。
.ReplaceQuotes	如果为 1，则用弯曲或“智能”引号和撇号来代替直的双引号，单引号和撇号。
.ReplaceSymbols	如果为 1，则用“符号”对话框中（“插入”菜单）的 �, �, ανδ � 符号来代替 ∀(ρ)∀, ∀(χ)∀, 和 ∀(τμ)∀ 。
.ΡεπλαχεΒυλλετσ_如果为 1，则用“项目符号和编号”（“格式”菜单）中的项目符号来代替项目符号字符。__

有关上面所描述的选项的详细内容，请选择“选项”对话框中的“自动格式”选项卡，然后选择“帮助”按钮。

_____________

请参阅

工具：语句和函数

ToolsAutoCorrect


ToolsOptionsCompatibility

ToolsOptionsCompatibility [.Product = text] [, .Default] [, .NoTabHangIndent = number] [, .NoSpaceRaiseLower = number] [, .PrintColBlack = number] [, .WrapTrailSpaces = number] [, .NoColumnBalance = number] [, .ConvMailMergeEsc = number] [, .SuppressSpBfAfterPgBrk = number] [, .SuppressTopSpacing = number] [, .OrigWordTableRules = number] [, .TransparentMetafiles = number] [, .ShowBreaksInFrames = number] [, .SwapBordersFacingPages = number]

调整活动文档中某些元素的显示以模仿其它字处理应用程序的显示。比如，您可以指定一行末尾的空格转到下一行，就象 WordPerfect 那样。 ToolsOptionsCompatibility 语句的参数对应“选项”对话框（“工具”菜单）中“兼容性”选项卡上的选项。

参数	说明
.Product	要模仿的产品的名称，产品列于“推荐选项”框中。如果您指定了 .Product ，则显示选项自动确定。
.Default	对基于活动模板的新文档指定默认显示选项。
.NoTabHangIndent	如果为 1，则对带有悬挂式缩进的段落不自动添加制表位。
.NoSpaceRaiseLower	如果为 1，则不给提升字符和降低字符添加额外行距。
.PrintColBlack	如果为 1，则对不支持彩色的打印机，彩色打印为黑色。
.WrapTrailSpaces	如果为 1，则行末的空格转到下一行。
.NoColumnBalance	如果为 1，则连续分节符之上的文本列不平衡。
.ConvMailMergeEsc	如果为 1，则正确说明 Word 版本 2.x 邮件合并数据源中反斜杠 (\) 后的字符，比如， \" 说明为 "。
.SuppressSpBfAfterPgBrk	如果为 1，则取消硬分页符和分栏符前后的空格。
.SuppressTopSpacing	如果为 1，则取消页顶的额外行距。
.OrigWordTableRules	如果为 1，则对 Macintosh 版本 5.x ，表格边框象在 Word 中那样组合，
.TransparentMetafiles	如果为 1，则元文件图片后的区域不为空白。
.ShowBreaksInFrames	如果为 1，则 Word 使所有包含人工或“硬”分页符或分栏符的任何图文框都显示出这些分页符或分栏符。
.SwapBordersFacingPages	如果为 1，则当选中“奇偶页不同”或“对称页边距”复选框（“页设置”对话框，“文件”菜单）时， Word 在奇数页的右边打印一个左段落边框（不是一个方框）。
注意，如果您指定了 .Product 和至少一个其它显示选项，则该显示选项设置具有优先权。

有关上面所描述的选项的详细内容，请选择“选项”对话框中的“兼容性”选项卡。

_____________

请参阅

工具：语句和函数

FontSubstitution


ToolsOptionsEdit 示例

本示例开关“拖放式正文编辑”复选框：

Dim dlg As ToolsOptionsEdit

GetCurValues dlg

If dlg.DragAndDrop Then

dlg.DragAndDrop = 0

Else

dlg.DragAndDrop = 1

End If

ToolsOptionsEdit dlg


ToolsOptionsEdit

示例

ToolsOptionsEdit [.ReplaceSelection = number] [, .DragAndDrop = number] [, .AutoWordSelection = number] [, .InsForPaste = number] [, .Overtype = number] [, .SmartCutPaste = number] [, .AllowAccentedUppercase = number] [, .PictureEditor = text]

设置编辑选项。 ToolsOptionsEdit 语句的参数对应“选项”对话框（“工具”菜单）中的“编辑”选项卡上的选项。

参数	说明
.ReplaceSelection	如果为 1，则用输入的文本代替选定文本。
.DragAndDrop	如果为 1，则允许拖动式编辑。
.AutoWordSelection	如果为 1，则拖动选择一次选中一个词而不是一个字符。
.InsForPaste	如果为 1，则允许使用 INS 键来粘贴剪贴板的内容。
.Overtype	如果为 1，则用输入文本代替插入点之后的文本。
.SmartCutPaste	如果为 1，则在剪切和粘贴时，自动调整单词和标点间的间距。
.AllowAccentedUppercase	如果为 1，则允许使用校对工具和“更改大小写”功能来建议 Word 给一个大写字母添加重音标记。
.PictureEditor	要用来编辑图片的应用程序的名称，应用程序名出现在“图片编辑器”方框中。
有关上面所描述的选项的详细内容，请选择“选项”对话框中的“编辑”选项，然后选择“帮助”按钮。

_____________

请参阅

工具：语句和函数

Overtype


ToolsOptionsGeneral 示例

在打开 C:\TMP\TEST.DOC 之前，本示例确认不会有文件名被挤出最近使用过的文件的列表中（除非该列表已经包含最多的九个文件名）。

Dim dlg As ToolsOptionsGeneral

GetCurValues dlg

num = CountFiles()

If num < 9 Then

num$ = LTrim$(Str$(num))

If dlg.RecentFileCount = num$ Then

dlg.RecentFileCount = num + 1

ToolsOptionsGeneral dlg

End If

End If

FileOpen .Name = "C:\TMP\TEST.DOC"


ToolsOptionsGeneral

示例

ToolsOptionsGeneral [.Pagination = number] [, .WPHelp = number] [, .WPDocNavKeys = number] [, .BlueScreen = number] [, .ErrorBeeps = number] [, .Effects3d = number] [, .UpdateLinks = number] [, .SendMailAttach = number] [, .RecentFiles = number] [, .RecentFileCount = number] [, .Units = number] [, .ButtonFieldClicks = number]

设置一般选项。 ToolsOptionsGeneral 语句选项对应“选项”对话框（“工具”菜单）中“一般”选项卡上的选项。

参数	说明
.Pagination	如果为 1，则允许背景重新分页。
.WPHelp	如果为 1，则激活 WordPerfect 帮助。
.WPDocNavKeys	如果为 1，则激活 WordPerfect 文档方向键。
.BlueScreen	如果为 1，则修改文档窗口，在蓝色背景上显示白色文本。
.ErrorBeeps	如果为 1，则 Word 在出现误操作时发出声音提示。
.Effects3d	如果为 1，则 Word 用三维效果显示对话框。
.UpdateLinks	如果为 1，则在您打开文档时，自动更新链接信息。
.SendMailAttach	如果为 1，则“发送邮件”命令（“文件”菜单）把活动文档作为附件而不是电子邮件消息中的文本发送活动文档。
.RecentFiles	如果为 1，则在“文件”菜单的“退出”命令上方列出最近使用过的文件。
.RecentFileCount	1 到 9 中的一个数字，对应您要列出的最近使用过的文件的最大数目。
.Units	设置默认度量单位： 0        英寸 1 厘米 2 磅 3 Picas
.ButtonFieldClicks	设置运行一个带有 MACROBUTTON 域的宏所需的鼠标击键数目（1 或 2）。
有关上面所描述的选项的详细信息，请选择“选项”对话框中“一般”选项卡，然后选择“帮助”按钮。

_____________

请参阅

工具：语句和函数

Beep

CountFiles()

HelpWordPerfectHelpOptions

ToolsRepaginate


ToolsOptionsPrint 示例

本示例指定文档按相反页顺序打印：

ToolsOptionsPrint .Reverse = 1


ToolsOptionsPrint

示例

ToolsOptionsPrint [.Draft = number] [, .Reverse = number] [, .UpdateFields = number] [, .Summary = number] [, .ShowCodes = number] [, .Annotations = number] [, .ShowHidden = number] [, .EnvFeederInstalled = number] [, .UpdateLinks = number] [, .Background = number] [, .DrawingObjects = number] [, .FormsData = number] [, .DefaultTray = text]

设置打印文档的选项。 ToolsOptionsPrint 语句的参数对应“选项”对话框（“工具”菜单）中“打印”选项卡上的选项。

参数	说明
.Draft	如果为 1，按草稿方式打印。
.Reverse	如果为 1，按逆序打印各页。
.UpdateFields	如果为 1，在打印时更新文档中的所有域。
.Summary	如果为 1，随文档打印摘要信息。
.ShowCodes	如果为 1，打印域代码而不是域内容。
.Annotations	如果为 1，随文档打印批注。
.ShowHidden	如果为 1，随文档打印所有隐藏文本。
.EnvFeederInstalled	如果为 1，则指明已安装了一个信封送纸器。
.UpdateLinks	如果为 1，则在打印文档时，自动更新全部链接信息。
.Background	如果为 1，允许背景打印。
.DrawingObjects	如果为 1，随文档打印 Word 绘图对象。
.FormsData	如果为 1，则只把用户在联机表单中输入的数据打印到预打印表单上。
.DefaultTray	指定默认纸盒，该纸盒显示在“默认纸盒”方框中。
有关上面所描述的选项的详细内容，请选择“选项”对话框中“打印”选项卡，然后选择“帮助”按钮。

_____________

请参阅

工具：语句和函数

FilePrint

FilePrintSetup


ToolsOptionsRevisions 示例

当修订标记活动时，本示例指示 Word 给插入文本带双下画线并在左页边距上添加蓝色修订线：

ToolsOptionsRevisions .InsertedTextMark = 4, \

.RevisedLinesMark = 1, .RevisedLinesColor = 2


ToolsOptionsRevisions

示例

ToolsOptionsRevisions [.InsertedTextMark = number] [, .InsertedTextColor = number] [, .DeletedTextMark = number] [, .DeletedTextColor = number] [, .RevisedLinesMark = number] [, .RevisedLinesColor = number]

为标记修订设置选项。Sets options for marking revisions. The arguments for the ToolsOptionsRevisions 语句参数对应“选项”对话框（“工具”菜单）中“修订”选项卡上的选项。这些选项将影响修订标记活动的文档，以及用“版本比较”命令（“修订”对话框，“工具”菜单）与其它文档比较的文档。

参数	说明
.InsertedTextMark	插入文本的格式： 0         无格式 1 黑体 2 斜体 3 带下划线 4 带双下划线
.DeletedTextMark	删除文本的格式： 0       隐藏 1 带删除线
.RevisedLinesMark	修订线的位置： 0        无 1 左边框 2 右边框 3 外边框
.InsertedTextColor, .DeletedTextColor, .RevisedLinesColor	插入文本、删除文本、修订线的颜色。如果省略，则设置为“自动”。有关值的列表，请参阅 CharColor.
有关上面所描述的选项的详细内容，请选择“选项”对话框中的“修订”选项卡，然后选择“帮助”选项。

_____________

请参阅

工具：语句和函数

ToolsCompareVersions

ToolsRevisions


ToolsOptionsSave 示例

本示例设置自动保存的时间间隔为 10 分钟：

ToolsOptionsSave .AutoSave = 1, .SaveInterval = "10"


ToolsOptionsSave

示例

ToolsOptionsSave [.CreateBackup = number] [, .FastSaves = number] [, .SummaryPrompt = number] [, .GlobalDotPrompt = number] [, .NativePictureFormat = number] [, .EmbedFonts = number] [, .FormsData = number] [, .AutoSave = number] [, .SaveInterval = text] [, .Password = text] [, .WritePassword = text] [, .RecommendReadOnly = number]

为保存文档设置选项。ToolsOptionsSave 语句的参数对应“选项”选项框（“工具”菜单）中“保存”选项卡上的选项。

参数	说明
.CreateBackup	如果为 1，则每次保存时创建一个备份并不允许快速保存。
.FastSaves	如果为 1，则允许快速保存。
.SummaryPrompt	如果为 1，则当您保存一个新文档时，提示摘要信息。
.GlobalDotPrompt	如果为 1 并对 Normal 模板做了修改，则在您退出 Word 时，显示一个消息框询问您是否要保存所做修改；如果为 0 ，则自动保存对 Normal 模板所做的修改。
.NativePictureFormat	如果为 1，则保存输入图形的 Windows 版本。
.EmbedFonts	如果为 1，则在您保存时，嵌入 TrueType 字体。
.FormsData	如果为 1，则把用户在表单中输入的数据保存为用于数据库的，用制表符分隔的记录。
.AutoSave	如果为 1，则允许自动保存。
.SaveInterval	指定自动保存文档的时间间隔，按分钟计算；只有在 .AutoSave 设置为 1 时，才可用。
.Password	打开文档的口令
.WritePassword	保存对文档所做修改需要的口令
.RecommendReadOnly	如果为 1，则在打开文档时，显示一个消息框指明该文档作为只读文档打开。
有关上面描述的选项的详细内容，请选择“选项”对话框中“保存”选项卡，然后选择“帮助”按钮。

_____________

请参阅

工具：语句和函数

FileSave

FileSaveAll

FileSaveAs


ToolsOptionsUserInfo 示例

本示例设置当前用户名和初值：

ToolsOptionsUserInfo .Name = "Gina Fiori", .Initials = "GF"


ToolsOptionsUserInfo

示例

ToolsOptionsUserInfo [.Name = text] [, .Initials = text] [, .Address = text]

修改用户信息。 ToolsOptionsUserInfo 语句的参数对应“选项”对话框（“工具”菜单）中“用户信息”选项卡上的选项。

参数	说明
.Name	当前用户的名称
.Initials	当前用户的初值
.Address	当前用户的通信地址
有关上面所描述的选项的详细内容，请选择“选项”对话框中“用户信息”选项卡，然后选择“帮助”按钮。

_____________

请参阅

工具：语句和函数

DocumentStatistics

FileSummaryInfo


ToolsRepaginate 示例

如果文档自上次保存后做了修改，则本示例对其重新分页：

If IsDocumentDirty() Then ToolsRepaginate


ToolsRepaginate

示例

ToolsRepaginate

对带领整个文档重新分页。

_____________

请参阅

工具：语句和函数

ToolsOptionsGeneral


ToolsReviewRevisions 示例

本示例显示修订标记，选择下一个做了标记的文本，然后接收修订：

ToolsReviewRevisions .ShowMarks

ToolsReviewRevisions .FindNext

ToolsReviewRevisions .AcceptRevisions


ToolsReviewRevisions

示例

ToolsReviewRevisions [.ShowMarks] [, .HideMarks] [, .Wrap = number] [, .FindPrevious] [, .FindNext] [, .AcceptRevisions] [, .RejectRevisions]

搜索修订标记，或者接受或拒绝选定的修订。 ToolsReviewRevisions 的参数对应于“审阅修订”对话框（“工具”菜单，“修订”命令）中的选项。

您可以为每一 ToolsReviewRevisions 指令只使用一个参数。

参数	说明
.ShowMarks	在活动文档中使用修订标记。
.HideMarks	在活动文档中隐藏修订标记。
.Wrap	控制如果在文档开头以外的位置开始搜索并到达文档结尾处时会产生什么结果： 0 (零) 或省略    结束搜索操作并继续运行宏。 1 从文档开头继续搜索直到搜索的起点。 2 Word 显示信息框询问是否从文档开头继续搜索。
.FindPrevious	向文档开头进行搜索并选定最近的带修订标记的文本。
.FindNext	向文档结尾进行搜索并选定最近的带修订标记的文本。
.AcceptRevisions	接受选定文本的修订。
.RejectRevisions	取消选定文本的修订。
请参阅

工具：语句和函数

ToolsCompareVersions

ToolsOptionsRevisions

ToolsRevisions

ToolsRevisionType()


ToolsRevisionAuthor$() 示例

本例查找下一修订处，并检查修订者姓名。如果修订者是 Stella Richards，则接受此处修订。

ToolsRevisions .ViewRevisions = 1

ToolsReviewRevisions .FindNext

If ToolsRevisionAuthor$() = "Stella Richards" Then

ToolsReviewRevisions .AcceptRevisions

End If


ToolsRevisionAuthor$()

示例

ToolsRevisionAuthor$()

返回选定修订处的作者姓名。如果选定范围内没有修订标记，ToolsRevisionAuthor$() 返回空串("")。

_____________

请参阅

工具：语句和函数

ToolsReviewRevisions

ToolsRevisionDate$()

ToolsRevisions

ToolsRevisionType()


ToolsRevisionDate$() 示例

本例用 ToolsRevisionType() 函数检查选定范围内是否有修订处，如果有，则显示一消息框说明这个修订的日期和时间。如果选定部分没有修订，Word 显示相应的消息框。

If ToolsRevisionType() <> 0 Then

MsgBox "Revision made " + ToolsRevisionDate$() + "."

Else

MsgBox "No revisions are selected."

End If


ToolsRevisionDate$()

示例

ToolsRevisionDate$()

返回选定修订的日期和时间。如果选定范围内没有修订标记，ToolsRevisionDate$() 返回空串。

_____________

请参阅

工具：语句和函数

ToolsReviewRevisions

ToolsRevisionAuthor$()

ToolsRevisionDate()

ToolsRevisions

ToolsRevisionType()


ToolsRevisionDate() 示例

本例查找下一修订位置，并检查该处的修订日期，如果修订日期距今超过十天，则拒绝此处修订。

ToolsRevisions .ViewRevisions = 1

ToolsReviewRevisions .FindNext

If (Now() - ToolsRevisionDate()) > 10 Then

ToolsReviewRevisions .RejectRevisions

End If


ToolsRevisionDate()

示例

ToolsRevisionDate()

返回选定修订处的日期和时间数字序列。如果选定部分中没有修订，返回  -1 。有关该数字序列的详细内容，请参阅DateSerial().

_____________

请参阅

工具：语句和函数

ToolsReviewRevisions

ToolsRevisionAuthor$()

ToolsRevisionDate$()

ToolsRevisions

ToolsRevisionType()


ToolsRevisions 示例

本例使当前文档标志修订处，但在编辑文档时并不显示修订标记：

ToolsRevisions .MarkRevisions = 1, .ViewRevisions = 0


ToolsRevisions

示例

ToolsRevisions [.MarkRevisions = number] [, .ViewRevisions = number] [, .PrintRevisions = number] [, .AcceptAll] [, .RejectAll]

指定当前文档标志修订处和审阅修订的方式。ToolsRevisions 语句的参数与“修订”对话框（“工具”菜单）中的选项对应。

参数	说明
.MarkRevisions	如果为 1,激活标志修订处方式。
.ViewRevisions	如果为 1，编辑文档时显示修订标志
.PrintRevisions	指定打印文档时是否包含修订标志： 0 (零)    不显示修订标志（只打印被接受的修订）。 1 显示修订标记。
.AcceptAll	接受当前文档中的所有修订。
.RejectAll	拒绝当前文档中的所有修订。
_____________

请参阅

工具：语句和函数

ToolsCompareVersions

ToolsMergeRevisions

ToolsOptionsRevisions

ToolsReviewRevisions

ToolsRevisionType()


ToolsRevisionType()

ToolsRevisionType()

返回下列数值之一，对应于选定文本的修订方式类型。

值	说明
0 (zero)	如果选定内容不包括修订
1	如果全部或部分选定内容包含标记为插入的文本
2	如果全部或部分选定内容包含标记为删除的文本
3	如果选定内容包含替换文本（标记为插入并且后跟标记为选定的文本）
4	如果选定内容包含一个以上的修订
有关的示例，请参阅 ToolsRevisionDate$() 示例。

_____________

请参阅

工具：语句和函数

ToolsReviewRevisions

ToolsRevisionAuthor$()

ToolsRevisionDate()

ToolsRevisionDate$()

ToolsRevisions


ToolsShrinkToFit

ToolsShrinkToFit

试图减小文本字体的大小，使其恰好与缩小了几页的活动文档相匹配。在打印时，如果最后一页只包含几行文字，ToolsShrinkToFit 可为保存打印好的文档带来很大方便。

_____________

请参阅

工具：语句和函数

ViewZoomWholePage


ToolsWordCount 示例

本示例计算活动文档页、字、字符、段落和行的数目---包括脚注和尾注中的文字---然后在信息框中显示字数：

ToolsWordCount .CountFootnotes = 1

Dim dlg As ToolsWordCount

GetCurValues dlg

MsgBox "Current word count: " + dlg.Words


ToolsWordCount

示例

ToolsWordCount [.CountFootnotes = number] [, .Pages = text] [, .Words = text] [, .Characters = text] [, .Paragraphs = text] [, .Lines = text]

计算活动文档中的页、字、字符、段落和行数。.CountFootnotes 参数是唯一能设置的参数，其余参数为只读并且可被对话记录用来返回活动文档的信息。有关详细内容，请参阅有关本项的示例。有关对话记录的详细内容，请参阅 Microsoft Word 开发工具的第四章 "Advanced WordBasic"。

参数	说明
.CountFootnotes	如果为 1，则对脚注和尾注中的文字也计数。
.Pages	文档中的页数。
.Words	文档中的字数。
.Characters	文档中的字符数。
.Paragraphs	文档中的段落数。
.Lines	文档中的行数。
_____________

请参阅

工具：语句和函数

DocumentStatistics

FileSummaryInfo


ToolsEnvelopesAndLabels

要使用WordBasic创建或打印信封，可使用 ToolsCreateEnvelope. 信封，用 ToolsCreateLabels.创建或打印单个标签或整页标签。


ClosePreview

ClosePreview

将活动的文档从打印预览返回原视图。如果活动文档没有显示在打印预览中，那么 ClosePreview 将没有任何效果。

_____________

请参阅

查看

FilePrintPreview


CloseViewHeaderFooter

CloseViewHeaderFooter

隐藏“页眉和页脚”工具栏，并且将插入点移到它在文档域中的上一个位置。如果插入点不在页眉和页脚，将会导致错误。

_____________

请参阅

查看

GoToHeaderFooter

ShowNextHeaderFooter

ShowPrevHeaderFooter

ViewHeader


ShowAll 示例

这个示例示显示所有非打印字符。然后搜索隐藏文字。

ShowAll 1

EditFindClearFormatting

EditFindFont .Hidden = 1

EditFind .Find = "", .Format = 1


ShowAll, ShowAll()

示例

ShowAll [On]

ShowAll()

ShowAll 语句显示所有非打印字符，例如隐藏文字、制表符、空格符和段落标记。ShowAll 对应于“工具”菜单下“选项”对话框中“视图”选项卡上的“全部”复选框。

参数	解释
On	确定是隐藏还是显示所有非打印字符： 1 显示非打印字符。 0 隐藏非打印字符。 省略 切换显示方式。
如果您的宏依赖于文档中提到的非打印字符，将 ShowAll 1 作为您的宏的第一部分指令它一是一个好的解决办法。

ShowAll() 函数返回下列数值：

值	解释
0	选中“全部”复选框。
-1	清除“全部”复选框。
_____________

请参阅

查看

ToolsOptionsView


ShowNextHeaderFooter

ShowNextHeaderFooter

如果插入点在页眉中，那么将它移到当前节中的下一个页眉（例如，从奇数页眉移到偶数页眉），或者移到下一节的第一个页眉。如果插入点在一个页脚中，ShowNextHeaderFooter 将它移到下一个页脚。如果插入点位于文档最后一节的最后一个页眉或页脚中，或者根本不在页眉和页脚中，将会产生错误。

_____________

请参阅

查看

CloseViewHeaderFooter

FormatHeaderFooterLink

GoToHeaderFooter

ShowPrevHeaderFooter

ToggleHeaderFooterLink

ViewFooter

ViewHeader


ShowPrevHeaderFooter

ShowPrevHeaderFooter

如果插入点在一个页眉中，那么将它移到当前节的上一个页眉中（例如，从偶数页眉移到奇数页眉），或者移到上一节的最后一个页眉中。如果插入点在页脚中，ShowNextHeaderFooter 将它移到上一个页脚中。如果插入点在文档第一节的第一个页眉或页脚中，或者根本不在页眉和页脚中，将会产生错误。

_____________

请参阅

查看

CloseViewHeaderFooter

FormatHeaderFooterLink

GoToHeaderFooter

ShowNextHeaderFooter

ToggleHeaderFooterLink

ViewFooter

ViewHeader


ToggleFull

ToggleFull

切换全屏幕方式，使之开或关。

_____________

请参阅

查看

ToolsOptionsView

ViewToolbars


TogglePortrait

TogglePortrait

切换选中的纵向/横向页面方向。如果选中节具有不同的页面方向，将会导致错误。

_____________

请参阅

查看

FilePageSetup


ToolsOptionsView 示例

本示例切换隐藏文字的显示方式。

Dim dlg As ToolsOptionsView

GetCurValues dlg

dlg.ShowAll = 0

If dlg.Hidden Then

dlg.Hidden = 0

Else

dlg.Hidden = 1

End If

ToolsOptionsView dlg


ToolsOptionsView

示例

ToolsOptionsView [.DraftFont = number] [, .WrapToWindow = number] [, .PicturePlaceHolders = number] [, .FieldCodes = number] [, .BookMarks = number] [, .FieldShading = number] [, .StatusBar = number] [, .HScroll = number] [, .VScroll = number] [, .StyleAreaWidth = number or text] [, .Tabs = number] [, .Spaces = number] [, .Paras = number] [, .Hyphens = number] [, .Hidden = number] [, .ShowAll = number] [, .Drawings = number] [, .Anchors = number] [, .TextBoundaries = number] [, .VRuler = number]

显示或隐藏活动文档、宏编辑窗口和 Word 窗口中的各种元素。无论哪个窗口处于活动状态， .StatusBar 都可以控制状态栏的显示。除状态栏之外，ToolsOptionsView 的参数可按窗口的顺序一个接一个地控制其元素的显示。这些参数对应于“工具”菜单下“选项”对话框中“视图”选项卡中的选项。如下表所示，并非所有参数都可以应用于每一个视图或宏编辑窗口。引用一个不适用于当前活动视图的参数将会导致错误。

参数	解释	适用于以下视图
.DraftFont	如果是 1，以相同字体显示所有文本。	“普通”视图，“大纲”视图，宏编辑窗口
.WrapToWindow	如果是 1，则在文档窗口中实现字环绕，并忽略栏格式编排。	“普通”视图，“大纲”视图，宏编辑窗口
.PicturePlaceHolders	如果是 1，显示图形的位置信息。	全部
.FieldCodes	如果是 1，显示域代码。	全部
.BookMarks	如果是 1，在标有书签的文字周围显示粗体括号。	全部
.FieldShading	确定何时显示域底纹： 0 不允许 1 不限制 2 选择时	全部
.StatusBar	如果是 1，显示状态栏。	全部
.HScroll	如果是 1，在文档窗口中显示水平滚动条。	全部
.VScroll	如果是 1，在文档窗口中显示垂直滚动条。	全部
.StyleAreaWidth	以 twips 为单位设置样式区宽度（20 twips = 1 磅，72 磅 = 1英寸）或者以文本度量度量单位设置。	“普通”视图，“大纲”视图
.Tabs	如果是 1，显示制表符。	全部
.Spaces	如果是 1，显示空格标记。	全部
.Paras	如果是 1，显示段落标记。	全部
.Hyphens	如果是 1，显示可选分隔符。	全部
.Hidden	如果是 1，显示隐藏文字。	全部
.ShowAll	如果是 1，显示所有非打印字符。	全部
.Drawings	如果是 0，隐藏所有您在文档中创建的绘图对象。	“页面”视图
.Anchors	如果是 1，则在可能放置的项目旁边显示锁定标记。	“页面”视图
.TextBoundaries	如果是 1，则显示文字边界。	“页面”视图
.VRuler	如果是 1，则显示垂直标尺。	“页面”视图
如果想了解以上提到的选项的更多的信息，请选择“选项”对话框中的“视图”选项卡，然后选择“帮助”按钮。

_____________

请参阅

查看

ShowAll

TableGridlines

ToggleFull

ToolsOptionsCompatibility

ViewDraft

ViewRibbon

ViewRuler

ViewStatusBar


ViewDraft, ViewDraft()

ViewDraft [On]

ViewDraft()

语句是活动文档和宏编辑窗口草稿方式的切换开关。草稿方式是“工具”菜单下“选项”对话框中“视图”选项卡上的“草稿字体”复选框确定的。

参数	解释
On	确定是否打开草稿方式： 0 关闭草稿方式。 1 打开草稿方式。 省略 切换草稿方式。
ViewDraft() 函数返回以下值：

值	解释
0	草稿方式处于关闭状态
-1	草稿方式处于开启状态
_____________

请参阅

查看

ToolsOptionsView


ViewFieldCodes, ViewFieldCodes()

ViewFieldCodes [On]

ViewFieldCodes()

ViewFieldCodes 语句控制活动文档中所有域的显示。域代码的显示是由“工具”菜单下“选项”对话框的“视图”选项卡中的“域代码”复选框所确定的。您可以用该语句控制选中域的显示。

参数	解释
On	确定如何显示域： 0 显示域内容。 1 显示域代码。 省略 切换域显示方式。
ViewFieldCodes() 函数返回下列数值：

值	解释
0	显示的是域内容
-1	显示的是域代码
_____________

请参阅

查看

ToggleFieldDisplay

ToolsOptionsView


ViewFooter, ViewFooter()

ViewFooter

ViewFooter()

ViewFooter 语句将当前活动文档切换为“页面”视图，将插入点放在页脚区，并显示“页眉和页脚”工具栏。如果“页眉和页脚”工具栏已经显示出来，ViewFooter 将它隐藏起来并且将插入点移到文档区。

ViewFooter() 函数返回下列数值：

值	解释
0	如果插入点不在页脚区，则返回 0
-1	如果插入点在页脚区，则返回 -1
_____________

请参阅

查看

CloseViewHeaderFooter

ViewHeader


ViewFootnoteArea, ViewFootnoteArea()

ViewFootnoteArea [On]

ViewFootnoteArea()

在普通视图和大纲视图中，ViewFootnoteArea 语句打开或关闭脚注窗格。在页面视图中，ViewFootnoteArea 将插入点移出或移入脚注区。如果在活动文档中没有脚注，则会导致错误。

参数	解释
On	确定是打开还是关闭脚注窗格： 0 在普通和大纲视图中，关闭脚注窗格；在页面视图中，没有任何效果。 1 在普通和大纲视图中，将插入点在脚注和文档文本中与它相关联的引用标记之间移动。 省略 在普通和大纲视图中，切换脚注中的显示；在页面视图中，将插入点在脚注和文档中与之相关联的引用标记之间移动。
ViewFootnoteArea() 函数返回下列数值。

值	解释
0	脚注窗格关闭
-1	脚注窗格打开
_____________

请参阅

查看

ViewAnnotations

ViewEndnoteArea

ViewFootnotes


ViewHeader, ViewHeader()

ViewHeader

ViewHeader()

ViewHeader 语句将当前活动文档切换为页面视图。将插入点放在页眉区，并显示“页眉和页脚”工具栏。如果“页眉和页脚”工具栏已经显示出来了，则隐藏它，并且将插入点移到文档区。

ViewHeader() 函数返回下列数值：

值	解释
0	插入点不在页眉区
-1	插入点在页眉区
_____________

请参阅

查看

ViewFooter


ViewMasterDocument, ViewMasterDocument()

ViewMasterDocument

ViewMasterDocument()

ViewMasterDocument 语句将当前活动文档切换到主控文档视图。ViewMasterDocument() 函数返回下列数值：

值	解释
0	活动文档不在主控文档视图中
-1	活动文档在主控文档视图中
_____________

请参阅

查看

ViewOutline

ViewToggleMasterDocument


ViewMenus()

ViewMenus()

返回一个数值指明当前显示哪个菜单栏：当有打开的文档窗口时显示完整菜单栏。没有打开的文档窗口存在时，显示简化菜单栏。您可以使用 ViewMenus() 函数替代 CountWindows() 函数，作为判断是否有至少有一个文档窗口打开的另一个办法。

值	解释
0	如果完整的菜单栏显示，则返回 0
1	如果只有“文件”、“帮助”和应用程序控制菜单被显示出来，则返回 1。注意：如果其他菜单已通过 ToolsCustomizeMenuBar 添加进来，则这些菜单也被显示出来。
注释

当您用 ToolsCustomizeMenus 和 ToolsCustomizeMenuBar 自定义菜单时，这些数值对应于 MenuType 参数的值。

_____________

请参阅

查看

ToolsCustomizeMenus

ToolsCustomizeMenuBar


ViewNormal, ViewNormal()

ViewNormal

ViewNormal()

ViewNormal 语句将当前活动文档切换为普通视图。ViewNormal() 函数返回下列数值：

值	解释
0	活动文档不在普通视图中
-1	活动文档在普通视图中
_____________

请参阅

查看

FilePrintPreview

ViewDraft

ViewMasterDocument

ViewOutline

ViewPage


ViewPage, ViewPage()

ViewPage

ViewPage()

ViewPage 语句将当前活动文档切换为页面视图。ViewPage() 函数返回下列数值：

值	解释
0	活动文档不在页面视图中
-1	活动文档在页面视图中
_____________

请参阅

查看

FilePrintPreview

ViewDraft

ViewMasterDocument

ViewNormal

ViewOutline


ViewRibbon, ViewRibbon()

ViewRibbon [On]

ViewRibbon()

ViewRibbon 语句显示或隐藏“格式”工具栏。之所以包含这条语句是为了与 Word 的早期版本兼容。

参数	解释
On	确定是显示还是隐藏“格式编排”工具栏： 0 隐藏“格式”工具栏。 1 显示“格式”工具栏。 省略 切换“格式”工具栏的显示状态。
ViewRibbon() 函数返回下列数值：

值	解释
0	“格式”工具栏为隐藏方式
-1	“格式”工具栏为显示方式
_____________

请参阅

查看

ToolsOptionsView

ViewRuler

ViewStatusBar

ViewToolbars


ViewRuler, ViewRuler()

ViewRuler [On]

ViewRuler()

ViewRuler 语句显示或隐藏标尺。如果活动文档处在大纲视图或主控文档视图中，则会导致错误。

参数	解释
On	确定是显示还是隐藏标尺： 0 隐藏标尺。 1 示标尺。 省略 切换标尺开关。
ViewRuler() 函数返回下列数值：

值	解释
0	标尺处于隐藏状态
-1	标尺处于显示状态
_____________

请参阅

查看

ToolsOptionsView

ViewRibbon

ViewStatusBar

ViewToolbars


ViewStatusBar, ViewStatusBar()

ViewStatusBar [On]

ViewStatusBar()

ViewStatusBar 语句显示或隐藏状态栏。

参数	解释
On	确定是显示还是隐藏状态栏： 0 隐藏状态栏。 1 显示状态栏。 省略 切换状态栏开关。
ViewStatusBar() 函数返回下列数值：

值	解释
0	状态栏处于隐藏状态
-1	状态栏处于显示状态
_____________

请参阅

查看

ToolsOptionsView

ViewRibbon

ViewRuler

ViewToolbars


ViewToggleMasterDocument

ViewToggleMasterDocument

将当前活动文档由大纲视图切换为主控文档视图。或由主控文档视图切换为大纲视图。如果文档在普通视图、页面视图或打印预览视图中将会导致错误。

_____________

请参阅

查看

ViewMasterDocument

ViewOutline


ViewToolbars

ViewToolbars [.Toolbar = text] [, .Context = number] [, .ColorButtons = number] [, .LargeButtons = number] [, .ToolTips = number] [, .Reset] [, .Delete] [, .Show] [, .Hide]

ViewToolbsrs 语句参数对应于“视图”菜单下“工具栏”对话框中的选项。

参数	解释
.Toolbar	在“工具栏”对话框列表中的，您想要重新设置、删除、显示或隐藏的工具栏名。
.Context	确定一个用以重新设置一个已经存在的工具栏的模板： 0或省略 Normal 模板。 1          活动模板。
.ColorButtons	如果是 1，则显示彩色工具栏按钮。
.LargeButtons	如果是 1，则显示放大的工具栏按钮。
.ToolTips	如果是 1，则当鼠标指针指在按钮之上时，在它的下方显示按钮名称。
.Reset	还原指定工具栏，使它的按钮处于默认配置状态。
.Delete	删除指定工具栏。
.Show	显示指定工具栏。
.Hide	隐藏指定工具栏。
_____________

请参阅

查看

NewToolbar

ToolsOptionsView

ViewRibbon

ViewRuler

ViewStatusBar


ViewZoom

ViewZoom [.AutoFit] [, .TwoPages] [, .FullPage] [, .NumColumns = number] [, .NumRows = number] [, .ZoomPercent = text]

更改当前视图中活动文档和新文档的放大倍数。ViewZoom 的参数对应于“视图”菜单下“缩放”对话框中的选项。如果活动文档不在页面视图中，并且确定了参数 .TwoPage、.FullPage、.NumColumns，则会导致错误。

参数	解释
.AutoFit	设置缩放倍数，使页面的整个宽度可见。
.TwoPages	在页面视图中，设置缩放倍数，以看到两个完整页面。
.FullPage	在页面视图中，设置缩放倍数，使整个页面可见。
.NumColumns	当以网格方式显示多页时，该参数用来确定网格中的列数。
.NumRows	当以网格方式显示多页时，该参数用来确定网格中的行数。
.ZoomPercent	相对于默认显示（100%）的百分比缩放倍数。
_____________

请参阅

查看

ViewZoom100

ViewZoom200

ViewZoom75

ViewZoomPageWidth

ViewZoomWholePage


ViewZoom100

ViewZoom100

切换到普通视图，并将活动文档和新文档的显示缩放倍数设置为 100% 。

_____________

请参阅

查看

ViewZoom

ViewZoom200

ViewZoom75

ViewZoomPageWidth

ViewZoomWholePage


ViewZoom200

ViewZoom200

切换到普通视图，并将活动文档和新文档的显示缩放倍数设置为 200% 。

_____________

请参阅

查看

ViewZoom

ViewZoom100

ViewZoom75

ViewZoomPageWidth

ViewZoomWholePage


ViewZoom75

ViewZoom75

切换到普通视图，并将活动文档和新文档的显示缩放倍数设置为 75% 。

_____________

请参阅

查看

ViewZoom

ViewZoom100

ViewZoom200

ViewZoomPageWidth

ViewZoomWholePage


ViewZoomPageWidth

ViewZoomPageWidth

设置缩放倍数使页面的整个宽度可见。

_____________

请参阅

查看

ViewZoom

ViewZoom100

ViewZoom200

ViewZoom75

ViewZoomWholePage


ViewZoomWholePage

ViewZoomWholePage

设置缩放倍数使整个页在页面视图中可见。如果活动文档在其他视图中，则切换到页面视图。

_____________

请参阅

查看

ViewZoom

ViewZoom100

ViewZoom200

ViewZoom75

ViewZoomPageWidth


ClearFormField 示例

当焦点移动到文本表单域时，就运行这个示例。如果用户用 TAB 键移动到表单域，因而也选定了它的内容，则条件 GetSelStartPos() <> GetSelEndPos() i为真， Word 清除表单域。如果用户用鼠标单击表单域，则条件为假， Word 不执行操作。

If GetSelEndPos() <> GetSelStartPos() Then ClearFormField


ClearFormField

示例

ClearFormField

清除保护表单文档中选定的文本表单域里的文本。 ClearFormField 的功能类似于 BACKSPACE 键。请注意，在非保护表单文档中， ClearFormField 删除选定的文本表单域（除非选定了表单域且文档被保护，此时表单域的文本被清除，表单域不删除）。如果没有选定文本表单域，就会发生错误。此语句不能用于清除下拉式复选框表单域。

_____________

请参阅

表单

SetFormResult

TextFormField


ConvertObject 示例

这个示例将选定内嵌对象的显示改为贮存在 PROGMAN.EXE 中的图标。

ConvertObject .IconNumber = 28, .IconFilename = "PROGMAN.EXE", \

.Caption = "Caption Text", .DisplayIcon = 1


ConvertObject

示例

ConvertObject [.IconNumber = number] [, .ActivateAs = number] [, .IconFilename = text] [, .Caption = text] [, .Class = text] [, .DisplayIcon = number]

将选定内嵌对象从一类转换为另一类，允许不同的服务应用程序来编辑对象，或者改变对象在文档中的显示。 ConvertObject 语句的参数对应于“转换”对话框（“编辑”菜单，“对象”子菜单）中的选项。

参数	解释
.IconNumber	如果 .DisplayIcon 被置为 1 ，则为对应于您想用在由 .IconFilename 指定的程序文件中的图标的数。图标出现于“改变图标”对话框（“插入”菜单，“对象”命令）： 0 （零）对应于第一个图标， 1 对应于第二个图标，依此类推。如果省略，则使用第一个（默认）图标。
.ActivateAs	指定 Word 是否为选定对象转换或设置服务应用程序： 0 将选定对象转换为 .Class 指定的对象类型。 1 用 .Class 指定的服务应用程序来编辑对象。请注意，这一设置应用于所有选定类型的对象，当插入选定类型的对象时， Word 使用指定服务应用程序。
.IconFilename	如果 .DisplayIcon 被置为 1 ，则为要显示的图标所贮存的程序文件的路径和文件名。
.Caption	如果 .DisplayIcon 被置为 1 ，则为要显示的图标的标题。如果省略， Word 就插入对象名。
.Class	为指定要转换的对象类型的类名或者编辑对象的服务应用程序，与 .ActivateAs 的设置有关。 Word 文档的类名为 Word.Document.6 ，而 Word 图片的类名为 Word.Picture.6。 若要查询其他类名，请插入文档中要转换类型的对象并查看域代码，对象的域名后跟单词“EMBED”。
.DisplayIcon	指定是否以图标显示对象： 0 （零）或省略    对象不以图标显示。 1 对象以图标显示。
_____________

请参阅

对象链接和嵌入

InsertObject


CountDocumentVars() 示例

这个示例将活动文档中的每个文档变量重新设置为空字符串 ("") 。如果文档不包含变量，则显示一个信息框。

numVars = CountDocumentVars()

If numVars > 0 Then

For i = 1 To CountDocumentVars()

name$ = GetDocumentVarName$(i)

SetDocumentVar name$, ""

Next

Else

MsgBox "No document variables to reset."

End If


CountDocumentVars()

示例

CountDocumentVars()

返回活动文档中用 SetDocumentVar 或SetDocumentVar() 设置的文档变量数。

_____________

请参阅

文档、模板和加载项

GetDocumentVar$()

GetDocumentVarName$()

SetDocumentVar


DrawResetWordPicture

DrawResetWordPicture

将 Word “图片”对象的边界重新设置为包括图片编辑窗口中所有绘图对象。如果活动窗口不是图片编辑窗口，则会发生错误。

_____________

请参阅

绘图

DrawInsertWordPicture

FileClosePicture


FieldSeparator$, FieldSeparator$()

FieldSeparator$ Separator$

FieldSeparator$()

FieldSeparator$ 语句设置分隔字符 Separator$ ， TextToTable 操作中在单元格间划分文本时 Word 能识别它。例如，如果您的数据的信息项以百分号 (%) 分界，您就可以在把数据转换为表格之前使用指令 FieldSeparator$ "%" 。 FieldSeparator$() 函数返回当前分隔字符。

_____________

请参阅

表格

TextToTable


FileClosePicture

FileClosePicture

关闭图片编辑窗口，并将 Word “图片”对象嵌入到文档中。

_____________

请参阅

绘图

DrawResetWordPicture


FormatBullet

FormatBullet [.Points = number] [, .Color = number] [, .Alignment = number] [, .Indent = number or text] [, .Space = number or text] [, .Hang = number] [, .CharNum = number] [, .Font = text]

添加项目符号到选定段落。 FormatBullet 语句的参数对应于“更改项目符号”对话框（“格式”菜单，“项目符号和编号”命令，“项目符号”选项卡）中的选项。您不能用 Dialog 或 Dialog() 指令显示这个对话框。

参数	解释
.Points	项目符号的大小，以磅为单位。
.Color	项目符号的颜色（有关颜色的列表，请参阅 CharColor）。
.Alignment	指定项目符号在左缩进和文本首行间的空格内的对齐方式；仅当 .Space 为 0 （零）时生效： 0 （零）或省略    左对齐 1 居中对齐 2 右对齐
.Indent	左缩进和文本首行之间的距离，以磅或文本量值为单位。
.Space	项目符号和文本首行之间的距离，以磅或文本量值为单位。
.Hang	如果为 1 ，则应用悬挂式缩进到选定段落。
.CharNum	31 与对应于“符号”对话框（“插入”菜单）中符号的位置的和，从左到至右计算。例如，若要指定 omega () ，由于它在“符号”字体的符号表中的位置为 56 ，所以请将 .CharNum 设置为 87 。
.Font	包含符号的字体的名称。装饰字体的名称在“符号”对话框中的“字体”框内。
_____________

请参阅

项目符号和编号

CharColor

FormatBulletsAndNumbering

FormatHeadingNumber

FormatMultilevel

FormatNumber


FormatHeadingNumber

FormatHeadingNumber [.Points = number] [, .Color = number] [, .Before = text] [, .Type = number] [, .After = text] [, .StartAt = number] [, .Include = number] [, .Alignment = number] [, .Indent = number or text] [, .Space = number or text] [, .Hang = number] [, .RestartNum = number] [, .Level = number] [, .Font = text] [, .Strikethrough = number] [, .Bold = number] [, .Italic = number] [, .Underline = number]

将标题级别编号应用到文档中以九个内部标题级别样式之一编排的所有段落，或者对指定标题级别改变其编号。 FormatHeadingNumber 语句的参数对应于“更改标题编号”对话框（“格式”菜单，“标题编号”命令）中的选项。

参数	解释
.Points, .Color, .Font, .Strikethrough, .Bold, .Italic, .Underline	将字符格式编排应用到指定级别编号。有关参数说明，请参阅 FormatFont。
.Before, .After, .Alignment, .Indent, .Space, .Hang	对指定级别编号设置选项。有关参数说明，请参阅 FormatNumber。
.Type	对指定级别的标题编号指定格式： 0 1, 2, 3, 4 1 I, II, III, IV 2 i, ii, iii, iv 3 A, B, C, D 4 a, b, c, d 5 1st, 2nd, ... 6 One, Two, ... 7 First, Second, ...
.StartAt	每一序列的指定级别标题的第一个标题的编号。如果 .Type 为 3 或 4 ，则 .StartAt 对应于起始字母的字母表的顺序位置。
.Include	指定是否包括从指定级别编号的前一标题中得到的编号和位置选项： 0 既不包括编号也不包括位置选项。 1 包括从指定级别前的较高级别标题中得到的一系列编号。 2 既包括从较高级别标题得到的编号，也包括从前一级别得到的位置选项。
.RestartNum	如果为 1 ，则在每一新节重新开始标题编号。
.Level	从 1 到 9 的编号，对应于要改变其编号选项的标题级别。
_____________

请参阅

项目符号和编号

FormatBullet

FormatHeadingNumbering

FormatMultilevel

FormatNumber


FormatMultilevel

FormatMultilevel [.Points = number] [, .Color = number] [, .Before = text] [, .Type = number] [, .After = text] [, .StartAt = number] [, .Include = number] [, .Alignment = number] [, .Indent = number or text] [, .Space = number or text] [, .Hang = number] [, .Level = number] [, .Font = text] [, .Strikethrough = number] [, .Bold = number] [, .Italic = number] [, .Underline = number]

将多级编号应用到选定段落或对指定级别改变编号选项。 FormatMultilevel 语句的参数对应于“更改多级方式”对话框（“格式”菜单，“项目符号和编号”命令，“多级符号”选项卡）中的选项。您不能用 Dialog 或 Dialog() 指令来显示这一对话框。

参数	解释
.Level	从 1 到 9 的编号，对应于您想改变其编号选项的标题级别。 请注意，如果您指定 .Level ，则您在 FormatMultilevel 指令中设置的选项就不使用。若要使用这些设置，请增加第二个不指定 .Level 的 FormatMultilevel 指令。
.Points, .Color, .Font, .Strikethrough, .Bold, .Italic, .Underline	将字符格式编排应用到指定级别的编号。有关单个参数的说明，请参阅 FormatFont.
.Before, .After, .Alignment, .Indent, .Space, .Hang	对指定级别的编号设置选项。有关参数说明，请参阅 FormatNumber。
.Type	对指定级别的标题编号指定格式： 0 1, 2, 3, 4 1 I, II, III, IV 2 i, ii, iii, iv 3 A, B, C, D 4 a, b, c, d 5 1st, 2nd, ... 6 One, Two, ... 7 First, Second, ...
.StartAt	每一序列的指定级别标题的第一个标题的编号。如果 .Type 为 3 或 4 ，则 .StartAt 对应于起始字母的字母表的顺序位置。
.Include	指定是否包括从指定级别编号的前一标题中得到的编号和位置选项： 0 既不包括编号也不包括位置选项。 1 包括从指定级别前的较高级别标题中得到的一系列编号。 2 既包括从较高级别标题得到的编号，也包括从前一级别得到的位置选项。
_____________

请参阅

项目符号和编号

FormatBullet

FormatBulletsAndNumbering

FormatHeadingNumber

FormatNumber


FormatNumber

FormatNumber [.Points = number] [, .Color = number] [, .Before = text] [, .Type = number] [, .After = text] [, .StartAt = number] [, .Include = number] [, .Alignment = number] [, .Indent = number or text] [, .Space = number or text] [, .Hang = number] [, .Font = text] [, .Strikethrough = number] [, .Bold = number] [, .Italic = number] [, .Underline = number]

对选定段落进行编号。 FormatNumber 语句的参数对应于“更改编号”对话框（“格式”菜单，“项目符号和编号”命令，“编号”选项卡）中的选项。您不能用 Dialog 或 Dialog() 指令显示这个对话框。

参数	解释
.Points, .Color, .Font, .Strikethrough, .Bold, .Italic, .Underline	将字符格式编排应用到指定级别的编号。有关参数的说明，请参阅 FormatFont。
.Before	您想让其出现于每个编号之前的文本（如果有的话）。
.Type	指定编号列表的格式： 0 (zero)    1, 2, 3, 4 1 I, II, III, IV 2 i, ii, iii, iv 3 A, B, C, D 4 a, b, c, d
.After	您想让其出现于每个编号之后的文本（如果有的话）。
.StartAt	第一个选定段落的编号。如果 .Type 为 3 或 4 ，则 .StartAt 对应于起始字母的字母表的顺序位置。
.Include	指定是否包括从指定级别编号的前一标题中得到的编号和位置选项： 0 既不包括编号也不包括位置选项。 1 包括从指定级别前的较高级别标题中得到的一系列编号。 2 既包括从较高级别标题得到的编号，也包括从前一级别得到的位置选项。
.Alignment	指定编号在左缩进和文本首行间的空格内的对齐方式；仅当 .Space 为 0 （零）时生效： 0 （零）或省略    左对齐 1 居中对齐 2 右对齐
.Indent	左缩进和文本首行之间的距离，以磅或文本量值为单位。
.Space	编号和文本首行之间的距离，以磅或文本量值为单位。
.Hang	如果为 1 ，则应用悬挂式缩进到选定段落。
.Font	要在编号中使用的字体。
_____________

请参阅

项目符号和编号

FormatBullet

FormatBulletsAndNumbering

FormatHeadingNumber

FormatMultilevel


FormShading, FormShading()

FormShading [On]

FormShading()

FormShading 语句控制活动文档中表单域的底纹。

参数	解释
On	指定是否显示带底纹或不带底纹的表单域。 1 显示带底纹的表单域。 0 显示不带底纹的表单域。 省略    切换表单域底纹。
如果表单域没有底纹，则 FormShading()  函数返回 0 （零）；如果表单域有底纹，则返回 -1 。

_____________

请参阅

表单

FormFieldOptions


GetDocumentVarName$()

GetDocumentVarName$(VariableNumber)

返回用 SetDocumentVar 或 SetDocumentVar() 设置的文档变量名。

参数	解释
VariableNumber	文档变量的数目，从 1 到贮存在活动文档中的文档变量总数（您可以用 CountDocumentVars() 得到总数）。
有关示例，请参阅 CountDocumentVars() 示例。

_____________

请参阅

文档、模板和加载项

CountDocumentVars()

GetDocumentVar$()

SetDocumentVar


InsertSectionBreak

InsertSectionBreak

以和包含插入点的节相同的格式编排插入分节符。

_____________

请参阅

节和文档格式

InsertBreak

InsertColumnBreak

InsertPageBreak


LockDocument, LockDocument()

LockDocument [Lock]

LockDocument()

LockDocument 对整个主控文档或它的一个子文档添加或删除其只读保护。如果插入点在主控文档内，但不在子文档中， LockDocument 锁定整个文档。如果插入点在子文档中，则 LockDocument 只对该子文档锁定或解除锁定。

参数	解释
Lock	指定是否对子文档或主控文档添加或删除只读保护： 0 删除只读保护。请注意，如果您对整个主控文档解除锁定，则 Word 解除原行锁定的所有子文档。 1 添加只读保护。 省略    切换只读保护。
如果子文档或主控文档是只读的，则 LockDocument() 函数返回 -1 ；如果不是，则返回 0 （零）。请注意，如果插入点在子文档中，则 LockDocument() 只返回该子文档的只读状态信息，否则，就返回整个主控文档的信息。

_____________

请参阅

环境

ToolsProtectDocument

ToolsProtectSection

ToolsUnprotectDocument


Magnifier, Magnifier()

Magnifier [On]

Magnifier()

Magnifier 在打印预览中将鼠标指针从标准指针改为类似于放大的玻璃杯的指针，或者相反。当鼠标指针为放大的玻璃杯指针时，用户可以放大页面上的特定区域，或者缩小以便查看整页或多页。

参数	解释
On	指定鼠标在打印预览中显示方式： 0 显示标准指针。 1 显示放大的玻璃杯指针。 省略    切换鼠标指针。
如果鼠标指针是放大的玻璃杯，则 Magnifier() 函数返回 -1 ；如果是标准指针，则返回 0 （零）。

_____________

请参阅

查看

FilePrintPreview

ViewZoom


MicrosoftSystemInfo

MicrosoftSystemInfo

运行 Microsoft System Info 。它显示关于当前操作环境的信息。

_____________

请参阅

环境

AppInfo$()

GetSystemInfo


NormalViewHeaderArea

NormalViewHeaderArea [.Type = number] [, .FirstPage = number] [, .OddAndEvenPages = number] [, .HeaderDistance = text] [, .FooterDistance = text]

打开页眉／页脚窗格（“标准”或“大纲”视图）或显示页眉或页脚区域（“页面”视图），并设置页眉或页脚的选项。 Word 6.0 版保留了显示页眉／页脚窗格的能力，以便您可以编辑任何类型的页眉或页脚，而不必去管在文档中的页码，另外拼写检查器也可以突出显示页眉或页脚中拼错了的词。

NormalViewHeaderArea 语句的参数对应于 Word 2.x 版的“页眉/页脚”对话框中的选项。请注意，在 Word 6.0版中这些选项通常用 FilePageSetup 来设置。虽然您可以检索 NormalViewHeaderArea 对话记录的中的信息，但是您不能这一语句显示 Word 2.x 版的对话框。

参数	解释
.Type	指定是否显示页眉或页脚区域。 .Type 的可能值与 .FirstPage 和 .OddAndEvenPages 的设置有关。 如果 .FirstPage 和 .OddAndEvenPages 都设置为 0 （零），则： 0 页眉 1 页脚 如果 .FirstPage 设置为 1 而 .OddAndEvenPages 设置为 0 （零），则： 0 页眉 1 页脚 2 首页页眉 3 首页页脚 如果 .FirstPage 设置为 0 （零）而 .OddAndEvenPages 设置为 1 ，则： 0 偶数页眉 1 偶数页脚 2 奇数页眉 3 奇数页脚 如果 .FirstPage 和 .OddAndEvenPages 都设置为 0 （零），则： 0 首页页眉 1 首页页脚 2 偶数页眉 3 偶数页脚 4 奇数页眉 5 奇数页脚
.FirstPage	如果为 1 ，则允许首页页眉或页脚与本节中的其他各页不同。
.OddAndEvenPages	如果为 1 ，则允许偶数页的页眉或页脚与奇数页的页眉或页脚不同。
.HeaderDistance	从页面顶端到页眉的距离。
.FooterDistance	从页面底端到页脚的距离。
_____________

请参阅

查看

FilePageSetup

ViewFooter

ViewHeader


PathFromMacPath$() 示例

在 Word for Windows中，这个示例返回路径和文件名 "\ HD80\ Reports\ !FinalRe.por"。

winpath$ = PathFromMacPath$("HD80:Reports:Final Report")


PathFromMacPath$()

示例

PathFromMacPath$(Path$)

将由 Path$ 指定的 Macintosh 路径和文件名转换为当前操作系统有效的路径和文件名。

在 Windows 中，每个目录名和文件名可以包含最多八个字符，后接一个文件扩展名（句点加上最多三个字符）。当转换 Macintosh 为有效的 Windows 路径时， Word 对每个 Macintosh 目录名和文件名进行下列操作：

删除空格。

如果已删除空格或多余字符，则在目录名或文件名前添加一个感叹号 (!) 。

如果目录名或文件名多于八个字符，则添加一个句点，并删除多余字符，以组成有效的带扩展名的 Windows 的目录名或文件名。例如， Macintosh 目录名“Employee Addresses”转换成 Windows 目录名则为“!Employe.ead”。

使用第一个句点（如果有的话）来判断 Windows 目录名或文件名的扩展名开始的位置，并删除无用的字符。例如， Macintosh 文件名“PC text file.text”转换成 Windows 文件名为“!PCtextf.tex”。

如果有多于一个句点，则删除第一个和最后一个句点之间的所有字符。例如，Macintosh 文件名“chapter1.rev.3”转换成 Windows 文件名为“!chapter.3”。


SelectionFileName$() 示例

这个示例检查当前窗口是否是宏编辑窗口。如果不是，本示例检查 SelectionFileName$() 返回的文本的最后一个字符。如果最后一个字符是反斜杠 ( \ ) ，表明文档从未保存过，则显示一条信息。

a$ = SelectionFileName$()

If SelInfo(27) = -1 Then

MsgBox "A macro-editing window is active."

Goto bye

End If

If Right$(a$, 1) = "\" Then

MsgBox "The active document has never been saved."

End If

bye:


SelectionFileName$()

示例

SelectionFileName$()

返回活动文档的完整路径和文件名，如果它尚未保存的话。如果文档尚未保存，或者如果活动文档是宏编辑窗口，则 SelectionFileName$() 返回当前路径，后接一反斜杠 ( \ ) 。

_____________

请参阅

文档、模板和加载项

FileName$()

FileNameInfo$()

GetDirectory$()


WW2CallingConvention
WW2CallingConvention, WW2CallingConvention()

WW2CallingConvention [On]

WW2CallingConvention()

WW2CallingConvention 语句（只有 Word 6.0a 才有）控制 Word 在一个宏调用另一个宏时如何解决命名冲突问题。如果指定名字的宏同时存在于活动模板和包含调用宏的模板中，就会产生冲突。在 Word 2.x 中，这种情况下就运行活动模板中的宏。在 Word 6.0 中则运行调用模板中的宏。

通过在宏的开始处增加一条 WW2CallingConvention 指令，您可以暂时回复到 Word 2.x 特性。当包含 WW2CallingConvention 指令的宏结束运行时，就又恢复到 Word 6.0 特性。

参数	解释
On	指定 Word 如何解决命名冲突： 0 （零） Word 6.0 特性（调用模板优先） 1 或省略 Word 2.x 特性（活动模板优先）
如果 Word 2.x 调用约定起作用，则 WW2CallingConvention() 函数返回 -1 ；否则，返回 0 （零）。

一般来说，仅当您已经有一套依赖于 Word 2.x 特性来解决命名冲突的模板时，才应该使用 WW2CallingConvention 。在使解决命名冲突的方式能运行于 Word 6.0a ，而不需要太多重写时，十分方便。但是，请明白，不管哪个运行您的解决方式，也都需要 Word 6.0a ，因为 WW2CallingConvention 并不是 Word 6.0 的组成部分。

_____________

请参阅

转换 Word 2.x 中的宏

ToolsMacro


Programming with Microsoft Word
用Microsoft Word 编程

Word 帮助目录

WordBasic 语句和函数

约定

按类别划分的 WordBasic 语句和函数

语句和函数索引

其他 WordBasic 信息

WordBasic 中的新内容

创建动态对话框

WordBasic 帮助中的主要示例

运算符和预定义书签

错误信息

工具栏按钮图符和编号

转换 Word 2.x 中的宏

Microsoft Word 开发工具

Microsoft 释疑公司


Conventions
约定

在关于 WordBasic 语句或功能的每一个帮助主题中，语句或函数名以粗体标题的形式显示在窗口顶端。粗体标题后面是一个或多个文法语句。例如：

CharLeft [Count] [, Select]

键入指令时，文法中的粗体部分要完全保留；中括号中的内容是可选项。添加可选项时注意不要把中括号加上。文法中的斜体部分是变量名或数值的占位符—您可以用实际的数值或已赋值的变量替换对应的内容。

例如，一个宏中的 CharLeft 指令可以有以下形式：

CharLeft

CharLeft 1

CharLeft 1, 1

如果您已赋予数值变量 move 和 extend 可以接受的数值，就可以使用下面的 CharLeft 指令：

CharLeft move, extend

注意参数必须用逗号分隔。参数可以接受的赋值范围列在文法后的注释文字中，一般是表格的形式。有些文法示例带有必须的参数，例如：

EditReplaceStyle .Style = text

使用这一语句时必须带有 .Style 参数—注意参数名前面的句点。您必须键入以粗体形式出现的所有文本，并为斜体格式的占位符指定一个具体的值或变量，例如：

EditReplaceStyle .Style = "Heading 1"

EditReplaceStyle .Style = "Normal"

另外有一些语句和函数既有必须的参数，也有可选的参数：

EditAutoText .Name = text [, .Context = number] [, .InsertAs = number] [, .Insert] [, .Add] [, .Delete]

根据这一文法，您必须键入第一个参数和一个数值，但其他的参数是可选的。同时，根据文法，对您编制的宏中的这一语句，所有的参数必须要用逗号分隔。例如：

EditAutoText .Name = "disclaimer", .Context = 1, .Add

WordBasic 帮助中的大部分主题都带有如何使用具体的语句和函数的示例。


Activate 示例

这个示例存贮活动窗口名，打开一个文档，然后重新激活原来的窗口：

firstwin$ = WindowName$()

FileOpen "CHAP2.DOC"

Activate firstwin$


Activate

示例

Activate WindowTitle$ [, PaneNum]

用指定的 WindowTitle$ 激活窗口。您可以用 WindowName$() 函数把窗口名存贮到一个变量中，然后需要时就可用带 Activate 的该变量激活窗口。

WindowTitle$ 必须与“窗口”菜单中的窗口名匹配。请注意，改变目录时窗口名也改变，所以使用 Activate 时要小心。存贮在当前目录中的文档窗口标题只包含文件名。不存贮在当前目录中的文档窗口标题除文件名外还包含完整的路径名。

参数	解释
WindowTitle$	要激活的窗口名，就如它在“窗口”菜单中一样
PaneNum	要激活的窗格数: 1 或 2    顶端窗格 3 或 4    底端窗格
_____________

请参阅

窗口

DocSplit

NextWindow

OtherPane

PrevWindow

WindowList

WindowName$()

WindowNumber

WindowPane()


ClosePane 示例

如果窗口是拆分的，这个示例关闭活动窗口中较低的窗格：

If DocSplit() Then ClosePane


ClosePane

示例

ClosePane

关闭窗格。使用这条语句可关闭拆分文档中的较低窗格、脚注窗格或任何其他类型的窗格。如果在活动窗口中窗格未打开，ClosePane 就产生一个 WordBasic 错误。请注意，ClosePane 不关闭文档窗口。

_____________

请参阅

窗口

DocSplit

OtherPane

WindowPane()


CountWindows() 示例

这个宏并排排列窗口，而不是象“重排所有窗口”命令（“窗口”菜单）那样把窗口上下排放：

Sub MAIN

yours$ = WindowName$()	'Note which window is active

If DocMaximize() Then DocRestore	'Can't resize if maximized

fullwidth = Val(AppInfo$(6))	'Get workspace width

fulldepth = Val(AppInfo$(7))	'Get workspace depth

width = fullwidth / CountWindows()

For wnd = 1 To CountWindows()	'Move each window, resize it

x = width *(wnd - 1)

If DocMinimize() Then DocRestore	'Can't resize if minimized

DocMove x, 0

DocSize width, fulldepth - 1

NextWindow

Next wnd

Activate yours$	'Reactivate original window

End Sub


CountWindows()

示例

CountWindows()

返回打开的文档和宏编辑窗口的数目，这个数目也是在“窗口”菜单中列出的窗口数日。

_____________

请参阅

窗口

WindowName$()

WindowNumber


DocMaximize, DocMaximize()

DocMaximize [State]

DocMaximize()

DocMaximize 语句根据 State 的值使所有文档窗口最大化或还原：为 1 使窗口最大化，为 0 （零）还原窗口。如果 State 没有指定，DocMaximize 在还原和最大化状态之间切换文档窗口。

DocMaximize() 函数返回下列值：

返回值	解释
-1	如果文档窗口被最大化
0（零）	如果文档窗口未最大化
_____________

请参阅

窗口

AppMaximize

DocMinimize

DocRestore


DocMinimize, DocMinimize()

DocMinimize

DocMinimize()

DocMinimize 语句使活动文档窗口缩减为图标。

DocMinimize() 函数返回下列值：

返回值	解释
-1	如果文档窗口被最小化
0（零）	如果文档窗口未最小化
_____________

请参阅

窗口

AppMinimize

DocMaximize

DocRestore


DocMove 示例

这个示例把文档窗口从工作区的左上角移动到向右 20 磅和向下 40 磅的位置：

If DocMaximize() = 0 Then DocMove 20, 40


DocMove

示例

DocMove HorizPos, VertPos

把活动文档窗口或图标移动到指定位置。如果活动文档窗口是最大化的， Word 就不能执行这一操作，产生一个错误。

参数	解释
HorizPos, VertPos	从工作区左上角到文档窗口左上角的水平距离（HorizPos）和垂直距离（VertPos）距离，以磅为单位计算（72 磅 = 1 英寸）。允许采用负值。
_____________

请参阅

窗口

AppMove

DocSize

DocWindowPosLeft

DocWindowPosTop


DocRestore 示例

如果文档窗口是最大化的，这个示例则还原之。

If DocMaximize() <> 0 Then DocRestore


DocRestore

示例

DocRestore

从最大化状态还原所有文档窗口或还原最小化文档窗口。如果文档窗口已还原，则 DocMaximize 把它们最大化；如果文档窗口已最大化，则 DocMaximize 还原之。而 DocRestore 则不同，它只还原窗口。如果活动窗口已经还原，它就产生一个错误。

没有与 DocRestore 对应的函数。不过，作为本项的示例，您可以用 DocMaximize() 函数来判断文档窗口是否还原。

_____________

请参阅

窗口

AppRestore

DocMaximize

DocMinimize


DocSize 示例

这个示例保证文档窗口被还原，然后使活动文档窗口的大小改变到工作区宽度的一半：

If DocMaximize() or DocMinimize() Then DocRestore

DocSize(Val(AppInfo$(6)) / 2), Val(AppInfo$(7))


DocSize

示例

DocSize Width, Height

使活动文档窗口的大小改变到指定的宽度 Width 和高度 Height ，以磅为单位（ 72 磅 = 1 英寸）。如果活动窗口已最大化或最小化，则 Word 不能执行这一操作，并产生一个错误。请注意，这个语句必须有窗口宽度和高度的参数。若只要改变窗口的宽度或高度，请使用 DocWindowWidth 或 DocWindowHeight。

_____________

请参阅

窗口

AppInfo$()

AppSize

DocWindowHeight

DocWindowWidth


DocSplit 示例

这个示例把活动文档窗口从中间拆分开：

DocSplit 50


DocSplit, DocSplit()

示例

DocSplit Percentage

DocSplit()

DocSplit 语句在给定高度上拆分活动文档窗口，给定高度以文档区顶端和底端之间的距离的百分比来表示。

DocSplit() 函数返回拆分位置，以活动文档区高度的百分比表示。如果文档窗口不被拆分，此函数就返回 0 （零）。

DocSplit 语句接受 0 （零）和 100 之间的值，但是接近范围边界的值可能不会拆分窗口，这取决于所显示的屏幕元素和窗口的大小。通过使用 WindowPane() 函数，您可以判定窗口是否拆分。

_____________

请参阅

窗口

ClosePane

OtherPane

WindowPane()


DocWindowHeight 示例

如果活动文档窗口被最大化或最小化，这个示例把它还原，并移动到工作区的左上角，然后使窗口的大小为 267 磅高：

If DocMaximize() or DocMinimize() Then DocRestore

DocMove 0, 0

DocWindowHeight 267


DocWindowHeight, DocWindowHeight()

示例

DocWindowHeight Height

DocWindowHeight()

DocWindowHeight 语句设置文档活动窗口到指定的高度 Height ，以磅为单位（ 72 磅 = 1 英寸）。如果活动窗口已最大化或最小化，则 Word 不能执行这一操作，并产生一个错误。DocWindowHeight() 函数返回以磅为单位的活动文档窗口的高度。

_____________

请参阅

窗口

AppWindowHeight

DocSize

DocWindowWidth


DocWindowPosLeft 示例

这个示例显示活动文档窗口相对于工作区边框的水平和垂直位置：

horizpos = DocWindowPosLeft()

vertpos = DocWindowPosTop()

MsgBox "Points from left:" + Str$(horizpos) + Chr$(13) + \

"Points from top:" + Str$(vertpos), "Doc Window Position"


DocWindowPosLeft, DocWindowPosLeft()

示例

DocWindowPosLeft Position

DocWindowPosLeft()

DocWindowPosLeft 语句把活动文档窗口或图标放到距工作区边框的 Position 磅处。如果活动窗口已最大化，则 Word 不能执行这一操作，并产生一个错误。DocWindowPosLeft() 函数返回以磅为单位的水平位置。

_____________

请参阅

窗口

AppWindowPosLeft

DocMove

DocSize

DocWindowHeight

DocWindowPosTop

DocWindowWidth


DocWindowPosTop, DocWindowPosTop()

DocWindowPosTop Position

DocWindowPosTop()

DocWindowPosTop 语句放置活动文档窗口或图标到距工作区上边框的 Position 磅处。如果活动窗口已最大化，则 Word 不能执行这一操作，并产生一个错误。DocWindowPosTop() 函数返回以磅为单位的垂直位置。有关示例，请参阅DocWindowPosLeft 示例。

_____________

请参阅

窗口

AppWindowPosTop

DocMove

DocSize

DocWindowHeight

DocWindowPosTop

DocWindowWidth


DocWindowWidth 示例

这个示例使 Word 窗口最大化，并还原文档窗口。如果有两个打开的文档窗口，则每个窗口都被设置为半屏幕大小，并排放置。

If AppMaximize() = 0 Then AppMaximize

If DocMaximize() Or DocMinimize() Then DocRestore

If CountWindows() = 2 Then

DocMove 0, 0

DocWindowWidth 240

NextWindow

If DocMinimize() Then DocRestore

DocMove 240, 0

DocWindowWidth 240

End If


DocWindowWidth, DocWindowWidth()

示例

DocWindowWidth Width

DocWindowWidth()

DocWindowWidth 语句设置文档活动窗口到指定的宽度 Width ，以磅为单位（ 72 磅 = 1 英寸），而不影响它的高度。如果活动窗口已最大化或最小化，则 Word 不能执行这一操作，并产生一个错误。DocWindowWidth() 函数返回以磅为单位的活动文档窗口的宽度。

_____________

请参阅

窗口

AppWindowWidth

DocSize

DocWindowHeight


OtherPane 示例

这个示例插入一个脚注，然后把插入点返回到脚注引用标记。在页面视图中，由于脚注不作为单独的窗格插入，GoBack 指令把插入点返回到引用标记。在标准视图或大纲视图中，指令 OtherPane 返回插入点。

FntText$ = "This is the footnote text"

InsertFootnote

Insert FntText$

If ViewPage() Then

GoBack

Else

OtherPane

End If


OtherPane

示例

OtherPane

把插入点移动到活动窗口下一窗格中的最近位置。OtherPane 通常使用于打开批注或脚注窗格的宏中。

_____________

请参阅

窗口

ClosePane

DocSplit

WindowPane()


Window()

Window()

返回一个数，该数对应于活动窗口在“窗口”菜单中的位置，其中 1 对应于第一个位置， 2 对应于第二个位置，依此类推。如果没有打开的窗口，Window() 就返回 0 （零）。

Word 在“窗口”菜单中以字母顺序列出各窗口。请注意，改变当前目录会影响窗口标题，因而影响它们在“窗口”菜单中的顺序。贮存在当前目录的文档，其窗口标题只包含文件名，而不贮存在当前目录中的文档其窗口标题则包含完整的路径和文件名。

_____________

请参阅

窗口

WindowList

WindowName$()

WindowNumber

WindowPane()


WindowArrangeAll

WindowArrangeAll

全部重排打开的窗口，使之不重叠。

_____________

请参阅

窗口

DocMove

DocRestore

DocSize


WindowList 示例

这个示例激活包含文档 TEST.DOC 的第一个窗口：

numwin = CountWindows()

If numwin <> 0 Then

i = 1

While i <= numwin And leave <> 1

winname$ = WindowName$(i)

If InStr(winname$, "TEST.DOC") Then leave = 1

If leave <> 1 Then i = i + 1

Wend

End If

If InStr(winname$, "TEST.DOC") Then

WindowList i

Else

MsgBox "There is no window containing TEST.DOC."

End If


WindowList

示例

WindowList Number

激活在“窗口”菜单中列出的窗口。指令 WindowList 1 激活列表中的第一个窗口，WindowList 2 激活第二个窗口，依此类推，直到打开窗口的总数。如果没有列出窗口，或者 Number 大于打开窗口的数目，则产生错误。

_____________

请参阅

窗口

CountWindows()

Window()

WindowName$()

WindowNumber

WindowPane()


WindowName$()

WindowName$(Number)

返回列在“窗口”菜单位置 Number 处的打开窗口的标题，其中 1 对应于第一个位置， 2 对应于第二个位置，依此类推。如果Number 是 0 （零）或被省略，则 WindowName$() 返回活动窗口的标题。请注意，改变当前目录会影响窗口标题，因而影响它们在“窗口”菜单中的顺序。贮存在当前目录的文档，其窗口标题只包含文件名，而不贮存在当前目录中的文档其窗口标题则包含完整的路径和文件名。

有关示例，请参阅WindowList 示例。

_____________

请参阅

窗口

CountWindows()

Window()

WindowList

WindowNumber

WindowPane()


WindowNewWindow

WindowNewWindow

打开包含活动文档的新窗口。 Word 添加一个冒号（:）和一个数字到以多于一个窗口打开的文档的窗口标题中。例如，如果活动文档的窗口标题是 TEST.DOC，而且您运行了 WindowNewWindow，Word 就打开一个标题为 TEST.DOC:2 的窗口，而把原来的窗口标题改为 TEST.DOC:1。

_____________

请参阅

窗口

DocSplit

WindowArrangeAll

WindowName$()


WindowNumber

WindowNumber

激活列在“窗口”菜单中的一个窗口。Window1 激活列表中的第一个窗口，Window2 激活第二个窗口，依此类推，直到 Window9 。如果没有列出窗口，或者 Number 大于列出的窗口数目，则产生一个错误。

注释

您不能用变量代替 Number ，您必须使用一个整数。WindowList 提供了与 WindowNumber 同样的功能，但可接受数字变量，以指定要激活的窗口。

_____________

请参阅

窗口

Activate

CountWindows()

Window()

WindowList

WindowName$()

WindowPane()


WindowPane() 示例

如果活动窗口是拆分的且插入点位于底端窗格中，这个示例把插入点移动到活动文档的顶端窗格：

If WindowPane() = 3 Then OtherPane


WindowPane()

示例

WindowPane()

返回下列值。

返回值	解释
1	如果活动窗口不是拆分的，或者插入点位于活动窗口的顶端窗格中
3	如果插入点位于活动窗口底端窗格中（例如，脚注窗格、批注窗格或两个文档窗口中的较低者）
_____________

请参阅

窗口

DocSplit

OtherPane

ViewAnnotations()

ViewFootnoteArea()


The Microsoft Word Developers Kit
Microsoft Word 开发工具

Microsoft 出版社出版的《 Microsoft Word 开发工具》一书，是使用 WordBasic 宏编程的综合指南和参考书。本书分为三个部分：

第一部分，“学习 WordBasic ”，是您学习 WordBasic 的入门，或者，如果您已经熟悉另一种 Basic 编程语言，它帮助您了解 WordBasic 的细节。

第二部分，“ WordBasic 参考”，是 WordBasic “帮助”中语句和函数参考的打印版本。

第三部分，“附录”，提供关于工具和 WordBasic 扩充的信息，并附带一张磁盘。

《 Microsoft Word 开发工具》中提供的磁盘包括下列内容：

WordBasic 的“工作组”扩充，它允许访问通讯应用编程接口（ MAPI ）。通过使用“工作组”扩充，您可以在您的自定义应用程序中包括电子邮件（ e-mail ）。

WordBasic 的开放式数据库联接扩展，它允许访问任何支持 ODBC 应用程序接口（ API ）标准的数据库管理系统（ DBMS ）中的数据。

创建加载项的工具，这些加载项通过使用 Microsoft Word 应用程序接口（ Word API ），直接与 Microsoft Word 相互联系。

包含示例宏和工具的模板，其中包括帮助您设置自定义向导的向导。

《Microsoft Word 开发工具》 (Microsoft 出版社，1993) ISBN 1-55615-630-8. Microsoft 出版社向任何可能的地方出售并直接寄达计算机图书。信用卡号码： 1-800-MS-PRESS or 615-793-5090. 计算机服务： GO MSP.


《Microsoft Word 开发工具》 (Microsoft Press, 1993) ISBN 1-55615-630-8. Microsoft 出版社向任何可能的地方出售并直接寄达计算机图书。有关详细信息，包括 《开发工具》一书的说明和订购细节，请参阅Microsoft Word 开发工具。


Microsoft Solution Providers
Microsoft 释疑公司

Microsoft 释疑公司是提供顾问、合作、定制、开发、技术支持与培训或其他与 Microsoft 产品有关的服务的独立组织。这些公司之所以称作释疑公司，是因为他们应用技术和提供高质服务，来帮助解决现实世界中的商业问题。

如果您的组织用 Microsoft Word 或 Microsoft Office 来开发自己的应用程序，或者如果您为 Microsoft 产品设计、合作、培训、支持或提供其他服务，Microsoft 释疑公司程序可能就是为您而制订的。释疑公司可以得到商业开发协助、信息与技术的咨询并可加盟到一个强大团体中。

若要了解关于 Microsoft 释疑公司的更多信息：

在美国，请拨电话： 1-800-426-9400。

在加拿大，请拨电话： (800) 563-9048。

在北美之外，请与当地的 Microsoft 办事机构联系。


dummy
该 WordBasic 错误信息没有相应的帮助文字。


WordBasic 错误

宏被中断

在宏运行时按下 ESC 键，或宏中包含 Stop语句时将产生此错误信息。使用 DisableInput可以禁止 ESC 键中断宏。如果使用 Stop语句，可以用 Stop -1 指令禁止此错误信息的显示。


WordBasic 错误 5

非法的函数调用

宏传递给函数或语句的参数值不正确或超过范围限制。例如，指令 Shell "Cardfile", 6 会产生此错误信息，因为第二个 Shell 参数值不允许超过 4。


WordBasic 错误 6

溢出

计算结果过大。可能的原因如下：

结果太大，已无法用双精度浮点数表示。WordBasic 允许的最大正数值为 1.7976931348623E+308。

双精度浮点数太大，无法转换成整数。


WordBasic 错误 7

内存不足

没有足够的内存执行该操作。请参阅释放内存。


WordBasic 错误 9

下标越界

宏指令引用的数组元素所带的下标超过数组的维数。


WordBasic 错误 11

除数为零

宏中包含有用 0（零）除某个数值的表达式。


WordBasic 错误 14

字符串空间不足

宏使用的字符串变量占用的内存超过 64K，为传递给外部函数（用 Declare语句申明）的字符串分配的内存只有 64K。


WordBasic 错误 22

无效的数组维数

在 Dim 或 Redim 声明的数组维数值无效。例如，指令声明的数组维数是负值，或者定义的数组元素数目超过 8143 个。


WordBasic 错误 24

参数错误

传递给宏指令变量的数值超过允许范围。如下例：

ChangeCase 50	'"50" is too large a value


WordBasic 错误 25

（堆栈空间）内存不足

没有足够的内存执行该操作。请参阅释放内存。


WordBasic 错误 26

对话框必须有 End Dialog 或按钮

自定义对话框的定义中缺少 End Dialog 指令或命令按钮。对话框定义中至少必须包含一个 OKButton、CancelButton 或 PushButton 指令。有关详细内容，请参阅 Begin Dialog...End Dialog。


WordBasic 错误 28

目录已经存在

要用 MkDir 创建的目录已经存在。要改正此错误，可以在使用 MkDir 语句之前，用 CountDirectories() 和 GetDirectory$() 检查目录是否已经存在。例如：

Sub MAIN

dir$ = InputBox$("Type directory name to create:")

Dim subdirs$(CountDirectories())

For i = 0 To CountDirectories()

subdirs$(i) = LCase$(GetDirectory$(i + 1))

If subdirs$(i) = LCase$(dir$) Then MsgBox "Directory already exists."

Next

End Sub


WordBasic 错误 39

缺少 CASE ELSE

Select Case 指令中的表达式没有对应的条件。要改正此错误，可以给没有对应条件的 Word 指令加一个 Case Else 指令。


WordBasic 错误 51

内部错误

WordBasic 解释程序产生一个内部错误。请把此错误及错误发生的条件向 Word for Windows 产品支持服务部门报告。


WordBasic 错误 52

错误的文件名或文件号

文件输入/输出指令中引用的文件号超过允许范围。文件号只能在 1 至 4 之间。例如，指令 Open "C:\TMP\FILES.TXT" For Input As #5 就会产生此错误。


WordBasic 错误 53

文件未找到

语句引用的文件不存在或没有找到。例如，使用语句 Open "C:\TMP\FILES.TXT" For Input As #1，而 C:\TMP\FILES.TXT 文件不存在，就会产生此错误。


WordBasic 错误 54

错误的文件模式

产生该错误的可能原因如下：

宏中的 Open 语句打开文件的模式不是 Input、Output 或 Append。

宏试图读取一个以写方式打开的文件。

宏试图写一个以读方式打开的文件。

宏试图使用不存在的设备口。


WordBasic 错误 55

文件已经打开

Open 或 Kill 指令中指定的文件已经打开，或者宏中多个 Open 语句引用同一个文件名或文件号。要改正此错误，可修改文件名或文件号，或使用 Close 关闭某个文件号对应的文件。


WordBasic 错误 57

设备I/O错

执行设备I/O（输入/输出）操作时发生错误。


WordBasic 错误 62

读操作越过文件尾

宏中的 Input 语句读取的文件是空文件或者全部数据已经读完的文件。请用分支或控制指令把输入语句限制在文件内。请参阅基本文件输入/输出。


WordBasic 错误 64

错误的文件名

宏指令包含非法的文件名。例如，在 Open 或 Kill 指令中指定的文件扩展名超过三个字符。


WordBasic 错误 67

文件数目过多

宏中的 Open 语句打开的文件数超过 4 个，读、写或添加操作打开的文件数必须限制在 4 个以内。请在打开文件前，用 Close 语句关闭一些文件。


WordBasic 错误 74

文件被重命名到其它驱动器上

宏在重新命名文件时指定了其它驱动器。此操作 Word 不允许。


WordBasic 错误 75

访问路径/文件错

操作系统无法把路径和文件名联系起来。网络驱动器可能已断开。


WordBasic 错误 76

路径未找到

操作系统没有找到指定路径。


WordBasic 错误 100

语法错误

以下是一些产生语法错误的原因：

缺少引号

字符串应该用引号括住，如果少了引号，就会产生错误。

缺、多、错置冒号

语句或函数的参数之间必须用冒号分隔，缺少、多余或错误放置的冒号都会产生错误。

缺少句点

对话框相应语句的参数必须以句点开头。例如，FileOpen 语句的 .FileName 参数。

函数末尾缺少括号

函数名称后面必须有左、右括号。如果少了括号，就会产生错误。

缺少保留字

有些 WordBasic 指令由多个保留字组成。例如，If 指令必须包含 Then 保留字。

命名与保留字冲突

定义的变量与保留字同名会产生语法错误。例如，变量取名为“Then”与保留字 Then冲突，Then 是 If 语句的一部分。


WordBasic 错误 101

缺少逗号

宏解释程序没有找到宏指令必须的逗号。


WordBasic 错误 102

命令失败

宏命令无法正确完成。这种失败通常发生在从输入对话框或 Dialog 显示的对话框中选择“取消”按钮时。要避免此错误的出现，可以用 Dialog 指令显示对话框，在取消输入对话框时，用 On Error 指令防止显示错误信息。


WordBasic 错误 103

缺少对话记录变量

要求有对话记录变量的指令没有指定对话记录。


WordBasic 错误 104

ELSE 没有对应的 IF

宏中某个 Else 指令没有相应的 If 指令。有关详细内容，请参阅 If...Then...Else。


WordBasic 错误 105

END IF 没有对应的 IF

宏中某个 End If 指令没有相应的 If 指令。有关详细内容，请参阅 If...Then...Else。


WordBasic 错误 109

缺少 INPUT

宏中必须有 Input 语句。


WordBasic 错误 111

表达式过于复杂

宏指令包含的表达式过于复杂，请把该表达式分成多个表达式。


WordBasic 错误 112

缺少标识符

缺少必须的标识符如变量名、子程序名或用户定义的函数名。例如，宏中有 Dialog 指令，却没有指定要显示的对话记录。


WordBasic 错误 113

重复的标号

产生此错误可能原因如下：

宏中有同名的子程序或用户定义的函数。

宏中有同名的行号（行号用于 Goto 和 On Error 指令中）。


WordBasic 错误 114

标号未找到

此错误通常发生原因是 Goto 或 On Error 指令引用的标号不在行首、缺少冒号（:）或在宏中没有出现。


WordBasic 错误 115

缺少右括号

宏解释程序在宏指令中没有找到必须的右（闭）括号。


WordBasic 错误 116

参数数目不匹配

语句或函数的参数数目不对时将出现此错误。如下例：

a$ = Str$()	'Str$() requires an argument

a$ = Selection$(1)	'Selection$() does not take an argument

MsgBox	'MsgBox requires an argument

ChDir	'ChDir requires an argument


WordBasic 错误 117

缺少 NEXT 或 WEND

For 或 While 指令没有相应的 Next 或 Wend 指令。有关详细内容，请参阅 For...Next 或 While...Wend。


WordBasic 错误 118

嵌套的 SUB 或 FUNCTION 定义

子程序或函数中出现其它函数或子程序。请在用 Sub 或 Function 开始新子程序或函数前，使用 End Sub 或 End Function 指令。有关详细内容，请参阅 Sub...End Sub 和 Function...End Function。


WordBasic 错误 119

NEXT 缺少对应的 FOR

宏中某个 Next 指令没有对应的 For 指令。有关详细内容，请参阅 For...Next。


WordBasic 错误 120

数组已经声明

同一数组用多个 Dim 语句声明。请使用 Redim 语句。


WordBasic 错误 122

类型不匹配

传递给指令的数值与指令要求的数据类型不符。WordBasic 只有两种数据类型—字符串和数字。出现此错误信息说明在要求数字的地方使用了字符串，或者在要求字符串的地方使用了数字。在下例中，pet 本来是一个字符串变量，但由于漏了一个美元符号（$），Word 解释程序认为这是一个数字，因此产生错误信息。

pet = "poodle"	'Should be: pet$ = "poodle"

如果向函数传递的参数类型不对，也会出现此错误，如下例：

a$ = Str$("4")	'Should be: a$ = Str$(4)


WordBasic 错误 123

未定义的对话记录域

如果拼错了 WordBasic 对话框所用的参数—等式指令，将出现此错误。如下例：

EditFind "sasquatch", .WhleWord = 1	'Should be: .WholeWord = 1

把不属于对话框的参数加进去，也会出现此错误。如下例：

EditFind "skunk", .WholeWord = 1, .Musk = 1	'"Musk" is not valid


WordBasic 错误 124

未定义的命令、子程序或函数

此错误的出现通常是因为拼错了函数或语句名，或者是返回字符串的函数缺了一个美元符号（$）。以下各条指令都会产生这个错误信息：

MgsBox "Hello"	'Should be: MsgBox "Hello"

EditFnd "muskrat"	'Should be: EditFind "muskrat"

quote$ = Chr(34)	'Should be: quote$ = Chr$(34)

另外，把两个字的指令敲成一个字也会产生此错误，例如，把 End Dialog 敲成 EndDialog（但 EndIf 和 End If 都是允许的）。


WordBasic 错误 125

宏非正常结束

宏非正常终止。注意每个 Sub 和 Function 指令都应有相应的 End Sub 和 End Function 指令。


WordBasic 错误 126

WEND 缺少相应的 WHILE

宏中某个 Wend 指令没有对应的 While 指令。有关详细内容，请参阅 While...Wend。


WordBasic 错误 127

维数错误

引用数组时指定的维数与 Dim 或 Redim 定义的数组维数不一致。


WordBasic 错误 129

控制结构嵌套太多

While...Wend、For...Next 或 If...Then...Else 语句嵌套过深，Word 无法在宏中实现这些指令。嵌套数最多只允许 16 层。


WordBasic 错误 130

SELECT 缺少相应的 END SELECT

宏中的 Select...Case 指令没有对应的 End Select 指令。有关详细内容，请参阅 Select Case。


WordBasic 错误 131

对话框 REDIM 非法

宏已经给一个变量赋了字符串或数字值，又把它作为对话记录变量使用，已定义的字符串或数字变量不能作为对话记录变量使用。请改用新的记录变量或已有的对话变量。


WordBasic 错误 132

外部调用导致串溢出

传递给 DLL 的字符使用的内存应在 256 字节到 64K 之间；DLL 加长了此字符串，使其超过了内存限制。


WordBasic 错误 133

DLL 调用传递的参数类型或数目错误

用 Declare 语句声明的外部函数参数类型或数目与传递的参数不符。例如，如果把 Windows 函数 WinDir 声明成一个参数（要求两个），调用这个函数时就会出现此错误。


WordBasic 错误 134

函数参数包含非法的日期或时间

指定的日期超过允许范围,即 1899年 12 月 30 日至 4095 年 12 月 31 日。或者指定的日期错误。例如，把 DateSerial() 指令中的月份指定成 13（只允许 1 到 12）。


WordBasic 错误 137

指定的路径是无效的路径选项

ToolsOptionsFileLocations 指令的 Path 参数不是 WINWORD6.INI 中九个有效路径选项之一。有关有效路径选项列表，请参阅 ToolsOptionsFileLocations。


WordBasic 错误 138

当前选定部分不能用此命令更改

在用 SelectCurWord 或 SelectCurSentence 指令选定当前词或句子时，选定范围已超过一个词或句子。


WordBasic 错误 139

不允许同时显示多个对话框

自定义对话框的对话函数包含 Begin Dialog...End Dialog 指令（或调用了包含 Begin Dialog...End Dialog 指令的子程序）。显示一个自定义对话框后，不允许定义或显示第二个自定义对话框。


WordBasic 错误 140

对话框控制标识符没有相应的控制

宏指令指定了某个对话框控制的标识符，但该控制没有在对话框定义中出现。例如，对话函数中包含指令 DlgFocus "MyPushButton"，但对话框定义中并没有标识符为 .MyPushButton 的控制。


WordBasic 错误 141

() 语句不能用于此类对话框控制

宏指令执行的操作不能用于指定的自定义对话框控制。例如，DlgListBoxArray 指令指定文本框，DlgListBoxArray 只能修改列表框、下拉列表框、组合框的内容。


WordBasic 错误 142

指定的应用程序并未处于运行状态

应用程序控制语句或函数指定的应用程序并未处于运行状态。例如，在 AppSendMessage 指令中指定的窗口名为 "Windows Help"，但打开的应用程序中没有一个名称以 "Windows Help" 开头。


WordBasic 错误 143

不允许隐藏或禁止正处于输入焦点的对话框控制

不能用 DlgEnable 或 DlgVisible 指令隐藏或禁止正处于输入焦点的控制。要隐藏或禁止该控制，必须先把输入焦点移到其它控制上。如下所示：

If DlgFocus$() = "CheckBox1" Then

DlgFocus "OK"

DlgVisible "CheckBox1", 0

End If


WordBasic 错误 144

不能把输入焦点移到已隐藏或禁止的控制上

不能用 DlgFocus 指令把输入焦点移到已隐藏或禁止的控制上。此操作 Word 无法执行。在把输入焦点移到该控制之前，先用 DlgEnable 或 DlgVisible 允许或显示该控制。


WordBasic 错误 149

() 命令不能作为函数调用

指定的 WordBasic 语句没有等价的函数。要改正此错误，可使用 WordBasic 命令的语句形式。例如：

x = AppMove(200, 220)

should be:

AppMove 200, 220


WordBasic 错误 150

对话框控制标识符已经定义

自定义对话框的定义中有多个指令指定了同一个 .Identifier 参数。自定义对话框中各控制的标识符不允许相同。


WordBasic 错误 152

没有打开的文档，此命令无法使用

自定义对话框的定义中包含 FilePreview 指令，但没有打开的文档。如果要显示的自定义对话框中有文件预览控制，则至少要求有一个文档窗口（或宏编辑窗口）打开。


WordBasic 错误 155

选定部分起始处不在域中

宏中包含 GetFieldData$() 或 PutFieldData 指令。该指令运行时，选定部分起始处并未处于 ADDIN 域内。GetFieldData$() 和 PutFieldData 指令只能从 ADDIN 域提取和存储数据。


WordBasic 错误 157

域中不能包含数据

宏中包含 GetFieldData$() 或 PutFieldData 指令。该指令运行时，选定部分起始处并未处于 ADDIN 域内。GetFieldData$() 和 PutFieldData 指令只能从 ADDIN 域提取和存储数据。


WordBasic 错误 158

有一个域的值太小

与 Word 对话框对应的指令中有一个参数的值低于允许范围。例如，把 InsertBreak 指令的 .Type 参数设置成 -1（允许值为 0 到 6），就会产生此错误。


WordBasic 错误 159

有一个域的值太大

与 Word 对话框对应的指令中有一个参数的值高于允许范围。例如，把 InsertBreak 指令的 .Type 参数设置成 9（允许值为 0 到 6），就会产生此错误。


WordBasic 错误 160

参数数目不对

语句或函数的参数（也叫“变元”）多于或少于要求的数目时将产生此错误。如下例：

a$ = Chr$()	'Chr$() requires an argument

a$ = Str$()	'Str$() requires an argument

a$ = Selection$(1)	'Selection$() does not take an argument

MsgBox	'MsgBox requires an argument

ChDir	'ChDir requires an argument


WordBasic 错误 161

输入焦点改变（Action 值为4）时不能修改对话框

自定义对话框显示后，如果传递给对话函数的 Action 值为 4，Word 不能以显示消息框、输入框、对话框的方式进行响应。Action 值为 4 表示当前显示的对话框输入焦点改变。有关详细内容，请参阅 对话函数的语法。


WordBasic 错误 162

() 命令只能作为函数调用。

指定的 WordBasic 命令是一个函数。要改正此错误，可把该命令指定成函数。例如：

AppInfo$(2)

should be:

x$ = AppInfo$(2)


WordBasic 错误 163

该语句只能在用户对话框激活后使用。

宏中包含的某条指令只允许在自定义对话框显示后，从对话函数内部调用。例如，如果在自定义对话框的定义（而不是从对话函数）中使用 DlgListBoxArray ，就会产生该错误。只能在对话框显示后使用的语句和函数名称均以 "Dlg" 开头。完整列表请参阅 对话框定义和控制。


WordBasic 错误 164

数组变量未初始化

指令为某个数组变量赋值时，该数组变量并未在当前子程序中声明或并未声明为共享变量。请用 Dim 语句声明此数组。


WordBasic 错误 500

无法初始化链接

宏无法初始化 DDE 链接，可能原因如下：

另一应用程序不支持 DDE，或者活动链接过多。

另一应用程序不处于运行状态，Word 也无法启动此应用程序。

Word 内存不足。

另一应用程序不支持指定的链接标题。

Word 活动链接过多。

另一应用程序忙。

另一应用程序忽略初始化 DDE 链接的请求。例如，Microsoft Execl 和 Microsoft Access 都有忽略初始化 DDE 链接请求的选项。


WordBasic 错误 501

无效的链路号

指定的 DDE 链路号无效。注意应用程序是否仍处于运行状态，以及出错行中的变量名是否与 DDEInitiate 指令中使用的变量名一致。


WordBasic 错误 502

应用程序没有响应

应用程序对 DDE 请求没有响应。可能原因如下：该应用程序不支持 DDE 请求、Word 内存不足、应用程序忙。


WordBasic 错误 503

进程在另一应用程序中执行失败

DDE 语句未完成，或者另一应用程序不能执行由 DDEExecute传递的指令。此外，也可能是 DDE 语句引用的 DDE 标题无效—例如，文件未打开。


WordBasic 错误 504

窗口不存在

Word 没有找到指定的应用程序或文档窗口。


WordBasic 错误 505

无法激活应用程序

Word 不能激活指定的应用程序。


WordBasic 错误 506

无法发送键码

Word 无法发送 SendKeys 指令指定的字符串。这可能是因为键名拼写错误或指定的键不存在，例如，{entr} 或 {F17}。


WordBasic 错误 508

另一应用程序忙

另一应用程序忙，无法响应 Word 的请求。


WordBasic 错误 509

() 命令无效，因为 ()

WordBasic 错误 509 的文字与错误原因相对应，错误信息本身就是帮助文字。注意宏编辑窗口打开后，有许多命令无法使用，这些命令在菜单上暗淡显示。


WordBasic 错误 511

无此命令或宏

MacroDesc$() 或 MacroCopy 之类指令指定的宏不存在。


WordBasic 错误 512

值超过有效范围

Word 无法识别宏指定的值。例如，指令 WindowList 4 用于激活“窗口”菜单上编号为 4 的文档窗口，如果当前只打开了三个文档窗口，就会出现此错误。


WordBasic 错误 513

字符串太长

串中包含的字符过多。串最多可包含 65,280 个字符，同时取决于可用内存的多少。


WordBasic 错误 514

文档未打开

指令引用的文档未打开。例如，用 MacroCopy 指令指定目的模板未打开。


WordBasic 错误 528

无法装入拼写检查器

Word 无法装入拼写检查器。要安装拼写检查器，可退出 Word 运行 Word 安装程序。


WordBasic 错误 529

无法打开字典

Word 无法打开宏指定的字典。检查一下字典名是否正确。


WordBasic 错误 530

对话框过于复杂

宏要显示的对话框中包含的控制太多，Word 目前无法显示。尽管 Word 没有规定自定义对话框中控制的数量，但如果控制数目太多，可能没有足够的内存显示此对话框。


WordBasic 错误 535

不允许运行此宏，因为此宏已运行

活动宏调用了某个宏，被调用宏又调用活动宏自身。例如，宏 1 调用宏 2，宏 2 又调用宏 1。


WordBasic 错误 536

无此宏名

宏指令指定的宏不存在或当前无法使用。例如，用 ToolsMacro 指令指定要重命名的宏，但 .Show 参数指定的宏不存在。


WordBasic 错误 537

无法运行指定的宏

宏指令要运行的宏无法使用。例如，一个宏用 ToolsMacro 指令运行自身时，就会产生此错误。


WordBasic 错误 538

无法编辑指定的宏

用 ToolsMacro 指令编辑宏时，Word 无法执行操作。例如，如果指定的宏存储的模板是作为共用模板装入的，就会发生此错误。（您可以运行存储在共用模板中的宏，但如果要编辑这些宏，必须先在文档窗口中打开此模板或某个基于此模板的文档。）


WordBasic 错误 539

无法更改指定宏的名称

更改宏名的指令失败。例如，ToolsMacro 指令指定的要更名的宏已经打开，或者新名称已被其它的宏使用等，都会产生此错误。


WordBasic 错误 540

无法删除指定的宏

删除宏的指令失败。例如，ToolsMacro 指令指定的要删除的宏已经打开或不存在，或者宏所在的模板已被保护，都会产生此错误。检查一下 ToolsMacro 指令中的 .Show 参数是否正确。


WordBasic 错误 541

无法设置指定宏的说明

ToolsMacro 指令设置宏说明操作失败。例如，下列情况都会产生此错误：.Show 参数设置成 3（指定以活动模板为限），而活动模板是 Normal 模板。指令修改的宏是只执行宏或者宏所在的模板未打开（如作为共用模板装入）。


WordBasic 错误 543

无法打开指定的库

Declare 指令指定的动态连接库（DLL）不存在或未找到。此错误通常是由于拼写错了动态连接库的名称造成的。例如，把“Kernel”拼写成“Kernal”。


WordBasic 错误 544

无法执行滚动命令，因为滚动条未激活

滚动条显示后才能执行 VScroll 和 HScroll 语句。水平和垂直滚动条是“选项”对话框（“工具”菜单）“视图”选项卡上的两个选项。下例中，在使用 VScroll 和 HScroll 语句前，先打开滚动条：

ToolsOptionsView .HScroll = 1, .VScroll = 1

VScroll 10

HScroll 10


WordBasic 错误 545

() 语句当前无法使用

宏要运行的语句在当前环境中无法运行。用 CommandValid() 可以检查 Word 命令或对话框选项相应的语句是否可用。


WordBasic 错误 546

如果编号不连续，脚注和尾注应从 1 开始

NoteOptions 指令指定脚注和尾注的编号连续，同时指定的起始编号不是 1。此操作 Word 不允许。


WordBasic 错误 547

网络权限错误

宏执行的操作没有相应的权限。例如，宏试图删除某个网络文件，而此文件以被其它用户打开。


WordBasic 错误 549

指定的菜单或菜单项不存在

返回菜单信息的宏指令指定的菜单或菜单项不存在。例如，指令 a$ = MenuText$(0, 10) 返回第十项菜单的文字，但实际只有九项菜单。


WordBasic 错误 551

Word 无法执行此操作，因为指定模板已被锁定。

用 EditAutoText 指令删除模板上的自动图文集词条时，此模板是作为共用模板装入的。（除 Normal 模板外）保存在共用模板上的自动图文集词条不能删除。要删除共用模板上的自动图文集词条，可以先在文档窗口中打开该模板或一个基于该模板的文档，然后使用 EditAutoText 语句。


WordBasic 错误 552

Word 无法执行此操作，因为指定模板不存在

用 EditAutoText 或 SetAutoText 指令向非 Normal 模板中添加自动图文集词条，实际上并无其它可用模板。例如，如果当前文档基于 Normal 模板，把 .Context 参数设置成 1（指定的模板不是 Normal 模板），就会产生此错误。


WordBasic 错误 553

无法创建指定的宏

创建或编辑宏的 ToolsMacro 指令失败。例如，指定宏已经存在并且是只执行宏，或者创建宏的模板已被保护，都会产生此错误。如果把 .Show 参数设置成 3（指定以活动模板为限），而活动模板是 Normal 模板，也会产生此错误。


WordBasic 错误 554

没有设置绘图范围

宏绘图语句或函数（如 DrawSelect 或 DrawCount()) ）要求指定绘图范围。请添加 DrawSetRange 指令设置绘图范围。


WordBasic 错误 555

为绘图范围指定的书签无效

DrawSetRange 指令指定的书签不存在。或者上次建立的绘图范围使用的书签已经删除。由此导致要求绘图范围的语句（如 DrawSelect 或 DrawCount()）产生错误。


WordBasic 错误 556

图形对象类型与命令不符

该语句或函数专用于某一类型的对象，但却被用在其它类型的对象上。例如，把 DrawCountPolyPoints() 用于矩形对象就会产生此错误，因为 DrawCountPolyPoints() 只用于手画线对象。


WordBasic 错误 557

无法插入图形对象

宏试图把文本框或弧线之类的图形对象插入到文档的批注、脚注等区域内。此操作 Word 不允许。


WordBasic 错误 558

主控文档中至少有一个子文档已锁定，对已锁定的子文档不能进行任何修改

在用 ToolsRevisions 指令接受主控文档的修订时，至少有一个包含修订标记子文档已被锁定。


WordBasic 错误 559

当前选定部分是一个文本块

在用 ToolsReviewRevisions 指令接受或复原修订时，选定部分是一个文本块。Word 不允许此操作。您可以用 ToolsRevisions 接受或复原整个文档的修订，不论选定部分是不是一个文本块。

注意：选定文本块的方法是按住 ALT 键拖动或使用 CTRL+SHIFT+F8 和箭头键。


WordBasic 错误 560

修订标记不可见

宏中包含 ToolsReviewRevisions .FindNext 之类指令，这些指令依赖于文档中修订标记是否可见。如果未显示修订标记，将产生此错误。用 ToolsRevisions 可以显示修订标记。


WordBasic 错误 561

文档已被保护

宏指令试图修改受保护的文档。例如，如果文档已受保护不允许修订，运行指令 ToolsRevisions .AcceptAll 就会产生此错误。用 ToolsUnprotectDocument可以解除文档保护。


WordBasic 错误 562

ToolsGrammarStatisticsArray 不能在包含多种语言格式的文档中运行

ToolsGrammarStatisticsArray 指令运行的文档中包含两种以上语言格式。用 ToolsLanguage 可以设置或取消语言格式。


WordBasic 错误 563

该文档不是主控文档

宏中某个语句仅在活动文档是主控文档时有效（例如，LockDocument 或 GoToNextSubdocument）。用 ViewMasterDocument 和 CreateSubdocument 可以创建主文档。


WordBasic 错误 564

此方向没有子文档

宏中包含 GoToPreviousSubdocument 指令，但选定部分已经处于或超过主控文档的第一个子文档。或者宏中包含 GoToNextSubdocument 指令，但选定部分已经处于或越过主控文档的最后一个子文档。


WordBasic 错误 565

指定的文档不在嵌入程序列表中

指令指定的模板或嵌入程序未在“模板及加载项”对话框（“文件”菜单）的共用模板和加载项列表中列出。例如，用 DeleteAddIn 指令指定的模板未出现在该列表中。


WordBasic 错误 566

指定的 Word 库正在使用，不能卸除

指令要卸载某个 Word 嵌入库（WLL），但该 WLL 正在使用。


WordBasic 错误 567

添加的下拉列表项不能超过 25 项

下拉菜单型表单域容纳的项不能超过 25 项。如果表单域已经有 25 项，再使用 AddDropDownItem 指令就会产生此错误。


WordBasic 错误 568

指定的字体不存在

在 ToolsCustomizeMenus、ToolsCustomizeKeyboard 或 AddButton 指令的 .CommandName 参数中指定字体不存在或无法使用。


WordBasic 错误 569

PatternMatch 和 SoundsLike 参数不能同时设置成 1

在“查找”和“替换”对话框中不允许同时选中“模式匹配”和“全字匹配”复选框，与此类似，在 WordBasic 指令 EditFind 和 EditReplace 中，也不允许同时把 .PatternMatch 和 .SoundsLike 设置成 1。


WordBasic 错误 570

二维以上的数组无法排序

SortArray 指令排序的数组超过二维。SortArray 只能排序一维或二维数组。