Author 属性举例

此例显示“规划求解”加载宏的作者和名称。

Set a = AddIns("Solver Add-In")

MsgBox a.Author & " authored the add-in " & a.Name

此例设置当前工作簿的作者。

ActiveWorkbook.Author = "Anonymous"


Comments 属性举例

此例显示“规划求解”加载宏的名称和备注，注意：可使用 Chr(13)在信息框中生成行中断。

Set a = AddIns("Solver Add-In")

MsgBox a.Name & " description:" & Chr(13) & a.Comments

此例为当前工作簿设置备注

ActiveWorkbook.Comments = "This workbook has been reviewed."


FullName 属性举例

此例用于显示各加载宏的路径和文件名。

For Each a In AddIns

MsgBox a.FullName

Next a

此例显示当前工作簿的路径和文件名（假设工作簿已存盘）。

MsgBox ActiveWorkbook.FullName


Installed 属性举例

此例使用信息框来显示“规划求解”加载宏的安装状态。

Set a = AddIns("Solver Add-In")

If a.Installed = True Then

MsgBox "The Solver add-in is installed"

Else

MsgBox "The Solver add-in is not installed"

End If


Keywords 属性举例

此例为当前工作簿设置关键字。

ActiveWorkbook.Keywords = "Sales, West Region, 1995"


Subject 属性举例

此例用于为当前工作簿设置主题。

ActiveWorkbook.Subject = "Data for my presentation in April"

此例为工作簿 Book1.XLS 的传递名单设置主题。要执行此例，必须安装有 Microsoft Mail for Windows 或 Microsoft Mail for the Macintosh。

Workbooks("BOOK1.XLS").HasRoutingSlip = True

With Workbooks("BOOK1.XLS").RoutingSlip

.Delivery = xlOneAfterAnother

.Recipients = Array("Adam Bendel", "Jean Selva", "Bernard Gabor")

.Subject = "Here is BOOK1.XLS"

.Message = "Here is the workbook. What do you think?"

End With

Workbooks("BOOK1.XLS").Route

此例为 PowerTalk 邮寄系统（只对 Macintosh）中的邮寄者设置主题。要执行此例，必须安装有 PowerTalk 邮寄系统。

With Workbooks(1)

.HasMailer = True

With .Mailer

.Subject = "Here is the workbook"

.ToRecipients = Array("Jean")

.CCRecipients = Array("Adam", "Bernard")

.BCCRecipients = Array("Chris")

.Enclosures = Array("TestFile")

End With

.SendMailer

End With


Title 属性举例

此例显示各加载宏的标题和文件名。

For Each a In AddIns

MsgBox a.Title & " has the filename " & a.Name

Next a

此例设置当前工作簿的标题。

ActiveWorkbook.Title = "Weekly Sales Summary"


Author 属性

以字符串形式返回或设置对象的作者。此属性对于 AddIn 是只读的，对于 Workbook 是可读写的。

注释

在 Microsoft Excel for Windows 95 中，此属性被一个内部 OLE 文档属性代替，有关 OLE 文档属性的详细内容，可参阅 BuiltinDocumentProperties。

本属性不适用于表示 XLL 文件的 AddIn 对象或用 Microsoft Excel 4.0 宏语言创建的加载宏。


Comments 属性

以字符串形式返回或设置对象的备注。此属性对于 AddIn 是只读的，对于 Workbook 是可读写的。

注释

在 Microsoft Excel for Windows 95 中，此属性被一个内部 OLE 文档属性代替，有关OLE文档属性的详细内容，可参阅BuiltinDocumentProperties。

本属性不适用于表示 XLL 文件的 AddIn 对象或用 Microsoft Excel 4.0 宏语言创建的加载宏。


FullName 属性

以字符串形式返回包括路径在内的对象名称。本属性是只读的。

注释

本属性等价于 Path 属性加上当前文件系统分隔符再加上 Name 属性。


Installed 属性

若安装了加载宏则本属性为True，可读写。

注释

设置本属性为 True 将安装加载宏并调用其 Auto_Add 函数，若设置为 False 则删除加载宏并调用其 Auto_Remove 函数。


Keywords 属性

以字符串形式返回或设置对象的关键字。此属性对于 AddIn 是只读的，对于 Workbook 是可读写的。

注释

在 Microsoft Excel for Windows 95 中，此属性被一个内部 OLE 文档属性代替，有关 OLE 文档属性的详细内容，可参阅 BuiltinDocumentProperties.

本属性不适用于表示 XLL 文件的 AddIn 对象或用 Microsoft Excel 4.0 宏语言创建的加载宏。


Subject 属性

以字符串形式返回或设置对象的主题。此属性对于 AddIn 是只读的，对于 Workbook 和 RoutingSlip 是可读写的。

注释

在 Microsoft Excel for Windows 95 中，本属性被一个内部 OLE 文档属性所代替。有关 OLE 文档属性的详细内容，请参阅 BuiltinDocumentProperties。

RoutigSlip 对象主题可用来传递工作簿邮件信息的主题。Power talk 要求在发送邮件之前设置主题。

本属性不适用于表示 XLL 文件的 AddIn 对象或用 Microsoft Excel 4.0 宏语言创建的加载宏。


Title 属性

以字符串形式为对象返回或设置说明性的标题。此属性对于 AddIn 是只读的，对于 Workbook 是可读写的。

在 Microsoft Excel for Windows 95 中，本属性被一个内部 OLE 文档属性代替。有关 OLE 文档属性的详细内容，请参阅

BuiltinDocumentProperties。


Add 方法

为集合添加成员，如下表所示。请选择一个对象来得到有关该对象 Add 方法的详细描述。

对象	描述
AddIns	向当前加载宏列表中添加一个新的加载宏文件
Arcs, Buttons, ChartObjects, Drawings, Lines, Ovals, Pictures, Rectangles, TextBoxes	创建一个新图形对象或控制项 ，对象的类型依赖于调用 Add 函数的集合，例如， Lines.Add 创建一条直线；Ovals.Add 创建一个椭圆。
CheckBoxes, DropDowns, EditBoxes, GroupBoxes, Labels, ListBoxes, OptionButtons, ScrollBars, Spinners	创建一个新的控制。对象的类型依赖于调用 Add 函数的集合，例如 DropDowns.Add 将创建一个下拉列表框；EditBoxes.Add 将创建一个编辑框。
Charts	创建一个图表
DialogSheets	创建一个对话框编辑表
MenuBars	创建一个菜单栏
MenuItems	添加一个新的菜单项，本方法也可用来恢复以前删除的内部菜单项。
Menus	添加一个新的菜单（无法创建新的快捷菜单，只能对内部快捷捷菜单进行修改）。本方法也可用来恢复以前删除的内部菜单。
Modules	创建一个新的模块
Names	创建一个新的命名
OLEObjects	向当前工作表添加一个新的 OLE 对象
Scenarios	创建一个新的方案并将它添加到当前工作表的可用方案列表中
SeriesCollection	给 Series 集合添加一个或多个系列
Sheets	创建一个工作表（工作表，图表，模块表，对话框编辑表或宏工作表）
Styles	创建一个新样式，并将它添加到当前工作簿的可用样式列表中。
ToolbarButtons	给已存在的工具栏添加一个新按钮
Toolbars	创建新的工具栏
Trendlines	创建带特定参数的趋势线
Workbooks	创建一活动工作簿。
Worksheets	创建一活动工作表。


Add 方法（加载宏集合）

向加载宏列表中添加一个新加载宏文件。此方法将返回一个 AddIn  对象。

语法

object.Add(fileName, copyFile)

object

必选项，指定一个 Add-in 对象．

fileName

必选项，文件名包含了要加入到加载宏管理器的加载宏列表中的加载宏。

copyFile

可选项，若加载宏文件在硬盘上则本参数可省略。如果本参数为 True 并且加载宏存储在可移动介质上（例如软盘或 CD-ROM），则此加载宏将被复制到硬盘上。如果本参数为 False 则加载宏仍保留在可移动介质上。如果忽略本参数，Microsoft Excel 将显示一个对话框，要求用户进行选择。

注释

本方法不能安装新的加载宏。若要安装新的加载宏，应设置 Installed 属性．


Add 方法 (Charts Collection)

创建一个新图表，返回一个 Chart 对象。

语法

object.Add(before, after, count)

object

必选项，Charts 对象．

before

可选项。指定一个工作表，新图表将加在其前面。

after

可选项。指定一个工作表，新图表将加在其后面。

count

可选项。指定要添加的图表数目。若省略此参数，则默认为１。

注释

若 before 和 after 均省略，则新图表将插入到当前工作表之前。


Add 方法 (DialogSheets Collection)

创建一个新的对话框编辑表。返回一个 DialogSheet 对象．

语法

object.Add(before, after, count)

object

必选项，DialogSheets 对象．

before

可选项，指定一个工作表，新的对话框编辑表将加在其前面。

after

可选项，指定一个工作表，新的对话框编辑表将加在其后面。

count

可选项，指定要添加的对话框编辑表的数目。若省略此参数，则默认为１。

注释

若 before 和 after 均省略，则新的对话框编辑表将插入到当前工作表之前。


Add 方法 (MenuBars Collection)

创建一个菜单栏，返回一个MenuBar 对象。

语法

object.Add(name)

object

必选项，指定 MenuBar 对象。

name

可选项，指定新的菜单栏名称。

注释

新菜单栏的名称与它的功能标题相同。


Add 方法 (MenuItems Collection)

为指定的菜单添加一个新的菜单项。此方法也可用来恢复 Microsoft Excel 以前删除的内部菜单项。返回一个 MenuItem 对象。若要添加一个子菜单功能标题，可用 AddMenu 方法。

语法

object.Add(caption, onAction, shortcutKey, before, restore, statusBar, helpContextID, helpFile)

object

必选项，指定一个 MenuItems 对象。

caption

必选项，指定菜单项文本（给新菜单项设置 Caption 属性的初值)。请在命令下划线前使用一个&符号。可为功能标题加上一个连字号（“-”）来创建单独的一栏。

onAction

可选项，指定当选定此菜单项时所运行的宏名。

shortcutKey

可选项，仅在 Apple Macintosh 上使用，按文本方式给菜单项指定快捷键。

before

可选项，指定一个菜单项，新的菜单项将添加在它的前面。此参数可以是其它菜单项序号（例如，1表示插入到菜单顶部）或功能标题，或已存在的菜单项（以宏语言方式使用，去掉&），或者是菜单项的引用。

restore

可选项，若本参数为 True，Microsoft Excel 将恢复以前删除的名为 Caption 的内部菜单项。若为 False 或省略， Microsoft Excel 将添加一个新的菜单项。除非使用 before 参数定位，被恢复的菜单项将置于菜单末尾。

statusBar

可选项，当菜单项被选定或浏览时，本参数指定显示在状态栏的帮助文本。若省略，则使用在宏上指定的默认状态栏文本。

helpContextID

可选项，指定此菜单项自定义帮助主题的帮助内容的标识。若省略，则使用在宏上指定的默认的帮助内容标识。

helpFile

可选项，指定含有菜单项自定义帮助主题的帮助文件名。若省略，则使用在宏上指定的默认帮助文件名。

注释

为 statusBar , helpContextID 和 helpFile 参数指定的设置将覆盖由 onAction 参数指定的宏所设置的预选宏选项。

但是，在添加菜单项后改变的宏选项会覆盖使用 Add 方法设置的自定义帮助参数。


Add 方法 (Menus Collection)

添加一个新菜单，本方法也可用来恢复Microsoft Excel 中已删除的内部菜单。返回一个Menu 对象。

语法

object.Add(caption, before, restore)

object

必选项，指定 Menus 对象．

caption

必选项，指定菜单项文本（给新菜单设置Caption 属性的初值)。请在命令下划线前使用一个&符号。

before

可选项，指定一个菜单，新菜单将添加在它的前面。此参数可以是其它菜单序号（例如，1表示插入到菜单栏开始）或功能标题，或已存在的菜单（以宏的方式使用，去掉&），或者是菜单的引用。若省略此参数，则新菜单将添加到“窗口”菜单的左边。

restore

可选项，若本参数为 True，Microsoft Excel 将恢复以前删除的名为 Caption 的内部菜单。若为 False 或省略， Microsoft Excel 将添加一个新菜单。除非使用 before 参数定位，被恢复的菜单将置于菜单栏的末尾。

注释

在 Apple Macintosh 中，若无足够空间来创建新菜单，本方法将返回一个错误值。应经常检查返回值以确保新菜单是否能成功地添加。

在 Windows 中，如果需要，可以环绕菜单条来匹配新菜单。

不能创建新的快捷菜单，只能修改内部快捷菜单。


Add 方法 (Modules Collection)

创建一个新 Visual Basic 模块。返回一个 Module 对象。

语法

object.Add(before, after, count)

object

必选项，指定 Modules 对象。

before

可选项，指定工作表，新模块将添加到它前面。

after

可选项，指定工作表，新模块将添加到它后面。

count

可选项，指定要添加的工作表数，若省略，默认为1。

注释

若 before  和 after 均省略，模块将插入到当前工作表之前。


Add 方法 (Names Collection)

定义一个新名称。返回一个 Name 对象。

语法

object.Add(name, refersTo, visible, macroType, shortcutKey, category, nameLocal, refersToLocal, categoryLocal, refersToR1C1, refersToR1C1Local)

object

必选项，指定 NAME 对象。

name

必选项，（除非指定了 nameLocal ）。本参数指定名称的文本（以宏语言方式）。名称中不能含有空格，也不能类似于单元格引用。

refersTo

必选项，(除非指定了其它的 refersTo ），本参数说明了名称引用的内容(以宏语言方式，使用A1—样式标记法）。

visible

可选项，若本参数值为 True 或省略本参数， Microsoft Excel 将按正常方式定义名称。若本参数为 False，则将其定义为隐藏名称(不显示在“定义名称”，“粘贴名称”，或“转到”对话框中）。

macroType

可选项，如下表所示，本参数指定宏的类型

值	含义

1	用户定义函数(“Function”过程）

2	宏(也称为“子过程”过程）

3 or omitted	无(即：名称既不引用用户定义函数，也不引用宏）

shortcutKey

可选项，指定宏快捷键。必须是诸如“z”或“Z”这样的单个字母，仅适用于宏命令。

category

如果 macroType 为1或2，本参数将指定宏或函数的分类。该分类将在“函数向导”中使用。可以按数值(从1起始）或名称(以宏语言方式）引用存在的分类。如果指定的分类不存在，Microsoft Excel 将创建一个新的分类。

nameLocal

在未指定 name 时必选项， 本参数指定作为名称使用的文本(以用户语言方式）。名称中不能含有空格也不可类似于单元格引用。

refersToLocal

必选项（除非指定了一个其它的 refersTo ），本参数说明名称引用的内容（以用户语言方式，使用A1—样式标记法）

categoryLocal

未指定 category 时为必选项，本参数以用户语言指定自定义函数分类的文本。

refersToR1C1

必选项（除非指定了一个其它的 refersTo 参数），本参数说明名称引用的内容（以宏语言方式，使用 R1C1一样式标记法）。

refersToR1C1Local

必选项（除非指定了一个其它的 refersTo 参数），本参数说明名称引用的内容（以宏语言方式，使用 R1C1一样式标记法）。


Add 方法 (Scenarios Collection)

创建一个新的方案并将它添加到当前工作表可用方案列表中。返回一个 Scenario 对象。

语法

object.Add(name, changingCells, values, comment, locked, hidden)

object

必选项，指定 Scenarios 对象。

name

必选项，指定新方案名称的字符串。

changingCells

必选项，指定该方案可改变的单元格范围。

values

可选项，指定一个含有方案值的数组，以此来替换 changingCells 指定的单元格。若省略此参数，则把 changingCells 指定单元格的当前值看作方案值。

comment

可选项，指定方案备注文本的字符串，在添加新方案时，作者名字和日期将自动添加到备注文本的开头。

locked

可选项。若锁定方案不许改变，则参数值为 True，若省略此参数，则表示方案已锁定。

hidden

可选项。若隐藏方案，则参数值为True，若省略此参数，则表示未隐藏方案。

注释

方案名须是唯一的；如果企图用已存在的名称创建一个方案，Microsoft Excel 将产生错误。


Add 方法 (Sheets Collection)

创建一个新工作表，图表，模块，对话框编辑或宏表。

语法

object.Add(before, after, count, type)

object

必选项，指定 Sheets 对象。

before

可选项，指定一个工作表，新工作表将添加在它前面。必须是一个对象，例如，ActiveWorkbook.Worksheets("Sheet1")。

after

可选项，指定一个工作表，新工作表将添加在它后面。必须是一个对象，例如，ActiveWorkbook.ActiveSheet。

count

可选项，指定要添加的工作表数。若省略，则默认为1。

type

可选项，指定要添加的工作表的类型，必须是 xlWorksheet、xlChart、xlModule、xlDialogSheet、xlExcel4MacroSheet、或 xlExcel4IntlMacroSheet. 中的一个。若省略，则默认为 xlWorksheet。

注释

若 before 和 after 均省略，则新工作表将插到当前工作表的前面。I


Add 方法 (Styles Collection)

创建一个新的样式并将它添加到当前工作表可用样式列表中。返回一个 Style 对象。

语法

object.Add(name, basedOn)

object

必选项，指定 Styles 对象．

name

必选项，指定新样式名称的字符串。

basedOn

可选项，指定某个单元格的引用，该单元格将作为新样式的基础。若指定了本参数，新创建的样式将使用该单元格的样式。若省略，新建样式将基于“普通”样式。

注释

如果指定名称的样式已存在，那么本方法将基于 baseOn 中指定的单元格重新定义样式。下例将基于当前单元格重新定义“普通”样式。

ActiveWorkbook.Styles.Add name:="Normal", _

basedOn:=ActiveCell


Add 方法 (ToolbarButtons Collection)

为当前工具栏添加一个新按钮。返回一个 ToolbarButton  对象。

语法

object.Add(button, before, onAction, pushed, enabled, statusBar, helpContextID, helpFile)

object

必选项，指定 ToolbarButtons 对象。

button

可选项，此参数指定整数形式的按钮标识数。若省略此参数，工具栏将插入一个间距。只能在两个工具栏按钮之间插入间距（不可在工具栏的开始或末尾插入间距）。要在工具栏首部插入一个带有间距的按钮，可先插入此按钮，然后在此按钮后插入间距。有关Visual Basic 可用的按钮标识的详细列表，请参阅Toolbar Button ID Values。

before

可选项，此参数指定新按钮的位置。新按钮将插到此指定位置之前。若省略此参数，新按钮将插在工具栏末端。请注意间距也作为工具栏按钮，因此不能简单地以按钮数来得到按钮的位置。例如：在工具栏第一个和第二个按钮之前有一个间距，若要在间距后插入新按钮，则必须在 before 参数中指定3。

onAction

可选项，此参数为 OnAction 属性指定初值，当单击此按钮时，该属性是所运行的宏的名称。若在内部按钮中省略此参数，此按钮将执行它的内部功能。若在自定义按钮中省略此参数，则单击此按钮时，将显示“给对象指定宏”对话框。

pushed

可选项。给 Pushed 属性指定初值（当该按钮显示为按下状态时，此参数为 True）。

enabled

可选项，给 Enabled 属性指定初值（该按钮被启用时，此参数为 True）。

statusBar

可选项，当鼠标定位在工具栏按钮上时，此参数指定所要显示的帮助文本。若省略此参数，则使用指定给宏的默认状态栏文本。

helpContextID

可选项，指定此工具栏按钮的自定义帮助主题的帮助内容标识。若省略，则使用指定给宏的默认帮助内容标识。

helpFile

可选项，指定含有工具栏按钮自定义帮助主题的帮助文件名。若省略，则使用指定给宏的默认帮助文件名。

注释

为 statusBar , helpContextID 和 helpFile 参数指定的设置将覆盖由 onAction 参数指定的宏所设置的预选宏选项。

但是，在添加工具栏按钮后改变的宏选项会覆盖使用 Add 方法设置的自定义帮助参数。


Add 方法 (Toolbars Collection)

创建一个新工具栏。返回一个 Toolbarr 对象。

语法

object.Add(name)

object

必选项。指定 Toolbars 对象。

name

可选项。指定工具栏名称的字符串。若省略此参数，Microsoft Excel 将使用默认名（如“工具栏1”）。


Add 方法(Trendlines Collection)

创建一条新的 Trendline.。

语法

object.Add(type, order, period, forward, backward, intercept, displayEquation, displayRSquared, name)

object

必选项。指定 Trendlines 对象。

type

可选项。指定趋势线类型（xlLinear、xlLogarithmic、xlExponential、xlPolynomial、xlMovingAvg、或 xlPower 中的一种）。若省略，则默认趋势线类型为 xlLinear。

order

type 为 xlPolynomial 时的必选项，此参数指定趋势线次序，必须是2到6之间的整数（包含2和6）。

period

type 为 xlMovingAvg 时的必选项，此参数指定趋势线周期。本参数为整数，必须大于1并且小于系列中（加入此趋势线的系列）数据点的个数。

forward

可选项，设置趋势线向前延伸的周期个数（或散点图中的单元格数）。

backward

可选项，设置趋势线向后延伸的周期个数（或散点图中的单元格数）。

intercept

可选项，设置趋势线断点。若省略此参数，断点将由回归来自动设置。

displayEquation

可选项，如果趋势线方程在图表中显示，则此参数为 True（出现在与 R-平方值相同的数据标志中）。

displayRSquared

可选项，如果 R-平方值在图表中显示，则此参数为 True（出现在与趋势线方程相同的数据标志中）。

name

可选项，以文本方式指定趋势线名称，若省略，则将使用自动产生的名称。


Add 方法 (Workbooks Collection)

创建一个新的工作簿，此工作簿将成为当前工作簿。返回一个 Workbookk 对象。

语法

object.Add(template)

object

必选项，指定 Workbooks 对象。

template

可选项，此参数决定新工作簿将如何创建。如果本参数是一个指定当前Microsoft Excel 文件名的字符串，将以指定的文件作为模板来创建新的工作簿。若本参数是一个常数（xlworsheet,xlchart、XLExcel4MacroSheet、或 xlExcel4lntlMacroSheet 中的一个），那么新工作簿中将含有一个指定类型的工作表。若省略此参数，Microsoft Excel 将创建一个带有一定数量空工作表的工作簿。（空工作表数由 SheetsInNewWorkbook 属性来设置）。

注释

template 参数指定一个文件时，文件名中可含有路径。


Add 方法 (Worksheets Collection)

创建一个新的工作表，此工作表将成为当前工作表。返回一个 Worksheet 对象。

语法

object.Add(before, after, count, type)

object

必选项，指定 Worksheets 对象。

before

可选项，指定一个工作表，新工作表将添加在它前面。

after

可选项，指定一个工作表，新工作表将添加在它后面。

count

可选项，指定所要添加的工作表数。省略时为1。

type

可选项，指定工作表类型（ xlWorksheet, xlExcel4MacroSheet, 或  xlExcel4IntlMacroSheet中的一中）。若省略此参数，则默认为xlWorksheet。

注释

如果 before 和 after 参数均省略，则新工作表将插入到当前工作表的前面。


Add 方法 (图形对象与控制项)

使用磅值（1/72英寸）坐标创建 graphic object 和 control 。

对象类型取决于调用 Add 函数的集合。例如：Rectangles.Add可创建一个矩形，Ovals.Add可创建一个椭圆。

语法

object.Add(left, top, width, height)

object

必选项，指定应用本方法的对象。

left, top

必选项，以磅值（1/72英寸）指定新对象相对于工作表中A1单元格左上角或图表左上角的初始坐标。

width, height

必选项，以磅值（1/72英寸）指定新对象的初始大小。

注释

指定的坐标描述了对象的边界矩形框。对象将填充在此边界矩形框中，如下图所示。


Add 方法 (OLEObjects Collection)

为当前工作表创建一个新 OLE 对象。返回一个 OLEObject object。

语法

object.Add(classType, fileName, link, displayAsIcon, iconFileName, iconIndex, iconLabel)

object

必选项，指定 OLEObjects 集合。

classType

可选项（必须指定 classType 或 fileName）。含有要创建对象的 OLE 类名的字符串。若指定了 fileName 和 link，将被忽略。

fileName

可选项（必须指定 classType 或 fileName），指定文件的字符串，从该文件中将创建 OLE 对象。

link

可选项，若基于文件名的新 OLE 对象链接到该文件上时本参数为 True，如果未被链接，该文件将以复制形式创建。省略时为 False。

displayAsIcon

可选项，如果以图标或对象规则显示新 OLE 对象，则此参数为 True，此时 iconFileName 和 iconIndex 可指定一个图标。

iconFileName

可选项，指定含有要显示图标的文件的字符串。本参数仅当 displayAsIcon 为 True 时使用。若省略或文件不含有图标，将使用 OLE 类的默认图标。

iconIndex

可选项，指定图标文件中的图标个数，仅当 displayAsIcon为 True 且图标文件名引用了含有图标的合法文件时，才使用本参数。如果在 iconFileName 指定的文件中未发现带有给定索引的图标，那么将使用文件中第一个图标。

iconLabel

可选项，指定要在图标下显示的标志字符串。仅当 displayAsIcon 为 True 时，才使用本参数。若省略或字符串为空，则不显示任何功能标题。


Add 方法 (SeriesCollection Collection)

给 SeriesCollection 集合，添加一个或几个新系列。

语法

object.Add(source, rowcol, seriesLabels, categoryLabels, replace)

object

必选项，指定 SeriesCollection 对象。

source

必选项，以 Range 或数据点数组的形式，指定新数据。

rowcol

可选项，指定新值是在指定区域的行中（xlRows）还是在列中(xlColumns)，默认 为 xlColumns。

seriesLabels

可选项，如果 source 为一个数组，则本参数无意义。当首行或首列含有数据系列名时，本参数为 True。当首行或首列含有系列的第一个数据点时，则本参数为 False。若省略，Microsoft Excel 会从首行或首列内容中确定系列名的位置。

categoryLabels

可选项，如果 source 为一个阵列，本参数无意义。当首行或首列含有分类标志时，本参数为 True。当首行或首列含有系列的第一个数据点时，则本参数为 False。若省略，Microsoft Excel 会从首行或首列内容中确定分类标志的位置。

replace

可选项，当 categoryLabels 和 replace 均为 True 时，指定的分类将替换系列中当前分类。若省略或为 False ，则不替换当前分类。


帮助主题不可使用

由于未发现或未安装“Visual Basic for Applications 引用帮助”，不能显示“帮助”主题。

安装“Visual Basic for Applications 引用帮助”

1  运行 Microsoft Office for Windows 95“设置”程序并单击“添加/删除”命令。

2  单击 Microsoft Excel ，然后单击“改变选项”命令。

3  单击“联机帮助和示例”；然后单击“改变选项”命令。

4  确认选定了“帮助”复选框。

5  继续执行“设置”程序。


帮助主题不可使用

由于未发现或未安装“Microsoft Excel 帮助”，不能显示“帮助”主题。

安装“Microsoft Excel 帮助”

1  运行Microsoft Office for Windows 95“设置”程序，并单击“添加/删除”命令。

2  单击Microsoft Excel ，然后单击“改变选项”命令。

3  单击“联机帮助和示例”，然后单击“改变选项”。

4  确认选定了“Microsoft Excel 帮助”复选框。

5  继续执行设置程序。


帮助主题不可使用

由于未发现或未安装“数据访问对象帮助”，无法显示“帮助”主题。

安装“数据访问对象帮助”

1  运行Microsoft Office for Windows 95“设置”程序，并单击“添加/删除”命令。

2  单击“转换，筛选及数据访问”命令，然后单击“改变选项”命令。

3  单击“数据访问”命令，然后单击“改变选项”命令。

4  确认选定了“数据访问对象帮助”复选框。

5  继续执行“设置”程序。


Application属性

存取器。不与对象修饰词一起使用时，本属性返回 Application 对象，该对象表示 Microsoft Excel 应用程序。与对象修饰词一起使用时，本属性返回 Application 的对象表示某一指定对象的创建程序(可以与 OLE“自动化”对象一起使用本属性，来返回自动化对象的应用程序)。只读。


Creator 属性

返回建立该对象的应用程序，是一个32位整数。若该对象由 Microsoft Excel 建立，本属性返回 XCEL 串，它就是16进制数5843454C。只读。

注释

Creator 属性是为 Apple Macintosh 在Microsoft Excel 中使用而设计的，在 Apple Macintosh 中，每个应用程序有一个4字符代码。例如，Microsoft Excel 有建立程序代码 XCEL。


Parent 属性

存取器 。返回指定对象的父对象。只读。


ActiveCell 属性

存取器。返回当前窗口(这个窗口在顶部)或指定窗口中代表当前单元格的一个 Range 对象。如果当前窗口未显示一工作表，此属性无效。该属性只读。

注释

如果没有指定合适的对象，此属性返回当前窗口的当前单元格。

应当仔细区分当前单元格和选定区域。当前单元格是一个在当前选定区域内的单个单元格，而选定区域则可以包含不止一个单元格，但是只有一个是当前单元格。

下列表达式均返回当前单元格，而且它们都是等价的。

ActiveCell

Application.ActiveCell

ActiveWindow.ActiveCell

Application.ActiveWindow.ActiveCell


ActiveMenuBar 属性

存取器。返回一代表当前菜单条的 MenuBar 对象，该属性只读。


ActivePrinter 属性

返回或设置当前打印机的名称。该属性可读写。名称是一个字符串

注释

该属性不能在 Apple Maintosh 机上被设置。


ActiveSheet 属性

存取器。返回当前工作簿或指定窗口或工作簿中的当前工作表(这个表在顶部)对象。如果没有活动工作表则返回 Nothing。该属性只读。

由ActiveSheet属性返回的对象类型依赖于当前工作表，如下表所列。

活动工作表	返回对象类型

工作表	Worksheet

Visval Basic 模块表	Module

图表	Chart

对话框编辑表	DialogSheet

注释

如果没有指定合适的对象，此属性返回当前工作簿中的当前工作表。

如果某个工作簿出现在不止一个窗口中，那么它在不同窗口中的 AchiveSheet 属性可能不同。


ActiveWindow 属性

存取器。返回代表当前窗口(窗口在顶端)的 Window 对象。该属性只读。如果没有打开的窗口，则返回 Nothing。”


ActiveWorkbook 属性

存取器。返回代表当前窗口(这个窗口在顶部)中的工作簿的 Workbook 对象。该属性只读。如果没有打开的窗口或者这个活动窗口是一个信息窗口或剪贴板窗口，则返回 Nothing。


AddIns 方法

存取器。返回在加载宏对话框中列出的单个加载宏对象(AddIn 对象，语法1)

或加载宏集对象(AddIns 对象，语法2)。

语法1

object.AddIns(index)

语法2

object.AddIns

object

可选项。Application 对象。

index

对于语法1为必选项。即加载宏的编号或加载宏的标题，用字符串来表示。


AltStartupPath 属性

返回或设置替补启动文件夹的名称，用字符串表示。该属性可读写。


Arcs 方法

存取器。返回工作表上的单个弧形对象(Arc 对象，语法1)或弧形集对象(Arcs 对象，语法2)。该属性只读。

语法1

object.Arcs(index)

语法2

object.Arcs

object

必选项。即该方法施加的对象。

index

对于语法1为必选项。即弧形的名称或编号。


Buttons 方法

存取器。返回工作表上的单个按钮对象(Button 对象，语法1)或按钮集对象(Buttons 对象，语法2)。该属性只读。

语法1

object.Buttons(index)

语法2

object.Buttons

object

必选项。即该方法施加的对象。

index

对于语法1是必选项。即按钮的名称或编号。


Calculate 方法

计算所有打开的工作簿，工作簿中的指定工作表或工作表中指定的单元格区域。如下表所示：

计算	范例

所有打开的工作簿	Application.Calculate (or just Calculate)

一个指定的工作表	Worksheets(1).Calculate

一个指定的区域	Worksheets(1).Rows(2).Calculate

语法

object.Calculate

object

对于 Application 是可选项，对于 Worksheet 或 Range 是必选项。它指定在何处进行计算。


CalculateBeforeSave 属性

如果工作簿在保存到磁盘以前(如果 Calculation 属性设置为 xlManual )被重新计算，则为 True。即使改变了 Calculation 属性，该属性也被保存起来。该属性可读写。


CanPlaySounds 属性

如果计算机可以演奏声音附注，则为 True。该属性只读。


CanRecordSounds 属性

如果计算机可以记录声音附注，则为 True。该属性只读。


Caption 属性

Caption 属性根据它所应用的对象类型不同而有几种不同的含义。Caption 属性除下表所列外均可读写。

对象类型	含义

Application	此名称出现在 Microsoft Excel 主窗口的标题栏中。如果没有设置名称或将名称设置为 Empty，那么该属性返回“Microsoft Excel �。在 Apple Macintosh 上为只读。

AxisTitle	坐标轴标题文本。

Button	按钮文本。

Characters	当前字符区域中的文本。

ChartTitle	图表标题文本。

Controls	控制项文本(复选框、对话框框架、下拉列表框、编辑框、组框、标记和选项按钮)。

DataLabel	数据标志文本。

Menu	菜单名称，在菜单名称中需要带下划线的字母前添加符号“&”(例如“&File”)。

MenuBar	菜单栏文字，只读。

MenuItem	菜单项的名称(命令)，在命令名称中需要带下划线的字母之前添加符号“&”(例如，“E&xit")。

TextBox	文本框中的文本。

Window	出现在文档窗口标题栏中的名称，当设置该名称时，可以将这个名称用作 windows 属性的索引，参阅例2。


CellDragAndDrop 属性

如果单元格拖曳和下拉编辑处于打开状态，则为 True。该属性可读写。


TransitionMenuKey 属性

返回或设置替换菜单或帮助键，通常是“/”，该属性可读写。


TransitionNavigKeys 属性

如果替换引导键是活动的，则为 True。该属性可读写。


Cells 方法

存取器。返回 Range 对象表示的单个单元格(语法1，2)或单元格集合(语法3)。Cells 方法的行为依赖于它所施加的对象，如下表所示：

对象类型	行为

Application	如果该活动文档是一个工作表，则 Application.Cells 与 ActiveSheet.Cells 是等效的，它返回活动工作表上的单元格集合。否则 Cells 方法返回一个错误值。

Range	从区域中返回单元格集合。

Worksheet	从工作表中返回单元格集合。

语法 1

object.Cells(rowIndex, columnIndex)

语法 2

object.Cells(rowIndex)

语法 3

object.Cells

object

对Application为可选项，对 Worksheet 和 Range 为必选项。该对象包含单元格。如果指定 Application 对象(或省略对象限制)，则 Cells 方法将作用于该活动工作簿的活动工作表上。如果活动表不是一个工作表，此方法失效。

rowIndex

对于语法1是必选项。指定想要访问的单元格的行号，第一行为 1(对于 Application 和 Worksheet))或 Range 中的第一行。

对于语法2是必选项。当以行为主要次序时，指定一个长整型数来指明想要访问的单元格索引号。对于 Application 和 Worksheet ，A1 即 Cells(1)，A2 即 Cells(257) ；对于 Range，Cells(1) 即是区域中的左上方单元格。

columnIndex

对于语法1是必选项。指明想要访问的单元格列标的编号或字符串，A 列为1或“A”开始(对于应用程序和工作表)或 Range 中的第一列。

注释

语法1用行号和列标或字母作为索引参数。有关语法的详细内容，请参阅 Range 对象．

语法2用单个编号作为索引参数。对于单元格A1，索引为1，对于单元格B1，索引为2。对于单元格C1，索引为3。对于单元格A2，索引为257，等等。

当将 Cells 方法用于 Range 对象时，rowlndex 和 columnIndex 参数为相对偏移量。换句话说，指定 rowIndex 为1将返回区域中第一行的单元格，而不是工作表中的第一行。例如，如果选定单元格C3，那么，返回单元格D4(可以用该方法在原始区域之外索引)。

如果将语法3用于 Range，它返回相同的 Range 对象(换句话说，它什么也没做)。

如果将语法3用于 Worksheet ，它返回在工作表中所有单元格集合(所有单元格，而不仅仅是当前正在使用的单元格)。


Columns 方法

存取器。 返回 Range 对象，代表单个列(语法1)或列集合(语法2)。

语法 1

object.Columns(index)

语法 2

object.Columns

object

对 Application为可选项，对 Worksheet 和 Range为必选项。包含列的对象。如果指定 Application 对象(或省略对象限制)，此方法将作用于该活动工作簿的活动工作表上。如果活动表不是一个工作表，此方法失效。

index

对于语法1是必选项，指定列的名称或编号。

注释

当该方法应用于一个具有多重选定的 Range 对象时，它仅从该区域的第一个区域中返回列。例如，如果该 Range 对象是有A1：B2和C3：D4两个区域的多重选择，则 Selection.Columns.Count 返回2而不是4。在一个可能包含多重选定的区域中使用该方法，测试 Areas.Count 以确定该区域是否是多重选定的。如果是，则循环该区域中的每一个区。参见第三个实例。


CommandUnderlines 属性

返回或设置命令下划线的状态，如下表所示．

值	含义

xlOn 	打开命令下划线

xlOff	关闭命令下划线

xlAutomatic 	激活菜单时显示命令下划线

注释

在 Windows的Microsoft Excel 中，读该属性总返回 xlon，且设置该属性为 xlon以外的任何值都会出错。


ConstrainNumeric 属性

如果手写体的识别仅限于数字和标点符号，则为 True，仅当使用 Microsoft Windows for Pen Computing 时，该属性才有效。如果试图在任何其它操作系统下返回或设置该属性，则会发生错误。


ConvertFormula 方法

在 A1 和 R1C1 引用样式之间、相对和绝对引用之间或两者之间，转换公式的单元格引用．

语法

object.ConvertFormula(formula, fromReferenceStyle, toReferenceStyle, toAbsolute, relativeTo)

object

必选项。指定 Application 对象。

formula

必选项。包含想要转换的公式的字符串。这必须是一个有效的公式而且必须以等号开始。

fromReferenceStyle

必选项。公式的引用样式，可能是 xlA1 或 xlR1C1 。

toReferenceStyle

可选项。想要返回的引用样式，可能是 xlA1或 xlR1C1。如果省略该参数，则不更改引用样式(公式仍然保留由 fromReferenceStyle 指定的样式)。

toAbsolute

可选项。指定转换引用类型( xlAbsolute, xlAbsRowRelColumn,xlRelRowAbsColumn, 或 xlRelative 其中之一)。如果省略该参数，则不更改引用样式

relativeTo

可选项。包含一个单元格的 Range 对象。该对象确定与相对引用相关的单元格。


CutCopyMode 属性

返回设置剪切或复制方式的状态，如下表所示。可读写。

返回值	描述

False	不处于剪切或复制方式

xlCopy	处于复制方式

xlCut	处于剪切方式

设置值	描述

False	取消剪切或复制方式，然后删除移动边框线。

True.	取消剪切或复制方式，然后删除移动边框线。在 Macintosh 的 Microsoft Excel 中，它也可以将选定的内容放在 Macintosh 的剪贴板中。


DataEntryMode 属性

返回或设置数据输入方式，如下表所示，当处于数据输入方式时，只能在当前选定区域的解除锁定的单元格中输入数据。可读写。

数值	含义

xlOn	打开数据输入方式

xlOff	关闭数据输入方式

xlStrict	打开数据输入方式，并且ESC键不能退出数据输入方式。


DDEAppReturnCode 属性

返回特定应用程序的 DDE 返回代码，此代码包含在 Microsoft Excel 所接收的最后一次 DDE 确认消息中。


DDEExecute 方法

通过指定的 DDE 通道在另一个应用程序中运行一个命令或执行其他操作。

语法

object.DDEExecute(channel, string)

object

可选项。指定 Application 对象。

channel

必选项。用 DDEInitiate方法返回的通道号。

string

必选项。在接收应用程序中定义的信息。

注释

DDEExecute 方法用于向另一个应用程序发送命令。尽管 SendKeys 方法是发送击键信息的首选方法，也可以用 DDEExecute 向另一个应用程序发送击键信息。string 参数可以指定任何单个键，或与 ALT，CTRL，SHIFT键组合的全体单个键或与这些键的任意组合(在 Windows 中)或与 command,CTRL,OPTION,SHIFT 键组合的任何单个键或这些键的任意组合(在 Macintosh 中)。每一个键均用一个或更多个字符表示，诸如“a”表示字符a,或“{ENTER}”表示 ENTER 键。

在按键时，为了指明不被显示的字符，例如 ENTER 或 TAB，请使用如下表所示的代码。表中的每一个代码均表示键盘上的一个键。

键	代码

BACKSPACE	"{BACKSPACE}" or "{BS}"

BREAK	"{BREAK}"

CAPS LOCK	"{CAPSLOCK}"

CLEAR	"{CLEAR}"

DELETE or DEL	"{DELETE}" or "{DEL}"

DOWN ARROW	"{DOWN}"

END	"{END}"

ENTER (numeric keypad)	"{ENTER}"

ENTER	"~" (tilde)

ESC	"{ESCAPE} or {ESC}"

HELP	"{HELP}"

HOME	"{HOME}"

INS	"{INSERT}"

LEFT ARROW	"{LEFT}"

NUM LOCK	"{NUMLOCK}"

PAGE DOWN	"{PGDN}"

PAGE UP	"{PGUP}"

RETURN	"{RETURN}"

RIGHT ARROW	"{RIGHT}"

SCROLL LOCK	"{SCROLLLOCK}"

TAB	"{TAB}"

UP ARROW	"{UP}"

F1 through F15	"{F1}" through "{F15}"

在 Windows 中，也可以指定与 SHIFT 和(或) CTRL、和(或) ALT 组合的键。在 Macintosh 中，也可以指定与 SHIFT 和(或) CTRL、和(或) OPTION 、和(或) Command 组合键。为了指定与另一个键或另一些键组合的一个键。使用下表：

要组合的键	在键前设置代码

SHIFT	"+" (加号)

CTRL	"^" (乘幂)

ALT or OPTION	"%" (百分号)

COMMAND	"*" (乘号)


DDEInitiate 方法

为一个应用程序打开一个DDE通道。

语法

object.DDEInitiate(app, topic)

object

可选项，指定Application对象。

app

必选项。包含应用程序名的一个字符串。

topic

必选项。用于描述为其打开通道的应用程序的字符串，通常为应用程序的文档。

注释

如果成功，则 DDEInitiate 方法返回打开通道的编号。所有后续的DDE函数都使用这个编号以指定通道。


DDEPoke 方法

向一个应用程序发送数据。

语法

object.DDEPoke(channel, item, data)

object

可选项，指定 Application 对象。

channel

必选项，由 DDEInitiate方法返回的通道号。

item

必选项。数据被发送到的项。

data

必选项。发送到应用程序的数据。

注释

如果该方法调用失败，则发生错误。


DDERequest 方法

从一个指定的应用程序中请求信息。该方法总是返回一个数组。有关的详细内容，请参阅示例。

语法

object.DDERequest(channel, item)

object

可选项，指定 Application 对象。

channel

必选项，由 DDEInitiate 方法返回的通道号。

item

必选项。要申请的项。


DDETerminate 方法

关闭通向另一个应用程序的通道。

语法

object.DDETerminate(channel)

object

可选项，指定 Application 对象。

channel

必选项，由 DDEInitiate 方法返回的通道号。


Run 方法

语法1：运行一个宏或调用一个函数，它可以运行用任何语言( Visual Basic ，Microsoft Excel 4.0 宏语言，或 DLL 或 XLL 中的函数)编写的宏。

语法2：运行在该位置的 Microsoft Excel 4.0 宏。该区域必须在一个宏表上。

语法 1

object.Run(macro, arg1, arg2, ...)

语法 2

object.Run(arg1, arg2, ...)

object

对 Application 为可选项，，对 Range 为必选项。包含该宏的应用程序或包含一个Microsoft Excel 4.0宏的宏表上的一个区域。

macro

对于语法1为必选项(不能与语法2一同使用)。指定要运行的宏，它可以是一个带有宏名的字符串，或指明该函数在何处的 Range，或用于注册的 DLL( XLL )函数的注册标识ID。如果使用一个字符串，则字符串在活动表的上下文中被求值。

arg1, arg2, ...

可选项。该参数将被传递到该函数中。

注释

Run 方法返回调用的宏所返回的任何东西，作为参数传递到宏中的对象被转换为数值。(对象应用 Value 属性)，这意味着不能应用 Run 方法向宏传递对象。


Display Alerts 属性

当宏运行时，如果 Microsoft Excel 显示过报警信息和消息,则为 True。可读写。

注释

默认为 True，当宏运行时如果不想被提示和报警消息打扰，且想要 Microsoft Excel 选择默认响应，设置该值为 False。

如果设置该属性为 False，当宏停止运行时，Microsoft Excel 设置其返回值为 True。

此属性对外部 Microsoft Excel 程序无效，例如，可以从其它应用程序中( 使用启动 OLE)设置其值为 False，但 Microsoft Excel 立即重新设置为 True。调用自动 OLE 与执行宏操作一样，在任何时候，当宏停止运行时，Microsoft excel 重新设置属性，在设置属性后，属性立即被重新设置。


DisplayFormulaBar 属性

如果显示编辑栏，则为 True，可读写。


DisplayNoteIndicator 属性

如果含有附注的单元格含有附注标识(右上角小红点)，则为 True，可读写。


DisplayStatusBar 属性

如果状态栏被显示，则为 True，可读写。


DoubleClick 方法

等价于双击当前单元格。

语法

object.DoubleClick

object

必选项。Application 对象。


Evaluate 方法

转换 Microsoft Excel名称为对象或数值

语法

object.Evaluate(name)

object

对 Application 为可选项，对 Chart, DialogSheet 和 Worksheet 为必选项。包括命名对象。

name

必选项。对象的名称，遵循 Microsoft Excel约定。

注释

在 Microsoft Excel中下列名称使用该方法：

A1-style reference ，使用 A1 表示法的单元格引用。所有引用被认为是绝对引用。

range 与包括区域、交叉点和连字符(冒号、空格和逗号)一起使用的引用。

Defined names 以宏语文编写。

External references 使用!运算符的引用。这些引用可能是其他工作薄中定义的单元格的名字。例如， Evaluate("[BOOK1.XLS]Sheet1!A1")

Graphic objects 使用 Microsoft Excel 名称(如"Oval�3")。不能单独使用数字。

注意	使用方括号(例如, "[A1:C5]")标识调用带有参数的 Evaluate 方法。例如，下列表达式组是等价的。

[a1].Value = 25

Evaluate("A1").Value = 25

trigVariable = [SIN(45)]

trigVariable = Evaluate("SIN(45)")

Set firstCellInSheet = Workbooks("BOOK1.XLS").Sheets(4).[A1]

Set firstCellInSheet = Workbooks("BOOK1.XLS").Sheets(4).Evaluate("A1")

使用方括号的优点是简短。使用 Evaluate 的优点是参数为字符串，因此可以在代码中构造字。


ExecuteExcel4Macro 方法

运行Microsoft Excel 4.0宏函数并返回函数结果，返回类型依赖于函数，可读写。

语法

object.ExecuteExcel4Macro(string)

object

可选。Application 对象。

string

必选项。Microsoft Excel 4.0 宏语言函数，不带等号，所有引用必须用 R1e1 字符串给定。如果 String 含有内嵌的双引号，必须写两次，例如，要运行宏函数 =MID("sometext",1,4)，string 必须为“MID(""sometext"",1,4)”。

注释

Microosft Excel 4.0 宏在当前工作薄或表的上下文中不求值，这意味着任何引用必须是外部的且必须详细指定工作薄名字。例如，为运行 Book1 中的 Microsoft Excel 4.0“My-Macro”宏，必须使用“Book1!My_Macro()”。如果不指定工作薄的名称，该方法失败。


FixedDecimal 属性

该属性设置为 True 后，所有输入的数据将使用由 FixedDecimalplaces 属性设置的固定十进制小数格式。


FixedDecimalPlaces 属性

当 fixedDecimal 属性设置为 True 时，返回或设置所有的固定十进制小数位数，可读写。


Height 属性

返回或设置对象的高度，以磅数(1/72英寸)为单位。

注释

设置或返回的高度取决于指定的对象。

对象类型	高度
Application	在应用程序窗口的高度，在 AppleMacintosh 上，总等于屏幕的总高度，以磅数为单位，设置该值，其他值将无效。在 Windows 下，如果窗口被最小化，该属性是只读的且引用图标的高度。如果窗口被最大化，该属性不能被设置。使用 windowstate 属性确定窗口状态。
Range	区域的高度。只读。
Toolbar	工具栏高度，用磅数返回工具栏的精确高度。使 Width 属性改变工具栏的尺寸。只读。
Window	窗口高度。使用 UsablaHeight 属性确定窗口的最大尺寸。如果窗口被最大化或最小化，不能设置该属性。使用 Windowstate 属性确定窗口状态。
Arc, Button, ChartArea, ChartObject, CheckBox, DialogFrame, Drawing, DrawingObjects, DropDown, EditBox, GroupBox, GroupObject, Label, Legend, Line, ListBox, OLEObject, OptionButton, Oval, Picture, PlotArea, Rectangle, ScrollBar, Spinner, TextBox	对象的高度。如果设置整个对象集的高度(例如，使用…)每一个对象高度按现有高度比例变化(这种操作模拟了选定所有对象，然后再拖动手柄改变每一选定对象高度的操作)。这意味着，更改了每一个对象的高度，但是并没有设置为相同高度值，若要设定每一对象为相同高度值，必须反复选定对象，再设置每个对象的高度值。

可以使用负数，设置下列对象的 Height 和 Width 属性: Arc, Button, CheckBox, Drawing, DropDown, EditBox, GroupBox, GroupObject, Label, Line, ListBox, OLEObject, OptionButton, Oval, Picture, Rectangle, ScrollBar, Spinner 和TextBox。这导致对象产生不同的形状变化(依对象不同而不同)。此后，Top 和 Left 属性改变，以反映新的位置。Height 和 Width 属性总返回正数。


Help 方法

显示帮助主题。

语法

object.Help(helpFile, helpContextID)

object

必选项。Application 对象。

helpFile

可选项。希望显示的联机帮助文件的名字。如果该参数未指定，Microsoft Excel 的帮助文件被使用。

helpContextID

可选项。指定帮助主题的上下文 ID。如果该参数未指定，内容主题被显示。


IgnoreRemoteRequests 属性

如果远程 DDE 请求忽略，则为 True。可读写。


InputBox 方法

显示用户输入信息的对话框，并返回对话框中输入的信息。

语法

object.InputBox(prompt, title, default, left, top, helpFile, helpContextID, type)

object

必选项。Application 对象。

prompt

必选项。显示对话框中的消息，这可以是字符串，数字，日期或布尔值。

title

可选项。输入框的标题，如果省略该参数，默认标题是“输入”。

default

可选项。当对话框初始显示时，指定值被放在编辑框中。如果省略该参数，编辑栏为空。该值可以是一个 RANGE 对象。

left

可选项。指定对话框X坐标。用磅值表示。从屏幕左上开始。一磅为1/72英寸。

top

可选项。指定对话框Y坐标。用磅值表示，从屏幕左上开始。

helpFile

可选项。用于该输入框的联机帮助文件名字。如果 helpFile 和 helpContextID 参数出现，帮助按钮将出现在对话中。

helpContextID

可选项。helpFile 中帮助主题的上下文 ID。

type

可选项。指定返回数据类型。如果省略该参数，对话框返回文本，可具有下列值之一：

数值          含义

0 	公式

1	数字

2	文字(字符串)

4	逻辑值 (True 或 False)

8	单元格引用，如 Range 对象

16	错误值，诸如 #N/A

64	数值数组

可以使用 Type 所用值之和。例如，对于可接受文字和数字的输入框，设置 type=1+2。

注释

使用 InputBox 显示一简单对话框，因此可输入用于宏中的信息。对话框具有［确定］和［取消］按钮。如果选择“确定”按钮，InputBox 返回输入到对话框中的数值，如果选择“取消”按钮，InputBox 返回 False。

如果 type=0，InputBox 返回文字形式的公式。例如“=2*p1()/380”如果公式中有单元格引用，以 A1—引用形式返回(使用 ConvertFormula 在不同引用式样之间转换)。

如果 type=8，InputBox 返回 range 对象，必须使用 Set 状态指定 range 对象结果，如下例所示。(

Set myRange = Application.InputBox(prompt := "Sample", type := 8)

如果没有使用 Set 状态，变量设置为区域数值，而不是区域本身。

如果使用 InputBox 方法请求用户输入公式，必须使用 Formnlalocal 属性为区域对象指定公式。输入公式可以是用户语言。InputBox 方法区分 InputBox 函数，因为它允许用户选择合法输入，并能够与 Microsoft Excel 对象错误值和公式连用。注意Application.InputBox 调用 InputBox 方法，来指明对象的 InputBox 调用 InputBox 函数。


Interactive 属性

如果 Microsoft Excel 在交互(人机对话)工作方式下为 True，此属性通常为 True。如果设置为 False，Microsoft Excel 将封锁所有键盘和鼠标的输入(除了以代码形式显示在对话框中的输入)。封锁用户输入，可以使宏在移动或激活 Microsoft Excel 对象时，不被用户所中断。可读写。

注释

在其他应用程序中使用 DDE、ApplEvents 或 DLE 与 Microsoft Excel 交换信息时，该属性十分有用。

如果设置属性为 False，不要忘记将其设置回 True。当宏停止运行时，Microsoft Excel 不会将此属性设置为 True。


International 属性

返回一有45个元素的数组，该数组包含关于当前国别和国际设定的信息。该属性只读。��

语法

object.International(index)

object

必选项。Application 对象。

index

可选项。指定返回的单一设定，如下表所示。

索引	内部常量	类型	含义
1	xlCountryCode	数字	Microsoft Excel 的不同国家版本
2	xlCountrySetting	数字	Microsoft Windows 控制面板中关于国别的当前设置或由 Apple 系统软件确定的国家代号
3	xlDecimalSeparator	文本	十进制分隔符
4	xlThousandsSeparator	文本	零或千分隔符
5	xlListSeparator	文本	列表分隔符
6	xlUpperCaseRowLetter	文本	大写行字母(为R1C1引用)
7	xlUpperCaseColumnLetter	文本	大写列字母
8	xlLowerCaseRowLetter	文本	小写行字母
9	xlLowerCaseColumnLetter	文本	小写列字母
10	xlLeftBracket	文本	在R1C1相对引用中代替左括号(［)的字符
11	xlRightBracket	文本	用于代替右括号(］)的字符
12	xlLeftBrace	文本	在数组中代替左括号(｛)的字符
13	xlRightBrace	文本	用于代替右括号(｝)的字符
14	xlColumnSeparator	文本	在数组中，用于分隔列的字符
15	xlRowSeparator	文本	用于分隔行的字符
16	xlAlternateArraySeparator	文本	如果当前数组分隔符为十进制分隔符，则用于替换数组项的分隔符
17	xlDateSeparator	文本	日期分隔符 (美制为/)
18	xlTimeSeparator	文本	时间分隔符 (美制为：)
19	xlYearCode	文本	“年”符号的数字格式 (美制为y)
20	xlMonthCode	文本	“月”符号 (m)
21	xlDayCode	文本	“日”符号 (d)
22	xlHourCode	文本	“小时”符号 (h)
23	xlMinuteCode	文本	“分”符号 (m)
24	xlSecondCode	文本	“秒”符号 (s)
25	xlCurrencyCode	文本	“货币”符号 (＄)
26	xlGeneralFormatName	文本	通用数字格式名称
27	xlCurrencyDigits	数字	用于货币格式的十进制数位数
28	xlCurrencyNegative	数字	指出表示货币负值的格式: 0 = ($x) 或 (x$) 1 = -$x 或 -x$ 2 = $-x 或 x-$ 3 = $x- 或 x$- 附注：货币符号的位置由第37号索引决定。
29	xlNoncurrencyDigits	数字	用于非货币格式的十进制数位数
30	xlMonthNameChars	数字	用于表示月份名称的字符个数
31	xlWeekdayNameChars	数字	用于表示星期名称的字符个
32	xlDateOrder	数字	表示日期次序: 0 = 月-日-年 1 = 天-月-年 2 = 年-月-天
33	xl24HourClock	布尔值	如果使用24小时制表示时间则为 True；如果使用12小时，则为 False。
34	xlNonEnglishFunctions	布尔值	如果不以英语形式表示函数则为True。
35	xlMetric	布尔值	若使用公制则为 True；若使用英制则为 False。
36	xlCurrencySpaceBefore	布尔值	如果在货币符号前添加空格，则为 True。
37	xlCurrencyBefore	布尔值	若货币符号在货币数值前，则为True；若货币符号在货币数值后，则为 False。
38	xlCurrencyMinusSign	布尔值	若用负号表示负数则为 True；若用圆括号表示负数则为 False。
39	xlCurrencyTrailingZeros	布尔值	当货币值为零，并显示尾零时，则为 True。
40	xlCurrencyLeadingZeros	布尔值	当货币值为零，显示前零时，则为 True。
41	xlMonthLeadingZero	布尔值	当月份以数字表示，在前加零时，则为 True。
42	xlDayLeadingZero	布尔值	如果在天数中显示前导零，则为 True。
43	xl4DigitYears	布尔值	若用4位数表示“年”则为 True；若用2位数表示“年”则为 False。
44	xlMDY	布尔值	如果日期是以月—日—年这种次序的长型显示时，则为 True；如果日期次序为日—月—年，则为 False。
45	xlTimeLeadingZero	布尔值	如果在时间前加零，则为 True。


Intersect 方法

返回两个或多个单元格区域相交的矩形区域。

语法

object.Intersect(arg1, arg2, ...)

object

可选项。application 对象。

arg1, arg2, ...

必选项，相交的矩形区域，至少要指定两个 Range 对象。


Iteration 属性

如果Micrtosoft Excel用迭代法解决循环引用问题，则为 True。该属性可读写。


Left 属性

返回或设定指定对象的位置，以磅值表示，(1/72英寸)。该属性可读写。Range 对象除外。

注释

Left 属性对于不同的应用的对象，有不同的含义。

对象	含义
Application	物理窗口的左边缘与 Microsoft Excel 主窗口左边缘之间的距离，以磅值表示。
ClipboardWindow	仅用于 Macintosh。 是指窗口可用区域的左边缘位置(即在菜单下方，左侧固定的工具栏和/或格式编辑栏的区域)，以磅值表示。
Range	列的左边缘到区域的左边缘之间的距离，以磅值表示。如果区域是非连续的，则使用第一个区域。如果区域不止一列宽，则使用最左边的一列。该属性只读。
Toolbar	如果工具栏是固定的(它的 Position 属性不是 xlFloating)，以工具栏的左边缘到工具栏固定区域左边缘之间磅值表示。如果工具栏是不固定的，以工具栏的左边缘到 Microsoft Excel 工作区左边缘之间的磅值数表示。
Window	窗口位置的左边，以磅值表示，以可用区域左边缘计。
Arc, AxisTitle, Button, ChartArea, ChartTitle, CheckBox, DataLabel, DialogFrame, Drawing, DrawingObjects, DropDown, EditBox, GroupObject, GroupBox, Label, Legend, Line, ListBox, OLEObject, OptionButton, Oval, Picture, PlotArea, Rectangle, ScrollBar, Spinner, TextBox	对象的左边位置，以磅值表示。以 A 列左边缘(在工作表中)或图表区域的左上方(在图表中)计。
如果窗口最大化，Application.Left 属性返回一个随窗口边框宽度而变化的负值。如果应用程序窗口最大化，将 Application.Left 设置为零会使窗口比原来略小，换句话说，如果 Application.Left 为零，Microsoft Excel 主窗口的左边框在屏幕上可见。

在 Apple Macintosh 中，Application.Left 总为零。在 Microsoft.Excel 设置其值为其它任何值都无效。

在 Microsoft windows 中，如果 Microsoft Excel 窗口最小化，则 Application.Left 控制图标的位置。


 Library Path 属性

返回 LIBRARY 目录路径。不包括最后的分隔符。该属性只读。


Liens 方法

存取器。返回工作表中代表单一直线(Liens 对象，语法1)或直线集(Liens 对象，语法2)的对象。该属性只读。

语法 1

object.Lines(index)

语法 2

object.Lines

object

必选项，即此方法应用的对象。

index

对语法1是必选项，即直线的名称或数量。

注释

此属性返回直线和箭头。直线和箭头的唯一区别为ArrowHeadStyle 属性。


Math Coprocessor Available 属性

如果有协处理器，则为 True。该属性只读。


Maxchange 属性

返回或设置 Microsoft Excel 求解循环引用时每次迭代所用的最大变化量。可读写。

注释

MaxIterations 属性设置求解循环引用的最大迭代次数。


MaxIterations 属性

返回或设置最大迭代数，用于解决循环引用。可读写。

注释

MaxChange 属性在解决循环引用时，设置每一次迭代的最大改变量。


MemoryFree 属性

以字节形式返回 Microsoft Excel 可使用的内存量。只读。


MemoryTotal 属性

以字节形式返回 Microsoft Excel 可使用的内存总量，包括已用内存。只读。

注释

MemoryTotal 等于 MemoryUsed + MemoryFree。


MemoryUsed 属性

以字节形式返回 Microsoft Excel 已使用的内存量。只读。


MenuBars 方法

存取器。返回代表一个菜单栏的对象(MenuBar 对象，语法1)，或者返回代表顶层菜单栏集合的对象(MenuBars 对象，语法2)。只读。

语法 1

object.MenuBars(index)

语法 2

object.MenuBars

object

可选项。指定 Application 对象。

index

在语法1中是必选项。指定菜单栏名称或编号。下表显示一些预定义的常量。

常量	描述

xlWorksheet	工作表，宏表，对话框编辑表.

xlChart	图表

xlModule	Visual Basic 模块表

xlNoDocuments	没有打开的文档

xlInfo	信息窗口

xlWorksheetShort	短工作表菜单(用于兼容 Microsoft Excel 版本3)

xlChartShort	短图表菜单(用于兼容 Microsoft Excel 版本3)

xlWorksheet4	老式工作表菜单栏(用于兼容 Microsoft Excel 版本4)

xlChart4	老式图表菜单栏(用于兼容 Microsoft Excel 版本4)


MouseAvailable 属性

如果鼠标可用，则此属性为 True (在 Macintosh 上此属性总为 True)。只读。


MoveAfterReturn 属性

若按下 ENTER(RETURN)键时当前单元格选定框移到其它单元格，则此属性为True。可读写。

注释

使用 MoveAfterReturnDirection 属性指定当前单元格的移动位置。


Names 方法

存取器。返回代表一个名称的对象(Name对象，语法1)，或者返回代表名称集的对象(Names 对象，语法2)。只读。

语法 1

object.Names(index, indexLocal, refersTo)

语法 2

object.Names

object

对于 Application 为可选项，对于 Workbook 和 Worksheet 为必选项。指定包含返回名称的对象。

index

可选项(语法1需要三个参数之一)。返回已定义的名称或编号。

indexLocal

可选项(语法1需要三个参数之一)。以用户语言表示的已定义名称。如果使用该参数，名称将不再进行转换。

refersTo

可选项(语法1需要三个参数之一)。指定与名称相关的内容。由此内容可得到一个名称。

注释

对于语法1，必须且只能指定三个参数中的一个。

该方法为 Worksheet 对象返回工作表指定名称(名称的前缀为“Work sheet Name！”)。

该方法为 Workbook 对象返回在指定工作簿(包含所有的工作表指定名称)中的名称，以及为 Application 对象返回在活动的工作簿中名称。


OnData 属性

返回或设置当 DDE- 或 OLE- 链接的数据到达 Microsoft Excel 时所运行的过程名称，该过程仅当来自另一应用程序的数据到达时，方可运行。可读写。

注释

可设置该属性为“”(空文本)以删除该过程。


OnEntry 属性

返回或设置当用编辑栏输入数据或在单元格中编辑数据时所运行的过程名称。可读写。

注释

当使用编辑命令或宏函数时，该过程不运行。

可设置该属性为“”(空文本)，以删除过程。

可使用 Caller 属性来确定具有输入数据的单元格。


OnKey 方法

当按下特定键或组合键时，运行指定过程。

语法

object.OnKey(key, procedure)

object

必选项，指定Application对象。

key

必选项，表示击键的字符串。

procedure

可选项。表示过程名称的字符串，如果 procedure 是“”(空文本)，当 key 按下时将没有任何动作。Onkey 的这种形式使得 Microsoft Excel 中击键的正常含义无效。如果 procedure 被省略，则 key 将恢复在 Microsoft Excel 中的正常含义，并且任何用前一个 Onkey 方法产生的特殊键将被清除。

注释

key 参数可指定任何单键或单键与 ALT，CTRL 和 SHIFT 键的组合；也可以是这些键的的任意组合(在 Windows 中)；或 COMMAND，CTRL，OPTION，SHIFT 键及其任意组合键(在 Macintosh 上)。每个键由一个或多个字符表示，如“a”代表字符a，“{ENTER}”代表ENTER键。

用下表中的代码指定那些击键时不显示的字符，如 ENTER 或 TAB 键。表中的每个代码代表键盘上的一个键。

键	代码

BACKSPACE	"{BACKSPACE}" 或 "{BS}"

BREAK	"{BREAK}"

CAPS LOCK	"{CAPSLOCK}"

CLEAR	"{CLEAR}"

DELETE or DEL	"{DELETE}" 或 "{DEL}"

DOWN ARROW	"{DOWN}"

END	"{END}"

ENTER (numeric keypad)	"{ENTER}"

ENTER	"~" (tilde)

ESC	"{ESCAPE} 或 {ESC}"

HELP	"{HELP}"

HOME	"{HOME}"

INS	"{INSERT}"

LEFT ARROW	"{LEFT}"

NUM LOCK	"{NUMLOCK}"

PAGE DOWN	"{PGDN}"

PAGE UP	"{PGUP}"

RETURN	"{RETURN}"

RIGHT ARROW	"{RIGHT}"

SCROLL LOCK	"{SCROLLLOCK}"

TAB	"{TAB}"

UP ARROW	"{UP}"

F1 through F15	"{F1}" 到 "{F15}"

在 Windows 中，也可以指定与 SHIFT 和(或) CTRL、 和(或) ALT 的组合键。在 Macintosh 上，也可以指定与 SHIFT 和(或) CTRL、 和(或) OPTION 、和(或) COMMAND 的组合键。用下表指定两个或多个键的组合键。

要组合的键 	置于键代码之前

SHIFT	"+" (加号)

CTRL	"^" (乘幂号)

ALT or OPTION	"%" (百分号)

COMMAND	"*" (乘号)

若给过程指派一特殊字符(+，^，%，等等)，应将字符置于括号内，细节参见实例。


OnTime 方法

制定时间调度表，以在将来某指定时刻(或是某指定的时间分隔后)运行指定过程。

语法

object.OnTime(earliestTime, procedure, latestTime, schedule)

object

必选项。指定Application对象。

earliestTime

必选项，指定要运行该过程的时间。

procedure

必选项。指定所运行过程的名称。

latestTime

可选项。指定过程运行的最后时间。例如，如果 lastestTime 设置为 earliestTime+30，并且由于正运行另一过程，Microsoft Excel 在 earliestTime 时刻不处于就绪，复制，剪切，或查找方式，则 Microsoft Excel 将等待30秒以完成第一个过程。如果在30秒内 Microsoft Excel 不能处于就绪方式，则该过程不运行。如果该参数被省略，则 Microsoft Excel 将等待直到过程运行。

schedule

可选项。若为 False 则清除前一次设置的 OnTime 过程，若为 True 则设置新的过程时间表。

注释

可用 Now+Timevalue(time) 制定在当前时间之后某时间段的调度任务。用 time value(time) 制定指定时间的调度任务。


OnWindow 属性

返回或设置当切换窗口时所运行的过程名。可读写。

注释

当由其他过程切换到该窗口或由 DDE 通道接受的命令切换到该窗口时，由该属性指定的过程不运行。此过程只应答用户操作，如用鼠标单击窗口，或在“编辑”菜单中选择“定位到”命令，等等。

如果工作表或宏表上定义有 Auto-Activate 或 Auto-Deactivate 宏，这些宏将在由 OnWindow 指定的过程运行完毕之后才运行。


OperatingSystem 属性

返回当前操作系统的名称和版本号。例如“Windows 3.10”或“Macintosh 7.00”。只读。


OrganizationName 属性

返回注册的组织名（以字符串形式）。只读。


Ovals 方法

存取器。返回代表表格中单一椭圆的对象(Oval 对象，语法 1) 或椭圆集合对象(Ovals 对象，语法 2)。只读。

语法 1

object.Ovals(index)

语法 2

object.Ovals

object

必选项。包含椭圆的对象。

index

对语法1为必选项。椭圆的名称或索引号。


Path 属性

返回对象的完整路径(以字符串形式)，不包括最后一个分隔符和对象的名称。只读。

注释

如果未指定对象的限定词，本属性返回 Microsoft Excel 应用程序的路径(相当于 Application.Path)。


PathSeparator 属性

在 Macintosh 机上返回字符":"，在Windows 中返回字符"\"。只读。


Pictures 方法

存取器。返回代表表格中单一图片的对象(Picture 对象，语法 1)或图片集合对象(Pictures 对象，语法 2)。只读。

语法 1

object.Pictures(index)

语法 2

object.Pictures

object

必选项。包含图片的对象。

index

对语法1为必选项。图片的名称或索引号。


PreviousSelections 属性

存取器。返回包含四个以前选定的区域或名称的数组。该数组的每个元素均为 Range 对象。只读。每次用名称框或“跳转”命令(“编辑”菜单) 跳转到某区域或单元格，或在宏中使用了 Goto 方法时，先前选定的区域就作为第一个元素加到这个数组中，而数组中其他元素依次向后移动。


Quit 方法

退出 Microsoft Excel。退出前不执行任何 Auto_Close 宏。

语法

object.Quit

object

必选项。Application 对象。

注释

如果使用本方法时有打开的未保存工作簿，Microsoft Excel 显示一对话框，询问是否保存所作修改。若要防止该对话框弹出，可在使用本方法前保存所有工作簿，或将 DisplayAlerts 属性设为 False。当此属性为 False 时，Microsoft Excel 在有未保存工作簿而退出的情况下不显示询问对话框，且退出时不保存工作簿。

如果未保存工作簿就将其 Saved 属性设为 True，Microsoft Excel 退出时将不请求保存该工作簿。


RecordRelative 属性

若宏以相对引用方式记录则为 True；以绝对方式记录时为 False。只读。


Rectangles 方法

存取器。返回代表表格中单一矩形的对象(Rectangle 对象，语法 1) 或矩形集合对象(Rectangles 对象，语法 2)。只读。

语法 1

object.Rectangles(index)

语法 2

object.Rectangles

object

必选项。包含矩形的对象。

index

对语法1为必选项。矩形的名称或索引号。


ReferenceStyle 属性

返回或设置 Microsoft Excel 以 A1 还是 R1C1 引用样式显示单元格引用和行列上标题(xlA1 或 xlR1C1)。可读写。


RegisteredFunctions 属性

返回数组，该数组包含动态链接库( DLLs )或代码资源中的函数列表，这些函数用 REGISTER 或 REGISTER.ID 函数注册。只读。数组中每一行包含一个函数的信息，如下表所示。

列	内容

1	DLL 或代码资源的名称。

2	DLL 或代码资源中的过程名称。

3	指定返回值的数据类型和参数的数据类型和数目的字符串。

注释

如果没有注册的函数，返回 Null。使用 IsNull 函数以检测返回值是否为 Null。


Repeat 方法

重复最近的用户界面操作。

语法

object.Repeat

object

必选项。Application 对象。

注释

本方法仅用于重复运行宏以前用户的最后一次操作，而且必须是宏中的第一行语句。不能用于重复 Visual Basic 命令。


Rows 方法

存取器。返回 Range 对象，该对象代表单一的行(语法1)或行的集合(语法2)。

语法 1

object.Rows(index)

语法 2

object.Rows

object

对于 Application 为可选项，对于 Range 和 Worksheet 为必选项。包含行的对象。如果指定 Application 对象(或省略对象限定词)，本方法适用于活动工作簿的活动工作表。如果活动表格不是工作表，本方法失败。

index

对语法1为必选项。行的名称或索引号。

注释

当用于多重选定的 Range 对象时，本方法仅返回所选区域中第一个部分的行。例如，如果 Range 对象是包含两个部分(A1:B2 和 C3:D4)的多重选定区域，Selection.Rows.Count 返回 2，而非 4。当本方法用于可能包含多重选定的区域时，可检测 Areas.Count 以确定该区域是否为多重选定区域，若然，对区域中每个部分进行循环；可参阅第二个实例。


Save 方法

Workbook 对象(语法 1)：保存对指定工作簿所作的修改。Application 对象(语法 2)：保存当前工作区。

语法 1

object.Save

语法 2

object.Save(filename)

object

必选项。Workbook 对象(语法 1)或 Application 对象(语法 2)。

filename

可选项。指定保存工作区的文件名。若该参数省略，使用缺省文件名。

注释

用 Open 方法打开工作簿文件。

将 Saved 属性设为 True，将把该工作簿标记为已保存的，即使并未真正保存。

第一次保存工作簿时，可使用 SaveAs 方法指定文件名。


ScreenUpdating 属性

如果屏幕更新打开，为 True。可读写。

注释

可关闭屏幕更新以加快宏代码执行的速度。您将看不到宏所做的事情，但宏将执行得更快。


Selection 属性

存取器。如果指定 Application 对象(或省略对象限定词)，本属性返回活动窗口中的选定对象。如果指定 Window 对象，本属性返回指定窗口中的选定对象。只读。

注释

Selection 属性返回的对象类型依赖于选定对象的类型(例如，如果选定文本框，本属性返回 TextBox 对象。)

如果未选定任何对象，Selection 属性返回 Nothing。


SendKeys 方法

向活动应用程序发送击键。本方法在 Apple Macintosh 机上不可用。

语法

object.SendKeys(keys, wait)

object

可选项。Application 对象。

keys

必选项。要发送到应用程序的击键或击键的组合，为文本形式。

wait

可选项。若为 True，Microsoft Excel 等待击键处理完才将控制返回宏。若为 False 或省略，不等击键被处理就继续宏的执行。

注释

本方法将击键置入一个键盘缓冲区。某些情况下，必须在调用那些读取击键的方法之前，先调用本方法。例如，要向对话框发送口令，在显示对话框之前，必须先调用 SendKeys 方法。

可用 keys 参数代表任何单一击键，或击键与 ALT、CTRL 或 SHIFT（或这些键的组合）的组合。每个击键用一个或多个字符代表，例如“a”代表 a 键，"{ENTER}" 代表 ENTER 键。

要指定击键时不回显的字符，例如 ENTER 或 TAB，使用下表所示的代码。表中每个代码都代表键盘的一个键。

键	代码

BACKSPACE	"{BACKSPACE}"或"{BS}"

BREAK	"{BREAK}"

CAPS LOCK	"{CAPSLOCK}"

CLEAR	"{CLEAR}"

DELETE或DEL	"{DELETE}"或"{DEL}"

DOWN ARROW	"{DOWN}

END	"{END}"

ENTER (数字键盘)	"{ENTER}"

ENTER	"~" (波浪号)

ESC	"{ESCAPE}"或"{ESC}"

HELP	"{HELP}"

HOME	"{HOME}"

INS	"{INSERT}"

LEFT ARROW	"{LEFT}"

NUM LOCK	"{NUMLOCK}"

PAGE DOWN	"{PGDN}"

PAGE UP	"{PGUP}"

RETURN	"{RETURN}"

RIGHT ARROW	"{RIGHT}"

SCROLL LOCK	"{SCROLLLOCK}"

TAB	"{TAB}"

UP ARROW	"{UP}"

F1到F15	"{F1}"到"{F15}"

也可以指定击键与 SHIFT 和（或）CTRL 和（或） ALT 的组合。用下表指定击键和其它键的组合。

要组合的键	在键代码前加

SHIFT	"+" (加号)

CTRL	"^" (脱字号)

ALT	"%" (百分号)


ShortcutMenus 方法

存取器。返回代表单个快捷菜单的 Menu 对象，只读。

语法

object.ShortcutMenus(index)

object

可选项。指定 Application 对象。

index

必选项，按如下列表所示，指定快捷菜单。

常数	描述

xlAxis	图表坐标轴

xlButton	按钮

xlChartSeries	图表系列

xlChartTitles	图表标题

xlColumnHeader	列

xlDebugCodePane	调试程序面板

xlDesktop	桌面

xlDialogSheet	对话框编辑表

xlDrawingObject	图形对象

xlEntireChart	整个图表

xlFloor	图表基点底

xlGridline	图表网格线

xlImmediatePane	即时面板

xlLegend	图表图例

xlMacrosheetCell	宏工作表单元格

xlModule	模块表

xlPlotArea	图表绘制区域

xlRowHeader	行

xlTextBox	文字框

xlTitleBar	标题栏

xlToolbar	工具栏

xlToolbarButton	工具栏按钮

xlWatchPane	监视窗格

xlWorkbookTab	工作薄标签

xlWorksheetCell	工作表单元格


StartupPath 属性

返回启动目录的全部路径，不包括最后的分隔符，只读。


StatusBar 属性

在状态栏中返回或设置文本，可读写。

注释

对于 Application 对象，若 Microsoft  Excel 已控制了状态栏，该属性返回 False；可通过设置该属性为 False 来恢复缺省的状态栏文本，甚至当状态栏隐藏时，该过程仍有效。

只能返回或设置自定义菜单项的状态栏文本，而不能对内部菜单项做此操作，若使用 OnAction 属性或“给对象指定宏”命令(“工具”菜单)来改变指定到工具栏按钮的宏，将会使该属性重新设置以匹配宏的状态栏文本。


TextBoxes 方法

存取器，返回代表在工作表中单个文字框的对象(TextBox 对象，语法1)或文字框的集合(TextBoxes 对象，语法2)。只读。

语法 1

object.TextBoxes(index)

语法 2

object.TextBoxes

object

必选项，指定包含文字框的对象。

index

在语法1中为必选项。指定文字框的名称或序号。


ThisWorkbook 属性

存取器。返回代表工作薄的 Workbook 对象。在该工作薄中，当前宏代码正在运行。只读。

注释

使用该属性来引用包含宏代码的工作薄。ThisWorkbook 属性是从加载宏内部引用加载宏工作薄的唯一方法，ActiveWorkbook 属性不返回加载宏工作薄(它返回调用加载宏的工作薄)，并且 Workbooks 方法也可能不成功，因为在创建加载宏时工作薄名称有可能改变。ThisWorkbook 属性总是返回代码正在其中运行的工作薄。

例如，可使用下列代码来激活存贮于加载宏工作薄中的对话框编辑工作表。

ThisWorkbook.DialogSheets(1).Show

该属性只有从 Microsoft Excel 内部使用，不能使用该属性从其它应用程序存取工作薄。


Toolbars 方法

存取器。从Microsoft Excel当前实例中返回代表单个工具栏(Toolbar 对象，语法1)或工具栏集合(Toolbars 对象，语法2)的对象。只读。

语法 1

object.Toolbars(index)

语法 2

object.Toolbars

object

可选项。指定包含工具栏的 Application 对象。

index

在语法1中为必选项。指定工具栏的名称或序号。


Top 属性

返回或设置指定对象的位置，(按磅值计，1磅=1/72英寸)。除了 Range 对象外，可读写。��

注释

根据所应用的不用对象，Top 属性有不同的意义。

对象	含义
Application	从实际屏幕的上缘到 Microsoft Excel 主窗口上缘的距离，按磅值计数。在 Windows 中，若应用程序窗口极小化，该属性控制图标位置(在屏幕任何位置)，在 Apple Macintosh 中，该值总为０值；若将该值设置为其它值将没有任何作用。
Button	对象的最高位置，按磅值计数，从第一行的最高位置起计量。
Range	从第一行上缘到区域的上缘的距离，按磅值计数。若区域是不连续的，只计算第一部分，若区域超过一行高，则使用区域的最高行(序号最小)。只读。
Toolbar	若工具栏是固定的(工具栏对象的 Position 属性不是 xlFloating )，从工具栏上缘到工具栏固定区域上缘之间距离的磅值数。若工具栏是浮动的，从工具栏上缘到 Microsoft Excel 工作区上缘之间距离的磅值数。
Window	可使用区域(在菜单，最高固定工具栏及(或)编辑栏以下)的上缘并起到窗口的最高位置之间距离，按磅值数计算。不能对极大化窗口设置该属性。请使用 WindowState 属性来返回或设置窗口状态。
Arc, AxisTitle, ChartArea, ChartTitle, CheckBox, DataLabel, DialogFrame, Drawing, DrawingObjects, DropDown, EditBox, GroupBox, GroupObject, Label, Legend, Line, ListBox, OLEObject, OptionButton, Oval, Picture, PlotArea, Rectangle, ScrollBar, Spinner, TextBox, Title	从第一行(工作表中)顶端或图表区域(在图表中)顶端算起到对角顶端位置之间的距离，按磅值计数。


Undo 方法

取消最后一个用户动作。

语法

object.Undo

object

必选项。指定 Application对象。

注释

该方法只能在运行宏之前用于删除用户的最后动作，并且必须在宏的第一行。它不能删除 Visual Basic 命令。


Union 方法

返回多个区域的合并。

语法

object.Union(arg1, arg2, ...)

object

可选项。指定 Application对象。

arg1, arg2, ...

必选项。返回这些区域的合并。必须至少指定两个 Range 对象。


UsableHeight 属性

返回在应用程序窗口区域中可用于某一窗口空间的高度(该窗口没有极大化)。高度按磅值计(1磅=1/72英寸)。只读。

注释

工具栏的添加将减少可用高度。


UsableWidth 属性

返回在应用程序窗口区域中可用于某一窗口空间的高度(该窗口没有极大化)。高度按磅值计(1磅=1/72)英寸)。只读。


UserName 属性

返回或设置当前用户的姓名(以字符串方式)。可读写。


Version 属性

返回 Microsoft Excel 版本号。只读。


Wait 方法

暂停运行中的宏直到指定时间。

要点：Wait 方法挂起所有 Microsoft Excel 动作并有可能阻止您在计算机上做其它操作。后台处理(如打印和重算)可以继续。

语法

object.Wait(time)

object

必选项。指定 Application 对象。

time

必选项。按 Microsoft Excel 日期格式表示，指定宏重新开始运行的时间。


Width 属性

返回在应用程序窗口区域中可用于某一窗口空间的高度(该窗口没有极大化)。高度按磅值计(1磅=1/72英寸)。只读。

注释

根据所应用的不同对象，Width 属性有不同的意义。

对象	描述
Application	从应用程序窗口左缘到应用程序窗口右缘之间的距离。
Range	区域的宽度。
Toolbar	工具栏宽度。设置宽度时，Microsoft Excel 将把工具栏的宽度和高度强制转化为最接近可容许的大小。
Window	窗口宽度。使用 UsableWidth 属性来确定窗口的最大尺寸，若窗口极大化或极小化，则不能设置此属性。使用 WindowState 属性来确定窗口状态。
Arc, Button, ChartArea, CheckBox, DialogFrame, Drawing, DrawingObjects, DropDown, EditBox, GroupBox, GroupObject, Label, Legend, Line, ListBox, OLEObject, OptionButton, Oval, Picture, PlotArea, Rectangle, ScrollBar, Spinner, TextBox, ToolbarButton, Window	对象的宽度。若为整个对象集合设置宽度(例如，使用Ovals， Width=100)，每个对象的宽度按当前宽度成比例地变化。(模仿选择所有对象并拖曳手柄来改变选择对象的宽度的操作)。即每个对象的宽度都改变了，但不是被设置为相同宽度。若要将集合中每一对象都设置为相同宽度，必须重复集合，来为每个对象分别设置宽度。

在 Apple Macintosh 中，Application.Width 总是等于屏幕的整个宽度，按磅值计数。若将该值设置为其它值，将没有任何作用。

在 Microsoft Windows 中，若窗口是极小化的，Application. Width 为只读型并且返回图标。

可在下列图形对象中，用负数来设置“Height”和“Width”属性：Arc, Button, CheckBox, Drawing, DropDown, EditBox, GroupBox, GroupObject, Label, Line, ListBox, OLEObject, OptionButton, Oval, Picture, Rectangle, ScrollBar, Spinner,和TextBox，在“Top”和“Left”属性改变，描述新位置后，将导致对象反射或变换(视对象而定)。Height 和 Width 属性总返回正值。


Windows 方法

存取器。返回代表单个窗口的 Window 对象（语法1），或窗口集合的 Windows 对象（语法2)。只读。

语法 1

object.Windows(index)

语法 2

object.Windows

object

对于 Application 是可选项，对于 Workbook 则是必选的，当对于 Application 属性时，该方法返回任意打开工作薄中的窗口(或窗口集合)，当对于 Workbook 属性时，该方法返回指定工作薄中的窗口(或窗口集合)。

index

对语法 1 为必选项。窗口的名称或数字。

注释

语法 2 返回显示和隐藏窗口的集合。


WindowsForPens 属性

当计算机在 Microsoft Windows for Pen Computing Excel 环境下运行为 True。只读。


WindowState 属性

返回或设置窗口状态，如下表所示。可读写。

值	意义

xlNormal	窗口不是最大化也不是最小化。

xlMaximized	X/Maximized 窗口最大化(只适用 Microslft Windows )，最大化窗口会使 Microsoft Excel桌面上的所有窗口最大化。

xlMinimized	窗口最小化(只适用 Microsoft Windows )。


Workbooks 方法

存取器。返回代表单个打开工作薄(Workbook 对象，语法1)或所有打开工作薄集合(Workbooks 对象，语法 2)的对象。只读。

语法 1

object.Workbooks(index)

语法 2

object.Workbooks

object

可选项。指定 Application 对象。

index

对语法1为必选项。工作薄的名称或数字。

注释

“Workbooks”方法中语法1返回的工作薄集合不包括打开的加载宏，它是一种特殊隐式工作薄。

但是，若文件名已知，也可返回单个打开的加载宏。例如 Workbooks(“OSCAR, XLA”)将返回名为“OSCAR.XLA”的打开加载宏作为Workbook对象。


AutoCorrect 对象

该对象包含 Microsoft Excel 的 AutoCorrect 属性值(日期名的大写形式，两个大写首字母的更正，自动更正表，等等)。该对象只存在于 Microsoft Excel for windows 95。

存取器。AutoCorrect 属性返回 AutoCorrect 对象。AutoCorrect 属性是 AutoCorrect 对象的属性。下例设置 Microsoft Excel 来更正以两个大写首字母开始的单词。

With Application.AutoCorrect

.TwoInitialCapitals = True

.ReplaceText = True

End With


AutoCorrect 属性

存取器。返回代表 Microsoft Excel 的 AutoCorrect 属性的 AutoCorrect 对象。该属性只存在于 Microsoft Excel for Windows 95 中。只读。


AutoCorrect 属性 实例

下例在 AutoCorrect 替换数组中，用单词“Temperature”替换单词“Temp”。

With Application.AutoCorrect

.AddReplacement "Temperature", "Temp."

End With


AddReplacement 方法

添加一个输入项到AutoCorrect 替换数组中。该方法只存在于 Microsoft Excel for Windows 95中。

语法

object.AddReplacement(what, replacement)

object

必选项 。指定 AutoCorrect 对象。

what

必选项 。指定被替换文本的字符串。若该字符串已存在于 AutoCorrect 替换数组中，新文本将替换当前需替换的文本。

replacement

必选项。指定替换文本的字符串。


AddReplacement Method 实例

本示例在 AutoCorrect 替换数组中用词“Temperature”代替了词“Temp”。

With Application.AutoCorrect

.AddReplacement "Temperature", "Temp."

End With


CapitalizeNamesOfDays 属性

若日期名的首写字母自动大写，则该属性为 True。该属性只存在于 Microsoft Excel for Windows 95 中。可读写。


CapitalizeNamesOfDays 属性 实例

本示例设置 Microsoft Excel 来大写日期名的首写字母。

With Application.AutoCorrect

.CapitalizeNamesOfDays = True

.ReplaceText = True

End With


DeleteReplacement 方法

从 AutoCorrect 替换数组中删除一个输入项。该方法只存在于 Microsoft Excel for Windows 95 中。

语法

object.DeleteReplacement(what)

object

必选项。指定 AutoCorrect 对象。

what

必选项。指定被替换文本的字符串，它出现于 AutoCorrect 替换数组中所需删除的行中。若该字符串不存在于 AutoCorrect 替换数组中，此方法失效。


DeleteReplacement Method 实例

下例从 AutoCorrect 替换数组中取消词“temperature”。

With Application.AutoCorrect

.DeleteReplacement "Temperature"

End With


ReplacementList 属性

返回或设置 AutoCorrect 替换数组。该属性只存在于 Microsoft Excel for Windows 95中。可读写。

语法

object.ReplacementList(index)

object

必选项。指定 AutoCorrect 对象。

index

可选项。指定 AutoCorrect 替换数组中所需设置或返回的行。行以包含二个元素的一维数组方式返回：元素1为第一列中的文本，元素2为第二列中的文本。若 index 越界，则该属性失效。

若省略 index ，则该属性返回一个二维数组。如下表所示，数组中每一行包含一个替换。I

列	内容
1	被替换文本
2	替换文本
若设置属性时省略 index ，则整个替换数组将被删除并替换。

注释

设置该属性时请注意，若没有指定 index 参数，将会删除整个替换数组。改变替换时使用 AddReplacement 方法会更简单安全。

不允许在替换数组的第一列中出现重复字符串。若尝试修改或替换数组时使用可能会产生重复字符串的方法，将会产生错误。


ReplacementList 属性 实例

下例在替换表中搜索“Temperature”，设置替换文本为“Temp”，然后将新的 AutoCorrect 替换数组写到工作表中。

With Application.AutoCorrect

For x = 1 To UBound(.ReplacementList)

repl = .ReplacementList(x)

If repl(1) = "Temperature" Then

repl(2) = "Temp."

.ReplacementList(x) = repl

End If

Worksheets(1).Cells(x, 1) = repl(1)

Worksheets(1).Cells(x, 2) = repl(2)

Next

End With


ReplaceText 属性

若 AutoCorrect 替换列表中的文本被自动替换，则该属性为 True。该属性只存在于 Microsoft Excel for Windows 95 中。 可读写。


ReplaceText 属性 实例

下例将关闭自动文本替换。

With Application.AutoCorrect

.CapitalizeNamesOfDays = True

.ReplaceText = False

End With


TwoInitialCapitals 属性

若以两个大写首字母开头的词可被自动更正，则该属性为 True。该属性只存在于 Microsoft Excel for Windows 95 中。可读写。


TwoInitialCapitals 属性 实例

示例设置 Microsoft Excel 对以两个大写首字母开头的词进行更正。

With Application.AutoCorrect

.TwoInitialCapitals = True

.ReplaceText = True

End With


AxisBetweenCategories 属性

当数值轴与分类轴交叉于分类之间时为 True。

注释

该属性只应用于分类轴，而不用于三维图表。


Crosses 属性

返回或设置指定轴和其它轴的交点，如下表所示。可读写。

值	意义

xlAutomatic	Microsoft Excel设置交叉轴。

xlMinimum	轴位置不变。

xlMaximum	轴位置左右切换。

xlCustom	CrossesAt 属性指定交叉点。

注释

该属性不存在于三维图表或雷达图表中。

该属性可用于分类轴和数值轴。在分类轴上，xlMinimum 设置数值轴交叉于第一个分类， xlMaximum 设置数值轴交叉于最后一个分类。

xlMinimum 和 xlMaxlmum 可根据不同的轴有不同的含义。


CrossesAt 属性

返回或设置数值轴和分类轴的交点。只适用于数值轴。可读写。

注释

设置该属性将导致 Crosses 属性改变为 xlCustom。

该属性不存在于三维图表或雷达图表中。


AxisGroup 属性

返回指定轴，图表组或系列的分组(xlPrimary 或 xlSecondary)。对 Series 为可读写。对 Axis 和 ChartGroup 为只读。

注释

对于三维图表，只有 xlPrimary 有效。


HasMajorGridlines 属性

当坐标轴带有主要网格线时该属性为 True。只有主坐标轴组中的坐标轴带有网格线。可读写。


HasMinorGridlines 属性

当坐标轴带有次要网格线时为 True。只有主坐标轴组中的坐标轴带有网格线。可读写。


MajorGridlines 属性

存取器。返回代表指定坐标轴主要网格线的 Gridlines 对象。只有主坐标轴组中的坐标轴带有网格线。只读。


MajorTickMark 属性

返回或设置指定坐标轴(xlNone, xlInside, xlowtside, 或 xlcross 其中之一)的主要刻度线类型。可读写。


MajorUnit 属性

返回或设置数值轴的主要单位。只适用于数值轴。可读写。

注释

该属性的设置使 MajorUnitIsAuto 属性设置为 False。

可使用 TickMarkSpacing 来设置加空格子分类轴的刻度线。


MajorUnitIsAuto 属性

如果 Microsoft Excel 计算数值轴的主要刻度，则为 True。只适用于数值轴。可读写。

注释

MajorUnit 属性的设置使该属性设置为 False。


MaximumScale 属性

返回或设置数值轴上的最大值。只适用于数值轴。可读写。

注释

该属性的设置将使 MaximumScale 属性的设置为False。


MaximumScaleIsAuto 属性

若 Microsoft Excel 计算数值轴的最大值，该属性为 True。只应用于数值轴。可读写。

注释

MaximumScale 属性的设置将使该属性设置为 False。


MinimumScale 属性

返回或设置数值轴上的最大值。只应于用数值轴。可读写。

注释

设置该属性将使 MinimumScaleIsAuto 属性设置为 False。


MinimumScaleIsAuto 属性

若 Microsoft Excel 计算数值轴的最小值，则该属性为 True。只应用于数值轴。可读写。

注释

MinimumScale 属性的设置将使该属性设置为 False。


MinorGridlines 属性

存取器。返回代表指定坐标轴次要网格线的 Gridlines 对象。只有主坐标轴组中的坐标轴带有网格线。只读。


MinorTickMark 属性

返回或设置指定坐标轴(xlNone, xlInside, Xloutside, 或 xlcross 中之一)的次要刻度线类型。可读写。


MinorUnit 属性

返回或设置数值轴上的次要单位。只应用于数值轴。可读写。

注释

该属性的设置将使 MinorUnitIsAuto 属性设置为 False。

可使用 TickMarkSpacing 属性在分类轴刻度线间添加空格。


MinorUnitIsAuto 属性

若 Microsoft Excel 计算数值轴上次要刻度，则该属性为 True。只应用于数值轴。可读写。

注释

MinorUnit 属性的设置将使该属性设置为此 False。


ReversePlotOrder 属性

若 Microsof Excel 从后向前绘点，则该属性为 True。可读写。

注释

该属性不存在于雷达图表。


ScaleType 属性

返回或设置数值轴刻度线类型(xlLinear 或 XlLogarithmic)。只应用于数值轴。可读写。

注释

对数刻度使用以10为底的对数。


TickLabelPosition 属性

描述指定坐标轴(xlNone, xlLow, xlHigh, 或 xlNextToAxis其中之一)中刻度标志的位置。可读写。


TickLabels 属性

存取器，返回代表指定坐标轴刻度标志的 TickLabels 对象。只读。


TickLabelSpacing 属性

返回或设置刻度标志之间分类或系列的数目，只应于用分类轴和系列轴。可读写。

注释

该属性只应用于分类轴和系列轴。数值轴上的标志间距由 Microsoft Excel 计算得出。


TickMarkSpacing 属性

返回或设置刻度线之间分类或系列的数目。只应用于分类轴和系列轴。可读写。

注释

该属性只应用于分类轴和系列轴。可使用 MajorUnit 和 MinorUnit 属性来设置数值轴刻度线间距。


BuiltIn 属性

对象为内部属性时，为 True(内部对象是 Microsoft Excel 的组成部分，与自定义对象相对)。该属性只读。


BuiltInFace 属性

当按钮使用它的内部属性外观时，为 True，使用自定义外观时，为 False 。该属性可读写。

注释

该属性只能设置为 True，令按钮使用内部属性，不能设置该属性为False；若要使用自定义外观，请利用 CopyFace 和 PasteFace 方法(设置 BuiltInFace 属性为 False)。


CopyFace 方法

复制指定按钮外观到剪贴板，该方法只复制位图按钮外观，而不是按钮本身。

语法

object.CopyFace

object

必选项。指 ToolbarButton 对象。

注释

当工具栏按钮是一个间距，或附带有调色板、列表(如字体和样式按钮)时，该方法不能使用。


Pushed 属性

当按钮显示为按下时为 True。该属性可读写。

注释

不能为内部按钮设置该属性。只适用于自定义按钮，且仅当该按钮有附加的过程。


Enabled 属性

当控制、图形对象或菜单项被使用时，为 True。该属性可读写，但 Menu 为只写。

注释

禁用的菜单项为灰色。按禁用工具栏按钮时会发出蜂鸣声。


IsGap 属性

当按钮确是一个间距(按钮之间额外空格)时，为 True。该属性只读。


Id 属性

按钮(只能是内部属性按钮)的按钮标识号。该属性只读。


OnAction 属性

返回或设置宏名称，该宏只有在单击对象时才运行。该属性可读写。

注释

为菜单项设置此属性，可使用为菜单项设置的宏信息来重载自定义的帮助信息。

注释

该属性不能用于下列工具栏按钮：工具栏按钮是一个间距，或附带有调色板、列表(如字体和样式按钮)。


PasteFace 方法

从剪贴板上粘贴位图按钮外观到指定按钮。

语法

object.PasteFace

object

必选项。指 ToolbarButton 对象。

注释

若该工具栏按钮是一个间距，或附带有调色板、列表(如字体和样式按钮)，该方法不能使用。


Font 属性

存取器。返回代表指定对象字体的 Font 对象。只读。


Insert 方法

语法1(Range 对象)：将单元格或单元格区域插入到工作表或宏工作表中，并移动其它单元格来留出空格。

语法2(Characters 对象)：在选定字符前插入一个字符串。

语法3(Pictures 对象)：将指定文件作为图片插入。

语法1

object.Insert(shift)

语法 2

object.Insert(string)

语法 3

object.Insert(filename, converter)

object

必选项。在该区域插入单元格(语法1)或在该字符前插入字符串(语法2)。

shift

可选项。指定移动单元格的方法，xlToRight 或 xlDown。若省略该值，根据区域的形状来确定缺省值。

string

必选项。所需插入的字符串。

filename

必选项。指定所需插入的文件。

converter

必选项。指定调入文件所使用的图片转换器。可从下列转换器中择一：

xlBMP, xlWMF, xlPLT, xlCGM, xlHGL, xlPIC, xlEPS, xlDRW, xlTIF, xlWPG, xlDXF, xlPCX, 或 xlPCT。


Text 属性

为指定对象返回或设置文本，如下表所示。可读写，但 Range 对象为只读。

Text 属性不能和下拉列表一起使用，但可以和组合下拉列表编辑器一起使用。

对象	文本
AxisTitle, ChartTitle	标题文本
Button	按钮文本
Characters	该字符区域文本
Controls	控制文本(复选框，对话框，下拉列表，编辑框，组合框，标签，以及选项按钮)
DataLabel	数据标签文本
Range	显示在单元格中的实际文本，如一个字符串。例如，若格式化单元格来显示美元符，则返回的单元格文本将显示美元符。此方法可创建工作表中值的可读文本表示法。只读
TextBox	文本框中的文本

有关在 Visual Basic 中使用 Text 工作表的帮助信息，请参阅在 Visual Basic 中使用 Microsoft Excel 的工作表函数。


Area3DGroup 属性

存取器。返回一个代表三维图表中面积图表组的 ChartGroup 对象，此对象代表三维图表中面积图表组。该属性只读。


AreaGroups 方法

存取器。在二维图表中，返回代表单个面积图表组(ChartGroup 对象，语法1)或面积图表组集合(ChartGroups 集合，语法2)的对象。

语法 1

object.AreaGroups(index)

语法 2

object.AreaGroups

object

必选项。Chart 对象。

index

语法 1 必选项。指定图表组。


AutoFormat 方法 (Chart 对象)

在指定的图表上使用内部或自定义的自动格式。

语法

object.AutoFormat(gallery, format)

object

必选项。Chart 对象。

gallery

必选项。指定内部图表库。可以从下列图表库中择一：xl3DArea, xl3DBar, xl3DColumn, xl3DLine, xl3DPie, xl3DSurface, xlArea, xlBar, xlColumn, xlCombination, xlCustom, xlDefaultAutoFormat, xlDoughnut, xlLine, xlPie, xlRadar, 或 xlXYScatter。

format

可选项。若 gallery 为 xlCustom,，指定内部自动格式、或包括含自定义自动格式名称的字符串的选项号码。


AutoScaling 属性

为 True时，Microsoft Excel 缩放一个三维图表使它和对应二维图表的大小相近。对 RightAngleAxes 属性必须为 True。该属性可读写。


Axes 方法

存取器。返回一个代表单个坐标轴(Axis 对象，语法1)或图表中坐标轴的集合(Axes 对象，语法2)的对象。

语法 1

object.Axes(type, axisGroup)

语法 2

object.Axes

object

必选项。Chart 对象。

type

对语法1是必选的。指定返回的坐标轴。可在下列坐标轴中择一：xlValue, xlCategory,或 xlSeries (xlSeries 只在三维图表中有效)。

axisGroup

可选项。指定坐标轴组(xlPrimary 或 xlSecondary).。若省略该参数，将使用主组。三维图表只有一个坐标轴组。


Bar3DGroup 属性

存取器。返回代表三维表中条形图组的 ChartGroup 对象。该属性只读。


BarGroups 方法

存取器。在二维图表中，返回代表单个条形图组(ChartGroup 对象，语法1)或条形图组集合(ChartGroups 集合，语法2)的对象。

语法 1

object.BarGroups(index)

语法 2

object.BarGroups

object

必选项。Chart 对象。

index

语法 1 必选项。指定图表组。


ChartArea 属性

存取器。返回代表整个图表面积的 ChartArea 对象。该属性只读。


Clear 方法

清除全部区域或图表区域。

语法

object.Clear

object

必选项。ChartArea 或Range 对象。


ClearContents 方法

清除区域公式。清除图表中数据但保留格式。

语法

object.ClearContents

object

必选项。Chart 或 Range 对象。


Column3DGroup 属性

存取器。返回在三维图表中代表柱形图组的 ChartGroup 对象。该属性只读。


ColumnGroups 方法

存取器。返回在二维图表中，返回代表单个柱形图组(ChartGroup 对象，语法1)或柱形图组集合(ChartGroups 集合，语法2)的对象。

语法 1

object.ColumnGroups(index)

语法 2

object.ColumnGroups

object

必选项。Chart 对象。

index

语法 1 必选项。指定图表组。


Corners 属性

存取器。返回代表三维图表的边角的 Corners 对象。不能格式化边角；该属性只能用于选择图表的边角。该属性只读。


CreatePublisher 方法

根据 Chart 或 Range 属性创建 Publisher。只在 Apple Macintosh System 7 或以后的版本中有效。

语法

object.CreatePublisher(edition, appearance, size, containsPICT, containsBIFF, containsRTF, containsVALU)

object

必选项。指 Chart 或 Range 对象。

edition

可选项。指所要创建的编辑的文件名。若省略该值，将使用缺省值：〈文件名〉Edition #n。

appearance

可选项。xlPrinter 和 xlScreen 二者选一。

size

可选项。(只用于Chart)。xlPrinter和xlScreen二者选一。

containsPICT

可选项。当 Publisher 包括 PICT 格式时为True 。缺省值为True 。

containsBIFF

可选项。当 Publisher 包括 BIFF 格式时为 True。对于拔Range 属性，缺省值为 True；对于 Chart 属性，缺省值为 False。

containsRTF

可选项。当 Publisher 包括 RTF 格式时为 True。对于 Range 属性，缺省值为 True；对于 Chart 属性，缺省值为 False。

containsVALU

可选项。当 Publisher 包括 VALU 格式时为 True。对于 Range 属性，缺省值为 True；对于 Chart 属性，缺省值为 False。


DepthPercent 属性

按图表宽度百分比形式(从20%到2000%)返回或设置三维图表的深度。该属性可读写。


DoughnutGroups 方法

存取器。返回二维图表中代表单个圆环图组(ChartGroup 对象，语法1)或圆环图组集合(ChartGroups 对象，语法2)的对象。

语法 1

object.DoughnutGroups(index)

语法 2

object.DoughnutGroups

object

必选项。Chart 对象。

index

语法 1 必选项。指定图表组。


Elevation 属性

返回或设置三维图表视图的上下仰角，单位为度。该属性可读写。

注释

图表上下仰角是观看图表的高度，单位为度。在大多数图表类型中，缺省值是 15。该属性值域为— -90 到 90，但三维条形图的值域为 0 到 44。


Floor 属性

返回代表三维图表底面的 Floor 对象。该属性只读。

有关Visual Basic 中使用 Floor 工作单函数的详细帮助信息，请参阅 在 Visual Basic 中使用 Microsoft Excel 的工作表函数。


GapDepth 属性

返回或设置三维图表中数据系序列之间的距离，以标记宽度的百分比方式显示(从 0到 500 ) 。该属性可读写。


GapWidth 属性

以条形或柱形宽度的百分比方式，返回或设置条形图或柱形图簇之间的空格，以条形或柱形宽度的百分比方式显示。此属性值必须在 0 至 500 之间。该属性可读写。


HasAxis 属性

以二维布尔值数组方式指明当前图表上的坐标轴 , 可读写。

数组第一维指明坐标轴( xlcategory , xlvalue , 或 xlseries 之一)。系列坐标轴仅适用用于三维图。数组第二维指明坐标轴组( xlprimary 或 xlsecondary )。可读写。

三维图只有一组坐标轴。

附注

如果改变图表类型或 AxisGroup 属性，Microsoft Excel 可能将创建或删除坐标轴。


HasLegend 属性

如果图表有图例，则该属性为 True。可读写。


HeightPercent 属性

用图表宽度的百分比(在5%~500%之间)返回或设置三维图的高度。可读写。


Legend 属性

存取器，为图表返回代表其图例的 Legend 对象。只读。


Line3DGroup 属性

存取器，返回三维图上代表折线图组的 ChartGroup 对象。只读。


LineGroups 方法

存取器。在二维图上，返回一个代表折线图组的对象(ChartGroup 对象，语法1)，或者返回一个代表折线图组集的对象(ChartGroups 集合，语法2)。

语法1

object.LineGroups(index)

语法2

object.LineGroups

object

必选项。指定图表对象。

index

在语法1中是必选项。指定图表组。


PageSetup 属性

存取器。返回一个 PageSetup 对象，该对象包含指定对象的所有页面设置值。只读。


Perspective 属性

为三维图视图返回或设置透视属性，此属性值必须在 0~100 之间。如果 RightAngleAxes 属性为 True，则该属性被忽略。可读写。


Pie3DGroup 属性

存取器。返回三维图上代表饼图组的 ChartGroup 对象。可读写。


PieGroups 方法

存取器。在二维图上返回一个代表饼图组的对象(ChartGroup 对象，语法 1)

或者返回一个代表饼图组集合的对象(ChartGroups 对象，语法 2)。

语法1

object.PieGroups(index)

语法2

object.PieGroups

object

必选项。指定Chart 对象。

  index

语法 1 必选项。指定图表组。


PlotArea 属性

存取器。返回一个代表图表图形区的 PlotArea 对象。只读。


RadarGroups 方法

存取器。在二维图上，返回一个代表雷达图组的对象(ChartGroup 对象，语法1)，或者返回一个代表雷达图组集合的对象( ChartGroups 集合，语法2)。

语法1

object.RadarGroups(index)

语法2

object.RadarGroups

object

必选项。指定 Chart 对象。

index

在语法1中是必选项。指定图表组。


RightAngleAxes 属性

如果图表坐标轴互相垂直，并且与图表旋转角度或上下仰角无关，则此属性为True。

仅适用于三维折线图，柱形图和条形图。可读写。

注释

如果该属性为 True，则 Perspective 属性被忽略。


Rotation 属性

返回或设置三维图视图的旋转角度(图形区绕Z坐标轴旋转，用度表示)。

该属性的值必须在0~360之间，而三维条形图的该属性值必须在0~44之间。默认值为20。仅适用于三维图。可读写。


SeriesCollection 方法

存取器。返回图表或图表组上代表一个系列的对象(Series 对象，语法 1)，或者返回代表包含所有系列的集合对象(SeriesCollection 对象，语法 2)

语法1

object.SeriesCollection(index)

语法2

object.SeriesCollection

object

必选项。指定 Chart 或 ChartGroup 对象。

index

在语法1中是必选项。指定系列名或系列数。


SetDefaultChart 方法

指定图表模板名称，Microsoft Excel 将用它创建图表。

语法

object.SetDefaultChart(formatName)

object

必选项。指定用程序对象。

formatName

必选项。指定一个自定义自动套用格式的名称。该名称可以是一个自定义自动套用格式，例如一个字符串或由特殊常量 xlBuiltIn 指定的内部图表模板。


Size 属性

返回或设置字体大小，可读写。


SubType 属性

返回或设置图表上一个图表组或全部图表组的子类型。

附注

设置 Type 属性后再设置 SubType 属性。每一类型支持不同的子类型(例如，柱形图类型可有簇，堆积或百分比子类型)。获取子类型数的最简单方法是用宏记录器记录子类型格式。


SurfaceGroup 属性

存取器。返回代表三维图的表面图表组的 ChartGroup 对象。


Type 属性

返回对象类型，如下表所示。除非另有标注，否则可读写。

对象	类型
Axis	坐标轴类型。可为 xlcatagory,xlvalue 或 xlseries 之一(xlseries 仅适用于三维图表)
Chart	图表类型。可为 xl3DArea, xl3DBar, xl3DColumn, xl3DLine, xl3DPie, xl3DSurface, xlArea, xlBar, xlColumn, xlDoughnut, xlLine, xlPie, xlRadar, 或 xlXYScatter 之一。如果图是含有具有多种类型的图表组，该属性将返回 Null，但设置全部图组的属性集合。
ChartGroup	图表组类型。可为图表对象中的某一显示值。如果设置的图表组类型不在图表上，Microsoft Excel 将创建一个新图表组。
DataLabel	数据标记类型(可为 xlNone, xlShowValue, xlShowLabel, xlShowPercent, 或 xlShowLabelAndPercent 之一)
Series	系列类型。可为图表对象中的某一显示值。如果设置的系列类型不在图表上，Microsoft 将创建一个新图表组。
Trendline	趋势线类型。可为xlLinear, xlLogarithmic, xlExponential, xlPolynomial, xlMovingAvg, 或xlPower 之一。
Window	窗口类型。可为 lChartInPlace, xlChartAsWindow, xlWorkbook, xlInfo, 或 xlClipboard 之一。只读。
Worksheet	工作表类型。可为 xlWorksheet, xlExcel4MacroSheet, 或 xlExcel4IntlMacroSheet 之一。只读。


Walls 属性

存取器。返回三维图背景墙 Walls 对象。只读。


XYGroups 方法

存取器。返回二维图上代表一个散点图组的对象(ChartGroup 对象，语法1)，或者返回代表散点图组集的对象( ChartGroups 集，语法2)。

语法1

object.XYGroups(index)

语法2

object.XYGroups

object

必选项，指定 Chart 对象。

index

语法 1 必选项，指定图表组。


Activate 方法

激活对象如下表所示：

对象	描述
Chart, ChartObject	使此图表为当前图表
DialogSheet, Module, Worksheet	使此表为当前表，此操作等价于单击标签
MenuBar	激活菜单栏，激活菜单栏的次数有一定的限制。详细内容参见附注部分
OLEObject	激活对象
Pane	激活分割区域。如果分割区域不在当前窗口中，则它所属的窗口也随之被激活。不能激活一个冻结的分割区域。
Range	激活单个单元格，这个单元格必须在当前所选择的区域中。要选定单元格区域，请用Select方法。
Window	把窗口放到z-order前面。这样将不执行任何附加在工作簿中的Auto-Activate或Auto-Deactivate宏（请使用RunAutoMacros方法执行这些宏）
Workbook	激活与工作簿相联的第一个窗口，而不执行任何附加在工作簿上的 Auto-Activate或Auto-Deactivate宏（请使用RunAutoMacros方法执行这些宏）

语法

object.Activate

object

必选项。指定要激活的对象

附注

当激活一个内部菜单栏时，只能显示一个适合于对象的菜单栏。例如，如果要为工作表或宏表显示一个图表菜单栏将返回一个错误并中断当前宏。

在选定不同类型的文件时，若激活一个自定义菜单栏将中止菜单栏的自动切换。例如，如果在显示一个自定义菜单栏时切换到一个图表，则这两个图表菜单将不被显示（如果使用内部菜单栏，它们将被显示）。当一内部菜单栏被显示时，菜单栏的自动切换被启用。


Close 方法

关闭对象，对于 Workbooks 集合使用语法1。对于 Window 和 Workbook 对象使用语法2。

语法1

object.Close

语法2

object.Close(saveChanges, fileName, routeWorkbook)

object

必选项。为要关闭的对象。

saveChanges

可选项。如果窗口里的工作簿没有修改，该参数将被忽略。如果工作簿被修改，并且工作簿上有其它打开的窗口，该参数将被忽略。如果工作簿被修改，并且工作簿上没有其它打开的窗口，该参数执行如下操作：

值	操作
True	保存工作簿的修改。如果还没有与工作簿关联的文件名，则采用 fileName。如果 fileName被省略，则要求用户提供一个文件名
False	不保存这个文件的修改
省略	显示一个对话框，询问用户是否保存修改
fileName

可选项，保存这个文件名下的修改。

routeWorkbook

可选项。如果工作簿不需要传送到下一个收件人（没有发送名单或已经传送），这个参数被忽略。否则，Microsoft Excel 按下表所示传送工作簿。

值	含义
True	发送工作簿到下一个收件人
False	不发送工作簿
省略	显示一个对话框，询问用户是否发送工作簿

附注

从Visual Basic 关闭工作簿时，不执行工作簿中的任何 Auto-Close 宏，请使用 RunAutoMacros 方法执行自动关闭宏。

当显示一个对话框时不能关闭一个工作簿。这意味着不能从一个对话框控制的事件句柄中调用这种方法。当用户选择一个按钮控制时，可以使用如下步骤关闭工作簿：

1.a5的 DismissButton 属性为 True。

2.bf。

3.bf为0（零）。

4.bf为1，选取控制时释放对话框。

5.c8于1，则关闭工作簿。


Visible 属性

如果对象可见，则此属性为 True。对于一个图表，对话框编辑表，模块表或工作表，该属性可置为 xlVeryHidden。这将隐藏这个对象，只有将此属性置为 True 时这个对象才变为可见（用户不能使对象成为可见）。可读写。

附注

如果数据透视表项正显示在表中，则其 Visible 属性为 True。

如果设置一个名称的 Visable 属性为 False，则此名称将不出现在“定义名称”对话框中。


Function 属性

返回或设置用来总结 PivotField (仅数据字段)的函数。可以是 xlAverage, xlCount, xlCountNums, xlMax, xlMin, xlProduct, xlStDev, xlStDevP, xlSum, xlVar, or xlVarP 中的任一个，可读写。


Clone方法实例(Microsoft Excel)

本实例显示一自定义对话框，此对话框中包含有来自 NWINDEX.MDB 数据库的 Customer 记录集中的 CONTACTS 和 CUSTMR_ID 字段的数据序列。

要建立 NWINDEX.MDB 数据库，可运行 Microsoft Excel 的CreateDatabase方法实例。

Dim db As Database

Dim rs1 As Recordset, rs2 As Recordset

Set db = Workspaces(0).OpenDatabase(Application.Path & "\NWINDEX.MDB")

Set rs1 = db.OpenRecordset("SELECT * FROM Customer" _

& " WHERE [REGION] = 'WA' ORDER BY [CUSTMR_ID];")

Set theDialog = DialogSheets.Add

Set list1 = theDialog.ListBoxes.Add(78, 42, 84, 80)

Set list2 = theDialog.ListBoxes.Add(183, 42, 84, 80)

Set rs2 = rs1.Clone()

rs2.MoveFirst

Do Until rs1.EOF

list1.AddItem (rs1.Fields("CONTACT").Value)

rs1.MoveNext

Loop

Do Until rs2.EOF

list2.AddItem (rs2.Fields("CUSTMR_ID").Value)

rs2.MoveNext

Loop

rs1.Close

rs2.Close

db.Close


Close方法实例(Microsoft Excel)

本实例打开 NWINDEX.MDB 数据库的 Customer 记录集，计算可用记录的数目，并将结果输入到 Sheet1。

要建立 NWINDEX.MDB 数据库，可运行 Microsoft Excel 的 CreateDatabase 方法实例。

Dim db As Database, rs As Recordset

Set db = Workspaces(0).OpenDatabase(Application.Path & "\NWINDEX.MDB")

Set rs = db.OpenRecordset("Customer")

Set resultsSheet = Sheets("Sheet1")

resultsSheet.Activate

With resultsSheet.Cells(1, 1)

.Value = "Records in " & rs.Name & " table:"

.Font.Bold = True

.EntireColumn.AutoFit

End With

rs.MoveLast

resultsSheet.Cells(1, 2).Value = rs.RecordCount

rs.Close

db.Close


CreateDatabase, CreateTableDef, Append Methods 实例(Microsoft Excel)

本实例建立一个新的数据库(NWINDEX.MDB)。该实例将 C：\Program Files\Common Files\Microsoft Shared\Msquery 文件夹中的两个数据表加到此数据库中。(在 Windows NT 中，两个数据表在 \WINDOWS\MSAPPS\MSQUERY 文件夹中。)

Sub createNWindEx()

Dim nWindEx As Database, customerTable As TableDef, supplierTable As TableDef

Dim dataSource As String

dataSource = _

"dBASE IV;DATABASE=C:\Program Files\Common Files\Microsoft Shared\MSquery"

appPath = Application.Path

Set nWindEx = Workspaces(0).CreateDatabase(Application.Path _

& "\NWINDEX.MDB", dbLangGeneral)

Set customerTable = nWindEx.CreateTableDef("Customer")

customerTable.Connect = dataSource

customerTable.SourceTableName = "Customer"

nWindEx.TableDefs.Append customerTable

Set supplierTable = nWindEx.CreateTableDef("Supplier")

supplierTable.Connect = dataSource

supplierTable.SourceTableName = "Supplier"

nWindEx.TableDefs.Append supplierTable

MsgBox "The database " & nWindEx.Name & " has been created."

nWindEx.Close

End Sub


Delete方法实例(Microsoft Excel)

本实例将一个新记录添加到 PRODUCT.DBF(dBASE IV 数据据表，它位于 C：\Program Files\Common Files\Microsoft Shared\Msquery 文件夹中)，然后将该记录删除。(在 Windows NT 中，PRODUCT.DBF 位于 \WINDOWS\MSAPPS\MSQUERY 文件夹中。)

Dim db As Database, rs As Recordset

Sheets("Sheet1").Activate

Set theID = ActiveSheet.Cells(1, 2)

Set theCategory = ActiveSheet.Cells(2, 2)

theID.Value = 200

theCategory.Value = "BEVR"

Set db = OpenDatabase("C:\Program Files\Common Files\Microsoft Shared\MSquery", False, _

False, "dBASE IV")

Set rs = db.OpenRecordset("PRODUCT.DBF", dbOpenTable)

rs.AddNew

rs("PRODUCT_ID") = theID.Value

rs("CATEGORY") = theCategory.Value

rs.Update

MsgBox "The new record has been created with " & theID.Value _

& " and " & theCategory.Value

rs.Move 0, rs.LastModified

rs.Delete

MsgBox "The record you just created has been deleted"

rs.Close

db.Close


OpenRecordset method 实例(Microsoft Excel)

本实例显示一个自定义对话框，该对话框中包含有 NWINDEX.MDB 数据库中所有可用记录集的清单。该实例根据用户选定的记录集打开一个新的记录集，然后将记录复制到 Sheet1。

要建立 NWINDEX.MDB 数据库，可运行 Microsoft Excel 的 CreateDatabase 方法实例。

Dim db As Database, rs1 As Recordset

Set db = Workspaces(0).OpenDatabase(Application.Path & "\NWINDEX.MDB")

Application.ScreenUpdating = False

Set theDialog = DialogSheets.Add

Set list1 = theDialog.ListBoxes.Add(78, 42, 84, 80)

Set label1 = theDialog.Labels.Add(78, 125, 240, 25)

label1.Text = "Recordsets for " & db.Name

i = 0

Do Until i = db.TableDefs.Count

list1.AddItem (db.TableDefs(i).Name)

i = i + 1

Loop

Sheets("Sheet1").Activate

Application.ScreenUpdating = True

If theDialog.Show = True Then

If list1.Value = 0 Then

MsgBox "You have not selected an item from the list."

Else

Set rs1 = db.OpenRecordset(db.TableDefs(list1.Value - 1).Name)

ActiveCell.CopyFromRecordset rs1

End If

End If

rs1.Close

db.Close


GetRows 方法实例(Microsoft Excel)

本实例将在 NWINDEX.MDB 数据库的 Customer 记录集中选定的记录复制到 Sheet1。

要建立 NWINDEX.MDB 数据库，可运行 Microsoft Excel 的CreateDatabase 方法实例。

Dim db As Database, rs As Recordset

Dim data As Variant

Set db = Workspaces(0).OpenDatabase(Application.Path & "\NWINDEX.MDB")

Set rs = db.OpenRecordset("SELECT CUSTMR_ID, CONTACT FROM Customer;")

data = rs.GetRows(6)

Sheets("Sheet1").Activate

For r = 1 to UBound(data, 2) + 1

For c = 1 to 2

Cells(r, c).Value = data(c - 1, r - 1)

Next

Next

rs.Close

db.Close


Move方法实例(Microsoft Excel)

本实例提示用户选择一记录号。然后，该实例将选定的记录从 NWINDEX.MDB 数据库的 Customer 记录集复制到 Sheet1。

Dim db As Database, rs As Recordset

Set db = Workspaces(0).OpenDatabase(Application.Path & "\NWINDEX.MDB")

Set rs = db.OpenRecordset("SELECT [CUSTMR_ID], [CONTACT], [REGION] " _

& "FROM Customer")

Sheets("Sheet1").Activate

aDistance = Application.InputBox("What record # you want to copy", _

Type:=2)

If aDistance = False Then	' 用户取消了InputBox

Exit Sub

End If

rs.MoveFirst

rs.Move aDistance

For i = 0 To 2

ActiveCell.Offset(, i).Value = rs.Fields(i).Value

Next

rs.Close

db.Close


MoveNext方法实例(Microsoft Excel)

本实例对 NWINDEX.MDB 数据库的 Customer 记录集中记录的 CON-TITLE 字段的值进行替换，然后显示所做替换的数目。

要建立 NWINDEX.MDB 数据库，可运行 Microsoft Excel 的 CreateDatabase 方法实例。

Dim db As Database, rs As Recordset, sQLText As String

Set db = Workspaces(0).OpenDatabase(Application.Path & "\NWINDEX.MDB")

sQLText = "SELECT * FROM Customer WHERE " _

& "CON_TITLE = 'Sales Representative';"

Set rs = db.OpenRecordset(sQLText)

i = 0

Do Until rs.EOF

With rs

.Edit

.Fields("CON_TITLE").Value = "Account Executive"

.Update

.MoveNext

End With

i = i + 1

Loop

MsgBox i & " replacements were made."

rs.Close

db.Close


OpenDatabase方法实例(Microsoft Excel)

本实例显示一个自定义对话框，该对话框中包含有位于 Microsoft Excel 文件夹中，带有文件扩展名 .MDB 的所有数据库的清单，然后打开用户选定的数据库。

Dim a(100), db As Database

i = 0

ChDrive "C"

ChDir Application.Path

a(i) = Dir("*.MDB")

If a(i) = "" Then

MsgBox "You have no databases in the Microsoft Excel directory"

Exit Sub

End If

Do

i = i + 1

a(i) = Dir()

Loop Until a(i) = ""

Set theDialog = DialogSheets.Add

Set list1 = theDialog.ListBoxes.Add(78, 42, 84, 80)

For counter = 0 To i - 1

list1.AddItem a(counter)

Next

Application.ScreenUpdating = True

theDialog.Show

Set db = Workspaces(0).OpenDatabase(a(list1.Value - 1))

MsgBox "The " & db.Name & " database is now open"

' 在此处使用数据库

db.Close


Seek方法实例(Microsoft Excel)

本实例打开 PRODUCT.DBF(dBASE IV 数据表，位于 \Program Files\Common Files\Microsoft Shared\Msquery 文件夹中)，定位于某记录，然后将数值复制到 Sheet1 中的 B2:C2 单元格。(在 WindowsNT 中，PRODVCT.DBF 位于\WINDOWS\MSAPPS\MSQUERY 文件夹中。)

Dim db As Database, rs As Recordset

Sheets("Sheet1").Activate

Set db = OpenDatabase("C:\Program Files\Common Files\Microsoft Shared\MSquery", _

False, False, "dBASE IV")

Set rs = db.OpenRecordset("PRODUCT.DBF", dbOpenTable)

rs.Index = "PRODUCT"

rs.Seek "=", "1"

If rs.NoMatch Then

MsgBox "Couldn't find any records"

Else

ActiveSheet.Cells(2, 2) = rs.Fields("CATEGORY").Value

ActiveSheet.Cells(3, 2) = rs.Fields("PROD_NAME").Value

End If

rs.Close

db.Close


Update方法实例(Microsoft Excel)

本实例打开 PRODUCT.DBF( dBASE IV 数据表，位于 \Program Files\Common Files\Microsoft Shared\Msquery 文件夹中)，找到 PRODUCT 取值为1的记录，然后将 CATEGORY 字段设置为 Sheet1 中 B2 单元格的数值。(在 Windows NT 中，PRODUCT.DBF位于\WINDOWS\MSAPPS\MSQVERY 文件夹中。)

Dim db As Database, rs As Recordset, categoryCell As Range

Sheets("Sheet1").Activate

Set categoryCell = ActiveSheet.Cells(2, 2)

categoryCell.Value = "BEVR"

Set db = OpenDatabase("C:\Program Files\Common Files\Microsoft Shared\MSquery", _

False, False, "dBASE IV")

Set rs = db.OpenRecordset("PRODUCT.DBF", dbOpenTable)

With rs

.Index = "PRODUCT"

.Seek "=", "1"

.Edit

.Fields("CATEGORY").Value = categoryCell.Value

.Update

End With

MsgBox "The field has been updated with " & categoryCell.Value

rs.Close

db.Close


AbsolutePosition 属性实例(Microsoft Excel)

本实例提示用户输入一记录号。该实例用此号码移动到 NWINDEX.MDB 数据库中 Customer 记录集中的某记录，然后，将三个指定字段的值复制到 Sheet1 中。

要建立 NWINDEX.MDB 数据库，可运行 Microsoft Excel 的 CreateDatabase 方法实例。

Dim db As Database, rs As Recordset

Sheets("Sheet1").Activate

recordNumber = Application.InputBox(Prompt:="Record number to copy " _

& "to Sheet1", Title:="Record to copy", Type:=1)

If recordNumber = False Then	' 用户取消了InputBox

Exit Sub

End If

Set db = Workspaces(0).OpenDatabase(Application.Path & "\NWINDEX.MDB")

Set rs = db.OpenRecordset("Customer", dbOpenSnapshot)

rs.MoveLast

If rs.RecordCount > recordNumber Then

rs.AbsolutePosition = recordNumber

ActiveCell.Value = rs.Fields("CONTACT").Value

ActiveCell.Offset(, 1).Value = rs.Fields("ADDRESS").Value

ActiveCell.Offset(, 2).Value = rs.Fields("CITY").Value

Else

MsgBox "The record #" & recordNumber & " doesn't exist."

End If

rs.Close

db.Close


Bookmark, Bookmarkable Properties 实例(Microsoft Excel)

本实例提示用户输入某州的两字母缩写。该实例用此值在 NWINDEX.MDB 数据库中 Customer 记录集中查找最多101个匹配记录。然后，用书签对每个记录做标记，并将第一和第三字段的值复制到 Sheet1 中。

要建立 NWINDEX.MDB 数据库，可运行 Microsoft Excel 的 CreateDatabase 方法实例。

Dim Found(100)

i = 0

Set db = Workspaces(0).OpenDatabase(Application.Path & "\NWINDEX.MDB")

Set rs = db.OpenRecordset("Customer")

Sheets("Sheet1").Activate

regionWanted = Application.InputBox("What state do you want data from?", _

"Specify two letters (e.g. 'WA')", Type:=2)

If regionWanted = False Then	' 用户取消了InputBox

Exit Sub

End If

criteria = "[REGION] = '" & regionWanted & "'"

rs.FindFirst criteria

If rs.NoMatch Or rs.Bookmarkable = False Then

MsgBox "No records for this state"

Exit Sub

Else

Do Until rs.NoMatch = True

i = i + 1

Found(i) = rs.Bookmark

rs.FindNext criteria

Loop

End If

For n = 1 To i

rs.Bookmark = Found(n)

Cells(n + 1, 1).Value = rs.fields(0).Value

Cells(n + 1, 2).Value = rs.fields(2).Value

Next

MsgBox "There are " & i & " records from this region"

rs.Close

db.Close


Connect, SourceTableName Properties 实例(Microsoft Excel)

本实例将数据表PRODUCT.DBF(dBASE IV 数据表，位于 \Program Files\Common Files\Microsoft Shared\Msquery 文件夹中)加到 NWINDEX.MDB 数据库。(在 Windows NT 中，PRODUCT.DBF 位于 \WINDOWS\MSAPPS\MSQVERY 文件夹中。)

要建立 NWINDEX.MDB 数据库，可运行 Microsoft Excel 的 CreateDatabase 方法实例。

Dim nWindEx As Database, tDef As TableDef

Dim dataSource As String

dataSource = _

"dBASE IV;DATABASE=C:\Program Files\Common Files\Microsoft Shared\MSquery"

Set nWindEx = Workspaces(0).OpenDatabase(Application.Path _

& "\NWINDEX.MDB")

Set tDef = nWindEx.CreateTableDef("Product")

tDef.Connect = dataSource

tDef.SourceTableName = "Product"

nWindEx.TableDefs.Append tDef

nWindEx.Close


Count 属性实例(Microsoft Excel)

本实例显示 NWINDEX.MDB 数据库中记录集的数目，然后将名字输入到 Sheet1。

要建立 NWINDEX.MDB 数据库，可运行Microsoft Excel 的 CreateDatabase 方法实例。

Dim db As Database, i As Integer

Sheets("Sheet1").Activate

Set db = Workspaces(0).OpenDatabase(Application.Path & "\NWINDEX.MDB")

Cells(1, 1).Value = "TableDef list for " & db.Name

Cells(1, 1).EntireColumn.AutoFit

For i = 0 To db.TableDefs.Count - 1

Cells(i + 2, 1).Value = db.TableDefs(i).Name

Next i

MsgBox "There are " & db.TableDefs.Count & " TableDefs"

db.Close


DateCreated, LastUpdated 属性实例(Microsoft Excel)

本实例显示 NWINDEX.MDB 数据库中 Customer 记录集建立和最后一次更新的日期和时间。

要建立 NWINDEX.MDB 数据库，可运行 Microsoft Excel 的 CreateDatabase 方法实例。

Dim creation As Variant, changed As Variant

Dim db As Database, td As TableDef

Set db = Workspaces(0).OpenDatabase(Application.Path & "\NWINDEX.MDB")

Set td = db.TableDefs("Customer")

creation = td.DateCreated

changed = td.LastUpdated

MsgBox "The " & td.Name & " table was created on " & creation _

& " and updated on " & changed

db.Close


EditMode 属性实例(Microsoft Excel)

本实例查看 NWINDEX.MDB 数据库中 Customer 记录集是否可编辑。若是，该实例用Sheet1中 C3 单元格的值更新第一个记录的第一个字段的值。

要建立 NWINDEX.MDB 数据库，可运行 Microsoft Excel 的 CreateDatabase 方法实例。

Dim db As Database, rs As Recordset

Set db = Workspaces(0).OpenDatabase(Application.Path & "\NWINDEX.MDB")

Set rs = db.OpenRecordset("Customer")

If Not ((rs.EditMode = dbEditAdd) Or _

(rs.EditMode = dbEditInProgress)) Then

rs.Edit

rs.Fields(0).Value = Worksheets(1).Cells(3, 3).Value

rs.Update

Else

MsgBox ("Cannot update database with cell value")

End If

rs.Close

db.Close


Filter 属性实例(Microsoft Excel)

本实例建立一个新记录集，该记录集包含 NWINDEX.MDB 数据库中 Supplier 记录集的记录，然后将该记录集的内容复制到 Sheet1。这些记录只包含位于加拿大的供应商的数据。该实例将一个新的有序记录集复制到 Microsoft Excel。

要建立 NWINDEX.MDB 数据库，可运行 Microsoft Excel 的 CreateDatabase 方法实例。

Dim db As Database, rs As Recordset, sortedSet As Recordset

Set db = Workspaces(0).OpenDatabase(Application.Path & "\NWINDEX.MDB")

Set rs = db.OpenRecordset("Supplier", dbOpenDynaset)

rs.Filter = "[COUNTRY] = 'Canada'"

Set sortedSet = rs.OpenRecordset()

Sheets("Sheet1").Activate

ActiveCell.CopyFromRecordset sortedSet

sortedSet.Close

rs.Close

db.Close


LockEdits 属性实例(Microsoft Excel)

在用 Sheet1 中 A1 单元格的值更新第一个记录的 CUSTMR-ID 字段的值之前，本实例锁定 NWINDEX.MDB 数据库中的 Customer 记录集。锁定记录集可保证在对其更新期间不被他人修改。

要建立 NWINDEX.MDB 数据库，可运行 Microsoft Excel 的 CreateDatabase 方法实例。

Dim db As Database, rs As Recordset

Sheets("Sheet1").Cells(1, 1).Value = "ACRIM"

databasePath = Application.Path & "\NWINDEX.MDB"

Set db = DBEngine.Workspaces(0).OpenDatabase(databasePath)

Set rs = db.OpenRecordset("Customer")

valueToAdd = Sheets("Sheet1").Cells(1, 1).Value

rs.LockEdits = False

rs.Edit

rs.fields("CUSTMR_ID").Value = valueToAdd

rs.Update

MsgBox "The new value of CUSTMR_ID is " & rs.fields("CUSTMR_ID").Value

rs.Close

db.Close


Name 属性实例(Microsoft Excel)

本实例在 Sheet1 的当前单元格中输入 NWINDEX.MDB 数据库中第一个记录集的名称。

要建立 NWINDEX.MDB 数据库，可运行 Microsoft Excel 的 CreateDatabase 方法实例。

Dim db As Database, td As TableDef

Set db = Workspaces(0).OpenDatabase(Application.Path & "\NWINDEX.MDB")

Set td = db.TableDefs(0)

Sheets("Sheet1").Activate

ActiveCell.Value = td.Name

db.Close


NoMatch 属性实例(Microsoft Excel)

本实例将华盛顿州的所有联络人名添加到一个新对话工作表中的列表框，然后运行该对话框。这些数据是从 NWINDEX.MDB 数据库中的 Customer 记录集得到的。

要建立 NWINDEX.MDB 数据库，可运行 Microsoft Excel 的 CreateDatabase 方法实例。

Dim db As Database

Dim rs As Recordset

Set db = Workspaces(0).OpenDatabase(Application.Path & "\NWINDEX.MDB")

Set rs = db.OpenRecordset("SELECT * FROM Customer")

criteria = "[REGION] = 'WA'"

Set customDialog = DialogSheets.Add

Set list1 = customDialog.ListBoxes.Add(78, 42, 84, 80)

rs.FindFirst criteria

Do Until rs.NoMatch

list1.AddItem (rs.fields("CONTACT").Value)

rs.FindNext criteria

Loop

customDialog.Show

rs.Close

db.Close


PercentPosition 属性实例(Microsoft Excel)

本实例选择并修改 NWINDEX.MDB 数据库中的 Customer 记录集中的记录，然后将该记录集复制到 Sheet1。状态栏显示已修改记录的百分数。

要建立 NWINDEX.MDB 数据库，可运行 Microsoft Excel 的 CreateDatabase 方法实例。

Dim db As Database, rs As Recordset, sQLText as String

Set db = Workspaces(0).OpenDatabase(Application.Path & "\NWINDEX.MDB")

sQLText = "SELECT [CON_TITLE], [CONTACT], [COMPANY] FROM Customer " _

& "WHERE [CON_TITLE] = 'Owner';"

Set rs = db.OpenRecordset(sQLText, dbOpenDynaset)

rs.MoveFirst

Sheets("Sheet1").Activate

Do While Not rs.EOF

rs.Edit

rs.Fields("CON_TITLE").Value = "Account Excecutive"

rs.Update

Application.StatusBar = rs.PercentPosition & "% of the" _

& " records have been replaced."

rs.MoveNext

Loop

Application.StatusBar = "Done"

rs.MoveFirst

numberOfRows = ActiveCell.CopyFromRecordset(rs)

MsgBox numberOfRows & " Records have been changed"

rs.Close

db.Close


RecordCount 属性实例(Microsoft Excel)

本实例显示 NWINDEX.MDB 数据库中的 Customer 记录集中的数目。

要建立 NWINDEX.MDB 数据库，可运行 Microsoft Excel 的 CreateDatabase 方法实例。

Sub CountRecords()

Dim db As Database, rs As Recordset

Set db = Workspaces(0).OpenDatabase(Application.Path _

& "\NWINDEX.MDB")

Set rs = db.OpenRecordset("Customer")

On Error GoTo errorHandler

rs.MoveLast

MsgBox "There are " & rs.RecordCount & " records in " _

& rs.Name

rs.Close

db.Close

Exit Sub

errorHandler:

MsgBox "There are no records in " & rs.Name

rs.Close

db.Close

End Sub


Size, Type Properties 实例(Microsoft Excel)

本实例从 ORDDTAIL.DBF 中将 Double 类型的所有字段复制到 Sheet1，ORDDTAIL.DBF 是一个DBASEIV 数据表，它位于 C：\Program Files\Common Files\Microsoft Shared\Msquery 文件夹中。(在 Windows NT 中，ORDDTAIL.DBF 位于 \WINDOWS\MSAPPS\MSQVERY 文件夹中)。

Dim db As Database, recordsToCopy As Recordset, tDef As Recordset

Dim fieldsToStore(1000), fileName As String

fileName = "ORDDTAIL.DBF"

Set db = _

Workspaces(0).OpenDatabase("C:\Program Files\Common Files\Microsoft Shared\MSquery", _

False, False, "dBASE IV")

Set tDef = db.OpenRecordset(fileName)

n = 0

Sheets("Sheet1").Activate

For i = 0 To tDef.Fields.Count - 1

If tDef.Fields(i).Type = dbDouble Then

fieldsToStore(n) = tDef.fields(i).Name

n = n + 1

End If

Next

If fieldsToStore(0) = "" Then

MsgBox "There are no number fields in this table."

Exit Sub

End If

For i = 0 To n - 1

records = "SELECT " & "[" & fieldsToStore(i) & "]" _

& " from " & db.Recordsets(fileName).Name & ";"

Set recordsToCopy = db.OpenRecordset(records)

With ActiveSheet.Cells(1, i + 1)

.CopyFromRecordset recordsToCopy

.ColumnWidth = recordsToCopy.fields(0).Size

End With

Next

recordsToCopy.Close

tDef.Close

db.Close


Sort 属性实例(Microsoft Excel)

本实例从 NWINDEX.MDB 数据库中 Supplier 记录集建立一个新记录集，然后将新记录集复制到 Sheet1。该新记录集在 COUNTRY 字段中按升序排序。

要建立 NWINDEX.MDB 数据库，可运行 Microsoft Excel 的 CreateDatabase 方法实例。

Dim db As Database, rs As Recordset, sortedSet As Recordset

Set db = Workspaces(0).OpenDatabase(Application.Path & "\NWINDEX.MDB")

Set rs = db.OpenRecordset("Supplier", dbOpenDynaset)

rs.Sort = "[COUNTRY]"

Set sortedSet = rs.OpenRecordset()

Sheets("Sheet1").Activate

ActiveCell.CopyFromRecordset sortedSet

sortedSet.Close

rs.Close

db.Close


CreateQueryDef 方法, SQL 属性实例(Microsoft Excel)

本实例根据 NWINDEX.MDB 数据库中 Customer 记录集建立一个新的查询。此查询选择华盛顿州中所有客户的快照，然后将其复制到 Sheet1。

要建立 NWINDEX.MDB 数据库，可运行 Microsoft Excel 的 CreateDatabase 方法实例。

Dim db As Database, qDef As QueryDef, rs As Recordset

Set db = Workspaces(0).OpenDatabase(Application.Path & "\NWINDEX.MDB")

Set qDef = db.CreateQueryDef("WA Region")

qDef.SQL = "SELECT * FROM Customer WHERE [Region] = 'WA';"

Set rs = db.OpenRecordset("WA Region")

numberOfRows = Sheets("Sheet1").Cells(1, 1).CopyFromRecordset(rs)

Sheets("Sheet1").Activate

MsgBox numberOfRows & " records have been copied."

rs.Close

db.Close


Updatable 属性实例(Microsoft Excel)

本实例提示用户选择一个单元格，该单元格包含 NWINDEX.MDB 数据库中 Customer 记录集的 CONTACT 字段的值。然后查看记录集是否可更新。若是，则用选定单元格中的数值向该记录集添加一个新记录。

要建立 NWINDEX.MDB 数据库，可运行Microsoft Excel 的 CreateDatabase 方法实例。

Dim db As Database, rs As Recordset

Sheets("Sheet1").Activate

cellToCopy = Application.InputBox("What cell value do you want" _

& " to update as contact?", Type:=8)

If cellToCopy = False Then	' 用户取消了InputBox

Exit Sub

End If

Set db = Workspaces(0).OpenDatabase(Application.Path & "\NWINDEX.MDB")

Set rs = db.OpenRecordset("Customer")

If rs.Updatable = True Then

rs.AddNew

rs("CONTACT") = cellToCopy

rs.Update

rs.MoveLast

MsgBox "The new contact is " & rs("CONTACT").Value

Else

MsgBox "The recordset cannot be modified."

End If

rs.Close

db.Close


ArrowHeadLength 属性

返回或设置箭头长度(xlShort, xlMedium, 或 xlLong 之一)。可读写。


ArrowHeadStyle 属性

返回或设置箭头的类型(xlNone, xlOpen, xlClosed, xlDoubleOpen, 或 xlDoubleClosed)。可读写。


ArrowHeadWidth 属性

返回或设置箭头宽度(xlNarrow, xlMedium, xlWide 之一)。可读写。


AutoSize 属性

若对象能自动调整大小来适应它包含的文本，则为 True。可读写。

注释

若由手动(由用户或者由 Height 或 Width 属性)调整对象的大小，则该属性置为 False。


AutoText 属性

若对象根据上下文自动产生合适的文本，则为 True。可读写。


Border 属性

存取器。返回 Border 对象，它表示对象的边框。只读。


BottomRightCell 属性

存取器。返回 Range 对象，此 Range 对象表示位于对象右下角的单元格。对于图形对象，仅当该图形对象处于一工作表上时，本属性才适用。只读。


BringToFront 方法

将对象置于z-顺序的前部。

语法

object.BringToFront

object

必选项，该方法应用的对象。


Characters 方法

存取器。返回 Characters 对象，它表示对象文本内字符的区域。您可以用它对文本串内的字符进行格式化。

语法

object.Characters(start, length)

object

必选项，该方法应用的对象。

start

可选项，要返回的第一个字符。若该变量是1或省略，本方法返回以第一个字符开始的一个字符区域。

length

可选项，要返回的字符数。若该变量省略，本方法返回字符串中 Start 字符之后的余串。

注释

对于 Range 对象，若使用该方法时带有自变量且单元格不包含文本值，则本方法失效。


Chart 属性

存取器。返回 Chart 对象，它表示对象中所包含的图表。只读。


ClearFormats 方法

清除对象的格式。

语法

object.ClearFormats

object

必选项，该方法应用的对象。


Color 属性

返回或设置对象的基色，如下表所示。颜色是一个长整型数，由 RGB 函数生成。可读写。

对象	颜色

Border	边框的颜色。

Borders	一个区域的所有4个边框的颜色。若4个边框的颜色不同，返回 Null。

Font	字体的颜色。

Interior	单元格阴影颜色或图形对象的填充颜色。

注释

若颜色是“自动的”，Color 属性将返回自动颜色作为 RGB 值(一个长整数)。用 ColorIndex 属性确定颜色是不是“自动的”。


Delete 方法

删除对象。语法 2只应用于 Range 对象。

语法 1

object.Delete

语法 2

object.Delete(shift)

object

必选项，本方法应用的对象。语法2只适用于 Range 对象。

shift

可选项，指定如何移动单元格来替换被删除的单元格(或者是 xlToLeft，或者是 xlUp)。若省略该变量，Microsoft Excel 将根据区域的形状选定一默认方式。

注释

试图删除内部的 Toolbar 或 MenuBar 对象将会失效，但不会引起错误。您可以使用 For Each 循环删除所有自定义工作栏或菜单栏。

删除 Point 或 LegendKey 将删除整个系列。

可以删除自定义文档属性，但不能删除内部的文档属性。


Index 属性

返回相似对象集内的对象的索引号。只读。

关于在 Visual Basic 中使用 Index 工作表函数的帮助，参见在 Visual Basic 中使用 Microsoft Excel  的工作表函数。


LineStyle 属性

返回或设置边框的线条样式。可读写。

对于 Range 对象边框，该属性可以取下列值之一：

对于图形对象边框，该属性可以取下列值之一：


LockedText 属性

若锁定对象内的文本以防止在保存文档时被修改，则为 True。可读写。


NumberFormatLinked 属性

若数字格式与单元格相链接(以使得在单元格中修改数字格式时，标志中的数字格式也随之改变)，则为 True。可读写。


Placement 属性

返回或设置对象与其下方单元格的联系方式。可以是 xlMoveAndSize, xlMove, 或 xlFreeFloating 之一。只能用于工作表中的对象。可读写。


PrintObject 属性

若打印文档时对象将被打印，则为 True。可读写。


Reshape 方法

通过插入，移动，或删除顶点改变图形的形状。

语法

object.Reshape(vertex, insert, left, top)

object

必选项，该方法应用的对象。

vertex

必选项，指定要插入，移动或删除的顶点。

insert

必选项，若为 True，Microsoft Excel 在顶点 vertex 和 vertex-1 之间插入一个顶点。新顶点的号即为 vertex 以前由 vertex 标识的顶点号变成 vertex+1，以此类推。若 insert 为 False，Microsoft Excel 删除顶点(若 top 和 left 省略)或将顶点移到由 top 和 left 变量指定的位置。

left

可选项，新顶点或移动顶点的左边位置，用相对于A1单元格的左上角或图形的左上角的磅值(1/72英寸)表示。

top

可选项，新顶点或移动顶点的上边位置。用相对于A1单元格的左上角或图形的左上角的磅值表示。

注释

若只剩两个顶点，则不能删除顶点。


RoundedCorners 属性

若图形对象具有圆角，则为 True。可读写。


SendToBack 方法

将对象送到z-顺序的后部。

语法

object.SendToBack

object

必选项，本方法所应用的对象。


ShowLegendKey 属性

若数据标志的图例项标识是可见的，则为 True。可读写。


TopLeftCell 属性

存取器，返回 Range 对象，它表示位于该对象左上角下面的单元格。对于图形对象，仅当图形对象在工作表上时，本属性才适用。只读。


Vertices 属性

返回或设置多边形或手绘图形的顶点，表示为顶点坐标的二维矩阵，顶点坐标用相对于A1单元格左上角的磅值(1/72英寸)数表示。X坐标放在矩阵的第1列，Y坐标放在第2列。每个图形或多边形至少有2个顶点。只读。


Weight 属性

返回或设置边框的粗细(xlHairline, xlThin, xlMedium, 或 xlThick 之一)。可读写。


ZOrder 属性

返回对象在z-顺序中的位置。只读。

注释

对于任何对象集，位于z-顺序的后部的对象是collection(1),位于z-顺序的前部的对象是Collection(collection,count)。例如，若在当前工作表中有三个椭圆，位于z-顺序的后部的椭圆是ActiveSheet.Ovals(1)，位于z- 顺序的前部的椭圆是ActiveSheet.Ovals(ActiveSheet.Ovals.Count)。


AddressLocal 方法

以用户语言环境下的字符串返回区域引用。

语法

object.AddressLocal(rowAbsolute, columnAbsolute, referenceStyle, external, relativeTo)

object

必选项，返回当前区域的引用。

rowAbsolute

可选项，若为 True 或省略，则返回引用中的行号使用绝对引用形式。

columnAbsolute

可选项，若为 True 或省略，则返回引用中的列标使用绝对引用形式。

referenceStyle

可选项，若为 xlA1 或省略，本方法返回 A1 型引用。若为 XIR1C1，本方法返回 R1C1型引用。

external

可选项，若为 True，本方法返回外部引用。若为 False，本方法返回局部引用。

relativeTo

可选项，若 rowAbsolute 和 columnAbsolute为 False，且 referenceStyle 为 xlR1C1，则必须为相对引用输入一起始点。该变量为 Range 对象类型，用来定义起始点。

注释

若引用包含多个单元格，rowAbsolute 和 columnAbsolute 应用于所有行和列。


CategoryLocal 属性

若该名称引用自定义函数或命令，本属性返回或设置该名称的分类，以用户的语言表示为一字符串，可读写。


DisplayScrollBars 属性

若对所有工作簿，滚动条可见，则为 True。可读写。


FormulaLocal 属性

在用户语言环境下，以 A1 引用方式返回或设置用作对象的公式。可读写。

注释

若单元格中为常量，本属性返回该常量。若单元格为空白，则返回一个空串。若单元格包含公式，则返回该公式，其格式与在编辑栏（包括等号）中显示的格式相同。

若将单元格的值或公式设置为日期，Microsoft Excel 将查看单元格是否已经用某种日期或时间数字格式进行了格式化。若没有，就将数字格式改变成默认的日期数字格式。

若区域是一个一维或二维区域，可以将公式设置为相同维数的 Visual Basic 数组。相类似，也可以将公式放在 Visual Basic 数组中。

设置一个多单元格区域的公式将用该公式填充本区域的所有单元格。


FormulaR1C1 属性

用宏语言返回或设置用用对象的公式，使用 R1C1 型符号。可读写。

注释

若单元格包含一常量，本属性返回该常量。若单元格空，则返回一个空串。若单元格包含一公式，则返回该公式，其格式与在编辑栏（包括等号）中显示的格式相同。

若将单元格的值或公式设置为日期，Microsoft Excel 就查看单元格是否已经用某种日期或时间数字格式进行了格式化。若没有，就将数字格式改变成默认的日期数字格式。

若区域是一个一维或二维区域，可以将公式设置为相同维数的 Visual Basic 数组。相类似，也可以将公式放在 Visual Basic 数组中。

设置一个多单元格区域的公式将用该公式填充本区域的所有单元格。


FormulaR1C1Local 属性

在用户语言环境下，返回或设置用用对象的公式，使用 R1C1 型符号。

注释

若单元格包含一常量，本属性返回该常量。若单元格空，则返回一个空串。若单元格包含一公式，则返回该公式，其格式与在编辑栏（包括等号）中显示的格式相同。

若将单元格的值或公式设置为日期，Microsoft Excel 就查看单元格是否已经用某种日期或时间数字格式进行了格式化。若没有，就将数字格式改变成默认的 日期数字格式。

若区域是一个一维或二维区域，可以将公式设置为相同维数的 Visual Basic 数组。相类似，也可以将公式放在 Visual Basic 数组中。

设置一个多单元格区域的公式将用该公式填充本区域的所有单元格。


HasDataLabels 属性

若系列有数据标志，则为 True。可读写。


PhoneticAccelerator 属性

返回或设置用于控制的语音键盘加速器键字符（本属性只在 Far East Microsoft Excel 中有）。当系统加速器模式切换到语音字符（与罗马字符相反，它使用 Accelerator 属性）时，使用该语音加速器。可读写。


RefersToLocal 属性

返回或设置一个包含公式的字符串，该字符串以等号开始，使用 A1 引用方式和用户当前的语言环境。可读写。


RefersToR1C1 属性

返回或设置一个包含公式的字符串，该名称定义为引用此公式，用 R1C1 型符号，使用宏书写器语言，由等号开始，可读写。


RefersToR1C1Local 属性

返回或设置一个包含公式的串，该名称定义为引用此公式，用 R1C1 型符号，使用用户语言，由等号开始，可读写。


SortSpecial 方法

语法1：用 Far-East 排序法对该区域排序，或者若该区域只包含一个单元格则对当前区进行排序。

语法2：用 Far-East 排序法对“数据透视表”排序；详细内容请参见变量序列。

语法 1

object.SortSpecial(sort方法, key1, order1, key2, type, order2, key3, order3, header, orderCustom, matchCase, orientation)

语法 2

object.SortSpecial(sort方法, key1, order1, type, orderCustom, orientation)

object

必选项，Range 对象。

sort方法

可选项，指定如何排序（xlSyllabary 按语言排序，或者 xlCodePage 按代码页排序）。默认值为 xlSyllabary。

key1

可选项，第一个排序字段，为文本（数据透视字段或区域名）或 Range 对象（如“Dept”或Cells(1, 1)）

order1

可选项，若为 xlAscending 或省略，按升序对 key1 排序。若为 xlDescending，按降序对 key1 排序。

key2

可选项，第二个排序字段，为文本（数据透视字段或区域名）或 Range 对象。若省略，则无第二排序字段。对“数据透视表”排序时不用。

type

可选项，只在“数据透视表”排序时使用。指定要排序的元素。或者为 xlSortValues或者为 xlSortLabels。

order2

可选项，key2 的排序顺序（xlAscending 或 xlDescending）；若省略，则假定为 xlAscending。对“数据透视表”排序时不用。

key3

可选项，第三个排序字段，为文本（区域名）或 Range 对象。若省略，则无第三排序字段。对“数据透视表”排序时不用。

order3

可选项，key3 的排序顺序（xlAscending 或 xlDescending）；若省略，则假定为 xlAscending。对“数据透视表”排序时不用。

header

可选项，若为 xlYes，则第一行包含页眉（它不参加排序）。若为 xlNo 或省略，不存在页眉（对整个区域排序）。若为 xlGuess，Microsoft Excel 猜测是否有页眉，若有位于何处。对“数据透视表”排序时不用。

orderCustom

可选项，自定义排序顺序列表中基于1的整数偏差。若省略，则使用1（标准）。

matchCase

可选项，若为 True，排序区分大小写。若为 False，排序不区分大小写。对“数据透视表”排序时不用。

orientation

可选项，若为 xlTopToBottom 或省略，排序从上至下进行（行排序）。若为 xlLeftToRight，排序从左至右进行（列排序）。


SourceData 属性

返回 PivotTable 的数据源，如下表所示。

数据源	返回值

Microsoft Excel 数据清	以文本形式返回的单元格引用。

单或数据库

外部数据源	数组。每行由一个 SQL 连接串构成，剩余元素作为查询串，按 200 个字符分段。

多重合并计算区域	二维数组。每行由引用和相关的页字段项构成。

其它“数据透视表”	上面三种信息中的任一种。


ShortcutMenus 方法实例

此例在工作表单元格快捷菜单中加入新的菜单项。

ShortcutMenus(xlWorksheetCell).MenuItems.Add _

Caption:="More..."

此例删除新菜单项。

ShortcutMenus(xlWorksheetCell).MenuItems("More...").Delete


StartupPath 属性实例

此例显示 Microsoft Excel 启动文件夹的完整路径。

MsgBox Application.StartupPath


StatusBar 属性实例

此例在打开工作簿 LARGE.XLS 之前将状态栏文本设置为“请耐心等待”，然后将文本恢复为默认值。

oldStatusBar = Application.DisplayStatusBar

Application.DisplayStatusBar = True

Application.StatusBar = "请耐心等待"

Workbooks.Open filename:="LARGE.XLS"

Application.StatusBar = False

Application.DisplayStatusBar = oldStatusBar

此例用于在 Visual Basic “模块表”菜单栏中的“帮助”菜单内加入新的菜单项，然后为新菜单项设置状态条文本、“帮助”文件名和“帮助”上下文 ID（注意：“帮助文件”和“帮助上下文标志”属性只适用于 Windows）。

Set menuObj = MenuBars(xlModule).Menus("Help")

Set newMenuItem = menuObj.MenuItems.Add(Caption:="&Read Me First", _

OnAction:="readmeMacro", _

Before:=1)

newMenuItem.StatusBar = "Read this topic before you begin"

newMenuItem.HelpFile = "C:\xl5\vba_xl.hlp"

newMenuItem.HelpContextID = 65535


TextBoxes 方法实例

此例设置工作表Sheet1上文本框1中的文本。

Worksheets("Sheet1").TextBoxes(1).Caption = "Text Box One"

此例删除工作表 Sheet1 上的所有文本框。

Worksheets("Sheet1").TextBoxes.Delete


ThisWorkbook 属性实例

此例关闭包含实例程序的工作簿，对工作簿所作的修改均不存盘。

ThisWorkbook.Close savechanges:=False


Toolbars 方法实例

此例在“常用”工具栏上的起始位置加入新的按钮，然后将宏“myNewButtonMacro”指定给此按钮。

Set newButton = Toolbars("Standard").ToolbarButtons.Add _

(Button:=210, Before:=1)

newButton.OnAction = "myNewButtonMacro"

此例将所有工具栏重新设置为其缺省配置。

For Each tb In Application.Toolbars

tb.Reset

Next tb


Top 属性实例

此例移动工作表 Sheet1 上的椭圆1，使它与第四行的顶端对齐。

Worksheets("Sheet1").Ovals(1).Top = _

Worksheets("Sheet1").Rows(4).Top

此例将工作表 Sheet1 上每个功能按钮顶端与第二行的顶端对齐。

topEdge = Worksheets("Sheet1").Rows(2).Top

For Each b In Worksheets("Sheet1").Buttons

b.Top = topEdge

Next b

此例将当前窗口扩大到可能的最大尺寸（假定此窗口尚未达到最大尺寸）。

With ActiveWindow

.WindowState = xlNormal

.Top = 1

.Left = 1

.Height = Application.UsableHeight

.Width = Application.UsableWidth

End With


Undo 方法实例

此例取消上一次的用户界面操作，此例必须位于宏的第一行。

Application.Undo


Union 方法实例

此例用公式 =RAND（）来填充两个已经定义的区域 Range1 和 Range2。

Worksheets("Sheet1").Activate

Set bigRange = Application.Union(Range("Range1"), Range("Range2"))

bigRange.Formula = "=RAND()"


UsableHeight 属性实例

此例将当前窗口扩大到可能的最大尺寸（假定此窗口尚未达到最大尺寸）。

With ActiveWindow

.WindowState = xlNormal

.Top = 1

.Left = 1

.Height = Application.UsableHeight

.Width = Application.UsableWidth

End With


UsableWidth 属性实例

此例将当前窗口扩大到可能的最大尺寸（假定此窗口尚未达到最大尺寸）。

With ActiveWindow

.WindowState = xlNormal

.Top = 1

.Left = 1

.Height = Application.UsableHeight

.Width = Application.UsableWidth

End With


UserName 属性实例

此例显示当前用户名。

MsgBox "当前用户为 " & Application.UserName


Version 属性实例

此例显示带有Microsoft Excel 版本号和操作系统名称的信息框。

MsgBox "Welcome to Microsoft Excel version " & _

Application.Version & " running on " & _

Application.OperatingSystem & "!"


Wait 方法实例

此例使正在执行的宏暂停直至当天下午 6：23。

Application.Wait "18:23:00"

此例使正在执行的宏暂停约10秒钟。

newHour = Hour(Now())

newMinute = Minute(Now())

newSecond = Second(Now()) + 10

waitTime = TimeSerial(newHour, newMinute, newSecond)

Application.Wait waitTime


Width 属性实例

此例将工作表 Sheet1 上椭圆1的宽度设为1英寸（72磅）。

Worksheets("Sheet1").Ovals(1).Width = 72

此例将工作表 Sheet1 上每个功能按钮的宽度设为36磅。

For Each b In Worksheets("Sheet1").Buttons

b.Width = 36

Next b

此例将当前窗口扩大到可能的最大尺寸（假定此窗口尚未达到最大尺寸）

With ActiveWindow

.WindowState = xlNormal

.Top = 1

.Left = 1

.Height = Application.UsableHeight

.Width = Application.UsableWidth

End With


Windows 方法实例

此例关闭首次打开或隐藏的 Microsoft Excel 窗口。

Application.Windows(1).Close

此例将当前工作簿中窗口1的名称设为 Consolidated Balance Sheet。以后此名称将作为 Windows 方法的索引。

ActiveWorkbook.Windows(1).Caption = "Consolidated Balance Sheet"

ActiveWorkbook.Windows("Consolidated Balance Sheet") _

.ActiveSheet.Calculate


WindowsForPens 属性实例

此例说明在运行 Microsoft Windows for Pen Computing 时，怎样将手写识别限定为仅对于数字和标点符号。

If Application.WindowsForPens Then

Application.ConstrainNumeric = True

End If


WindowState 属性实例

此例将 Microsoft Excel for Windows 中的应用程序窗口最大化，（此属性对 Macintosh 不适用）。

Application.WindowState = xlMaximized

此例将当前窗口扩大到可能的最大尺寸（假定此窗口尚未达到最大尺寸）。

With ActiveWindow

.WindowState = xlNormal

.Top = 1

.Left = 1

.Height = Application.UsableHeight

.Width = Application.UsableWidth

End With


Workbooks 方法实例

此例激活工作簿 Book1。

Workbooks("BOOK1").Activate

此例打开工作簿LARGE.XLS

Workbooks.Open filename:="LARGE.XLS"

此例关闭并保存除正在运行此例的工作簿以外的其它所有工作簿上所作的修改。

For Each w In Workbooks

If w.Name <> ThisWorkbook.Name Then

w.Close savechanges:=True

End If

Next w


AxisBetweenCategories 属性实例

此例使 Chart1 中的数值(Y)轴与分类(x)轴相交。

Charts("Chart1").Axes(xlCategory).AxisBetweenCategories = True


Crosses 属性实例

此例使 Chart1 中的数值(Y)轴在X值为最大处与分类(x)轴相交。

Charts("Chart1").Axes(xlCategory).Crosses = xlMaximum


CrossesAt 属性实例

此例使 Chart1 中的分类轴(x)在数值3处与数值(Y)轴相交。

With Charts("Chart1").Axes(xlValue)

.Crosses = xlCustom

.CrossesAt = 3

End With


AxisGroup 属性实例

此例判断 Chart1 中的数值(Y)轴是否位于第二组，若是，则删除它。

With Charts("Chart1").Axes(xlValue)

If .AxisGroup = xlSecondary Then .Delete

End With


HasMajorGridlines 属性实例

此例为 Chart1 中数值(Y)轴设置主要网格线的颜色。

With Charts("Chart1").Axes(xlValue)

If .HasMajorGridlines Then

.MajorGridlines.Border.ColorIndex = 3	'set color to red

End If

End With


HasMinorGridlines 属性实例

此例为 Chart1 中数值(Y)轴设置次要网格线的颜色。

With Charts("Chart1").Axes(xlValue)

If .HasMinorGridlines Then

.MinorGridlines.Border.ColorIndex = 4	'set color to green

End If

End With


MajorGridlines 属性实例

此例为 Chart1 中数值(Y)轴设置主要网格线的颜色。

With Charts("Chart1").Axes(xlValue)

If .HasMajorGridlines Then

.MajorGridlines.Border.ColorIndex = 5	'set color to blue

End If

End With


MajorTickMark 属性实例

此例在轴外侧为 Chart1 中数值(Y)轴设置主要刻度线。

Charts("Chart1").Axes(xlValue).MajorTickMark = xlOutside


MajorUnit 属性实例

此例为 Chart1 中数值(Y)轴设置主要及次要单位。

With Charts("Chart1").Axes(xlValue)

.MajorUnit = 100

.MinorUnit = 20

End With


MajorUnitIsAuto 属性实例

此例自动为 Chart1 中数值(Y)轴设置主要及次要单位。

With Charts("Chart1").Axes(xlValue)

.MajorUnitIsAuto = True

.MinorUnitIsAuto = True

End With


MaximumScale 属性实例

此例为 Chart1 中数值(Y)轴设置最大值和最小值。

With Charts("Chart1").Axes(xlValue)

.MinimumScale = 10

.MaximumScale = 120

End With


MaximumScaleIsAuto 属性实例

此例自动计算 Chart1 中数值(Y)轴的最大刻度和最小刻度。

With Charts("Chart1").Axes(xlValue)

.MinimumScaleIsAuto = True

.MaximumScaleIsAuto = True

End With


MinimumScale 属性实例

此例为 Chart1 中数值(Y)轴设置最大值和最小值。

With Charts("Chart1").Axes(xlValue)

.MinimumScale = 10

.MaximumScale = 120

End With


MinimumScaleIsAuto 属性实例

此例自动计算 Chart1 中数值(Y)轴的最大刻度和最小刻度。

With Charts("Chart1").Axes(xlValue)

.MinimumScaleIsAuto = True

.MaximumScaleIsAuto = True

End With


MinorGridlines 属性实例

此例为 Chart1 中的数值(Y)轴设置次要网格线的颜色。

With Charts("Chart1").Axes(xlValue)

If .HasMinorGridlines Then

.MinorGridlines.Border.ColorIndex = 5	'set color to blue

End If

End With


MinorTickMark 属性实例

此例在坐标轴上为 Chart1 中的数值(Y)轴设置次要刻度线。

Charts("Chart1").Axes(xlValue).MinorTickMark = xlInside


MinorUnit 属性实例

此例为 Chart1 中的数值(Y)轴设置主要及次要单位。

With Charts("Chart1").Axes(xlValue)

.MajorUnit = 100

.MinorUnit = 20

End With


MinorUnitIsAuto 属性实例

此例自动计算 Chart1 中数值(Y)轴的主要及次要刻度。

With Charts("Chart1").Axes(xlValue)

.MajorUnitIsAuto = True

.MinorUnitIsAuto = True

End With


ReversePlotOrder 属性实例

此例将 Chart1 中数值(Y)轴上点的绘制次序反转。

Charts("Chart1").Axes(xlValue).ReversePlotOrder = True


ScaleType 属性实例

此例将 Chart1 中数值(Y)轴的刻度设置为对数刻度。

Charts("Chart1").Axes(xlValue).ScaleType = xlLogarithmic


TickLabelPosition 属性实例

此例将 Chart1 中分类(x)轴的刻度标志位置设置为高位(图的上方)

Charts("Chart1").Axes(xlCategory).TickLabelPosition = xlHigh


TickLabels 属性实例

此例为 Chart1 中数值(Y)轴的刻度标志设置字体颜色。

Charts("Chart1").Axes(xlValue).TickLabels.Font.ColorIndex = 3


TickLabelSpacing 属性实例

此例设置 Chart1 中分类(x)轴上刻度标志间的分类数目。

Charts("Chart1").Axes(xlCategory).TickLabelSpacing = 10


TickMarkSpacing 属性实例

此例设置 Chart1 中分类(Ｘ)轴上刻度线间的分类数目。

Charts("Chart1").Axes(xlCategory).TickMarkSpacing = 10


BuiltIn 属性实例

此例列出“格式”工具栏中全部内部工具按钮的名称。这些名称放在工作表 Sheet1 的第一列中。

rowNumber = 1

For Each btn In Application.Toolbars("Formatting").ToolbarButtons

If btn.BuiltIn Then

Worksheets("Sheet1").Cells(rowNumber, 1).Value = btn.Name

rowNumber = rowNumber + 1

End If

Next btn

此例重新设置“常用”工具栏中具有自定义表面的每个内部工具按钮的表面。

For Each btn In Application.Toolbars("Standard").ToolbarButtons

If btn.BuiltIn And Not btn.BuiltInFace Then

If Not(btn.IsGap) Then  ' don't try to reset the separator gap!

btn.BuiltInFace = True

End If

End If

Next btn


BuiltInFace 属性实例

此例重新设置“常用”工具栏中具有自定义表面的每个内部工具按钮的表面。

For Each btn In Application.Toolbars("Standard").ToolbarButtons

If btn.BuiltIn And Not btn.BuiltInFace Then

If Not(btn.IsGap) Then  ' don't try to reset the separator gap!

btn.BuiltInFace = True

End If

End If

Next btn


CopyFace 方法实例

此例复制“常用”工具栏中工具按钮1（“新建”按钮）的位图表面，然后将其粘贴到工具按钮3上（“保存”按钮）。

With Toolbars("Standard")

.ToolbarButtons(1).CopyFace

.ToolbarButtons(3).PasteFace

End With


Enabled 属性实例

此例使“常用”工具栏中具有自定义图象的所有工具按钮失去活性。

For Each btn In Application.Toolbars("Standard").ToolbarButtons

If (Not btn.BuiltInFace And Not btn.IsGap) Then

btn.Enabled = False

End If

Next btn


Id 属性实例

此例显示“格式”工具栏中工具按钮1的工具按钮 ID 号。

buttonId = Toolbars("Formatting").ToolbarButtons(1).Id

MsgBox "This button's ID number is " & buttonId

此例生成一个“常用”工具栏的工具按钮名称和工具按钮 ID 号相对照的两列列表。此列表放置在工作表11的头两列。

i = 1

For Each btn In Toolbars("Standard").ToolbarButtons

If btn.IsGap = False Then

Worksheets(1).Cells(i, 1) = btn.Name

Worksheets(1).Cells(i, 2) = btn.Id

i = i + 1

End If

Next btn


IsGap 属性实例

此例在“常用”工具栏上显示分隔符间距数。

gapCount = 0

For Each btn In Toolbars("Standard").ToolbarButtons

If btn.IsGap Then

gapCount = gapCount + 1

End If

Next btn

MsgBox "There are " & gapCount & " gaps on the Standard toolbar"


OnAction 属性实例

此例将“打印”工具按钮（“常用”工具栏上的第五个工具按钮）的内部功能更换为 my_Print_Macro 过程。

ToolBars("Standard").ToolbarButtons(5).OnAction = "my_Print_Macro"

This example restores the built-in function of the Print button (button five on the Standard toolbar).

ToolBars("Standard").ToolbarButtons(5).OnAction = ""


PasteFace 方法实例

此例复制“常用”工具栏上工具按钮1（“新工作簿工具按钮）的位图表面，然后将其粘贴到工具按钮3（“保存”工具按钮）上。

With Toolbars("Standard")

.ToolbarButtons(1).CopyFace

.ToolbarButtons(3).PasteFace

End With


Pushed 属性实例

此例在“常用”工具栏中加入自定义工具按钮，再将 my-macro 过程连接到此工具按钮上，然后使此工具按钮处于下按状态。

Set btn = Toolbars("Standard").ToolbarButtons.Add _

(button:=220, before:=3)

btn.OnAction = "my_Macro"

btn.Pushed = True


Font 属性实例

此例将 Sheet1 上单元格 B5 中的字体设置为14 磅粗斜体。

With Worksheets("Sheet1").Range("B5").Font

.Size = 14

.Bold = True

.Italic = True

End With


Insert 方法实例
Insert Method 实例

此例在 Sheet1 上第四行前插入一新行。

Worksheets("Sheet1").Rows(4).Insert

此例在 Sheet1 上A1：e5区域插入新单元格并使现有单元格下移。

Worksheets("Sheet1").Range("A1:C5").Insert shift:=xlDown

此例在当前单元格处插入一新行。它必须在工作表上执行。

ActiveCell.EntireRow.Insert

此例将 Sheet1 上文本框1中的头三个字符以粗体字符串“ New”取代。

With Worksheets("Sheet1").TextBoxes(1).Characters(1, 3)

.Insert "New"

.Font.Bold = True

End With

此例将字符串“Done”加到 Sheet1 上文本框的末端，方法是将新字串插到文本框中最后一个字符的后面。

With Worksheets("Sheet1").TextBoxes(1)

.Characters(.Characters.Count + 1).Insert String:="Done"

End With


Text 属性实例

此例在 Sheet1 上的文本框中设置文本。若已有文本存在，则在设置新文本时将其删除。

Worksheets("Sheet1").TextBoxes(1).Text = "This is a test"

此例为图表 Chart1 设置图表标题文本。

With Charts("Chart1")

.HasTitle = True

.ChartTitle.Text = "First Quarter Sales"

End With

此例为图表 Chart1 中的分类轴设置坐标轴标题文本。

With Charts("Chart1").Axes(xlCategory)

.HasTitle = True

.AxisTitle.Text = "Month"

End With

此例以当前日期和时间取代对话工作表 Dialog1 上名为 Label 1 的标题文本。

DialogSheets("Dialog1").Labels("Label 1").Text = Now()

此例删除 Sheet1 上每个工具按钮的文本。

Worksheets("Sheet1").Buttons.Text = ""

此例说明了包含格式化数字的单元格的 Text 属性和 Value 属性之间的不同之处。

Set c = Worksheets("Sheet1").Range("B14")

c.Value = 1198.3

c.NumberFormat = "$#,##0_);($#,##0)"

MsgBox c.Value

MsgBox c.Text


Area3DGroup 属性示例

此例为 Chart1 中的三维面积图组设置子类型。此例需在有二个或更多系列的三维面积图上运行。

Charts("Chart1").Area3DGroup.SubType = 1


AreaGroups 方法示例

此例为面积图组1设置子类型，此例需在具有面积图组及折线图组的二维图上运行。

Charts("Chart1").AreaGroups(1).SubType = 1


AutoFormat 方法示例

此例为 Chart1 应用第三雷达图自动格式。

Charts("Chart1").AutoFormat xlRadar, 3

此例为 Chart1 应用“每月销售额”自定义自动格式。

Charts("Chart1").AutoFormat xlCustom, "Monthly Sales"


AutoScaling 属性示例

此例自动为 Chart1 分划刻度线。此例需在三维图上运行。

With Charts("Chart1")

.RightAngleAxes = True

.AutoScaling = True

End With


Axes 方法示例

此例为 Chart1 中的分类轴增加轴标。

With Charts("Chart1").Axes(xlCategory)

.HasTitle = True

.AxisTitle.Text = "July Sales"

End With

此例消去 Chart1 中分类轴的主要网格线。

Charts("Chart1").Axes(xlCategory).HasMajorGridlines = False

此例消去 Chart1 中所有轴的所有网格线。

For Each a In Charts("Chart1").Axes

a.HasMajorGridlines = False

a.HasMinorGridlines = False

Next a


Bar3DGroup 属性示例

此例为 Chart1 中三维条形图组设置子类型，此例需在具有二个或更多系列的三维条形图上运行。

Charts("Chart1").Bar3DGroup.SubType = 1


BarGroups 方法示例

此例为条形图组1设置子类型，此例需在具有条形图组及折线组的二维图上运行。

Charts("Chart1").BarGroups(1).SubType = 1


ChartArea  属性示例

此例将 Chart1 的图形区域的内部设置为红色，而将边缘部分设置为蓝色。

With Charts("Chart1").ChartArea

.Interior.ColorIndex = 3

.Border.ColorIndex = 5

End With


Clear 方法示例

此例清除 Sheet1 上 A1：G37 中的公式和格式设置。

Worksheets("Sheet1").Range("A1:G37").Clear

此例清除 Chart1 的图形区域（图形数据及格式设置）。

Charts("Chart1").ChartArea.Clear


ClearContents 方法示例

此例清除 Sheet1 上 A1：G37 单元格中的公式但保留原有的格式设置。

Worksheets("Sheet1").Range("A1:G37").ClearContents

此例清除 Chart1 中图表数据但保留原有的格式设置。

Charts("Chart1").ChartArea.ClearContents


Column3DGroup 属性示例

此例为 Chart1 中的三维列图组设置子类型。

Charts("Chart1").Column3DGroup.SubType = 4


ColumnGroups 方法示例

此例为 Chart1 中的列图组1设置子类型。

Charts("Chart1").ColumnGroups(1).SubType = 3


Corners 属性示例

此例选择 Chart1 的右上角位置。此例需在三维图表上运行（Select 方法对其它任何图表类型均不适用）。

With Charts("Chart1")

.Activate

.Corners.Select

End With


CreatePublisher 方法示例

此例生成基于Sheet1上A1：A20 单元格的 Publisher。

Worksheets("Sheet1").Range("A1:A20").CreatePublisher "stock data"


DepthPercent 属性示例

此例将 Chart1 的图表深度设置为宽度的百分之五十。此例需在三维图上运行。

Charts("Chart1").DepthPercent = 50


DoughnutGroups 方法示例

此例为 Chart1 中的环形图组1设置起始角。

Charts("Chart1").DoughnutGroups(1).FirstSliceAngle = 45


Elevation 属性示例

此例将 Chart1 的图表仰角设置为34度。此例需在三维图表上运行（Elevation属性对二维图表不适用）。

Charts("Chart1").Elevation = 34


Floor 属性示例

此例将 Chart1 的图表底部设置为兰色。此例需在三维图表上运行（Floor 属性对二维图表不适用）。

Charts("Chart1").Floor.Interior.ColorIndex = 5


GapDepth 属性示例

此例将 Chart1 中数据系列间的距离设置为标志宽度的二倍，此例需在三维图表上运行。

Charts("Chart1").GapDepth = 200


GapWidth 属性示例

此例将 Chart1 中列簇间的距离设置为列宽的二分之一。

Charts("Chart1").ChartGroups(1).GapWidth = 50


HasAxis 属性示例

此例打开 Chart1 的主要数值轴。

Charts("Chart1").HasAxis(xlValue, xlPrimary) = True


HasLegend 属性示例

此例打开 Chart1 的图例，然后将图例字体颜色设置为蓝色。

Charts("Chart1").HasLegend = True

Charts("Chart1").Legend.Font.ColorIndex = 5


HeightPercent 属性图例

此例将 Chart1 的高度设置为其宽度的百分之八十。此例需在三维图表上运行。

Charts("Chart1").HeightPercent = 80


Legend 属性示例

此例打开 Chart1 的图例，然后将图例字体颜色设置为蓝色。

Charts("Chart1").HasLegend = True

Charts("Chart1").Legend.Font.ColorIndex = 5


Line3DGroup 属性示例

此例将图1中三维折线图组改为面积图组，此例需在三维图表上运行。

Charts("Chart1").Line3DGroup.Type = xl3DArea


LineGroups 方法示例

此例为 Chart1 中的折线图组1设置子类型，此例应在二维图表上运行。

Charts("Chart1").LineGroups(1).SubType = 2


PageSetup 属性示例

此例为 Chart1 设置居中页眉。

Charts("Chart1").PageSetup.CenterHeader = "December Sales"


Perspective 属性示例

此例将 Chart1 的透视度设置为70，此例需在三维图表上运行。

Charts("Chart1").RightAngleAxes = False

Charts("Chart1").Perspective = 70


Pie3DGroup 属性示例

此例将 Chart1 中的三维饼图组转换为三维面积图组。此例需在三维图表上运行。

Charts("Chart1").Pie3DGroup.Type = xl3DArea


PieGroups 方法示例

此例将 Chart1 中的饼图组1转换为面积图组，此例需在二维图上运行。

Charts("Chart1").PieGroups(1).Type = xlArea


PlotArea 属性示例

此例将 Chart1 绘图区域内部的颜色设置为深蓝色。

Charts("Chart1").PlotArea.Interior.ColorIndex = 8


RadarGroups 方法示例

此例为 Chart1 中的雷达图组1设置子类型，此例需在二维图表上运行。

Charts("Chart1").RadarGroups(1).SubType = 2


RightAngleAxes 属性示例

此例将 Chart1 中的坐标轴设置为垂直相交。此例需在三维图表上运行。

Charts("Chart1").RightAngleAxes = True


Rotation 属性示例

此例将 Chart1 旋转30度。此例需在三维图表上运行。

Charts("Chart1").Rotation = 30


SeriesCollection 方法示例

此例打开 Chart1 中系列1的数据标题。

Charts("Chart1").SeriesCollection(1).HasDataLabels = True


SetDefaultChart 方法示例

此例为名为“每月销售额”的自定义自动格式设置默认图表模板。

Application.SetDefaultChart formatName:="Monthly Sales"


Size 属性示例

此例为 Sheet1 上的A1:D10单元格设置字体大小。

With Worksheets("Sheet1").Range("A1:D10")

.Value = "Test"

.Font.Size = 12

End With


SubType 属性示例

此例为 Chart1 中的雷达图组1设置子类型。此例需在二维图表上运行。

Charts("Chart1").RadarGroups(1).SubType = 2


SurfaceGroup 属性示例

此例将 Chart1 中的三维曲面图组转换为三维面积图组。此例需在三维图表上运行。

Charts("Chart1").SurfaceGroup.Type = xl3DArea


Type 属性示例

此例将 Chart1 中的三维折线图组转换为面积图组。此例需在三维图表上运行。

Charts("Chart1").Line3DGroup.Type = xl3DArea


Walls 属性示例

此例将 Chart1 的边墙颜色设置为红色。此例需在三维图表上运行。

Charts("Chart1").Walls.Border.ColorIndex = 3


XYGroups 方法示例

此例将X-Y组（分散组）转换为面积图组。此例需在二维图表上运行。

 Charts("Chart1").XYGroups(1).Type = xlArea


Activate 方法示例

此例激活工作簿 Book1.XLS 中的 Sheet1。

Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate

此例选择 Sheet1 上的表元格 A1：C3，然后令表元格 B2为当前表元格。

Worksheets("Sheet1").Activate

Range("A1:C3").Select

Range("B2").Activate

此例激活工作簿 Book4.XLS。若 Book4.XLS 有多个窗口，此例激活第一个窗口 Book4.XLS:1。

Workbooks("BOOK4.XLS").Activate


Close方法示例

此例关闭 Book1.XLS 并废除所有的修改。

Workbooks("BOOK1.XLS").Close saveChanges:=False

此例关闭所有打开的工作簿。若工作簿中有修改，Microsoft Excel 将显示适当的提示和对话框以帮助保存这些修改内容。

Workbooks.Close


Visible 属性示例

此例隐藏 Sheet1。

Worksheets("Sheet1").Visible = False

此例将 Sheet1 变为可见。

Worksheets("Sheet1").Visible = True

此例将当前工作簿中的每个工作表都定为可见。

For Each sh In Sheets

sh.Visible = True

Next sh

此例创建新的工作表，然后将其 Visible 属性设置为 XlVeryHidden。若要引用这个工作表，可使用本例最后一行所示的对象变量 new Sheet。 若要在其它过程中使用 new Sheet 对象变量，必须在子程序或函数过程前的模块的第一行将其定义为全局变量（Public newSheet As Object）。

Set newSheet = Worksheets.Add

newSheet.Visible = xlVeryHidden

newSheet.Range("A1:D4").Formula = "=RAND()"


Function 属性举例

此例令 PivotTable1 中1994总计字段使用 SUM 函数。

ActiveSheet.PivotTables("PivotTable1"). _

PivotFields("Sum of 1994").Function = xlSum


ArrowHeadLength属性举例

此例在 Sheet1上创建一条直线，然后设置箭头的长度，宽度和类型。

Set newLine = Worksheets("Sheet1").Lines.Add(72, 72, 144, 144)

With newLine

.ArrowHeadLength = xlShort

.ArrowHeadWidth = xlNarrow

.ArrowHeadStyle = xlOpen

End With


ArrowHeadStyle属性举例

此例在 Sheet1上创建一条直线，然后设置箭头的长度，宽度和类型。

Set newLine = Worksheets("Sheet1").Lines.Add(72, 72, 144, 144)

With newLine

.ArrowHeadLength = xlShort

.ArrowHeadWidth = xlNarrow

.ArrowHeadStyle = xlOpen

End With


ArrowHeadWidth 属性举例

此例在 Sheet1 上创建一条直线，然后设置箭头的长度，宽度和类型。

Set newLine = Worksheets("Sheet1").Lines.Add(72, 72, 144, 144)

With newLine

.ArrowHeadLength = xlShort

.ArrowHeadWidth = xlNarrow

.ArrowHeadStyle = xlOpen

End With


AutoSize属性举例

此例自动调整 Sheet1上按钮1的大小以包含其文本。

Worksheets("Sheet1").Buttons(1).AutoSize = True


AutoText 属性举例

此例设置 Chart1中系列1的数据标题以自动产生适当的文本。

Charts("Chart1").SeriesCollection(1).DataLabels.AutoText = True


Border 属性举例

此例将 Chart1的区域边缘的颜色设置为红色。

Charts("Chart1").ChartArea.Border.ColorIndex = 3

此例在工作表1上创建一个矩形，然后将边缘色设置为红色。

Set newRect = Worksheets("Sheet1").Rectangles.Add(72, 72, 72, 144)

newRect.Border.ColorIndex = 3


BottomRightCell属性举例

此例显示工作表1上第一个矩形右下角下面表单元格的地址。

MsgBox "The bottom right corner is over cell " & _

Worksheets("Sheet1").Rectangles(1).BottomRightCell.Address


BringToFront方法举例

此例将工作表1上第一个矩形置于 z 次序的前面。

Worksheets("Sheet1").Rectangles(1).BringToFront


Characters方法举例

此例将工作表1上单元格 A1中的第三个字符定义为粗体。

With Worksheets("Sheet1").Range("A1")

.Value = "abcdefg"

.Characters(3, 1).Font.Bold = True

End With


Chart 属性举例

此例为工作表1上的第一个嵌入图表加标题。

With Worksheets("Sheet1").ChartObjects(1).Chart

.HasTitle = True

.ChartTitle.Text = "1995 Rainfall Totals by Month"

End With


ClearFormats方法举例

此例清除工作表1上单元格 A1：G37中的所有格式设置。

Worksheets("Sheet1").Range("A1:G37").ClearFormats

此例清除工作表上第一个嵌入图表的格式设置。

Worksheets("Sheet1").ChartObjects(1).Chart.ChartArea.ClearFormats


Color 属性举例

此例设置 Chart1中数值轴上刻度标号的颜色。

Charts("Chart1").Axes(xlValue).TickLabels.Font.Color = RGB(0, 255, 0)


Delete方法举例

此例删除工作表1上的单元格 A1：D10，然后将其余单元格左移。

Worksheets("Sheet1").Range("A1:D10").Delete shift:=xlToLeft

此例删除工作表1上的椭圆1。

Worksheets("Sheet1").Ovals(1).Delete

此例删除工作表1上的所有图形对象和控制（复选框，工具按钮等）。

Worksheets("Sheet1").DrawingObjects.Delete

此例在不显示确认对话框的情况下删除当前工作簿中的所有工作表。

Application.DisplayAlerts = False

For Each w In Worksheets

w.Delete

Next w

Application.DisplayAlerts = True

此例将工作表1上第一列中的数据进行分类，然后删除包含重复数据的行。

Worksheets("Sheet1").Range("A1").Sort _

        key1:=Worksheets("Sheet1").Range("A1")

Set currentCell = Worksheets("Sheet1").Range("A1")

Do While Not IsEmpty(currentCell)

    Set nextCell = currentCell.Offset(1, 0)

    If nextCell.Value = currentCell.Value Then

        currentCell.EntireRow.Delete

    End If

    Set currentCell = nextCell

Loop


Index 属性举例

此例显示键入的工作表名的工作表选项卡号。例如，若 Chart1是当前工作簿中的第三个工作表选项卡，则此例将在信息框中显示号码3。

sheetname = InputBox("Type a sheet name, such as Sheet12 or Module1")

MsgBox "This sheet is tab number " & Sheets(sheetname).Index


LineStyle 属性举例

此例将工作表1上椭圆1的线型设置为50%的灰度。

Worksheets("Sheet1").Ovals(1).Border.LineStyle = xlGray50

此例在工作表1上创建一个矩形，然后设置矩形边框为虚线。

Set myRect = Worksheets("Sheet1").Rectangles.Add(Left:=72, _

Top:=72, Width:=144, Height:=36)

myRect.Border.LineStyle = xlDash


LockedText属性举例

此例锁定工作表1中第一个工具按钮上的文本。

Worksheets("Sheet1").Buttons(1).LockedText = True


NumberFormatLinked 属性举例

此例将 Chart1中数值轴的刻度标号格式和它的单元格链接起来。

Charts("Chart1").Axes(xlValue).TickLabels.NumberFormatLinked = True


Placement 属性举例

此例将工作表1上椭圆1设置为自由漂移（它不随其下面的单元格移动和改变尺寸）。

Worksheets("Sheet1").Ovals(1).Placement = xlFreeFloating


PrintObject 属性举例

此例令工作表1上的直线1与工作簿一同打印。

Worksheets("Sheet1").Lines(1).PrintObject = True


Reshape　方法举例

假定工作表1上的 Chart1是一个至少有五个顶点的多边形，此例删除其第五个顶点从而修改多边形的形状。

Worksheets("Sheet1").Drawings(1).Reshape _

vertex:=5, Insert:=False


RoundedCorners属性举例

此例为工作表1上的矩形1加圆角。

Worksheets("Sheet1").Rectangles(1).RoundedCorners = True


SendToBack 方法举例

此例将工作表1上的矩形1置于 z 次序的后面。

Worksheets("Sheet1").Rectangles(1).SendToBack


ShowLegendKey 属性举例

此例为 Chart1中的系列1设置数据标题以显示数值及图例键。

With Charts("Chart1").SeriesCollection(1).DataLabels

.ShowLegendKey = True

.Type = xlShowValue

End With


TopLeftCell 属性举例

此例显示工作表1上矩形1左上角下端单元格的地址。

MsgBox "The top left corner is over cell " & _

Worksheets("Sheet1").Rectangles(1).TopLeftCell.Address


Vertices 属性举例

此例创建一个新的工作表，然后为工作表1上的 Chart1中插入一系列极点坐标值。

Set newSheet = ActiveWorkbook.Worksheets.Add

allVertices = Worksheets("Sheet1").Drawings(1).Vertices

newSheet.Range("A1:C1").Font.Bold = True

newSheet.Range("A1").Value = "Vertex"

newSheet.Range("B1").Value = "X value"

newSheet.Range("C1").Value = "Y value"

for i = LBound(allVertices, 1) to UBound(allVertices, 1)

newSheet.Cells(i + 1, 1) = i

newSheet.Cells(i + 1, 2) = allVertices(i, 1)

newSheet.Cells(i + 1, 3) = allVertices(i, 2)

Next i

假定工作表1上的 Chart1是一个至少有六个顶点的多边形，此例将第五个顶点沿 X 轴移动12点（1/6英寸）从而改变多边形的形状。

With Worksheets("Sheet1").Drawings(1)

vX = .Vertices(5, 1)

vY = .Vertices(5, 2)

.Reshape vertex:=5, Insert:=False, Left:=vX + 12, Top:=vY

End With


Weight 属性举例

此例为工作表1的椭圆1设置边缘粗细。

Worksheets("Sheet1").Ovals(1).Border.Weight = xlMedium


ZOrder 属性举例

此例显示工作表1上椭圆1的 z 次序位置。

MsgBox "The oval's z-order position is " & _

Worksheets("Sheet1").Ovals(1).ZOrder


AddressLocal方法示例

假定下例是在 Microsoft Excel 的美式英语版本下创建的，然后在德语版本中运行，此例显示备注中所示的文本。

Set mc = Worksheets(1).Cells(1, 1)

MsgBox mc.AddressLocal()                         ' $A$1

MsgBox mc.AddressLocal(rowAbsolute:=False)       ' $A1

MsgBox mc.AddressLocal(ReferenceStyle:=xlR1C1)   ' Z1S1

MsgBox mc.AddressLocal(ReferenceStyle:=xlR1C1, _

    rowAbsolute:=False, _

    columnAbsolute:=False, _

    relativeTo:=Worksheets(1).Cells(3, 3))       ' Z(-2)S(-2)


CategoryLocal属性示例

此例以用户的语言显示在 Microsoft Excel 4.0版本宏表上创建的自定义函数或命令的函数分类。此例假定自定义函数名或命令名是工作簿中唯一的名称。

With ActiveWorkbook.Names(1)

If .MacroType <> xlNone Then

MsgBox "The category for this name is " & .CategoryLocal

Else

MsgBox "This name does not refer to" & _

" a custom function or command."

End If

End With


DisplayScrollBars 属性示例

此例关闭所有工作簿的滚动条。

Application.DisplayScrollBars = False


FormulaLocal 属性示例

假定用 Microsoft Excel 的美式英语版本在 Sheet1上的单元格 A11中输入了公式=SUM（A1：A10）。若随后在运行德语版的计算机中打开工作簿并运行下例，则将在信息框中显示公式-SUMME（A1：A10）。

MsgBox Worksheets(1).Range(A11).FormulaLocal


FormulaR1C1属性示例

此例为 Sheet1上的单元格 Basic1设置公式。

Worksheets("Sheet1").Range("B1").FormulaR1C1 = "=SQRT(R1C1)"


FormulaR1C1Local 属性示例

假定用 Microsoft Excel 的美式英语版本在 Sheet1上的单元格 All中输入了公式=SUM（A1：A10）。若随后在运行德语版的计算机中打开工作簿并运行下例，则将在信息框中显示公式=SUMME（Z1S1：Z10S1）。

MsgBox Worksheets(1).Range("A11").FormulaR1C1Local


HasDataLabels属性示例

此例打开 Chart1中系列3的数字标题。

With Charts("Chart1").SeriesCollection(3)

.HasDataLabels = True

.ApplyDataLabels type:=xlValue

End With


PhoneticAccelerator 属性示例

此例为对话框编辑表中的第四个工具按钮设置加速器和语言加速器。

With DialogSheets("Dialog1").Buttons(4)

.Accelerator = "E"

.PhoneticAccelerator = "l"

End With


RefersToLocal属性示例

此创建一个新的工作表然后在当前工作簿中插入所有的名称次序表，包括用户语言形式的 A1样式?附注的公式。

Set newSheet = ActiveWorkbook.Worksheets.Add

i = 1

For Each nm In ActiveWorkbook.Names

newSheet.Cells(i, 1).Value = nm.NameLocal

newSheet.Cells(i, 2).Value = "'" & nm.RefersToLocal

i = i + 1

Next


RefersToR1C1属性示例

此例创建一个新的工作表然后在当前工作簿中插入所有的名称次序表，包括宏语言形式的 R1C1样式?附注的公式。

Set newSheet = ActiveWorkbook.Worksheets.Add

i = 1

For Each nm In ActiveWorkbook.Names

newSheet.Cells(i, 1).Value = nm.Name

newSheet.Cells(i, 2).Value = "'" & nm.RefersToR1C1

i = i + 1

Next


RefersToR1C1Local 属性示例

此例创建一个新的工作表然后在当前工作簿中插入所有的名称次序表，包括用户语言形式的 R1C1样式?附注的公式。

Set newSheet = ActiveWorkbook.Worksheets.Add

i = 1

For Each nm In ActiveWorkbook.Names

newSheet.Cells(i, 1).Value = nm.NameLocal

newSheet.Cells(i, 2).Value = "'" & nm.RefersToR1C1Local

i = i + 1

Next


SortSpecial方法示例

此例将 Sheet1上的 A1：G37区域进行排序，排序时以单元格 A1为第一排序关键字，以单元格 C1为第二关键字，此例是按行以递增代码页顺序进行排序的，且无标题。

Worksheets("Sheet1").Range("A1:G37").SortSpecial _

sortMethod:=xlCodePage, _

key1:=Range("A1"), order1:=xlAscending, _

key2:=Range("C1"), order2:=xlAscending


SourceData属性示例

假定使用某一外部数据源在 Sheet1上创建数据透视表。此例在新工作表中插入 SQL连接字串和查询字串。

Set newSheet = ActiveWorkbook.Worksheets.Add

sdArray = Worksheets("Sheet1").UsedRange.PivotTable.SourceData

For i = LBound(sdArray) To UBound(sdArray)

newSheet.Cells(i, 1) = sdArray(i)

Next i


Add 方法示例

此例插入 A驱动器中的加载宏 MYADDIN.XLA。执行此例时 Microsoft Excel 将把文件 A：\MYADDIN.XLA复制到硬盘上的 LIBRARY文件夹中，并在“加载宏”对话框的列表中添加此加载宏标题。

Set myAddIn = AddIns.Add(filename:="A:\MYADDIN.XLA", _

copyfile:=True)

MsgBox myAddIn.Title & " has been added to the list"

在 Microsoft Excel for the Macintosh 中，此例把加载宏从卷标为 Add_In Disk 的磁盘中复制到 Macro Library 文件夹中。

Set myAddIn = AddIns.Add(filename:="Add-In Disk:My Add-In", _

copyfile:=True)

MsgBox myAddIn.Title & " has been added to the list"


Add 方法示例

此例创建一个空的图表并把它插到当前工作表前面。

ActiveWorkbook.Charts.Add


Add 方法示例

此例创建包含默认对话框和工具按钮的新对话框编辑表，新工作表将被插在当前工作表前面。

ActiveWorkbook.DialogSheets.Add


Add 方法示例

此例添加一个新的菜单栏，然后把它激活。执行此例后，可使用 MenuBars（XlModule）Activate 恢复“Visual Basic 模块表”菜单。

With MenuBars.Add("Stock Chart")

With .Menus.Add("File")

.MenuItems.Add "Update", "UpdateProc"

.MenuItems.Add "Print", "PrintProc"

End With

End With

MenuBars("Stock Chart").Activate


Add 方法示例

此例在每个菜单栏的“帮助”菜单的顶端添加一个新的菜单项。

For Each mb in MenuBars

mb.Menus("Help").MenuItems.Add _

caption:="Read Me First", _

onAction:="Read_Me_First", _

before:=1

Next mb


Add 方法示例

此例在“工作表”菜单栏内添加一个新的菜单。

MenuBars(xlWorksheet).Menus.Add caption:="More Help"


Add 方法示例

此例在当前工作表前插入一个新的 Visual Basic 模块表。

ActiveWorkbook.Modules.Add


Add 方法示例

此例为 Sheet11上的 A1：D3区域定义新名称。

ActiveWorkbook.Names.Add _

name:="tempRange", _

refersTo:="=Sheet1!$A$1:$D$3"


Add 方法示例

此例在 Sheet1上添加新方案。

Worksheets("Sheet1").Scenarios.Add Name:="Best Case", _

ChangingCells:=Worksheets("Sheet1").Range("A1:A4"), _

Values:=Array(23, 5, 6, 21), _

Comment:="Most favorable outcome."


Add 方法示例

此例在当前工作表前插入一个新工作表。

ActiveWorkbook.Sheets.Add before:=ActiveWorkbook.ActiveSheet

此例在模块表1后面添加二个新对话框编辑表。

ActiveWorkbook.Sheets.Add after:=ActiveWorkbook.Sheets("Module1"), _

type:=xlDialogSheet, count:=2


Add 方法示例

此例以 Sheet11上的单元格 A1为基础定义新的样式。

Worksheets("Sheet1").Activate

ActiveWorkbook.Styles.Add name:="myNewStyle", _

basedOn:=ActiveSheet.Range("A1")

此例定义只包含“字体”属性的新样式。

With ActiveWorkbook.Styles.Add(name:="theNewStyle")

.IncludeNumber = False

.IncludeFont = True

.IncludeAlignment = False

.IncludeBorder = False

.IncludePatterns = False

.IncludeProtection = False

.Font.Name = "Arial"

.Font.Size = 18

End With


Add 方法示例

此例创建一个新工具栏，在其中添加“？照相机”工具按钮（索引号为228的工具按钮），然后显示这个新工具栏。

Set myNewToolbar = Toolbars.Add(Name:="My New Toolbar")

myNewToolbar.ToolbarButtons.Add Button:=228

myNewToolbar.Visible = True


Add 方法示例

此例创建一个新工具栏，在其中添加“？照相机”工具按钮（索引号为228的工具按钮），然后显示这个新工具栏。

Set myNewToolbar = Toolbars.Add(Name:="My New Toolbar")

myNewToolbar.ToolbarButtons.Add Button:=228

myNewToolbar.Visible = True


Add 方法示例

此例在 Chart1中创建新的线性趋势线。

ActiveWorkbook.Charts("Chart1").SeriesCollection(1).Trendlines.Add


Add 方法示例

此例创建新的工作簿。

Workbooks.Add


Add 方法示例

此例创建新的工作表并把它插在当前工作表前面。

ActiveWorkbook.Worksheets.Add

此例将新工作表加在当前工作簿中最后一个工作表的后面。

Worksheets.Add.Move after:=Worksheets(Worksheets.Count)


Add 方法示例

此例在 Sheet11上创建一个新椭圆，此椭圆与单元格 D3对齐且大小与单元格 D3相同。

Set myCell = ActiveWorkbook.Worksheets("Sheet1").Range("D3")

ActiveWorkbook.Worksheets("Sheet1").Ovals.Add _

Top:=myCell.Top, Left:=myCell.Left, _

Height:=myCell.Height, Width:=myCell.Width


Add 方法示例

此例在 Sheet11上创建新的 Microsoft Word OLE 对象。

ActiveWorkbook.Worksheets("Sheet1").OLEObjects.Add _

classType:="Word.Document.6"


Add 方法示例

此例在 Chart1中创建新系列。新系列的数据源位于 Sheet11上的 B1：B10区域内。

Charts("Chart1").SeriesCollection.Add _

source:=ActiveWorkbook.Worksheets("Sheet1").Range("B1:B10")

此例与上例基本相同，不同之处只在于此例中的图表是Sheet11上的一个嵌入图表。

Worksheets("Sheet1").ChartObjects(1).Activate

ActiveChart.SeriesCollection.Add _

source:=Worksheets("Sheet1").Range("B1:B10")


Background 属性示例

此例在 Sheet1上的第一个嵌入图表中添加图表标题，然后设置标题的字体大小和背景。

With Worksheets("Sheet1").ChartObjects(1).Chart

.HasTitle = True

.ChartTitle.Text = "1995 Rainfall Totals by Month"

With .ChartTitle.Font

.Size = 10

.Background = xlTransparent

End With

End With


Bold 属性示例

此例将 Sheet1上 A1：A5区域内的字体设置为粗体。

Worksheets("Sheet1").Range("A1:A5").Font.Bold = True


Italic 属性示例

此例将 Sheet1上 A1：A5区域内的字体设置为斜体。

Worksheets("Sheet1").Range("A1:A5").Font.Italic = True


Outline 属性示例

此例将 Sheet1上的边框设置为自动样式。

Worksheets("Sheet1").Outline.AutomaticStyles = True


Strikethrough 属性示例

此例为 Sheet1当前单元格的字体设置删除线。

Worksheets("Sheet1").Activate

ActiveCell.Font.Strikethrough = True


Underline 属性示例

此例为 Sheet1上当前单元格的字体设置单下划线。

Worksheets("Sheet1").Activate

ActiveCell.Font.Underline = xlSingle


LargeScroll 方法示例

此例将 Sheet1 的当前窗口向下滚动三页。

Worksheets("Sheet1").Activate

ActiveWindow.LargeScroll down:=3


SmallScroll 方法示例

此例将 Sheet1 的当前窗口向下滚动三行。

Worksheets("Sheet1").Activate

ActiveWindow.SmallScroll down:=3


DownBars 属性示例

此例为 Chart1 中第一个图表组打开涨跌柱线，然后为其设置颜色。此例需在二维折线图上运行，此折线图应具有二个在一个或多个数据点处相交的系列。

With Charts("Chart1").ChartGroups(1)

.HasUpDownBars = True

.DownBars.Interior.ColorIndex = 3

.UpBars.Interior.ColorIndex = 5

End With


DropLines 属性示例

此例打开 Chart1 中第一个图表组的垂直线，然后设置垂线的样式，重量和颜色，此例需在一系列的二维折线图上运行。

With Charts("Chart1").ChartGroups(1)

.HasDropLines = True

With .DropLines.Border

.LineStyle = xlThin

.Weight = xlMedium

.ColorIndex = 3

End With

End With


FirstSliceAngle 属性示例

此例设置 Chart1 中第一个图表组的第一个图片的角度。此例需在二维饼图上运行。

Charts("Chart1").ChartGroups(1).FirstSliceAngle = 15


HasDropLines 属性示例

此例打开 Chart1 中第一个图表组的垂直线，然后设置垂线的样式，重量和颜色。此例需在一系列的二维折线图上运行。

With Charts("Chart1").ChartGroups(1)

.HasDropLines = True

With .DropLines.Border

.LineStyle = xlThin

.Weight = xlMedium

.ColorIndex = 3

End With

End With


 HasHiLoLines 属性示例

此例为 Chart1 中第一个图表组打开高低点连线，然后设置连线的样式，重量和颜色，此例需在三个 stock-quote 类数据(高低封闭型)系列的二维折线图上运行。

With Charts("Chart1").ChartGroups(1)

.HasHiLoLines = True

With .HiLoLines.Border

.LineStyle = xlThin

.Weight = xlMedium

.ColorIndex = 3

End With

End With


HasRadarAxisLabels 属性示例

此例为 Chart1 中第一个图表组，打开雷达图轴标并为其设置颜色，此例需在雷达图上运行。

With Charts("Chart1").ChartGroups(1)

.HasRadarAxisLabels = True

.RadarAxisLabels.Font.ColorIndex = 3

End With


HasSeriesLines 属性示例

此例为 Chart1 中第一个图表组打开系列线然后设置系列线的样式，重量和颜色。此例需在拥有二个或更多系列的二维层叠式列图上运行。

With Charts("Chart1").ChartGroups(1)

.HasSeriesLines = True

With .SeriesLines.Border

.LineStyle = xlThin

.Weight = xlMedium

.ColorIndex = 3

End With

End With


HasUpDownBars 属性示例

此例为 Chart1 中第一个图表组打开涨跌柱线并为其设置颜色，此例需在二维折线图上运行，此折线图应包含两个在一个或多个数据点处相交的系列。

With Charts("Chart1").ChartGroups(1)

.HasUpDownBars = True

.DownBars.Interior.ColorIndex = 3

.UpBars.Interior.ColorIndex = 5

End With


HiLoLines 属性示例

此例为 Chart1 中第一个图表组打开高低点连线然后设置连线的样式，重量和颜色。此例需在三个 quote-stock 类数据(高低封闭型)系列的二维折线图上进行。

With Charts("Chart1").ChartGroups(1)

.HasHiLoLines = True

With .HiLoLines.Border

.LineStyle = xlThin

.Weight = xlMedium

.ColorIndex = 3

End With

End With


Overlap 属性示例

此例将第一个图表组的重叠比例设置为50。此例需在二个以上的系列二维列图上运行。

Charts("Chart1").ChartGroups(1).Overlap = -50


RadarAxisLabels 属性示例

此例为Chart1的第一个图表组打开雷达图轴标并为其设置颜色。此例应在雷达图上运行。

With Charts("Chart1").ChartGroups(1)

.HasRadarAxisLabels = True

.RadarAxisLabels.Font.ColorIndex = 3

End With


SeriesLines 属性示例

此例为Chart1中第一个图表组打开系列线并设置系列线的样式，重量和颜色，此例应在二个以上的系列的二维层叠式列图上运行。

With Charts("Chart1").ChartGroups(1)

.HasSeriesLines = True

With .SeriesLines.Border

.LineStyle = xlThin

.Weight = xlMedium

.ColorIndex = 3

End With

End With


 UpBars 属性示例

此例为Chart1中第一个图表组打开涨跌柱线然后为其设置颜色。此例需在二维折线图上运行，此折线图应包含二个在一个或多个数据点处相交的系列。

With Charts("Chart1").ChartGroups(1)

.HasUpDownBars = True

.DownBars.Interior.ColorIndex = 3

.UpBars.Interior.ColorIndex = 5

End With


 VaryByCategories 属性示例

此例令第一图表组中每个数据标志的颜色和图案不同。

此例需在拥有系列数据刻度线的二维折线图上运行。

Charts("Chart1").ChartGroups(1).VaryByCategories = True


Add 方法示例

此例在 Sheet1上生成一条箭头指向左上方的折线。

注意点的次序：箭头指向次坐标轴。

With Worksheets("Sheet1").Lines.Add(80, 80, 10, 10)

.ArrowHeadStyle = xlOpen

.Border.LineStyle = xlDot

End With


Add 方法示例

此例在 Sheet1上生成一个新的开放式梯形。

With Worksheets("Sheet1").Drawings.Add(100, 100, 200, 100, False)

.AddVertex 180, 200

.AddVertex 80, 200

.AddVertex 100, 100

.Border.Weight = xlMedium

End With


Add 方法示例

此例在 Sheet1上生成一个下拉列表框。

With Worksheets("Sheet1").DropDowns.Add(10, 10, 120, 18)

.DropDownLines = 10

End With


AddVertex 方法示例

此例在 Sheet1上生成一个新的开放式梯形。

With Worksheets("Sheet1").Drawings.Add(100, 100, 200, 100, False)

.AddVertex 180, 200

.AddVertex 80, 200

.AddVertex 100, 100

.Border.Weight = xlMedium

End With


CentimetersToPoints 方法示例

此例将 Sheet1的左边界设置为5厘米。

Worksheets("Sheet1").PageSetup.LeftMargin = _

Application.CentimetersToPoints(5)


ChartObjects 方法示例

此例在 Sheet1上的第一个嵌入图表中添加标题。

With Worksheets("Sheet1").ChartObjects(1).Chart

.HasTitle = True

.ChartTitle.Text = "1995 Rainfall Totals by Month"

End With

此例在 Sheet1上的第一个嵌入图表中创建一个新系列。

Worksheets("Sheet1").ChartObjects(1).Activate

ActiveChart.SeriesCollection.Add _

source:=Worksheets("Sheet1").Range("B1:B10")

新系列的数据源为 Sheet1上的 B1：B10区域。

此例清除 Sheet1上的第一个嵌入图表的格式设置。

Worksheets("Sheet1").ChartObjects(1).Chart.ChartArea.ClearFormats


CircularReference 属性示例

此例选择 Sheet1上第一个循环引用中的第一个单元格。

Worksheets("Sheet1").CircularReference.Select


ColorButtons 属性示例

此例关闭彩色的工具栏工具按钮。

Application.ColorButtons = False


ColorIndex 属性示例

此例假定您正在使用默认调色板。

此例将 Sheet1上单元格 A1中字体的颜色改为红色。

Worksheets("Sheet1").Range("A1").Font.ColorIndex = 3

此例设置 Chart1中数值（Y）轴的主网格线的颜色。

With Charts("Chart1").Axes(xlValue)

If .HasMajorGridlines Then

.MajorGridlines.Border.ColorIndex = 5	'set color to blue

End If

End With

此例将 Chart1面积图的内部设置为红色，将边缘设置为兰色。

With Charts("Chart1").ChartArea

.Interior.ColorIndex = 3

.Border.ColorIndex = 5

End With

此例将 Sheet1上每个图形对象的边缘都设置为深蓝色。

For Each d In Worksheets("Sheet1").DrawingObjects

d.Border.ColorIndex = 8

Next d


DataLabels 方法示例

此例为 Chart1中系列２设置数据标题以显示它的？键。假定此例运行时它的值将被显示。

With Charts("Chart1").SeriesCollection(1)

.HasDataLabels = True

With .DataLabels

.ShowLegendKey = True

.Type = xlValue

End With

End With


Explosion 属性示例

此例为 Chart1中的第二个数据标记设置增长值。此例应在饼图上运行。

Charts("Chart1").SeriesCollection(1).Points(2).Explosion = 20


GetOpenFilename 方法示例

此例显示“打开”对话框，同时文本文件带有文件筛选器。若用户选定某一文件名，此程序将在信息框中显示此文件名称。

fileToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt")

If fileToOpen <> False Then

MsgBox "Open " & fileToOpen

End If

此例与 Microsoft Excel for Macintosh 中的示例相同。

fileToOpen = Application.GetOpenFilename("TEXT")

If fileToOpen <> False Then

MsgBox "Open " & fileToOpen

End If


GetSaveAsFilename 方法示例

此例显示“存盘”对话框，同时文本文件带有文件筛选器，若用户选定某一文件名，此程序将在信息框中显示此文件名称。

fileSaveName = Application.GetSaveAsFilename( _

fileFilter:="Text Files (*.txt), *.txt")

If fileSaveName <> False Then

MsgBox "Save as " & fileSaveName

End If

此例与Microsoft Excel for Macintosh 中的示例相同。

fileSaveName = Application.GetSaveAsFilename( _

fileFilter:="TEXT")

If fileSaveName <> False Then

MsgBox "Save as " & FileSaveName

End If


GridlineColorIndex 属性示例

此例将当前窗口的网格线颜色设置为兰色。

ActiveWindow.GridlineColorIndex = 5


InchesToPoints 方法示例

此例将 Sheet1的左边界设置为2.5英寸。

Worksheets("Sheet1").PageSetup.LeftMargin = _

Application.InchesToPoints(2.5)


linkCombo 方法示例

此例连接 Dialog1上的列表框1和编辑框2。

DialogSheets("Dialog1").DrawingObjects( _

Array("List Box 1", "Edit Box 2")).LinkCombo


MarkerBackgroundColor 属性示例

此例为 Chart1中系列1中的第二数据刻度设置刻度线背景色和前景色。

With Charts("Chart1").SeriesCollection(1).Points(2)

.MarkerBackgroundColor = RGB(0,255,0)	' green

.MarkerForegroundColor = RGB(255,0,0)	' red

End With


MarkerBackgroundColorIndex 属性示例

此例为 Chart1中系列1中的第二数据刻度设置刻度线背景色和前景色。

With Charts("Chart1").SeriesCollection(1).Points(2)

.MarkerBackgroundColorIndex = 4	'green

.MarkerForegroundColorIndex = 3	'red

End With


MarkerForegroundColor 属性示例

此例为 Chart1中系列1中的第二数据刻度设置刻度线背景色和前景色。

With Charts("Chart1").SeriesCollection(1).Points(2)

.MarkerBackgroundColor = RGB(0,255,0)	' green

.MarkerForegroundColor = RGB(255,0,0)	' red

End With


MarkerForegroundColorIndex 属性示例

此例为 Chart1中系列1中的第二数据刻度设置刻度线背景色和前景色。

With Charts("Chart1").SeriesCollection(1).Points(2)

.MarkerBackgroundColorIndex = 4	'green

.MarkerForegroundColorIndex = 3	'red

End With


OnRepeat 方法示例

此例设置重复和撤消过程。

Application.OnRepeat "Repeat VB Procedure", _

"Book1.xls!My_Repeat_Sub"

Application.OnUndo "Undo VB Procedure", _

"Book1.xls!My_Undo_Sub"


OnSheetActivate 属性示例

此例设置 OnSheetActivate属性为当前工作簿中 Module1中的宏“my-Activate-Sub”。无论用户何时在哪个工作簿中激活工作表，此宏都将执行。

Application.OnSheetActivate = ActiveWorkbook.Name & _

"!Module1.my_Activate_Sub"

此例取消OnSheetActivate宏。

Application.OnSheetActivate = ""


OnSheetDeactivate 属性示例

此例设置 OnSheetDeactivate属性为当前工作簿中 Module1中的宏“my-Deactivate-Sub”。无论用户何时在哪个工作簿中关闭工作表，此宏都将执行。

Application.OnSheetDeactivate = ActiveWorkbook.Name & _

"!Module1.my_Deactivate_Sub"

此例取消OnSheetDeactivate宏。

Application.OnSheetDeactivate = ""


OnUndo 方法示例

此例设置重复和撤消过程。

Application.OnRepeat "Repeat VB Procedure", _

"Book1.xls!My_Repeat_Sub"

Application.OnUndo "Undo VB Procedure", _

"Book1.xls!My_Undo_Sub"


OutlineFont 属性示例

此例将 Sheet1上单元格 A1的字体设置为轮廓字。

Worksheets("Sheet1").Range("A1").Font.OutlineFont = True


PatternColor 属性示例

此例为 Sheet1上矩形1设置内部图案颜色。

With Worksheets("Sheet1").Rectangles(1).Interior

.Pattern = xlGrid

.PatternColor = RGB(255,0,0)

End With


PatternColorIndex 属性示例

此例为 Sheet1上矩形1设置内部图案颜色。

With Worksheets("Sheet1").Rectangles(1).Interior

.Pattern = xlChecker

.PatternColorIndex = 5

End With


ResetTipWizard 方法示例

此例重新设置“操作向导”并启动它。

With Application

.ResetTipWizard

.EnableTipWizard = True

End With


ToolbarButtons 方法示例

此例从“标准”工具栏中删除“新工作簿”工具按钮。

Application.Toolbars("Standard").ToolbarButtons(1).Delete


方法示例
Volatile 方法示例

此例标明用户定义的函数“my-Func”是易失性的。只要包含此函数的工作表上任何单元格中出现计算过程，此函数都将重新进行计算。

Function My_Func()

Application.Volatile

'

'	Remainder of the function

'

End Function


ActivateMicrosoftApp方法示例

此例启动并激活 Word

Application.ActivateMicrosoftApp xlMicrosoftWord


ActivateNext 方法示例

此例将当前窗口置于 z 序列的后面。

ActiveWindow.ActivateNext


ActivatePrevious方法示例

此例激活 z 序列后面的窗口。

ActiveWindow.ActivatePrevious


AddIndent属性示例

此例使 Sheet1上的 A1单元格在开头和末尾使用额外的空格以达到分散水平对齐。

With Worksheets("Sheet1").Range("A1")

.HorizontalAlignment = xlDistributed

.AddIndent = True

End With


AxisTitle属性示例

此例在 Chart1的分类轴上添加轴标。

With Charts("Chart1").Axes(xlCategory)

.HasTitle = True

.AxisTitle.Text = "July Sales"

End With


CategoryNames属性示例

此例将 Chart1的分类名称设置为 Sheet1上单元格 B1：B5内的值。

Set Charts("Chart1").Axes(xlCategory).CategoryNames = _

Worksheets("Sheet1").Range("B1:B5")

此例使用数组为 Chart1逐一设置分类名称。

Charts("Chart1").Axes(xlCategory).CategoryNames = _

Array ("1985", "1986", "1987", "1988", "1989")


ChartTitle属性示例

此例为 Chart1的标题设置文本

With Charts("Chart1")

.HasTitle = True

.ChartTitle.Text = "First Quarter Sales"

End With


Deselect 方法示例

此例等价于在当前图表中按下 ESC，此例需在已选择了某组件（比如轴）的图表上运行。

ActiveChart.Deselect


 Display3DShading 属性示例

此例使 Sheet1上的复选框1使用三维阴影。

Worksheets("Sheet1").CheckBoxes(1).Display3DShading = True


DoughnutHoleSize 属性示例

此例设置 Chart1中圆环图组1的圆孔的大小。此例需在二维圆环图上运行。

Charts("Chart1").DoughnutGroups(1).DoughnutHoleSize = 10


EnableCancelKey 属性示例

此例说明怎样使用 EnableCancelKey 属性来建立自定义取消处理器。

On Error GoTo handleCancel

Application.EnableCancelKey = xlErrorHandler

MsgBox "This may take a long time: press ESC to cancel"

For x = 1 To 1000000	' Do something 1,000,000 times (long!)

' do something here

Next x

handleCancel:

If Err = 18 Then

MsgBox "You cancelled"

End If


EndStyle 属性示例

此例为 Chart1中系列1的错误栏设置结束模式。此例需在系列1具有 Y 错误栏的二维折线图上运行。

Charts("Chart1").SeriesCollection(1).ErrorBars.EndStyle = xlCap


MultiSelect 属性示例

此例设置 Dialog1的列表框1使之可进行扩展的多项选择。

DialogSheets("Dialog1").ListBoxes(1).MultiSelect = xlExtended


NavigateArrow 方法示例

此例沿着追踪箭头1移动，从 Sheet1上单元格 A1开始到引用单元格为止。此例需在单元格 A1中使用了含有 D1，D2和 D3单元格（例如，公式=D1*D2*D3）的公式的工作表中运行。运行此例前，应先显示“审核”工具栏，再选择单元格 A1，然后选择“追踪引用单元格”工具按钮。

Worksheets("Sheet1").Activate

Range("A1").Select

ActiveCell.NavigateArrow True, 1


OpenText 方法示例

此例打开文件 DATA.TXT，然后使用 Tab分隔符号分解文本文件，并装入工作表。

Workbooks.OpenText filename:="DATA.TXT", _

dataType:=xlDelimited, tab:=True


RegisterXLL 方法示例

此例装入 XLL文件，并登记文件中的函数和命令。

Application.RegisterXLL "XLMAPI.XLL"


SaveCopyAs 方法示例

此例保存当前工作簿的副本。

ActiveWorkbook.SaveCopyAs "C:\TEMP\XXXX.XLS"

此例与Microsoft Excel for the Macintosh 中的示例方法相同。

ActiveWorkbook.SaveCopyAs "HD:Temporary Folder:Temporary Workbook File"


Selected 属性示例

此例选定 Sheet1上列表框1中的所有其它项。

Dim items() As Boolean

Set lbox = Worksheets("Sheet1").ListBoxes(1)

ReDim items(1 To lbox.ListCount)

For i = 1 To lbox.ListCount

If i Mod 2 = 1 Then

items(i) = True

Else

items(i) = False

End If

Next

lbox.MultiSelect = xlExtended

lbox.Selected = items


UpdateFromFile 方法示例

此例更新当前工作簿。

ActiveWorkbook.UpdateFromFile


XValues 属性示例

此例将 Chart1中系列1的X值设置为 Sheet1的 B1：Basic5区域内的值。

Set Charts("Chart1").SeriesCollection(1).XValues = _

Worksheets("Sheet1").Range("B1:B5")

此例使用数组逐一为 Chart1中系列1的各点设值。

Charts("Chart1").SeriesCollection(1).XValues = _

Array(5.0, 6.3, 12.6, 28, 50)


BCCRecipients 属性实例

下面这个范例为工作簿1设置 Mailer 对象，然后传送这个工作簿。

With Workbooks(1)

.HasMailer = True

With .Mailer

.Subject = "Here is the workbook"

.ToRecipients = Array("Jean")

.CCRecipients = Array("Adam", "Bernard")

.BCCRecipients = Array("Chris")

.Enclosures = Array("TestFile")

End With

.SendMailer

End With


CCRecipients 属性实例

下面这个范例为工作簿1设置 Mailer 对象，然后传送这个工作簿。

With Workbooks(1)

.HasMailer = True

With .Mailer

.Subject = "Here is the workbook"

.ToRecipients = Array("Jean")

.CCRecipients = Array("Adam", "Bernard")

.BCCRecipients = Array("Chris")

.Enclosures = Array("TestFile")

End With

.SendMailer

End With


Enclosures 属性实例

下面这个范例为工作簿1设置 Mailer 对象，然后传送这个工作簿。

With Workbooks(1)

.HasMailer = True

With .Mailer

.Subject = "Here is the workbook"

.ToRecipients = Array("Jean")

.CCRecipients = Array("Adam", "Bernard")

.BCCRecipients = Array("Chris")

.Enclosures = Array("TestFile")

End With

.SendMailer

End With


Mailer 属性实例

下面这个范例为工作簿1设置 Mailer 对象，然后传送这个工作簿。

With Workbooks(1)

.HasMailer = True

With .Mailer

.Subject = "Here is the workbook"

.ToRecipients = Array("Jean")

.CCRecipients = Array("Adam", "Bernard")

.BCCRecipients = Array("Chris")

.Enclosures = Array("TestFile")

End With

.SendMailer

End With


Received 属性实例

下面这个范例显示当前 Received 属性状态。

With ActiveWorkbook

If .HasMailer Then

If .Mailer.Received Then

state = "True"

Else

state = "False"

End If

MsgBox "Received property is " & state

Else

MsgBox "The workbook has no mailer"

End If

End With


SendDateTime 属性实例

下面这个范例显示工作簿传送器，以及传送的日期和时间

If ActiveWorkbook.HasMailer Then

MsgBox "This workbook was sent by " & _

ActiveWorkbook.Mailer.Sender & " at " & _

Format(ActiveWorkbook.Mailer.SendDateTime, "General Date")

End If


Sender 属性实例

下面这个范例显示工作簿传送器，以及传送的日期和时间

If ActiveWorkbook.HasMailer Then

MsgBox "This workbook was sent by " & _

ActiveWorkbook.Mailer.Sender & " at " & _

Format(ActiveWorkbook.Mailer.SendDateTime, "General Date")

End If


SendMailer 方法实例

下面这个范例为工作簿1设置 Mailer 对象，然后传送这个工作簿。

With Workbooks(1)

.HasMailer = True

With .Mailer

.Subject = "Here is the workbook"

.ToRecipients = Array("Jean")

.CCRecipients = Array("Adam", "Bernard")

.BCCRecipients = Array("Chris")

.Enclosures = Array("TestFile")

End With

.SendMailer

End With


ToRecipients 属性实例

下面这个范例为工作簿1设置 Mailer 对象，然后传送这个工作簿。

With Workbooks(1)

.HasMailer = True

With .Mailer

.Subject = "Here is the workbook"

.ToRecipients = Array("Jean")

.CCRecipients = Array("Adam", "Bernard")

.BCCRecipients = Array("Chris")

.Enclosures = Array("TestFile")

End With

.SendMailer

End With


ForwardMailer 方法实例

下面这个范例能够前移当前工作簿。

ActiveWorkbook.ForwardMailer


HasMailer 属性实例

下面这个范例响应当前工作簿传送器。

Set original = ActiveWorkbook

If original.HasMailer Then

original.Reply

original.Mailer.Subject = "Here's my reply"

ActiveWorkbook.SendMailer

End If


HasRoutingSlip 属性实例

下面这个范例为“BOOK1.XLS”建立一个传递名单，然后把工作簿依次地传送给三个接收器。

Workbooks("BOOK1.XLS").HasRoutingSlip = True

With Workbooks("BOOK1.XLS").RoutingSlip

.Delivery = xlOneAfterAnother

.Recipients = Array("Adam Bendel", "Jean Selva", "Bernard Gabor")

.Subject = "Here is BOOK1.XLS"

.Message = "Here is the workbook. What do you think?"

End With

Workbooks("BOOK1.XLS").Route


Reply 方法实例

下面这个范例响应当前工作簿传送器。

Set original = ActiveWorkbook

If original.HasMailer Then

original.Reply

original.Mailer.Subject = "Here's my reply"

ActiveWorkbook.SendMailer

End If


ReplyAll 方法实例

下面这个范例响应当前工作簿的所有接收器。

Set original = ActiveWorkbook

If original.HasMailer Then

original.ReplyAll

original.Mailer.Subject = "Here's my reply"

ActiveWorkbook.SendMailer

End If


Route 方法实例

下面这个范例为“BOOK1.XLS”建立一个传递名单，然后把这个工作簿依次地传送给三个接收器。

Workbooks("BOOK1.XLS").HasRoutingSlip = True

With Workbooks("BOOK1.XLS").RoutingSlip

.Delivery = xlOneAfterAnother

.Recipients = Array("Adam Bendel", "Jean Selva", "Bernard Gabor")

.Subject = "Here is BOOK1.XLS"

.Message = "Here is the workbook. What do you think?"

End With

Workbooks("BOOK1.XLS").Route


Routed 属性实例

下面这个范例把工作簿传送给下一个接收器。

If ActiveWorkbook.HasRoutingSlip And _

Not ActiveWorkbook.Routed Then

ActiveWorkbook.Route

End If


RoutingSlip 属性实例

下面这个范例为“BOOK1.XLS”建立一个传递名单，然后把这个工作簿依次传送给三个接收器。

Workbooks("BOOK1.XLS").HasRoutingSlip = True

With Workbooks("BOOK1.XLS").RoutingSlip

.Delivery = xlOneAfterAnother

.Recipients = Array("Adam Bendel", "Jean Selva", "Bernard Gabor")

.Subject = "Here is BOOK1.XLS"

.Message = "Here is the workbook. What do you think?"

End With

Workbooks("BOOK1.XLS").Route


SendMail 方法实例

下面这个范例把当前工作簿传送给一个独立的接收器。

ActiveWorkbook.SendMail recipients:="Jean Selva"


AutomaticStyles 属性实例

下面这个范例是用自动设置样式来设置 Sheet1 的分级显示。

Worksheets("Sheet1").Outline.AutomaticStyles = True


ShowLevels 方法实例

下面这个范例在 Sheet1 上分级显示第一行至第三行以及第一列。

Worksheets("Sheet1").Outline.ShowLevels rowLevels:=3, columnLevels:=1


SummaryColumn 属性实例

下面这个范例是用自动设置样式在明细数据行上方和明细数据列右方建立一个分级显示。

Worksheets("Sheet1").Activate

Selection.AutoOutline

With ActiveSheet.Outline

.SummaryRow = xlAbove

.SummaryColumn = xlRight

.AutomaticStyles = True

End With


SummaryRow 属性实例

下面这个范例是用自动设置样式在明细数据行上方和明细数据列右方建立一个分级显示。

Worksheets("Sheet1").Activate

Selection.AutoOutline

With ActiveSheet.Outline

.SummaryRow = xlAbove

.SummaryColumn = xlRight

.AutomaticStyles = True

End With


BottomMargin 属性实例

下面这两个范例将 Sheet1 的底端页边距设置为0.5英寸（36点）。

Worksheets("Sheet1").PageSetup.BottomMargin = _

Application.InchesToPoints(0.5)

Worksheets("Sheet1").PageSetup.BottomMargin = 36

下面这个范例显示 Sheet1 的当前底端页边距设置。

marginInches = Worksheets("Sheet1").PageSetup.BottomMargin / _

Application.InchesToPoints(1)

MsgBox "The current bottom margin is " & marginInches & " inches"


CenterFooter 属性实例

下面这个范例是在每一页的底端打印工作簿名称和页号。

Worksheets("Sheet1").PageSetup.CenterFooter = "&F page &P"


CenterHeader 属性实例

下面这个范例是在每一页的上端打印日期和页号。

Worksheets("Sheet1").PageSetup.CenterHeader = "&D page &P of &N"


CenterHorizontally 属性实例

下面这个范例是在打印工作表 Sheet1 时，使工作表水平居中。

Worksheets("Sheet1").PageSetup.CenterHorizontally = True


CenterVertically 属性实例

下面这个范例是在打印工作表 Sheet1 时，使工作表垂直居中。

Worksheets("Sheet1").PageSetup.CenterVertically = True


ChartSize 属性实例

下面这个范例是缩放当前工作簿中的第一个图表，使它能填充整页。

ActiveWorkbook.Charts(1).PageSetup.ChartSize = xlFullPage


FirstPageNumber 属性实例

下面这个范例是把 Sheet1 第一页的页号设置为100.

Worksheets("Sheet1").PageSetup.FirstPageNumber = 100


FitToPagesTall 属性实例

下面这个范例是使 Sheet1 恰好按照一页的宽度和高度打印出来。

With Worksheets("Sheet1").PageSetup

.Zoom = False

.FitToPagesTall = 1

.FitToPagesWide = 1

End With


FitToPagesWide 属性实例

下面这个范例是使 Sheet1 恰好按照一页的宽度和高度打印出来。

With Worksheets("Sheet1").PageSetup

.Zoom = False

.FitToPagesTall = 1

.FitToPagesWide = 1

End With


LeftFooter 属性实例

下面这个范例是在每一页的左下角打印页号。

Worksheets("Sheet1").PageSetup.LeftFooter = "&P"


LeftHeader 属性实例

下面这个范例是在每一页的左上角打印日期。

Worksheets("Sheet1").PageSetup.LeftHeader = "&D"


LeftMargin 属性实例

下面这个范例是把 Sheet1 的左页边距设置为1.5英寸。

Worksheets("Sheet1").PageSetup.LeftMargin = _

Application.InchesToPoints(1.5)

下面这个范例是把 Sheet1 的左页边距设置为2厘米。

Worksheets("Sheet1").PageSetup.LeftMargin = _

Application.CentimetersToPoints(2)

下面这个范例是显示 Sheet1 的当前左页边距设置。

marginInches = Worksheets("Sheet1").PageSetup.LeftMargin / _

Application.InchesToPoints(1)

MsgBox "The current left margin is " & marginInches & " inches"


Order 属性实例

下面这个范例是在打印工作表 Sheet1 时给工作表分页，分页和打印是从第一页开始到适当的页，然后向下移动并且继续打印整个工作表。

Worksheets("Sheet1").PageSetup.Order = xlOverThenDown


PaperSize 属性实例

下面这个范例是合法地设置纸张大小。

Worksheets("Sheet1").PageSetup.PaperSize = xlPaperLegal


PrintGridlines 属性实例

下面这个范例是在打印 Sheet1 时，同时打印单元格网格线。

Worksheets("Sheet1").PageSetup.PrintGridlines = True


PrintHeadings 属性实例

下面这个范例是关闭 Sheet1 的行号列标打印。

Worksheets("Sheet1").PageSetup.PrintHeadings = False


RightFooter 属性实例

下面这个范例是在每一页的右下角打印页号。

Worksheets("Sheet1").PageSetup.RightFooter = "&P"


RightHeader 属性实例

下面这个范例是在每一页的右上角打印文件名称。

Worksheets("Sheet1").PageSetup.RightHeader = "&F"


RightMargin 属性实例

下面这个范例是把 Sheet1 的右页边距设置为1.5英寸。

Worksheets("Sheet1").PageSetup.RightMargin = _

Application.InchesToPoints(1.5)

下面这个范例是把 Sheet1 “工作表1”的右页边距设置为2厘米。

Worksheets("Sheet1").PageSetup.RightMargin = _

Application.CentimetersToPoints(2)

下面这个范例是显示 Sheet1 的当前右页边距设置。

marginInches = Worksheets("Sheet1").PageSetup.RightMargin / _

Application.InchesToPoints(1)

MsgBox "The current right margin is " & marginInches & " inches"


TopMargin 属性实例

下面这两个范例是把 Sheet1 的顶端页边距设置为0.5英寸（36点）

Worksheets("Sheet1").PageSetup.TopMargin = _

Application.InchesToPoints(0.5)

Worksheets("Sheet1").PageSetup.TopMargin = 36

下面这个范例显示当前的顶端页边距设置

marginInches = ActiveSheet.PageSetup.TopMargin / _

Application.InchesToPoints(1)

MsgBox "The current top margin is " & marginInches & " inches"


Zoom 属性实例

下面这个范例是在打印工作表时把 Sheet1 的比例设为150%。

Worksheets("Sheet1").PageSetup.Zoom = 150


Application 属性实例

下面这个范例是显示有关建立 myObject 的信息。

Set myObject = ActiveWorkbook

If myObject.Application.Value = "Microsoft Excel" Then

MsgBox "This is a Microsoft Excel object"

Else

MsgBox "This is not a Microsoft Excel object"

End If


Creator 属性实例

下面这个范例是显示有关 myObject 创建器的信息。

Set myObject = ActiveWorkbook

If myObject.Creator = &h5843454c Then

MsgBox "This is a Microsoft Excel object"

Else

MsgBox "This is not a Microsoft Excel object"

End If


Parent 属性实例

下面这个范例是显示包含 myAxis 的图表的名称。

Set myAxis = Charts(1).Axes(xlValue)

MsgBox myAxis.Parent.Name


AddCustomList 方法实例

下面这个范例是添加一个作为自定义列表的字符串数组。

Application.AddCustomList Array("cogs", "sprockets", _

"widgets", "gizmos")


AlertBeforeOverwriting 属性实例

下面这个范例是在拖放编辑过程中改写非空白单元格内容以前显示一条报警信息。

Application.AlertBeforeOverwriting = True


ClipboardFormats 属性实例

下面这个范例表示：如果剪贴板包含一个 RTF 对象，则显示一个信息框。您可以通过从 Word 文档中复制文本来建立一个 RTF 对象。

aFmts = Application.ClipboardFormats

For Each fmt In aFmts

If fmt = xlClipboardFormatRTF Then

MsgBox "Clipboard contains rich text"

End If

Next


DeleteCustomList 方法实例

下面这个范例删除一个自定义列表。

n = Application.GetCustomListNum(Array("cogs", "sprockets", _

"widgets", "gizmos"))

Application.DeleteCustomList n


EnableTipWizard 属性实例

下面这个范例激活“操作向导”

Application.EnableTipWizard = True


FileConverters 属性实例

下面这个范例是当安装 Multiplan 文件转换器时显示一条信息

installedCvts = Application.FileConverters

foundMultiplan = False

If Not IsNull(installedCvts) Then

For arrayRow = 1 To UBound(installedCvts, 1)

If installedCvts(arrayRow, 1) Like "*Multiplan*" Then

foundMultiplan = True

Exit For

End If

Next arrayRow

End If

If foundMultiplan = True Then

MsgBox "Multiplan converter is installed"

Else

MsgBox "Multiplan converter is not installed"

End If


GetCustomListContents 方法实例

下面这个范例是写出 Sheet1 上列1中的第一个自定义列表的内容。

Sub foo()

On Error GoTo err_handler

listArray = Application.GetCustomListContents(1)

For i = LBound(listArray, 1) To UBound(listArray, 1)

Worksheets("sheet1").Cells(i, 1).Value = listArray(i)

Next i

Exit Sub

err_handler:

MsgBox "Custom list does not exist"

End Sub


GetCustomListNum 方法实例

下面这个范例删除一个自定义列表。

n = Application.GetCustomListNum(Array("cogs", "sprockets", _

"widgets", "gizmos"))

Application.DeleteCustomList n


EditDirectlyInCell 属性实例

下面这个范例激活单元格内编辑功能。

Application.EditDirectlyInCell = True


MailLogoff 方法实例

下面这个范例是如果有一个（分时系统用）邮寄对话，则关闭这个对话。

If Not IsNull(Application.MailSession) Then Application.MailLogoff


MailLogon 方法实例

下面这个范例是注册邮件并且立即卸下任何新的邮件。

If IsNull(Application.MailSession) Then

Application.MailLogon "oscarx", "mypassword", True

End If


MailSession 属性实例

下面这个范例是如有一个邮件对话，则关闭这个对话。

If Not IsNull(Application.MailSession) Then Application.MailLogoff


MailSystem 属性实例

下面这个范例显示安装在计算机上的邮件系统的名称。

Sub foo()

Select Case Application.MailSystem

Case Is = xlMAPI

MsgBox "Mail system is Microsoft Mail"

Case Is = xlPowerTalk

MsgBox "Mail system is PowerTalk"

Case Is = xlNoMailSystem

MsgBox "No mail system installed"

End Select

End Sub


NextLetter 方法实例

下面这个范例从 InTray 中打开最早的不可读的 Microsoft Excel 信件。

If Application.MailSystem = xlPowerTalk Then _

Application.NextLetter


OnCalculate 属性实例

下面这个范例是当重新计算 Sheet1 时，运行“my-Recalc-Macro”

Worksheets("Sheet1").OnCalculate = "my_Recalc_Macro"

下面这个范例是为 Sheet1 关闭宏 OnCalculate。

Worksheets("Sheet1").OnCalculate = ""


PromptForSummaryInfo 属性实例

下面这个范例是当文件第一次存盘时显示一条需要摘要信息的提示。

Application.PromptForSummaryInfo = True


SheetsInNewWorkbook 属性实例

下面这个范例自动显示插入到新工作簿中的工作表数目。

MsgBox "Microsoft Excel inserts " & _

Application.SheetsInNewWorkbook & _

" sheet(s) in each new workbook"


StandardFont 属性实例

下面这个范例是将标准字体设定为Arial（在windows中）或 Geneva（在Macintosh 上）。

If Application.OperatingSystem Like "*Macintosh*" Then

Application.StandardFont = "Geneva"

Else

Application.StandardFont = "Arial"

End If


StandardFontSize 属性实例

下面这个范例是把标准黑体字尺寸设置为12点。

Application.StandardFontSize = 12


AutoFilter 方法实例

下面这个范例是从“sheet 1”上的单元格 A1 开始筛选一个列表，使其只显示以字符串“Otis”为第一字段的输入项。

Worksheets("Sheet1").Range("A1").AutoFilter _

field:=1, _

criteria1:="Otis"


DisplayHorizontalScrollBar 属性实例

下面这个范例是为当前活动窗口打开水平滚动栏。

ActiveWindow.DisplayHorizontalScrollBar = True


DisplayVerticalScrollBar 属性实例

下面这个范例为当前活动窗口打开垂直滚动栏

ActiveWindow.DisplayVerticalScrollBar = True


DisplayWorkbookTabs 属性实例

下面这个范例打开工作簿选项卡。

ActiveWindow.DisplayWorkbookTabs = True


Draft 属性实例

下面这个范例关闭 Sheet1 的图形打印。

Worksheets("Sheet1").PageSetup.Draft = True


FilterMode 属性实例

下面这个范例在一个信息框中显示 Sheet1 的筛选状态。

If Worksheets("Sheet1").FilterMode = True Then

MsgBox "Filter mode is on"

Else

MsgBox "Filter mode is off"

End If


FontStyle 属性实例

下面这个范例将 Sheet1 上的单元格A1设置字体样式为黑体和斜体。

Worksheets("Sheet1").Range("A1").Font.FontStyle = "Bold Italic"


FooterMargin 属性实例

下面这个范例将 Sheet1 的页脚页边距设置为0.5英寸。

Worksheets("Sheet1").PageSetup.FooterMargin = _

Application.InchesToPoints(0.5)


HeaderMargin 属性实例

下面这个范例将 Sheet1 的页眉页边距设置为0.5英寸

Worksheets("Sheet1").PageSetup.HeaderMargin = _

Application.InchesToPoints(0.5)


PrintNotes 属性实例

下面这个范例关闭附注打印。

Worksheets("Sheet1").PageSetup.PrintNotes = False


PrintQuality 属性实例

下面这个范例在一个带有非平方图像载预波的打印机上设置打印质量。这个点阵数组既指定水平打印质量，也指定垂直打印质量。这个范例可能引起错误，这取决于使用的打印机驱动。

Worksheets("Sheet1").PageSetup.PrintQuality = Array(240, 140)

下面这个范例显示当前水平打印质量设置

MsgBox "Horizontal Print Quality is " & _

Worksheets("Sheet1").PageSetup.PrintQuality(1)


ScrollColumn 属性实例

下面这个范例将第3列移到窗口的左面。

Worksheets("Sheet1").Activate

ActiveWindow.ScrollColumn = 3


ScrollRow 属性实例

下面这个范例将第10行移到窗口的上端。

Worksheets("Sheet1").Activate

ActiveWindow.ScrollRow = 10


ScrollWorkbookTabs 方法实例

下面这个范例将工作表选项卡滚动到工作簿中的最后一个工作表里。

ActiveWindow.ScrollWorkbookTabs position:=xlLast


Shadow 属性实例

下面这个范例将阴影添加到 Chart1 的标题中。

Charts("Chart1").ChartTitle.Shadow = True


Subscript 属性实例

下面这个范例将单元格 A1 中的第二个字符设置为一个下标。

Worksheets("Sheet1").Range("A1").Characters(2, 1).Font.Subscript = True


Superscript 属性实例

下面这个范例将单元格A1中的最后一个字符设置为上标。

n = Worksheets("Sheet1").Range("A1").Characters.Count

Worksheets("Sheet1").Range("A1").Characters(n, 1).Font.Superscript = True


TabRatio 属性实例

下面这个范例将工作表选项卡设置为水平滚动栏宽度的一半。

ActiveWindow.TabRatio = 0.5


Charts 方法实例

下面这个范例为 Chart1设置文本。

With Charts("Chart1")

.HasTitle = True

.ChartTitle.Text = "First Quarter Sales"

End With

下面这个范例删除活动工作簿中每一个图表工作表。

ActiveWorkbook.Charts.Delete

下面这个范例隐藏 Chart1, Chart3 和 Chart5 。在下面范例（以及上一范例）中请注意， Charts 方法返回一个 Sheets 对象，而不是一个 Charts 对象。

Charts(Array("Chart1", "Chart3", "Chart5")).Visible = False


ClearArrows 方法实例

下面这个范例清除 Sheet1 上的追踪箭头。

Worksheets("Sheet1").ClearArrows


Copy 方法实例

下面这个范例将 Sheet1 上的按钮复制到剪贴板上。

Worksheets("Sheet1").Buttons(1).Copy

下面这个范例复制 Sheet1 ，并把此复本放在 Sheet3 后面。

Worksheets("Sheet1").Copy after := Worksheets("Sheet3")

下面这个范例复制 Sheet1 中已使用的区域，创建一个新工作表，然后将复制区域的值粘贴到新工作表中。

Worksheets("Sheet1").UsedRange.Copy

Set newSheet = Worksheets.Add

newSheet.Range("A1").PasteSpecial Paste:=xlValues

下面这个范例将 Sheet1 上单元格 A1:D4中的公式复制到 Sheet2 上的单元格 E5:H8中去。

Worksheets("Sheet1").Range("A1:D4").Copy _

destination:=Worksheets("Sheet2").Range("E5")


DrawingObjects 方法实例

下面这个范例删除 Sheet1 上的图形对象。

Worksheets("Sheet1").DrawingObjects(3).Delete

下面这个范例删除 Sheet1 上的所有图形对象。

Worksheets("Sheet1").DrawingObjects.Delete

下面这个范例将箭头添加到 Sheet1 中所有名称里有“Line”字样的图形对象上。

For Each d In Worksheets("Sheet1").DrawingObjects

If d.Name Like "*Line*" Then

d.ArrowHeadLength = xlLong

d.ArrowHeadStyle = xlOpen

d.ArrowHeadWidth = xlNarrow

End If

Next


GroupObjects 方法实例

下面这个范例在 Sheet1 上的组1中取消图形对象成组。

Worksheets("Sheet1").GroupObjects(1).Ungroup


Move 方法实例

下面这个范例在活动工作簿中将 Sheet1 移动到 Sheet3 的后面。

Worksheets("Sheet1").Move _

after:=Worksheets("Sheet3")


OnDoubleClick 属性实例

下面这个范例表示：当您双击 Sheet1 上的任何地方时，Microsoft Excel 运行名叫“my-Dblclick-Macro”的宏。

Worksheets("Sheet1").OnDoubleClick = "my_DblClick_Macro"

下面这个范例取消 OnDoubleClick 宏。

Worksheets("Sheet1").OnDoubleClick = ""


PrintOut 方法实例

下面这个范例打印活动工作表。

ActiveSheet.PrintOut


PrintPreview 方法实例

下面这个范例显示 Sheet1 的打印预览。

Worksheets("Sheet1").PrintPreview


Protect 方法实例

下面这个范例保护活动工作簿。

ActiveWorkbook.Protect password := "drowssap"


ProtectContents 属性实例

下面这个范例表示：如果 Sheet1 的内容有保护，将显示一个信息框。

If Worksheets("Sheet1").ProtectContents = True Then

MsgBox "The contents of Sheet1 are protected."

End If


ProtectDrawingObjects 属性实例

下面这个范例表示：如果活动工作表上的图形对象有保护，将显示一个信息框。

If Worksheets("Sheet1").ProtectDrawingObjects = True Then

MsgBox "The drawing objects on Sheet1 are protected."

End If


Scenarios 方法实例

下面这个范例为 Sheet1 上的第一方案设置备注。

Worksheets("Sheet1").Scenarios(1).Comment = _

"Worst-case July 1993 sales"


Unprotect 方法实例

下面这个范例取消对活动工作簿的保护。

ActiveWorkbook.Unprotect


AskToUpdateLinks 属性实例

当包含链接的文件打开时，此例令 Microsoft Excel 要求用户更新链接。

Application.AskToUpdateLinks = True


AutoUpdate 属性实例

此例显示自动更新“Sheet1”上所有 OLE 对象的状态。

Worksheets("Sheet1").Activate

Range("A1").Value = "Name"

Range("B1").Value = "Link Status"

Range("C1").Value = "AutoUpdate Status"

i = 2

For Each obj In ActiveSheet.OLEObjects

Cells(i, 1) = obj.Name

If obj.OLEType = xlOLELink Then

Cells(i, 2) = "Linked"

Cells(i, 3) = obj.AutoUpdate

Else

Cells(i, 2) = "Embedded"

End If

i = i + 1

Next


Backward 属性实例

此例设置“Chart1”上趋势线前推和倒推扩展的单位数。此例应在包含具有趋势线的单个系列的二维柱形图表上运行。

With Charts("Chart1").SeriesCollection(1).Trendlines(1)

.Forward = 5

.Backward = .5

End With


BlackAndWhite 属性实例

此例令“Sheet1”单色打印。

Worksheets("Sheet1").PageSetup.BlackAndWhite = True


Category 属性实例

此例假定您已在 Microsoft Excel 4.0 版本的宏工作表上生成自定义函数或命令，此例将以宏语言显示函数分类。它假定自定义函数或命令的名称是工作簿中的唯一名称。

With ActiveWorkbook.Names(1)

If .MacroType <> xlNone Then

MsgBox "The category for this name is " & .Category

Else

MsgBox "This name does not refer to" & _

" a custom function or command."

End If

End With


ChangeFileAccess 方法实例

此例将当前工作簿设置为只读状态。

ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly


ChartGroups 方法实例

此例打开“Chart1”上第一个图组的涨跌柱线然后为其设置颜色。此例需在二维折线图表上运行，此二维折线图应包括两个在一个或多个数据点处相交的系列.

With Charts("Chart1").ChartGroups(1)

.HasUpDownBars = True

.DownBars.Interior.ColorIndex = 3

.UpBars.Interior.ColorIndex = 5

End With


Checked 属性实例

此例为当前菜单栏上第一个菜单的第一个菜单项添加选定标记(通常为“文件”菜单上的“新建”命令)。

ActiveMenuBar.Menus(1).MenuItems(1).Checked = True


CopyObjectsWithCells 属性实例

此例令 Microsoft Excel 对带单元格的图形对象进行剪切、复制、提取和排序。

Application.CopyObjectsWithCells = True


Count 属性实例

此例显示当前菜单栏上的菜单个数。

MsgBox "The active menu bar contains " & _

ActiveMenuBar.Menus.Count & " menus."

此例显示“Sheet1”上选定区域内列的个数，此代码还可检测多区域选定区域；若存在多区域选定区域，此代码将在该多区域选定区域上循环。

Worksheets("Sheet1").Activate

areaCount = Selection.Areas.Count

If areaCount <= 1 Then

MsgBox "The selection contains " & _

Selection.Columns.Count & " columns."

Else

For i = 1 To areaCount

MsgBox "Area " & i & " of the selection contains " & _

Selection.Areas(i).Columns.Count & " columns."

Next i

End If

此例将单元格 A1 内的最后一个字符作为上标。

n = Worksheets("Sheet1").Range("A1").Characters.Count

Worksheets("Sheet1").Range("A1").Characters(n, 1).Font.Superscript = _

True


CustomListCount 属性实例

此例显示当前定义的自定义序列的个数。

MsgBox "There are currently " & Application.CustomListCount & _

" defined custom lists."


DefaultFilePath 属性实例

此例显示当前默认文件路径。

MsgBox "The current default file path is " & _

Application.DefaultFilePath


Dialogs 方法实例

此例为“文件”菜单上的“打开”命令显示对话框。

Application.Dialogs(xlDialogOpen).Show


DisplayBlanksAs 属性实例

此例令 Microsoft Excel 不在“Chart1”中绘制空白单元格。

Charts("Chart1").DisplayBlanksAs = xlNotPlotted


DisplayEquation 属性实例

此例显示“Chart1”中第一条趋势线的 R 平方值和方程。此例需在包含第一系列趋势线的二维柱形图表上运行。

With Charts("Chart1").SeriesCollection(1).Trendlines(1)

.DisplayRSquared = True

.DisplayEquation = True

End With


DisplayFullScreen 属性实例

此例令 Microsoft Excel 以全屏幕方式显示。

Application.DisplayFullScreen = True


DisplayExcel4Menus 属性实例

当目前使用的是 4.0 版本的菜单时，此例将转换到 Microsoft Excel7.0 版本的菜单。

If Application.DisplayExcel4Menus = True Then

Application.DisplayExcel4Menus = False

End If


DisplayRecentFiles 属性实例

此例关闭最近使用文件的序列。

Application.DisplayRecentFiles = False


DisplayRSquared 属性实例

此例显示“Chart1”中第一条趋势线的R平方值和方程。此例需在包含第一系列趋势线的二维柱形图表上运行。

With Charts("Chart1").SeriesCollection(1).Trendlines(1)

.DisplayRSquared = True

.DisplayEquation = True

End With


Duplicate 方法实例

此例复制“Sheet1”上的第一个椭圆然后选择复制。

Set dOval = Worksheets("Sheet1").Ovals(1).Duplicate

dOval.Select


Edit 方法实例

此例启动“打印”按钮的工具按钮编辑器，“打印”按钮即“标准”工具栏上的第五个按钮。

Application.Toolbars("Standard").ToolbarButtons(5).Edit


FindFile 方法实例

此例显示“打开”对话框。

Application.FindFile


Forward 属性实例

此例设置“Chart1”上趋势线前推和倒推扩展的单位数。此例需在包含具有趋势线的单系列的二维柱形图表上运行。

With Charts("Chart1").SeriesCollection(1).Trendlines(1)

.Forward = 5

.Backward = .5

End With


HasTitle 属性实例

此例为“Chart1”中的分类轴添加轴标志。

With Charts("Chart1").Axes(xlCategory)

.HasTitle = True

.AxisTitle.Text = "July Sales"

End With


InsertFile 方法实例

此例将文件中的文本添加到“Module2”中。注意不能使用“InsertFile”方法将文本添加到包含运行示例的模块中。在插入新的宏模块(Module2)后才能从“Modue11”中执行此例。

Modules("Module2").InsertFile fileName:="MYMACRO.TXT"


Intercept 属性实例

此例令“Chart1”中的第一条趋势线与数值(Y)轴在5处相交。此例需在包含具有趋势线的单系列的二维柱形图表上运行。

Charts("Chart1").SeriesCollection(1).Trendlines(1).Intercept = 5


InterceptIsAuto 属性实例

此例使 Microsoft Excel 自动确定“Chart1”的趋势线相交点，此例需在包含具有趋势线的单系列的二维柱形图表上运行。

Charts("Chart1").SeriesCollection(1).Trendlines(1).InterceptIsAuto = _

True


LargeButtons 属性实例

此例显示大工具按钮

Application.LargeButtons = True


MacroType 属性实例

此例假定您已在 Microsoft Excel 4.0 版本的宏工作表上生成自定义函数或命令。此例以宏语言显示函数分类，它假定自定义函数或命令的名称是工作簿中的唯一名称。

With ActiveWorkbook.Names(1)

If .MacroType <> xlNone Then

MsgBox "The category for this name is " & .Category

Else

MsgBox "This name does not refer to" & _

" a custom function or command."

End If

End With


MenuItems 方法实例

此例在当前菜单栏的“帮助”菜单内添加新的菜单项。

With ActiveMenuBar.Menus("Help")

Set mi = .MenuItems.Add("&More Help", "my_Help_Macro")

End With

此例将“文件”菜单上的“打开”命令修改为“打开工作簿”。此例将对产品中的所有菜单项作此修改。

For Each mb In MenuBars

mb.Menus("File").MenuItems(2).Caption = "&Open Workbook"

Next mb


Menus 方法实例

此例在当前菜单栏内添加新菜单。此菜单将被立即添加到“帮助”菜单的左侧。

ActiveMenuBar.Menus.Add caption:="&MyMenu", before:="Help"

此例将“文件”菜单上的“打开”命令修改为“打开工作簿”，此例将对产品中的所有菜单作此修改。

For Each mb In MenuBars

mb.Menus("File").MenuItems(2).Caption = "&Open Workbook"

Next mb


NameIsAuto 属性实例

此例令 Microsoft Excel 自动为“Chart1”中第一条趋势线确定名称。此例需在包含具有趋势线的单个系列的二维柱形图表上运行。

Charts("Chart1").SeriesCollection(1).Trendlines(1).NameIsAuto = True


Object 属性实例

此例在“Sheet1”上嵌入式 Microsoft Word 文档对象的开始处插入文本。注意 With 控制结构中的三条语句是 Word Basic 语句。

Set wordObj = Worksheets("Sheet1").OLEObjects(1)

wordObj.Activate

With wordObj.Object.Application.WordBasic

.StartOfDocument

.Insert "This is the beginning"

.InsertPara

End With


OLEObjects 方法实例

此例为“Sheet1”上的 OLE 对象生成链接类型序列。此序列出现在由此例生成的新工作表上。

Set newSheet = Worksheets.Add

i = 2

newSheet.Range("A1").Value = "Name"

newSheet.Range("B1").Value = "Link Type"

For Each obj In Worksheets("Sheet1").OLEObjects

newSheet.Cells(i, 1).Value = obj.Name

If obj.OLEType = xlOLELink Then

newSheet.Cells(i, 2) = "Linked"

Else

newSheet.Cells(i, 2) = "Embedded"

End If

i = i + 1

Next


OLEType 属性实例

此例为“Sheet1”上的 OLE 对象生成链接类型序列。此序列出现在由此例生成的新工作表上。

Set newSheet = Worksheets.Add

i = 2

newSheet.Range("A1").Value = "Name"

newSheet.Range("B1").Value = "Link Type"

For Each obj In Worksheets("Sheet1").OLEObjects

newSheet.Cells(i, 1).Value = obj.Name

If obj.OLEType = xlOLELink Then

newSheet.Cells(i, 2) = "Linked"

Else

newSheet.Cells(i, 2) = "Embedded"

End If

i = i + 1

Next


Pattern 属性实例

此例在“Sheet1”上单元格 A1 的内部添加十字线图案。

Worksheets("Sheet1").Range("A1").Interior.Pattern = xlCrissCross


Period 属性实例

若“Chart1”上的趋势线为移动平均趋势线，此例为第一条趋势线设置周期。此例应在具有单个系列的二维柱形图表上运行，此系列需包含10个数据点和一条移动平均趋势线。

With Charts("Chart1").SeriesCollection(1).Trendlines(1)

If .Type = xlMovingAvg Then .Period = 5

End With


PlotVisibleOnly 属性实例

此例令 Microsoft Excel 在“Chart1”中绘制可见单元格。

Charts("Chart1").PlotVisibleOnly = True


PrintArea 属性实例

此例将“Sheet1”上的单元格 A1：C5 设置为打印区。

Worksheets("Sheet1").PageSetup.PrintArea = "$A$1:$C$5"

此例将“Sheet1”上的当前区设置为打印区。注意可使用 Address 方法返回 A1 样式地址。

Worksheets("Sheet1").Activate

ActiveSheet.PageSetup.PrintArea = _

ActiveCell.CurrentRegion.Address


PrintTitleColumns 属性实例

此例将第三行定义为标题行，将第一到第三列定义为标题列。

Worksheets("Sheet1").Activate

ActiveSheet.PageSetup.PrintTitleRows = ActiveSheet.Rows(3).Address

ActiveSheet.PageSetup.PrintTitleColumns = _

ActiveSheet.Columns("A:C").Address


PrintTitleRows 属性实例

此例将第三行定义为标题行,将第一到第三列定义为标题列。

Worksheets("Sheet1").Activate

ActiveSheet.PageSetup.PrintTitleRows = ActiveSheet.Rows(3).Address

ActiveSheet.PageSetup.PrintTitleColumns = _

ActiveSheet.Columns("A:C").Address


VisibleRange 属性实例

此例显示“Sheet1”上可见单元格的个数。

Worksheets("Sheet1").Activate

MsgBox "There are " & Windows(1).VisibleRange.Cells.Count _

& " cells visible"


RefersTo 属性实例

此例建立当前工作簿中所有名称的序列，并以宏语言中的 A1 样式符号显示它们的公式。此序列出现在由此例生成的新工作表上。

Set newSheet = Worksheets.Add

i = 1

For Each nm In ActiveWorkbook.Names

newSheet.Cells(i, 1).Value = nm.Name

newSheet.Cells(i, 2).Value = "'" & nm.RefersTo

i = i + 1

Next

newSheet.Columns("A:B").AutoFit


ShowDetail 属性实例

此例显示“Sheet1”上分级汇总行的明细数据。运行此例前，应生成包含单个汇总行的简单分级显示，然后压缩分级显示以便只显示汇总行。在汇总行中选择某一单元格，然后运行此例。

Worksheets("Sheet1").Activate

Set myRange = ActiveCell.CurrentRegion

lastRow = myRange.Rows.Count

myRange.Rows(lastRow).ShowDetail = True


TransitionMenuKeyAction 属性实例

当替补菜单键按下时，此例把它设置为运行“Lotus1_2-3 帮助”。在 Macintosh 上此属性不能设置为 xlLotusHelp。

Application.TransitionMenuKeyAction = xlLotusHelp


Update 方法实例

此例更新与“Sheet1”上第一个 OLE 对象的链接。

Worksheets("Sheet1").OLEObjects(1).Update


Verb 方法实例

此例为“Sheet1”上的第一个 OLE 对象将默认 Verb 送至服务器。

Worksheets("Sheet1").OLEObjects(1).Verb


WallsAndGridlines2D 属性实例

此例令 Microsoft Excel 在“Chart1”上画二维网格线。

Charts("Chart1").WallsAndGridlines2D = True


AddMenu 方法实例

此例在“工作表”菜单栏上的“帮助”菜单内添加新的子菜单然后在其中添加子菜单项。

Set newSubMenu = MenuBars(xlWorksheet).Menus("Help"). _

MenuItems.AddMenu(Caption:="More")

newSubMenu.MenuItems.Add Caption:="More Help"


AdvancedFilter 方法实例

此例根据名为“Criteria”的条件区域筛选数据库(名为“Database＂)。

Range("Database").AdvancedFilter _

action:=xlFilterInPlace, _

criteriaRange:=Range("Criteria")


CheckSpelling 方法实例

此例对“Sheet1”进行拚写检查。

Worksheets("Sheet1").CheckSpelling


Colors 属性实例

此例将当前工作簿的调色板设置为与 BOOK2.XLS 的调色板相同。

ActiveWorkbook.Colors = Workbooks("BOOK2.XLS").Colors


DisplayRightToLeft 属性实例

此例将第一个窗口设置为从右至左显示。

ActiveWorkbook.Windows(1).DisplayRightToLeft = True


FillAcrossSheets 方法实例

此例将“Sheet1”上 A1：C5 区域的内容填入“Sheet1”、“Sheet5”和“Sheet7”上的A1：C5区域。

x = Array("Sheet1", "Sheet5", "Sheet7")

Sheets(x).FillAcrossSheets _

Worksheets("Sheet1").Range("A1:C5")


Name 属性实例

此例显示当前工作簿中样式1的名称及局部名称。

With ActiveWorkbook.Styles(1)

MsgBox "The name of the style is " & .Name

MsgBox "The localized name of the style is " & .NameLocal

End With


NameLocal 属性实例

此例显示当前工作簿中样式1的名称及局部名称。

With ActiveWorkbook.Styles(1)

MsgBox "The name of the style is " & .Name

MsgBox "The localized name of the style is " & .NameLocal

End With


Range 方法实例

此例将“Sheet1”上单元格A1的值设置为3.14159．

Worksheets("Sheet1").Range("A1").Value = 3.14159

此例在“Sheet1”上的单元格A1内生成某一公式。

Worksheets("Sheet1").Range("A1").Formula = "=10*RAND()"

此例在“Sheet1”上的A1：D10单元格内循环。若某一单元格的值小于0.001，则此代码将以0(零)值取而代之。

For Each c in Worksheets("Sheet1").Range("A1:D10")

If c.Value < .001 Then

c.Value = 0

End If

Next c

此例在名为“TestRange”的区域内循环并显示区域内空单元格的个数。

numBlanks = 0

For Each c In Range("TestRange")

If c.Value = "" Then

numBlanks = numBlanks + 1

End If

Next c

MsgBox "There are " & numBlanks & " empty cells in this range"

此例将“Sheet1”上单元格 A1：C5 的字体设置为斜体。此例使用 Range 方法的“语法2”。

Worksheets("Sheet1").Activate

Range(Cells(1, 1), Cells(5, 3)).Font.Italic = True


RecordMacro 方法实例

此例记录 Visual Basic 代码或 XLM 公式。

Application.RecordMacro basicCode:="Application.Run ""MySub"" ", _

xlmCode:="=MySub()"


Show 方法实例

此例显示自定义对话框“Dialog1”，若您未按“取消”按钮，将接着显示一条消息。在执行此例前，应先单击“插入”菜单上的“宏”然后单击“对话＂以生成一新的默认对话工作表。

If DialogSheets("Dialog1").Show <> False Then

MsgBox "You must have pressed the ""OK"" button"

End If

此例显示“打开”对话框并选择“只读”选项。

Application.Dialogs(xlDialogOpen).Show arg3:=True


ShowAllData 方法实例

此例显示“Sheet1”上的所有数据。此例应在包含使用“数据”菜单上的“自动筛选”命令筛选出的序列的工作表上运行。

Worksheets("Sheet1").ShowAllData


Value 属性实例

此例将“Sheet1”上单元格 A1 的值设置为3.14159。

Worksheets("Sheet1").Range("A1").Value = 3.14159

此例在“Sheet1”上的单元格 A1:D10 内循环。若某单元格的值小于0.001，则此代码将以0(零)值取而代之。

For Each c in Worksheets("Sheet1").Range("A1:D10")

If c.Value < .001 Then

c.Value = 0

End If

Next c

此例是针对自定义对话框，即“Dialog1”上列表框的一个简单事件过程。此例用于将变量 item Num 的值设置为列表框中选定项的索引序号。

itemNum = DialogSheets("Dialog1").ListBoxes(1).Value


Accelerator 属性实例

此例为“Dialog1”上的第二个工具按钮设置按钮文本及加速键。

With DialogSheets("Dialog1").Buttons(2)

.Text = "Press Me"

.Accelerator = "P"

End With


ActiveChart 属性实例

此例打开当前图表的图例.

ActiveChart.HasLegend = True


ActiveDialog 属性实例

此例设置当前对话框的高度。

ActiveDialog.DialogFrame.Height = 91


AddChartAutoFormat 方法实例

此例添加以“Chart1”为基础的新自动格式。

Application.AddChartAutoFormat _

chart:=Charts("Chart1"), name:="Presentation Chart"


AddFields 方法实例

此例以“Status”和“Closed_By”字段代替“Sheet1”上第一个“数据透视表”的现有列字段。

Worksheets("Sheet1").PivotTables(1).AddFields _

ColumnFields:=Array("Status", "Closed_By")


AddItem 方法实例

此例以字母 A 到 M 取代“Dialog1”上第一个列表框中的现有内容。

DialogSheets("Dialog1").ListBoxes(1).RemoveAllItems

For i = 65 To 77

DialogSheets("Dialog1").ListBoxes(1).AddItem Text:=Chr(i)

Next i


AutoFilterMode 属性实例

此例显示“Sheet1”中 AutoFilterMode 属性的当前状态。

If Worksheets("Sheet1").AutoFilterMode Then

isOn = "On"

Else

isOn = "Off"

End If

MsgBox "AutoFilterMode is " & isOn


AutoOutline 方法实例

此例为“Sheet1”上的 A1：G37 区域生成边框。此区域必须包含一汇总行或一汇总列。

Worksheets("Sheet1").Range("A1:G37").AutoOutline


BorderAround 方法实例

此例在“Sheet1”上的 A1：D4 区域四周添加粗红边框。

Worksheets("Sheet1").Range("A1:D4").BorderAround _

ColorIndex:=3, Weight:=xlThick


CancelButton 属性实例

此例为“Dialog1”上的第一个工具按钮设置 CancelButton 属性。

DialogSheets("Dialog1").Buttons(1).CancelButton = True


ChangeLink 方法实例

此例修改 Microsoft Excel链接。

ActiveWorkbook.ChangeLink "c:\excel\book1.xls", _

"c:\excel\book2.xls", xlExcelLinks


ChartWizard 方法实例

此例将“Chart1”重新格式化为折线图，包括添加图例，添加分类及数值轴标题。

Charts("Chart1").ChartWizard _

gallery:=xlLine, _

hasLegend:=True, categoryTitle:="Year", valueTitle:="Sales"


CheckBoxes 方法实例

此例将“Dialog1”上的第一个复选框设置为灰色然后显示对话框。

With DialogSheets("Dialog1")

.CheckBoxes(1).Value = xlMixed

.Show

End With


ClearOutline 方法实例

此例清除“Sheet1”上 A1：G37 区域的边框。

Worksheets("Sheet1").Range("A1:G37").ClearOutline


ConsolidationFunction 属性实例

若当前合并计算采用了 SUM(求和)函数，此例将显示消息框。

If Worksheets("Sheet1").ConsolidationFunction = xlSum Then

MsgBox "Sheet1 uses the SUM function for consolidation."

End If


ConsolidationOptions 属性实例

此例显示“Sheet1”的合并计算选项。此序列将出现在由此例生成的新工作表上。

Set newSheet = Worksheets.Add

aOptions = Worksheets("Sheet1").ConsolidationOptions

newSheet.Range("A1").Value = "Labels in top row"

newSheet.Range("A2").Value = "Labels in left column"

newSheet.Range("A3").Value = "Create links for data"

For i = 1 To 3

If aOptions(i) = True Then

newSheet.Cells(i, 2).Value = "True"

Else

newSheet.Cells(i, 2).Value = "False"

End If

Next i

newSheet.Columns("A:B").AutoFit


ConsolidationSources 属性实例

此例显示“Sheet1”上用于合并计算的源区域的名称。此序列将出现在由此例生成的新工作表上。

Set newSheet = Worksheets.Add

newSheet.Range("A1").Value = "Consolidation Sources"

aSources = Worksheets("Sheet10").ConsolidationSources

If IsEmpty(aSources) Then

newSheet.Range("A2").Value = "none"

Else

For i = 1 To UBound(aSources)

newSheet.Cells(i + 1, 1).Value = aSources(i)

Next i

End If

newSheet.Columns("A:B").AutoFit


DefaultButton 属性实例

此例将第四个工具按钮设置为“Dialog1”的当前默认按钮。只有对话框不处于运行状态时才能设置当前默认按钮。

DialogSheets("Dialog1").Buttons(4).DefaultButton = True

此例将第五个工具按钮设置为“Dialog1”的当前默认按钮。只有对话框处于运行状态时才能设置当前默认按钮(这意味着此例必须在“Dialog1”上另一个控制事件程序中)。

With DialogSheets("Dialog1")

.DefaultButton = .Buttons(5).Name

End With


DeleteChartAutoFormat 方法实例

此例删除名为“Presentation Chart”的自定义自动格式。

Application.DeleteChartAutoFormat name:="Presentation Chart"


DialogFrame 属性实例

此例设置“Dialog1”中对话框的高度和宽度。

With DialogSheets("Dialog1").DialogFrame

.Height = 144

.Width = 196

End With


DismissButton 属性实例

此例为“Chart1”上每一个工具按钮设置 DismissButton 属性。

For Each bt in DialogSheets("Dialog1").Buttons

bt.DismissButton = True

Next bt


DisplayClipboardWindow 属性实例

此例显示“剪贴板”窗口。

Application.DisplayClipboardWindow = True


DisplayInfoWindow 属性实例

此例显示信息窗口。

Application.DisplayInfoWindow = True


DropDownLines 属性实例

此例设置“Dialog1”上第一个下拉列表框中列表行的数量。

DialogSheets("Dialog1").DropDowns(1).DropDownLines = 10


DropDowns 方法实例

此例设置“Dialog1”上第一个下拉列表框中列表行的数量。

DialogSheets("Dialog1").DropDowns(1).DropDownLines = 10


EditBoxes 方法实例

此例在“Dialog1”上的第一个编辑框内设置文本。

DialogSheets("Dialog1").EditBoxes(1).Text = "Start here"


Extend 方法实例

此例通过在“Sheet1”上的单元格 B1：B6 内添加数据从而扩展“Chart1”上的系列。

Charts("Chart1").SeriesCollection.Extend _

source:=Worksheets("Sheet1").Range("B1:B6")


Focus 属性实例

此例将焦点设置为运行对话框中的第一个工具按钮,然后在消息框内显示此工具按钮名称。此例应为针对对话工作表上控制或对话框的事件程序。

ActiveDialog.Focus = ActiveDialog.Buttons(1).Name

MsgBox ActiveDialog.Focus


GroupBoxes 方法实例

此例为“Dialog1”上的第一个组框设置标题。

DialogSheets("Dialog1").GroupBoxes.Text = "Choose one"


HelpButton 属性实例

此例显示“Dialog1”中“帮助”工具按钮的名称。

For Each b In DialogSheets("Dialog1").Buttons

If b.HelpButton = True Then

MsgBox "Help button is " & b.Name

End If

Next b


Hide 方法实例

此例隐藏当前对话框。

ActiveDialog.Hide


InputType 属性实例

此例将“Dialog1”上第一个编辑框设置为要求输入某一整数。

DialogSheets("Dialog1").EditBoxes(1).InputType = xlInteger


Labels 方法实例

此例为“Dialog1”上的第一个标志设置文本。

DialogSheets("Sheet1").Labels(1).Text = "Search results"


LargeChange 属性实例

此例将“Dialog1”上的第一个滚动条设置成每个行滚动量为二个单位，每个页滚动量为20个单位。

With DialogSheets("Dialog1").ScrollBars(1)

.SmallChange = 2

.LargeChange = 20

End With


LegendEntries 方法实例

此例为“Chart1”上第一个图例项设置字体。

Charts("Chart1").Legend.LegendEntries(1).Font.Name = "Arial"


LegendKey 属性实例

此例将“Chart1”上第一个图例项的图例键设置为三角形。此例需在二维折线图上运行。

Charts("Chart1").Legend.LegendEntries(1).LegendKey.MarkerStyle = _

xlTriangle


LinkedCell 属性实例

此例为“Sheet1”上的第一个序列框设置填充区域和单元格链接属性。

Worksheets("Sheet1").ListBoxes(1).ListFillRange = "Sheet1!A1:A8"

Worksheets("Sheet1").ListBoxes(1).LinkedCell = "Sheet1!B1"


LinkedObject 属性实例

此例显示与第一个对话工作表上第一个编辑框链接的序列框的名称。

MsgBox DialogSheets(1).EditBoxes(1).LinkedObject


LinkInfo 方法实例

若链接自动更新，则此例显示消息框。

If ActiveWorkbook.LinkInfo( _

"Word.Document.6|Document1!'!DDE_LINK1", xlUpdateState, _

xlOLELinks) = 1 Then

MsgBox "Link updates automatically"

End If


LinkSources 方法实例

此例显示当前工作簿中的 OLE 及 DDE 链接序列。此例应在包含一个或多个链接的 Microsoft Word 对象的工作簿上运行。

aLinks = ActiveWorkbook.LinkSources(xlOLELinks)

If Not IsEmpty(aLinks) Then

For i = 1 To UBound(aLinks)

MsgBox "Link " & i & ":" & Chr(13) & aLinks(i)

Next i

End If


List 属性实例

此例设置“Dialog1”上第一个列表框的项。

DialogSheets("Dialog1").ListBoxes(1).List = _

Array("cogs", "widgets", "sprockets", "gizmos")

此例设置“Dialog1”上第一个列表框的第四个项。

DialogSheets("Dialog1").ListBoxes(1).List(4) = "gadgets"


ListBoxes 方法实例

此例以字母 A 到 Z 填充“Dialog1”上的第一个列表框。

For i = 65 To 90

DialogSheets("Dialog1").ListBoxes(1).AddItem Text:=Chr(i)

Next i


ListCount 属性实例

此例显示“Dialog1”上第一个列表框内项的个数。

cEntries = DialogSheets("Dialog1").ListBoxes(1).ListCount

MsgBox "There are " & cEntries & " entries in list box one."


ListFillRange 属性实例

此例以“Sheet1”上的区域 A1：A10 填充第一个列表框：

DialogSheets("Dialog1").Listboxes(1).ListFillRange = _

"Sheet1!A1:A10"


ListIndex 属性实例

此例在“Dialog1”上的第一个列表框中选择第四项。

DialogSheets("Dialog1").ListBoxes(1).ListIndex = 4


Max 属性实例

此例为“Dialog1”上的第一个滚动条设置最小值和最大值。

With DialogSheets("Dialog1").ScrollBars(1)

.Min = 20

.Max = 50

End With


Merge 方法实例

此例将工作簿 TEMPLATE.XLS 中的样式并入当前工作簿。

ActiveWorkbook.Styles.Merge Workbook:=Workbooks("TEMPLATE.XLS")


Min 属性实例

此例为“Dialog1”上的第一个滚动条设置最小值和最大值。

With DialogSheets("Dialog1").ScrollBars(1)

.Min = 20

.Max = 50

End With


MultiLine 属性实例

此例允许在“Dialog1”上的第一个编辑框内进行多行输入。

DialogSheets("Dialog1").EditBoxes(1).MultiLine = True


OpenLinks 方法实例

此例打开当前工作簿中的第一个 OLE 链接。

linkArray = ActiveWorkbook.LinkSources(xlOLELinks)

ActiveWorkbook.OpenLinks linkArray(1)

此例为当前工作簿打开所有Microsoft Excel支持文档。

ActiveWorkbook.OpenLinks _

name:=ActiveWorkbook.LinkSources(xlExcelLinks)


OptionButtons 方法实例

此例在“Dialog1”上设置第一个选项按钮。

Dialogsheets("Dialog1").OptionButtons(1).Value = xlOn


ActiveCell 属性示例

这个示例使用了一个对话框来显示当前单元格中的值。因为在当前表不是一个工作表时， ActiveCell 属性无效，本例在使用 ActiveCell 属性之前激活了Sheet1。

Worksheets("Sheet1").Activate

MsgBox ActiveCell.Value

此示例为当前单元格改变字体格式。

Worksheets("Sheet1").Activate

With ActiveCell.Font

.Bold = True

.Italic = True

End With


ActiveMenuBar 属性示例

本示例显示当前菜单栏的名称 (Caption 属性) 。

MsgBox "The active menu bar is called " & ActiveMenuBar.Caption


ActivePrinter 属性示例

本示例显示当前打印机的名称。

MsgBox "The name of the active printer is " & Application.ActivePrinter


ActiveSheet 属性示例

本示例显示当前工作表的名称 (Name 属性) 。

MsgBox "The name of the active sheet is " & ActiveSheet.Name


ActiveWindow 属性示例

本示例显示当前窗口的名称 (Caption 属性) 。

MsgBox "The name of the active window is " & ActiveWindow.Caption


ActiveWorkbook 属性示例

本示例显示当前工作薄的名称 (Name 属性) 。

MsgBox "The name of the active workbook is " & ActiveWorkbook.Name


AddIns 方法示例

这个示例显示内部“分析工具包”加载宏的状态。注意，AddIns 方法中用于索引的字符串是 AddIn 对象的 Title 属性。

If AddIns("Analysis ToolPak").Installed = True Then

MsgBox "Analysis ToolPak add-in is installed"

Else

MsgBox "Analysis ToolPak add-in is not installed"

End If


TransitionMenuKey 属性示例

本示例设置转换 Lotus 1-2-3 菜单键为 "/" (默认值)。

Application.TransitionMenuKey = "/"


TransitionNavigKeys 属性示例

本示例显示转成 Lotus 1-2-3 常用键选项当前的状态。

If Application.TransitionNavigKeys Then

keyState = "On"

Else

keyState = "Off"

End If

MsgBox "The Transition Navigation Keys option is " & keyState


AltStartupPath 属性示例

本示例设置替补启动文件夹。

Application.AltStartupPath = "C:\EXCEL\MACROS"

这是 Microsoft Excel 在 Macintosh 中一个相同的示例。

Application.AltStartupPath = "HD:Excel:My Macros"


Arcs 方法示例

本示例删除 Sheet1中的所有弧形。

Worksheets("Sheet1").Arcs.Delete

此示例改变Sheet1中弧形1的颜色为红色。

Worksheets("Sheet1").Arcs(1).Border.ColorIndex = 3


Buttons 方法示例

本示例删除 Sheet1中的所有按钮。

Worksheets("Sheet1").Buttons.Delete

此示例改变 Sheet1中按钮1的文本。

Worksheets("Sheet1").Buttons(1).Text = "New Button Name"


Calculate 方法示例

这个示例计算 Sheet1的使用区域中 A、 B、 和 C 列中的公式。

Worksheets("Sheet1").UsedRange.Columns("A:C").Calculate


CalculateBeforeSave 属性示例

此示例在工作薄被存盘之前先对其进行计算。

Application.Calculation = xlManual

Application.CalculateBeforeSave = True


CanPlaySounds 属性示例

本示例判断计算机能否播放声音附注，如果可以则播放 Sheet1的 A1 单元格中的声音附注。

If Application.CanPlaySounds = True Then

Worksheets("Sheet1").Range("A1").SoundNote.Play

End If


CanRecordSounds 属性示例

本示例判断计算机能否记录声音附注，如果可以则在 Sheet1的 A1 单元格中记录一个声音附注。

If Application.CanRecordSounds = True Then

With Worksheets("Sheet1").Range("A1").SoundNote

.Delete

.Record

End With

End If


Caption 属性示例

本示例将显示在 Microsoft Excel 主窗口标题栏中的名称设置为一个自定义的称 (这只能在 Windows 中实现； Application.Caption 在 Macintosh 中是只读的)。

Application.Caption = "Blue Sky Airlines Reservation System"

这个示例将工作薄第一个窗口的名称改为 “Consolidated Balance Sheet”。然后将这个名称作为 Windows 方法的索引。

ActiveWorkbook.Windows(1).Caption = "Consolidated Balance Sheet"

ActiveWorkbook.Windows("Consolidated Balance Sheet") _

.ActiveSheet.Calculate

本示例将“文件”菜单中的“打开命令 ”改变为 “打开工作簿”。此示例将改变程序中的每一个菜单栏。

For Each mb In MenuBars

mb.Menus("File").MenuItems(2).Caption = "&Open Workbook"

Next mb


CellDragAndDrop 属性示例

本示例打开“单元格拖曳功能”编辑选项。

Application.CellDragAndDrop = True


ProtectScenarios 属性示例

本示例在 Sheet1 中的方案被保护时显示一个信息框。

If Worksheets("Sheet1").ProtectScenarios Then _

MsgBox "Scenarios are protected on this worksheet."


RemoveAllItems 方法示例

此示例从 Dialog1 的列表框中删除所有的输入项。

DialogSheets("Dialog1").Listboxes(1).RemoveAllItems


RemoveItem 方法示例

此示例从 Dialog1 的列表框中删除第一个输入项。

DialogSheets("Dialog1").Listboxes(1).RemoveItem index:=1


ScrollBars 方法示例

本示例为 Dialog1 中的滚动条设置最小和最大值。

With DialogSheets("Dialog1").ScrollBars(1)

.Min = 20

.Max = 50

End With


SetInfoDisplay 方法示例

此示例显示信息窗口然后设置其显示单元格参考文本和单元格名信息。

Application.DisplayInfoWindow = True

ActiveWindow.SetInfoDisplay cell:=True, Names:=True


SetLinkOnData 方法示例

当 DDE 链接被更新时,本示例设置执行的程序名。

ActiveWorkbook.SetLinkOnData "WinWord|'C:\MSGFILE.DOC'!DDE_LINK1", _

"my_Link_Update_Macro"


ShortcutKey 属性示例

本示例在当前工作薄中为 name 1 设置快捷键。 此示例必须在一个工作薄中引用 Microsoft Excel 4.0 版本中的命令宏。

ActiveWorkbook.Names(1).ShortcutKey = "K"


ShowToolTips 属性示例

本示例使 Microsoft Excel 显示“工具提示”。

Application.ShowToolTips = True


SizeWithWindow 属性示例

本示例设置 Chart1 的大小为其窗口的大小。

Charts("Chart1").SizeWithWindow = True


SmallChange 属性示例

此示例设置 Dialog1 上的滚动条（1）为：当滚动一行时移动两个单位，滚动一页时移动 20 个单位。

With DialogSheets("Dialog1").ScrollBars(1)

.SmallChange = 2

.LargeChange = 20

End With


Spinners 方法示例

本示例显示 Dialog1 中 spinner 1 的当前值。此示例可将调整大小用于事件过程．在这种情况下，每次单击调整大小时将显示信息框。

MsgBox DialogSheets("Dialog1").Spinners(1).Value


TextToColumns 方法示例

此示例将“剪贴板”上的内容转换到 Sheet1 上单独的列中。此“剪贴板”包含以空格作为分隔符号的文本表．可以在“记事本”或“ WordPad”(或其它文本编辑器)上建立一个简单的以空格作为分隔符号的表，再将文本表拷贝到“剪贴板”上，之后切换到 Microsoft Excel， 然后执行这个示例。

Worksheets("Sheet1").Activate

ActiveSheet.Paste

Selection.TextToColumns DataType:=xlDelimited, _

consecutiveDelimiter:=True, Space:=True


UpdateLink 方法示例

本示例更新当前工作薄中所有的链接。

ActiveWorkbook.UpdateLink name:=ActiveWorkbook.LinkSources


Paste 方法 (Chart 对象) 示例

本示例将 Sheet1 B1:B5区域上的数据粘贴到 Chart1上。

Worksheets("Sheet1").Range("B1:B5").Copy

Charts("Chart1").Paste


Paste 方法 (Pictures 对象) 示例

此示例将粘贴板上的图形粘贴到 Sheet1 的 A1 单元格中。

Worksheets("Sheet1").Range("A1").Select

ActiveSheet.Pictures.Paste


Paste 方法 (Point or Series 对象) 示例

本示例复制一个图形到粘贴板，然后粘贴到 Chart1 的系列1 中。

Worksheets("Sheet1").Activate

ActiveSheet.Pictures(1).Copy

Charts("Chart1").Activate

ActiveChart.SeriesCollection(1).Paste


Paste 方法 (SeriesCollection 对象) 示例

此示例将 Sheet1中单元格 C1:C5 的数据复制到粘贴板，然后将数据作为一个新系列粘贴到 Chart1中。

Worksheets("Sheet1").Range("C1:C5").Copy

Charts("Chart1").SeriesCollection.Paste


Paste 方法 (Worksheet 对象) 示例

本示例将 Sheet1 的 C1:C5 单元格中的数据复制到 Sheet1 中的 D1:D5 单元格。

Worksheets("Sheet1").Range("C1:C5").Copy

ActiveSheet.Paste destination:=Worksheets("Sheet1").Range("D1:D5")


PasteSpecial 方法 (Range 对象) 示例

此示例用 Sheet1 中现有内容的总和以及 C1:C5 单元格替换 Sheet1 中 D1:D5 单元格的数据。

Worksheets("Sheet1").Range("C1:C5").Copy

Worksheets("Sheet1").Range("D1:D5").PasteSpecial operation:=xlAdd


PasteSpecial 方法示例

本示例将粘贴板上一个 Microsoft Word  6.0 版的文件对象粘贴到 Sheet1 的 D1 单元格中。

Worksheets("Sheet1").Range("D1").Select

ActiveSheet.PasteSpecial format:="Microsoft Word 6.0 Document Object"

此示例粘贴同一个 Microsoft Word  6.0 版的文件对象，并将其作为一个图标显示。

Worksheets("Sheet1").Range("F5").Select

ActiveSheet.PasteSpecial _

format:="Microsoft Word 6.0 Document Object", _

displayAsIcon:=True


ApplyDataLabels 方法示例

本示例在 Chart1 的系列 1中使用分类标志。

Charts("Chart1").SeriesCollection(1).ApplyDataLabels type:=xlShowLabel


DataLabel 方法示例

本示例在 Chart1 的系列 3 中为第七点打开数据标志，然后设置数据标志为蓝色。

With Charts("Chart1").SeriesCollection(3).Points(7)

.HasDataLabel = True

.ApplyDataLabels type:=xlValue

.DataLabel.Font.ColorIndex = 5

End With


HasDataLabel 方法示例

本示例在 Chart1 的序列 3 中为第七点打开数据标志，然后设置数据标志为蓝色。

With Charts("Chart1").SeriesCollection(3).Points(7)

.HasDataLabel = True

.ApplyDataLabels type:=xlValue

.DataLabel.Font.ColorIndex = 5

End With


MarkerStyle 方法示例

本示例为 Chart1 中的系列 1 设置标记样式。此示例必须在一个二维折线图中执行。

Charts("Chart1").SeriesCollection(1).MarkerStyle = xlCircle


PictureType 方法示例

本示例设置 Chart1 中的系列 1 为展开图形 。此示例必须在一个具有图形数据标记的二维柱形图中执行。

Charts("Chart1").SeriesCollection(1).PictureType = xlStretch


PictureUnit 方法示例

本示例设置 Chart1 中的系列 1 为重叠图形 ，并使每一个图形代表 5 个单位。 此示例必须在一个具有图形数据标记的二维柱形图中执行。

With Charts("Chart1").SeriesCollection(1)

.PictureType = xlScale

.PictureUnit = 5

End With


BaseField 属性示例

本示例在 Sheet1 的数据透视表中设置数据字段以计算基本字段的差，设置基本字段的字段名为“ORDER_DATE”，并设置基本项的项名为 “5/16/89”。

Worksheets("Sheet1").Range("A3").PivotField.Calculation = _

xlDifferenceFrom

Worksheets("Sheet1").Range("A3").PivotField.BaseField = "ORDER_DATE"

Worksheets("Sheet1").Range("A3").PivotField.BaseItem = "5/16/89"


BaseItem 属性示例

本示例在 Sheet1 的数据透视表中设置数据字段以计算基本字段的差，设置基本字段的字段名为“ORDER_DATE”，并设置基本项的项名为“5/16/89”。

Worksheets("Sheet1").Range("A3").PivotField.Calculation = _

xlDifferenceFrom

Worksheets("Sheet1").Range("A3").PivotField.BaseField = "ORDER_DATE"

Worksheets("Sheet1").Range("A3").PivotField.BaseItem = "5/16/89"


Calculation 属性示例

本示例使得 Microsoft Excel 在存盘前计算工作薄。

Application.Calculation = xlManual

Application.CalculateBeforeSave = True

本示例在 Sheet1 的数据透视表中设置数据字段以计算基本字段的差，设置基本字段的字段名为“ORDER_DATE”，并设置基本项的项名为“5/16/89”。

Worksheets("Sheet1").Range("A3").PivotField.Calculation = _

xlDifferenceFrom

Worksheets("Sheet1").Range("A3").PivotField.BaseField = "ORDER_DATE"

Worksheets("Sheet1").Range("A3").PivotField.BaseItem = "5/16/89"


ChildField 属性示例

本示例显示字段名为“REGION2”的字段的子字段名。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

MsgBox "The name of the child field is " & _

pvtTable.PivotFields("REGION2").ChildField.Name


ChildItems 方法示例

本示例将项目名为“Northwest”的全部子项目名添加进一个列表框。此列表框出现在 Sheet1 中。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

Set newListBox = Worksheets("Sheet1").ListBoxes.Add _

(Left:=10, Top:=72, Width:=144, Height:=144)

Set pvtField = pvtTable.PivotFields("REGION2")

For Each pvtItem In pvtField.PivotItems("Northwest").ChildItems

newListBox.AddItem (pvtItem.Name)

Next pvtItem

Worksheets("Sheet1").Activate


CurrentPage 属性示例

本示例设置 Sheet1 中数据透视表的当前页的页名为“Canada”。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

pvtTable.PivotFields("Country").CurrentPage = "Canada"


DataRange 属性示例

本示例在名为“REGION”的字段中选定数据透视项。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

Worksheets("Sheet1").Activate

pvtTable.PivotFields("REGION").DataRange.Select


DataType 属性示例

本示例显示名为“ORDER_DATE”字段的数据类型。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

Select Case pvtTable.PivotFields("ORDER_DATE").DataType

Case Is = xlText

MsgBox "The field contains text data"

Case Is = xlNumber

MsgBox "The field contains numeric data"

Case Is = xlDate

MsgBox "The field contains date data"

End Select


Group 方法示例

本示例为 Sheet1 的图形对象1、3、和5中建立一个分组。

Set myGroup = Worksheets("Sheet1").DrawingObjects(Array(1, 3, 5)).Group

Worksheets("Sheet1").Activate

myGroup.Select

本示例以10天为周期对“ORDER_DATE”字段进行分组。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

Set groupRange = pvtTable.PivotFields("ORDER_DATE").DataRange

groupRange.Cells(1).Group by:=10, periods:=Array(False, False, False, True, False, False, False)


GroupLevel 属性示例

本示例对如果字段中包含的当前单元格为高级父字段时将显示一个信息框。

Worksheets("Sheet1").Activate

If ActiveCell.PivotField.GroupLevel = 1 Then

MsgBox "This is the highest-level parent field."

End If


HiddenItems 方法示例

本示例将字段“ORDER_DATE”中的隐藏项目名添加到一个列表框中。此列表框出现在 Sheet1中。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

Set newListBox = Worksheets("Sheet1").ListBoxes.Add _

(Left:=10, Top:=72, Width:=144, Height:=144)

Set pvtField = pvtTable.PivotFields("ORDER_DATE")

For Each pvtItem In pvtField.HiddenItems

newListBox.AddItem (pvtItem.Name)

Next pvtItem

Worksheets("Sheet1").Activate


LabelRange 属性示例

本示例为“ORDER_DATE”字段选定字段按钮。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

Set pvtField = pvtTable.PivotFields("ORDER_DATE")

Worksheets("Sheet1").Activate

pvtField.LabelRange.Select


Orientation 属性示例

本示例为“ORDER_DATE”字段显示打印方向。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

Set pvtField = pvtTable.PivotFields("ORDER_DATE")

Select Case pvtField.Orientation

Case xlHidden

MsgBox "Hidden field"

Case xlRowField

MsgBox "Row field"

Case xlColumnField

MsgBox "Column field"

Case xlPageField

MsgBox "Page field"

Case xlDataField

MsgBox "Data field"

End Select

本示例设置 Sheet1 的打印方向为横向。

Worksheets("Sheet1").PageSetup.Orientation = xlLandscape


ParentField 属性示例

本示例显示包含有当前单元格的分组父字段名。

Worksheets("Sheet1").Activate

MsgBox "The active field is a child of the field " & _

ActiveCell.PivotField.ParentField.Name


ParentItems 方法示例

本示例在一个列表框中添加所有在包含有当前单元格的字段中是分组父项目名。此列表框出现在 Sheet1 中。

Worksheets("Sheet1").Activate

Set newListBox = Worksheets("Sheet1").ListBoxes.Add _

(Left:=10, Top:=72, Width:=144, Height:=144)

For Each pvtItem In ActiveCell.PivotField.ParentItems

newListBox.AddItem (pvtItem.Name)

Next pvtItem


PivotItems 方法示例

本示例在一个列表框中添加包含在“COMPANY”字段中所有的项目。 此列表框出现在 Sheet1 中。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

Set newListBox = Worksheets("Sheet1").ListBoxes.Add _

(Left:=10, Top:=72, Width:=144, Height:=144)

Set pvtField = pvtTable.PivotFields("COMPANY")

For Each pvtItem In pvtField.PivotItems

newListBox.AddItem (pvtItem.Name)

Next pvtItem

Worksheets("Sheet1").Activate


Position 属性示例

本示例设置包含有当前单元格的数据透视字段为位置1。

Worksheets("Sheet1").Activate

ActiveCell.PivotField.Position = 1

本示例显示包含有当前单元格的 pivot item 的 position number。

Worksheets("Sheet1").Activate

MsgBox "The active item is in position number " & _

ActiveCell.PivotItem.Position


Subtotals 属性示例

本示例设置包含有当前单元格的字段来显示小计求和。

Worksheets("Sheet1").Activate

ActiveCell.PivotField.Subtotals = _

Array(False, True, False, False, False, False, _

False, False, False, False, False, False)


TotalLevels 属性示例

本示例显示包含有当前单元格的分组中字段的总数。

Worksheets("Sheet1").Activate

MsgBox "This group has " & _

ActiveCell.PivotField.TotalLevels & " levels."


Ungroup 方法示例

本示例将取消 Sheet1 中的图形对象组1的分组。

Worksheets("Sheet1").GroupObjects(1).Ungroup

本示例取消字段名为"ORDER_DATE."的分组。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

Set groupRange = pvtTable.PivotFields("ORDER_DATE").DataRange

groupRange.Cells(1).Ungroup


VisibleItems 方法示例

本示例将“COMPANY”字段中的可见项目名添加到一个列表框中。此列表框出现在 Sheet1 中。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

Set newListBox = Worksheets("Sheet1").ListBoxes.Add _

(Left:=10, Top:=72, Width:=144, Height:=144)

Set pvtField = pvtTable.PivotFields("COMPANY")

For Each pvtItem In pvtField.VisibleItems

newListBox.AddItem (pvtItem.Name)

Next pvtItem

Worksheets("Sheet1").Activate


ParentItem 属性示例

本示例显示包含有当前单元格的项目的父项目名。

Worksheets("Sheet1").Activate

MsgBox "This item is a subitem of " & _

ActiveCell.PivotItem.ParentItem.Name


ParentShowDetail 属性示例

本示例当由于父项目详细信息被显示，因而包含当前单元格的数据透视项目可见时，显示一个信息框。

Worksheets("Sheet1").Activate

Set pvtItem = ActiveCell.PivotItem

If pvtItem.ParentShowDetail = True Then

MsgBox "Parent item is showing detail"

End If


SourceName 属性示例

本示例显示包含当前单元格的项目的初始名称(源数据库名)。

Worksheets("Sheet1").Activate

MsgBox("The original item name is " & _

ActiveCell.PivotItem.SourceName)


LocationInTable 属性示例

本示例显示一个信息框来描述当前单元格在数据透视表中的位置。

Worksheets("Sheet1").Activate

Select Case ActiveCell.LocationInTable

Case Is = xlRowHeader

MsgBox "Active cell is part of a row header"

Case Is = xlColumnHeader

MsgBox "Active cell is part of a column header"

Case Is = xlPageHeader

MsgBox "Active cell is part of a page header"

Case Is = xlDataHeader

MsgBox "Active cell is part of a data header"

Case Is = xlRowItem

MsgBox "Active cell is part of a row item"

Case Is = xlColumnItem

MsgBox "Active cell is part of a column item"

Case Is = xlPageItem

MsgBox "Active cell is part of a page item"

Case Is = xlDataItem

MsgBox "Active cell is part of a data item"

Case Is = xlTableBody

MsgBox "Active cell is part of the table body"

End Select


PivotTable 属性示例

本示例设置 Sheet1 中数据透视表的当前页的页名为“Canada”。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

pvtTable.PivotFields("Country").CurrentPage = "Canada"


PivotField 属性示例

本示例显示包含有当前单元格的数据透视字段名。

Worksheets("Sheet1").Activate

MsgBox "The active cell is in the field " & _

ActiveCell.PivotField.Name


PivotItem 属性示例

本示例显示包含有当前单元格的数据透视项名。

Worksheets("Sheet1").Activate

MsgBox "The active cell is in the item " & _

ActiveCell.PivotItem.Name


ColumnFields 方法示例

本示例在一个列表框中添加数据透视表列字段名。此列表显示在 Sheet1中。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

Set newListBox = Worksheets("Sheet1").ListBoxes.Add _

(Left:=10, Top:=72, Width:=144, Height:=144)

For Each clmField In pvtTable.ColumnFields

newListBox.AddItem (clmField.Name)

Next clmField

Worksheets("Sheet1").Activate


ColumnGrand 属性示例

本示例设置数据透视表以显示列总计。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

pvtTable.ColumnGrand = True


ColumnRange 属性示例

本示例为数据透视表选定列标。

Worksheets("Sheet1").Activate

Range("A3").Select

ActiveCell.PivotTable.ColumnRange.Select


DataBodyRange 属性示例

本示例选定当前活动数据透视表数据。

Worksheets("Sheet1").Activate

Range("A3").Select

ActiveCell.PivotTable.DataBodyRange.Select


DataFields 方法示例

本示例在一个列表框中添加数据透视表的数据字段名。此列表显示在 Sheet1 中。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

Set newListBox = Worksheets("Sheet1").ListBoxes.Add _

(Left:=10, Top:=72, Width:=144, Height:=144)

For Each dtaField In pvtTable.DataFields

newListBox.AddItem (dtaField.Name)

Next dtaField

Worksheets("Sheet1").Activate


DataLabelRange 属性示例

本示例在数据透视表中选定数据字段标志。

Worksheets("Sheet1").Activate

Range("A3").Select

ActiveCell.PivotTable.DataLabelRange.Select


HasAutoFormat 属性示例

本示例在数据透视表被刷新或其字段被移动后自动调整格式。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

pvtTable.HasAutoFormat = True


HiddenFields 方法示例

本示例在一个列表框中添加隐藏字段名。此列表显示在 Sheet1 中。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

Set newListBox = Worksheets("Sheet1").ListBoxes.Add _

(Left:=10, Top:=72, Width:=144, Height:=144)

For Each hdnField In pvtTable.HiddenFields

newListBox.AddItem (hdnField.Name)

Next hdnField

Worksheets("Sheet1").Activate


InnerDetail 属性示例

本示例当内部字段或列字段的 ShowDetail 属性为 True时，显示那些将被详细显示其内容的字段名。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

MsgBox pvtTable.InnerDetail


PageFields 方法示例

本示例在一个列表框中添加页字段名。此列表显示在 Sheet1 中。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

Set newListBox = Worksheets("Sheet1").ListBoxes.Add _

(Left:=10, Top:=72, Width:=144, Height:=144)

For Each hdnField In pvtTable.PageFields

newListBox.AddItem (hdnField.Name)

Next hdnField

Worksheets("Sheet1").Activate


PageRange 属性示例

本示例选定数据透视表的页眉。

Worksheets("Sheet1").Activate

Range("A3").Select

ActiveCell.PivotTable.PageRange.Select


PivotFields 方法示例

本示例在一个列表框中添加数据透视表字段名。列表显示在 Sheet1 中。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

Set newListBox = Worksheets("Sheet1").ListBoxes.Add _

(Left:=10, Top:=72, Width:=144, Height:=144)

For Each hdnField In pvtTable.PivotFields

newListBox.AddItem (hdnField.Name)

Next hdnField

Worksheets("Sheet1").Activate


RefreshDate 属性示例

本示例显示上次刷新数据透视表的日期。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

dateString = Format(pvtTable.RefreshDate, "Long Date")

MsgBox "The data was last refreshed on " & dateString


RefreshName 属性示例

本示例显示上次刷新数据透视表的人名。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

MsgBox "The data was last refreshed by " & pvtTable.RefreshName


RefreshTable 方法示例

本示例刷新数据透视表。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

pvtTable.RefreshTable


RowFields 方法示例

本示例在一个列表框中添加数据透视表行字段名。此列表显示在 Sheet1 中。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

Set newListBox = Worksheets("Sheet1").ListBoxes.Add _

(Left:=10, Top:=72, Width:=144, Height:=144)

For Each hdnField In pvtTable.RowFields

newListBox.AddItem (hdnField.Name)

Next hdnField

Worksheets("Sheet1").Activate


RowGrand 属性示例

本示例设置数据透视表以显示总行数。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

pvtTable.RowGrand = True


RowRange 属性示例

本示例选定数据透视表的行标。

Worksheets("Sheet1").Activate

Range("A3").Select

ActiveCell.PivotTable.RowRange.Select


SaveData 属性示例

本示例设置数据透视表，在工作薄中保存数据。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

pvtTable.SaveData = True


ShowPages 方法示例

本示例在分页字段中为每一项建立一个新的数据透视表，其字段名为“Country”。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

pvtTable.ShowPages "Country"


TableRange1 属性示例

本示例选定数据透视表，除非其分页字段未被选定。

Worksheets("Sheet1").Activate

Range("A3").PivotTable.TableRange1.Select


TableRange2 属性示例

本示例选定数据透视表，其中包括分页字段。

Worksheets("Sheet1").Activate

Range("A3").PivotTable.TableRange2.Select


VisibleFields 方法示例

本示例在一个列表框中添加可见字段名。 此列表显示在 Sheet1 中。

Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable

Set newListBox = Worksheets("Sheet1").ListBoxes.Add _

(Left:=10, Top:=72, Width:=144, Height:=144)

For Each hdnField In pvtTable.VisibleFields

newListBox.AddItem (hdnField.Name)

Next hdnField

Worksheets("Sheet1").Activate


PivotTables 方法示例

本示例设置 PivotTable1 中的“Sum of 1994”字段以使用 SUM 函数。

ActiveSheet.PivotTables("PivotTable1"). _

PivotFields("Sum of 1994").Function = xlSum


PivotTableWizard 方法示例

本示例从 Microsoft Excel 数据库(包括在区域 A1:C100 内) 中建立一个新的数据透视表。

ActiveSheet.PivotTableWizard xlDatabase, Range("A1:C100")


Address 方法示例

下例显示同一单元格地址的四种不同的地址表示方式。示例中的备注是显示在信息框中的地址。

Set mc = Worksheets("Sheet1").Cells(1, 1)

MsgBox mc.Address()                              ' $A$1

MsgBox mc.Address(rowAbsolute:=False)            ' $A1

MsgBox mc.Address(referenceStyle:=xlR1C1)        ' R1C1

MsgBox mc.Address(referenceStyle:=xlR1C1, _

rowAbsolute:=False,     _

columnAbsolute:=False,  _

relativeTo:=Worksheets(1).Cells(3, 3))       ' R[-2]C[-2]


ApplyNames 方法示例

本示例将名字应用于整个工作簿。

Cells.ApplyNames names:=Array("Sales", "Profits")


ApplyOutlineStyles 方法示例

下例对选定内容应用自动分级样式（outlining styles）。选定内容必须包括工作薄中的整个分级区域

Selection.ApplyOutlineStyles


Areas 方法示例

本示例在多个区域被选定而用户试图执行一个命令时将显示一条信息。 本示例必须从一个工作薄中执行。

If Selection.Areas.Count > 1 Then

MsgBox "Cannot do this to a multi-area selection."

End If


AutoFill 方法示例

本示例根据源区域 A1:A2 在 Sheet1的 A1:A20 单元格完成一个自动填充。在执行本示例前，在 A1 单元格中键入1和在 A2 单元格中键入2。

Set sourceRange = Worksheets("Sheet1").Range("A1:A2")

Set fillRange = Worksheets("Sheet1").Range("A1:A20")

sourceRange.AutoFill destination:=fillRange


AutoFormat 方法示例

本示例使用一个预定义的格式来格式化 Sheet1 中的 A1:D8 单元格。

Worksheets("Sheet1").Range("A1:D8").AutoFormat format:=xlClassic1


AutoFit 方法示例

本示例改变 Sheet1 A 列到 I 列的宽度以得到最佳的适应。 Worksheets("Sheet1").Columns("A:I").AutoFit

示例仅以 A1:E1 单元格的内容为基准改变 Sheet1 A 列到 E 列的宽度以得到最佳的适应。

Worksheets("Sheet1").Range("A1:E1").Columns.AutoFit


ClearNotes 方法示例

本示例删除在 Sheet1 的从 A 列到 C 列中所有的附注及声音附注。

Worksheets("Sheet1").Columns("A:C").ClearNotes


Column 属性示例

本示例设置 Sheet1 上每隔一列的列宽度为4磅。

For Each col In Worksheets("Sheet1").Columns

If col.Column Mod 2 = 0 Then

col.ColumnWidth = 4

End If

Next col


ColumnDifferences 方法示例

本示例在 A 列中选定其内容与 A4 单元格不同的那些单元格。

Worksheets("Sheet1").Activate

Set r1 = ActiveSheet.Columns("A").ColumnDifferences( _

comparison:=ActiveSheet.Range("A4"))

r1.Select


ColumnWidth 属性示例

本示例使 Sheet1 上 A 列的宽度加倍。

With Worksheets("Sheet1").Columns("A")

.ColumnWidth = .ColumnWidth * 2

End With


Consolidate 方法示例

本示例适应 SUM 函数将 Sheet2 和 Sheet3 的数据合并到 Sheet1 上。

Worksheets("Sheet1").Range("A1").Consolidate _

sources:=Array("Sheet2!R1C1:R37C6", "Sheet3!R1C1:R37C6"), _

Function:=xlSum


CreateNames 方法示例

本示例根据 A1:A3 单元格的文本为 B1:B3 单元格创建名字。注意必须包含区域中名字的单元格，即便如此业只能为 B1:B3 单元格创建名字。

Set rangeToName = Worksheets("Sheet1").Range("A1:B3")

rangeToName.CreateNames left:=True


CurrentArray 属性示例

本示例假设当前单元格是 Sheet1 上的 A1 单元格，并且当前单元格是包含有 A1:A10 单元格的区域的一部分。 此示例选定 Sheet1 上的 A1:A10 单元格。

ActiveCell.CurrentArray.Select


CurrentRegion 属性示例

本示例选定 Sheet1 上的当前区域。

Worksheets("Sheet1").Activate

ActiveCell.CurrentRegion.Select

本示例假设在 Sheet1 上有个含有一个域名的表。 此示例选定这个表，而不选定域名。在执行这个示例之前当前单元格必须在此表中。

Set tbl = ActiveCell.CurrentRegion

tbl.Offset(1, 0).Resize(tbl.Rows.Count - 1, tbl.Columns.Count).Select


DataSeries 方法示例

本示例建立一个12个数据的序列。这个序列建立在 Sheet1 的 A1:A12 区域中并包含1996年中每个月的最后的一天。

Set dateRange = Worksheets("Sheet1").Range("A1:A12")

Worksheets("Sheet1").Range("A1").Formula = "31-JAN-1996"

dateRange.DataSeries Type:=xlChronological, Date:=xlMonth


Dependents 属性示例

本示例选定 Sheet1 的 A1 单元格中的从属单元格。

Worksheets("Sheet1").Activate

Range("A1").Dependents.Select


DialogBox 方法示例

本示例执行 Microsoft Excel 4.0 版本的对话框并在一个信息框内显示返回值。 dialogRange 变量涉及到 Microsoft Excel 4.0 版本的宏工作表 Macro1 的对话框定义表。

Set dialogRange = Excel4MacroSheets("Macro1").Range("myDialogBox")

result = dialogRange.DialogBox

MsgBox result


DirectDependents 属性示例

本示例选定 Sheet1 上 A1 单元格的直接从属单元格（direct dependents）。

Worksheets("Sheet1").Activate

Range("A1").DirectDependents.Select


DirectPrecedents 属性示例

本示例选定 Sheet1 上 A1 单元格的直接从属单元格。

Worksheets("Sheet1").Activate

Range("A1").DirectPrecedents.Select


End 方法示例

本示例选定在包含 B4 单元格的区域中 B 列顶部的单元格。

Range("B4").End(xlUp).Select

本示例选定在包含 B4 单元格的区域中第四行末尾的单元格。

Range("B4").End(xlToRight).Select

本示例将选定从 B4 单元格扩充到含有数据的第四行最后一个单元格。

Worksheets("Sheet1").Activate

Range("B4", Range("B4").End(xlToRight)).Select


EntireColumn 属性示例

本示例选定包含当前单元格的整个列。此示例必须从一个工作薄上执行。

ActiveCell.EntireColumn.Select


EntireRow 属性示例

本示例选定包含当前单元格的整个行。此示例必须从一个工作薄上执行。

ActiveCell.EntireRow.Select


FillDown 方法示例

本示例根据 A1 单元格的内容填充 Sheet1 的 A1:A10 区域。

Worksheets("Sheet1").Range("A1:A10").FillDown


FillLeft 方法示例

本示例根据 M1 单元格的内容填充 Sheet1 的 A1:M1 区域。

Worksheets("Sheet1").Range("A1:M1").FillLeft


FillRight 方法示例

本示例根据 A1 单元格的内容填充 Sheet1 的 A1:M1 区域。

Worksheets("Sheet1").Range("A1:M1").FillRight


FillUp 方法示例

本示例根据 A10 单元格的内容填充 Sheet1 的 A1:A10 区域。

Worksheets("Sheet1").Range("A1:A10").FillUp


Find 方法示例

本示例在 Sheet1 的 B 列上寻找单词“Phoenix”第一次出现的位置，然后显示包含这个词的单元格的地址。如果这个词没找到，则显示一条信息。

Set foundCell = Worksheets("Sheet1").Columns("B").Find("Phoenix")

If foundCell Is Nothing Then

MsgBox "The word was not found"

Else

MsgBox "The word was found in cell " & foundCell.Address

End If


FindNext 方法示例

本示例将 Sheet1 A 列上的所有“Phoenix”改为“Flagstaff”。

Set foundCell = Worksheets("Sheet1").Columns("A").Find("Phoenix")

Do While Not (foundCell Is Nothing)

foundCell.Value = "Flagstaff"

Set foundCell = Worksheets("Sheet1").Columns("A").FindNext

Loop


FindPrevious 方法示例

本示例演示如何将 FindPrevious 方法与 Find 和 FindNext 方法一起使用。在执行本示例之前需保证 Sheet1B 列中至少有两个“Phoenix”。

Set fc = Worksheets("Sheet1").Columns("B").Find(what:="Phoenix")

MsgBox "The first occurrence  is in cell " & fc.Address

Set fc = Worksheets("Sheet1").Columns("B").FindNext(after:=fc)

MsgBox "The next occurrence is in cell " & fc.Address

Set fc = Worksheets("Sheet1").Columns("B").FindPrevious(after:=fc)

MsgBox "The previous occurrence is in cell " & fc.Address


FormulaArray 属性示例

本示例在 Sheet1 的 A1:C5 单元格中输入数字3作为一个 数组常数。

Worksheets("Sheet1").Range("A1:C5").FormulaArray = "=3"

本示例在 Sheet1 的 E1:E3 单元格中以数组形式输入公式 =SUM(R1C1:R3C3) .

Worksheets("Sheet1").Range("E1:E3").FormulaArray = _

"=Sum(R1C1:R3C3)"


FormulaHidden 属性示例

本示例在工作薄被保护时隐藏 Sheet1 上 A 列中的公式。

Worksheets("Sheet1").Columns("A").FormulaHidden = True


GoalSeek 方法示例

本示例假设 Sheet1 里有一个名为“Polynomial”的单元格中包含公式 =(X^3)+(3*X^2)+6 ，另一个单元格“X”是空的。此示例寻找一个X值使得 Polynomial 中包含15。

Worksheets("Sheet1").Range("Polynomial").GoalSeek _

goal:=15, _

changingCell:=Worksheets("Sheet1").Range("X")


Goto 方法示例

本示例选定 Sheet1 的 A154 单元格,然后滚动工作薄以显示其范围。

Application.Goto reference:=Worksheets("Sheet1").Range("A154"), _

scroll:=True


Cells 方法示例

本示例设置 Sheet1 上 C5单元格的字体大小为 14 。

Worksheets("Sheet1").Cells(5, 3).Font.Size = 14

本示例清除 Sheet1 上 cell 1 中的公式。

Worksheets("Sheet1").Cells(1).ClearContents

本示例设置 Sheet1 上所有单元格的字体为 8-磅 Arial。

With Worksheets("Sheet1").Cells.Font

.Name = "Arial"

.Size = 8

End With

本示例在 Sheet1 A1:J4 单元格上循环。如果有一个单元格的值小于 .001，此示例用 0 （零 ）来替换这个值。

For rwIndex = 1 to 4

For colIndex = 1 to 10

If Worksheets("Sheet1").Cells(rwIndex, colIndex) < .001 Then

Worksheets("Sheet1").Cells(rwIndex, colIndex).Value = 0

End If

Next colIndex

Next rwIndex

本示例设置 Sheet1 上的 A1:C5 单元格的字体为斜体。

Worksheets("Sheet1").Activate

Range(Cells(1, 1), Cells(5, 3)).Font.Italic = True

本示例扫描一列名为 myRange 的数据。如果一个单元格中的值与上一个单元格的值相同，则此显示这个含有重复数据的单元格地址。

Set r = Range("myRange")

For n = 1 To r.Rows.Count

If r. Cells(n, 1) = r. Cells(n + 1, 1) Then

MsgBox "Duplicate data in " & r. Cells(n + 1, 1).Address

End If

Next n


Columns 方法示例

本示例使 Sheet1 上第一列(A 列)的字体为粗体。

Worksheets("Sheet1").Columns(1).Font.Bold = True

本示例为第一列中在 myRange 区域中的每一个单元格设置数值。

Range("myRange").Columns(1).Value = 0

本示例显示在 Sheet1 上选定列的数目。如果多于一个区域被选定，则此示例在每一个区域内循环。

Worksheets("Sheet1").Activate

areaCount = Selection.Areas.Count

If areaCount <= 1 Then

MsgBox "The selection contains " & _

Selection.Columns.Count & " columns."

Else

For i = 1 To areaCount

MsgBox "Area " & i & " of the selection contains " & _

Selection.Areas(i).Columns.Count & " columns."

Next i

End If


CommandUnderlines 属性示例

本示例关掉 Microsoft Excel for the Macintosh 的下画线命令。

Application.CommandUnderlines = xlOff


ConstrainNumeric 属性示例

本示例当 Microsoft Windows for Pen Computing 在运行时则限制只对数字和标点符号进行手写识别。

If Application.WindowsForPens Then

Application.ConstrainNumeric = True

End If


ConvertFormula 方法示例

本示例先转换一个包含 R1C1-样式 引用（references）的 SUM 公式为一个等效的具有 A1-样式引用的公式，然后显示其结果。

inputFormula = "=SUM(R10C2:R15C2)"

MsgBox Application.ConvertFormula( _

formula:=inputFormula, _

fromReferenceStyle:=xlR1C1, _

toReferenceStyle:=xlA1)


CutCopyMode 属性示例

本示例适应一个信息框来显示“剪切”或“复制”模式状态。

Select Case Application.CutCopyMode

Case Is = False

MsgBox "Not in Cut or Copy mode"

Case Is = xlCopy

MsgBox "In Copy mode"

Case Is = xlCut

MsgBox "In Cut mode"

End Select


DataEntryMode 属性示例

本示例在 Data Entry 模式打开时将其关掉。

If (Application.DataEntryMode = xlOn) Or _

(Application.DataEntryMode = xlStrict) Then

Application.DataEntryMode = xlOff

End If


DDEAppReturnCode 属性示例

本示例设置变量 appErrorCode 到 DDE 的返回码。

appErrorCode = Application.DDEAppReturnCode


DDEExecute 方法示例

本示例打开到 Word 6.0 for Windows 的一个通道，打开 Word 文本 FORMLETR.DOC，然后将“文本打印”命令送到 WordBasic。

channelNumber = Application.DDEInitiate( _

app:="WinWord", _

topic:="C:\WINWORD\FORMLETR.DOC")

Application.DDEExecute channelNumber, "[FILEPRINT]"

Application.DDETerminate channelNumber

本示例打开到 Word 6.0 for the Macintosh 的一个通道，打开 Word 文本 Form Letter，然后将“文本打印”命令送入 WordBasic。 在 Macintosh中，必须使用 Shell 函数来启动 Word，因为 DDEInitiate 方法不能象在 Windows 中那样自动启动 Word。 并且，Shell 函数是异步（asychronous）执行的，因此，宏在启动 Word  之前可能调用 DDEInitiate 方法。本示例演示如何编程通过在一个循环中放置调用 DDEInitiate 方法来避免这个问题，直到测试的 channelNumber 不再是一个错误为止。

Shell "HD:Form Letter", 6

Do

channelNumber = Application.DDEInitiate( _

app:="MSWord", _

topic:="HD:Form Letter")

Loop Until TypeName(channelNumber) <> "Error"

Application.DDEExecute channelNumber, "[FILEPRINT]"

Application.DDETerminate channelNumber


DDEInitiate 方法示例

本示例打开到 Word 6.0 for Windows 的一个通道，打开 Word 文本 FORMLETR.DOC，然后将“文本打印”命令送到 WordBasic。

channelNumber = Application.DDEInitiate( _

app:="WinWord", _

topic:="C:\WINWORD\FORMLETR.DOC")

Application.DDEExecute channelNumber, "[FILEPRINT]"

Application.DDETerminate channelNumber

本示例打开到 Word 6.0 for the Macintosh 的一个通道，打开 Word 文本 Form Letter，然后将 “文本打印”命令送入 WordBasic。 在 Macintosh中，必须使用 Shell 函数来启动 Word，因为 DDEInitiate 方法不能象在 Windows 中那样自动启动 Word。 并且，Shell 函数是异步（asychronous）执行的，因此，宏在启动 Word  之前可能调用 DDEInitiate 方法。本示例演示如何编程通过在一个循环中放置调用 DDEInitiate 方法来避免这个问题，直到测试的 channelNumber 不再是一个错误为止。

Shell "HD:Form Letter", 6

Do

channelNumber = Application.DDEInitiate( _

app:="MSWord", _

topic:="HD:Form Letter")

Loop Until TypeName(channelNumber) <> "Error"

Application.DDEExecute channelNumber, "[FILEPRINT]"

Application.DDETerminate channelNumber


DDEPoke 方法示例

本示例打开到 Word 6.0 for Windows的一个通道，打开 Word 文本 SALES.DOC，然后将A1 单元格 (在 Sheet1 中) 的内容插入到此文本的开头。

channelNumber = Application.DDEInitiate( _

app:="WinWord", _

topic:="C:\WINWORD\SALES.DOC")

Set rangeToPoke = Worksheets("Sheet1").Range("A1")

Application.DDEPoke channelNumber, "\StartOfDoc", rangeToPoke

Application.DDETerminate channelNumber

本示例打开到 Word 6.0 for the Macintosh 的一个通道，打开 Word 文本格式，然后将“文本打印”命令送入 WordBasic。 在 Macintosh中，必须使用 Shell 函数来启动 Word，因为DDEInitiate 方法不能象在 Windows 中那样自动启动 Word。并且，Shell 函数是异步（asychronous）执行的，因此，宏在启动 Word 之前可能调用 DDEInitiate 方法。本示例演示如何编程通过在一个循环中放置调用 DDEInitiate 方法来避免这个问题，直到测试的 channelNumber 不再是一个错误为止。

Shell "HD:Sales Report", 6

Do

channelNumber = Application.DDEInitiate( _

app:="WinWord", _

topic:="HD:Sales Report")

Loop Until TypeName(channelNumber) <> "Error"

Set rangeToPoke = Worksheets("Sheet1").Range("A1")

Application.DDEPoke channelNumber, "\StartOfDoc", rangeToPoke

Application.DDETerminate channelNumber


DDERequest 方法示例

本示例打开到 Word 6.0 for Windows 中“系统主题”（System topic）的一个通道，然后使用“主题项目”（Topics item）来返回一个所有打开文本的列表。此列表返回到 Sheet1 的 A 列。

channelNumber = Application.DDEInitiate( _

app:="WinWord", _

topic:="System")

returnList = Application.DDERequest(channelNumber, "Topics")

For i = LBound(returnList) To UBound(returnList)

Worksheets("Sheet1").Cells(i, 1).Formula = returnList(i)

Next i

Application.DDETerminate channelNumber

本示例打开在 Word 6.0 for the Macintosh 中 System topic 的一个通道，然后使用 Topics item 来返回一个所有打开文本的列表。此列表返回到 Sheet1 的 A 列。在 Macintosh中，必须使用 Shell 函数来启动 Word，因为班DDEInitiate 方法不能象在 Windows 中那样自动启动 Word。并且，Shell 函数是异步（asychronous）执行的，因此，宏在启动 Word 之前可能调用 DDEInitiate 方法。本示例演示如何编程通过在一个循环中放置调用 DDEInitiate 方法来避免这个问题，直到测试的 channelNumber 不再是一个错误为止。

Shell MacID("MSWD"), 6

Do

channelNumber = Application.DDEInitiate( _

app:="MSWord", _

topic:="System")

Loop Until TypeName(channelNumber) <> "Error"

returnList = Application.DDERequest(channelNumber, "Topics")

For i = LBound(returnList) To UBound(returnList)

Worksheets("Sheet1").Cells(i, 1).Formula = returnList(i)

Next i

Application.DDETerminate channelNumber


DDETerminate 方法示例

本示例打开到 Word 6.0 for Windows 的一个通道，打开 Word 文本 FORMLETR.DOC，然后将“文本打印”命令送到 WordBasic。

channelNumber = Application.DDEInitiate( _

app:="WinWord", _

topic:="C:\WINWORD\FORMLETR.DOC")

Application.DDEExecute channelNumber, "[FILEPRINT]"

Application.DDETerminate channelNumber

本示例打开到 Word 6.0 for the Macintosh 的一个通道，打开 Word 文本格式，然后将“文本打印”命令送入 WordBasic。在 Macintosh 中，必须使用 Shell 函数来启动 Word，因为版DDEInitiate 方法不能象在 Windows 中那样自动启动 Word。并且，Shell 函数是异步（asychronous ）执行的，因此，宏在启动 Word 之前可能调用 DDEInitiate 方法。本示例演示如何编程通过在一个循环中放置调用 DDEInitiate 方法来避免这个问题，直到测试的 channelNumber 不再是一个错误为止。

Shell "HD:Form Letter", 6

Do

channelNumber = Application.DDEInitiate( _

app:="MSWord", _

topic:="HD:Form Letter")

Loop Until TypeName(channelNumber) <> "Error"

Application.DDEExecute channelNumber, "[FILEPRINT]"

Application.DDETerminate channelNumber


Run 方法示例

本示例演示如何调用一个在宏工作表 MYCUSTOM.XLM (宏工作表必须打开)中定义了的函数宏 My_Func_Sum。在本示例中，这个函数携带两个数值参量1和5。

mySum = Application.Run("MYCUSTOM.XLM!My_Func_Sum", 1, 5)

MsgBox "Macro result: " & mySum


HasArray 属性示例

本示例在 Sheet1 的当前单元格是数组的一部分时显示一条信息。

Worksheets("Sheet1").Activate

If ActiveCell.Hasarray =True Then

MsgBox "The active cell is part of an array"

End If


HasFormula 属性示例

本示例提示用户选定 Sheet1上 的一个区域（range）。如果选定区域的每一个单元格中都包含一个公式时，则此示例显示一条信息。

Worksheets("Sheet1").Activate

Set rr = Application.InputBox( _

prompt:="Select a range on this worksheet", _

Type:=8)

If rr.HasFormula = True Then

MsgBox "Every cell in the selection contains a formula"

End If


Hidden属性示例

本示例隐藏 Sheet1 上的 C 列。

Worksheets("Sheet1").Columns("C").Hidden = True


Justify方法示例

本示例将 Sheet1 上 A1 单元格的文本两端对齐。

Worksheets("Sheet1").Range("A1").Justify


ListNames方法示例

本示例在 Sheet1 的 A1 单元格中粘贴一个已定义的名称列表。此示例粘贴在 Sheet1 上定义的工作薄级和工作表级名称列表。

Worksheets("Sheet1").Range("A1").ListNames


Next 属性示例

本示例选定 Sheet1 的下一个未上锁的单元格。如果 Sheet1 未被保护，那么这个单元格紧靠当前单元格的右边。

Worksheets("Sheet1").Activate

ActiveCell.Next.Select


NoteText 方法示例

本示例为 Sheet1 的 A1 单元格设置单元格附注文本。

Worksheets("Sheet1").Range("A1").NoteText "This may change!"


NumberFormatLocal 属性示例

本示例以用户语言显示 Sheet1 上 A1 单元的数字格式。

MsgBox "The number format for cell A1 is " & _

Worksheets("Sheet1").Range("A1").NumberFormatLocal


Offset 方法示例

本示例激活 Sheet1 上当前单元格向右第三列，向下第三行处的单元格。

Worksheets("Sheet1").Activate

ActiveCell.Offset(rowOffset:=3, columnOffset:=3).Activate

本示例假设在Sheet1上有一个带有标题行的表。此示例选定此表而不选定标题行。在执行此示例之前，当前单元格必须在表上的某一个位置。

Set tbl = ActiveCell.CurrentRegion

tbl.Offset(1, 0).Resize(tbl.Rows.Count - 1, tbl.Columns.Count).Select


OutlineLevel 属性示例

本示例为 Sheet1 的第二行设置分级显示级。

Worksheets("Sheet1").Rows(2).OutlineLevel = 1


PageBreak 属性示例

本示例在 Sheet1 的第二十五行上方设置一个手动分页标记。

Worksheets("Sheet1").Rows(25).PageBreak = xlManual

本示例在 Sheet1 J 列的左侧设置一个手动分页标记。

Worksheets("Sheet1").Columns("J").PageBreak = xlManual

本示例删除以上两例中设置的分页标记。

Worksheets("Sheet1").Rows(25).PageBreak = xlNone

Worksheets("Sheet1").Columns("J").PageBreak = xlNone


Parse 方法示例

本示例将形如206-555-1212的电话号码分为两列。第一列只包含地区号，第二列则包含7位电话号码以及其间的连字符。

Worksheets("Sheet1").Columns("A").Parse _

parseLine:="[xxx] [xxxxxxxx]", _

destination:=Worksheets("Sheet1").Range("B1")


Precedents 属性示例

本示例选定 Sheet1 中 A1 单元格的引用单元格。

Worksheets("Sheet1").Activate

Range("A1").Precedents.Select


PrefixCharacter 属性示例

本示例显示 Sheet1 中 A1 单元格的前缀字符。

MsgBox "The prefix character is " & _

Worksheets("Sheet1").Range("A1").PrefixCharacter


Previous 属性示例

本示例选定 Sheet1 中上一个未上锁的单元格。如果 Sheet1 未被保护，则这个单元格就是紧靠当前单元格左边的单元格。

Worksheets("Sheet1").Activate

ActiveCell.Previous.Select


Replace 方法示例

本示例用 COS 函数替换 SIN 函数。替换的范围是 Sheet1 上的 A 列。

Worksheets("Sheet1").Columns("A").Replace _

what:="SIN", replacement:="COS", _

searchOrder:=xlByColumns, matchCase:=True


Resize 方法示例

本示例将 Sheet1 上选定的内容增加一行一列。

Worksheets("Sheet1").Activate

numRows = Selection.Rows.Count

numColumns = Selection.Columns.Count

Selection.Resize(numRows + 1, numColumns + 1).Select

本示例假设在 Sheet1上 有一个带有标题行的表。此示例选定此表但不选定标题行。在执行此示例之前，当前单元格必须在此表中的某一个地方。

Set tbl = ActiveCell.CurrentRegion

tbl.Offset(1, 0).Resize(tbl.Rows.Count - 1, tbl.Columns.Count).Select


Row 属性示例

本示例将 Sheet1 上每隔一行的行高设为 4 磅。

For Each rw In Worksheets("Sheet1").Rows

If rw.Row Mod 2 = 0 Then

rw.RowHeight = 4

End If

Next rw


RowDifferences 方法示例

本示例选定 Sheet1 第一行上与 D1 单元格内容不同的单元格。

Worksheets("Sheet1").Activate

Set c1 = ActiveSheet.Rows(1).RowDifferences( _

comparison:=ActiveSheet.Range("D1"))

c1.Select


RowHeight 属性示例

本示例将 Sheet1 第一行的高度加倍。

With Worksheets("Sheet1").Rows(1)

.RowHeight = .RowHeight * 2

End With


Select 方法示例

本示例选定 Sheet1 上的 A1:B3 单元格。

Worksheets("Sheet1").Activate

Range("A1:B3").Select


SoundNote 属性示例

本示例删除 Sheet1 上 A1 单元格中的声音附注，为此单元格录入一个新的声音附注，然后播放这个声音附注。

With Worksheets("Sheet1").Range("A1").SoundNote

.Delete

.Record

.Play

End With


Style 属性示例

本示例设置 Sheet1 的 A1 单元格为普通样式。

Worksheets("Sheet1").Range("A1").Style.Name = "Normal"

如果 Sheet1 上的 B4 单元格当前为普通样式，则此示例将其改为百分比样式。

If Worksheets("Sheet1").Range("B4").Style.Name = "Normal" Then

Worksheets("Sheet1").Range("B4").Style.Name = "Percent"

End If


SubscribeTo 方法示例

本示例从出版商定阅“stock data”。

Worksheets("Sheet1").Range("D1").SubscribeTo "stock data"


Summary 属性示例

若 Sheet1 的第四行为分级显示摘要列，则本例使其格式为粗体和斜体。

With Worksheets("Sheet1").Rows(4)

If .Summary = True Then

.Font.Bold = True

.Font.Italic = True

End If

End With


Table 方法示例

本示例在 Sheet1 的 A1:K11 单元格中建立一个格式化的多应用表。

Set dataTableRange = Worksheets("Sheet1").Range("A1:K11")

Set rowInputCell = Worksheets("Sheet1").Range("A12")

Set columnInputCell = Worksheets("Sheet1").Range("A13")

Worksheets("Sheet1").Range("A1").Formula = "=A12*A13"

For i = 2 To 11

Worksheets("Sheet1").Cells(i, 1) = i - 1

Worksheets("Sheet1").Cells(1, i) = i - 1

Next i

dataTableRange.Table rowInputCell, columnInputCell

With Worksheets("Sheet1").Range("A1").CurrentRegion

.Rows(1).Font.Bold = True

.Columns(1).Font.Bold = True

.Columns.AutoFit

End With


UseStandardHeight 属性示例

本示例将 Sheet1 的第一行的高度设置成标准高度。

Worksheets("Sheet1").Rows(1).UseStandardHeight = True


UseStandardWidth 属性示例

本示例将 Sheet1 的 A 列的宽度设置成标准宽度。

Worksheets("Sheet1").Columns("A").UseStandardWidth = True


VerticalAlignment 属性示例

本示例将 Sheet1 的第二行的高度设置成标准高度的两倍，然后以中心垂直对齐。

Worksheets("Sheet1").Rows(2).RowHeight = _

2 * Worksheets("Sheet1").StandardHeight

Worksheets("Sheet1").Rows(2).VerticalAlignment = xlCenter


Worksheet 属性示例

本示例显示包含当前单元格的工作薄的名称。此示例必须从一个工作薄上执行。

MsgBox ActiveCell.Worksheet.Name

本示例显示包含区域名为“testRange”的工作薄的名称。

MsgBox Range("testRange").Worksheet.Name


WrapText 属性示例

本示例格式化 Sheet1 的 B2 单元格，使其中的文本自动换行。

Worksheets("Sheet1").Range("B2").Value = _

"This text should wrap in a cell."

Worksheets("Sheet1").Range("B2").WrapText = True


Borders 方法示例

本示例将 Sheet1 的 B2 单元格的底部边界的颜色设置为红色。

With Worksheets("Sheet1").Range("B2").Borders(xlBottom)

.LineStyle = xlContinuous

.ColorIndex = 3

End With

本示例将 Sheet1 的 B2 单元格的所有四个边界的颜色设置为红色。

With Worksheets("Sheet1").Range("B2").Borders

.LineStyle = xlContinuous

.ColorIndex = 3

End With


CopyPicture 方法示例

本示例将 Sheet1 的 A1:D4 单元格的屏幕图象拷贝到“粘贴板”，然后将这个位图粘贴到 Sheet1 上的其它部位。

Worksheets("Sheet1").Range("A1:D4").CopyPicture xlScreen, xlBitmap

Worksheets("Sheet1").Paste _

destination:=Worksheets("Sheet1").Range("E6")


Cut 方法示例

本示例剪切 Sheet1 上的 A1:G37 区域并将其放置到“粘贴板”上。

Worksheets("Sheet1").Range("A1:G37").Cut


Formula 属性示例

本示例为 Sheet1 的 A1 单元格设置公式。

Worksheets("Sheet1").Range("A1").Formula = "=$A$4+$A$10"


 FunctionWizard 方法示例

本示例为 Sheet1 上的当前单元格启动“函数向导”。

Worksheets("Sheet1").Activate

ActiveCell.FunctionWizard


HorizontalAlignment 属性示例

本示例将 Sheet1 上的 A1:A5 区域左对齐。

Worksheets("Sheet1").Range("A1:A5").HorizontalAlignment = xlLeft


Interior 属性示例

本示例设置 Sheet1 的 A1 单元格内部颜色为青色。

Worksheets("Sheet1").Range("A1").Interior.ColorIndex = 8


Locked 属性示例

本示例开启 Sheet1 上的 A1:G37 单元格使得当工作表被保护时可以对其进行修改。

Worksheets("Sheet1").Range("A1:G37").Locked = False

Worksheets("Sheet1").Protect


NumberFormat 属性示例

这些示例设置　Sheet1 上 A17 单元格第一行第 C 列的数字格式。

  Worksheets("Sheet1").Range("A17").NumberFormat = "General"

Worksheets("Sheet1").Rows(1).NumberFormat = "hh:mm:ss"

Worksheets("Sheet1").Columns("C").NumberFormat = _

"$#,##0.00_);[Red]($#,##0.00)"


RemoveSubtotal 方法示例

本示例删除 Sheet1 上 A1:G37　区域的分类汇总。此示例必须在一个具有分类汇总的列表上执行。

Worksheets("Sheet1").Range("A1:G37").RemoveSubtotal


ShowDependents 方法示例

本示例为 Sheet1 当前单元格的从属单元格建立追踪箭头。

Worksheets("Sheet1").Activate

ActiveCell.ShowDependents

本示例删除一级 Sheet1 上当前单元格的从属单元格的追踪箭头。

Worksheets("Sheet1").Activate

ActiveCell.ShowDependents remove:=True


ShowErrors 方法示例

如果 Sheet1 的当前单元格有错误，本例显示一个红色追踪箭头。

Worksheets("Sheet1").Activate

If IsError(ActiveCell.Value) Then

ActiveCell.ShowErrors

End If


ShowPrecedents 方法示例

本示例为 Sheet1 上当前单元格的引用单元格建立追踪箭头。

Worksheets("Sheet1").Activate

ActiveCell.ShowPrecedents

本示例删除 Sheet1 的当前单元格中引用单元格的一级追踪箭头。

Worksheets("Sheet1").Activate

ActiveCell.ShowPrecedents remove:=True


Sort 方法示例

本示例将 Sheet1 的 A1:C20 区域排序，A1 单元格为第一排序关键字，B1 单元格为第二排序关键字。此排序按行升序排列进行，不加标题。

Worksheets("Sheet1").Range("A1:C20").Sort _

key1:=Worksheets("Sheet1").Range("A1"), _

key2:=Worksheets("Sheet1").Range("B1")

本示例对 Sheet1中含有 A1 单元格的当前区域进行排序，使用第一列的数据作为排序关键字，如果存在标题行将自动使用。Sort 方法自动测定当前区域。

Worksheets("Sheet1").Range("A1").Sort _

key1:=Worksheets("Sheet1").Columns("A"), _

header:=xlGuess


Subtotal 方法示例

本示例为 Sheet1 的选定内容建立一个分类汇总。此分类汇总是第一字段中每一个变动分组之和与字段2 和字段3 分类汇总的和。

Worksheets("Sheet1").Activate

Selection.Subtotal groupBy:=1, function:=xlSum, _

totalList:=Array(2, 3)


Delivery 属性示例

本示例逐一将 BOOK1.XLS 送给三个收件人。

Workbooks("BOOK1.XLS").HasRoutingSlip = True

With Workbooks("BOOK1.XLS").RoutingSlip

.Delivery = xlOneAfterAnother

.Recipients = Array("Adam Bendel", "Jean Selva", "Bernard Gabor")

.Subject = "Here is BOOK1.XLS"

.Message = "Here is the workbook. What do you think?"

End With

Workbooks("BOOK1.XLS").Route


Message 属性示例

本示例逐一将 BOOK1.XLS 送给三个收件人。

Workbooks("BOOK1.XLS").HasRoutingSlip = True

With Workbooks("BOOK1.XLS").RoutingSlip

.Delivery = xlOneAfterAnother

.Recipients = Array("Adam Bendel", "Jean Selva", "Bernard Gabor")

.Subject = "Here is BOOK1.XLS"

.Message = "Here is the workbook. What do you think?"

End With

Workbooks("BOOK1.XLS").Route


Recipients 属性示例

本示例逐一将 BOOK1.XLS 送给三个收件人。

Workbooks("BOOK1.XLS").HasRoutingSlip = True

With Workbooks("BOOK1.XLS").RoutingSlip

.Delivery = xlOneAfterAnother

.Recipients = Array("Adam Bendel", "Jean Selva", "Bernard Gabor")

.Subject = "Here is BOOK1.XLS"

.Message = "Here is the workbook. What do you think?"

.ReturnWhenDone = True

End With

Workbooks("BOOK1.XLS").Route


Reset Method 示例

本示例当传递完成时重新为 BOOK1.XLS 设置传递名单。

With Workbooks("BOOK1.XLS").RoutingSlip

If .Status = xlRoutingComplete Then

.Reset

Else

MsgBox "Cannot reset routing; not yet complete"

End If

End With


ReturnWhenDone 属性示例

本示例逐一将 BOOK1.XLS 送给三个收件人，当传递完成时将工作薄返回发件人。

Workbooks("BOOK1.XLS").HasRoutingSlip = True

With Workbooks("BOOK1.XLS").RoutingSlip

.Delivery = xlOneAfterAnother

.Recipients = Array("Adam Bendel", "Jean Selva", "Bernard Gabor")

.Subject = "Here is BOOK1.XLS"

.Message = "Here is the workbook. What do you think?"

.ReturnWhenDone = True

End With

Workbooks("BOOK1.XLS").Route


Status 属性示例

本示例当传递完成时重新为 BOOK1.XLS 设置传递名单。

With Workbooks("BOOK1.XLS").RoutingSlip

If .Status = xlRoutingComplete Then

.Reset

Else

MsgBox "Cannot reset routing; not yet complete."

End If

End With


TrackStatus 属性示例

本示例在状态追踪启动的情况下将 BOOK1.XLS 送给三个收件人。

Workbooks("BOOK1.XLS").HasRoutingSlip = True

With Workbooks("BOOK1.XLS").RoutingSlip

.Delivery = xlOneAfterAnother

.Recipients = Array("Adam Bendel", "Jean Selva", "Bernard Gabor")

.Subject = "Here is BOOK1.XLS"

.Message = "Here is the workbook. What do you think?"

.ReturnWhenDone = True

.TrackStatus = True

End With

Workbooks("BOOK1.XLS").Route


ChangeScenario 方法示例

这个示例在 Sheet1 的 A1:A10 区域为方案1 设置变动单元格。

Worksheets("Sheet1").Scenarios(1).ChangeScenario _

Worksheets("Sheet1").Range("A1:A10")


ChangingCells 属性示例

这个示例为 Sheet1 上的方案1 选定变动单元格。

Worksheets("Sheet1").Activate

ActiveSheet.Scenarios(1).ChangingCells.Select


Comment 属性示例

本示例在 Sheet1 上为方案1 设置备注。

Worksheets("Sheet1").Scenarios(1).Comment = _

"Worst case July 1993 sales"


CreateSummary 方法示例

本示例在 Sheet1 上建立方案汇总，其结果单元格在 Sheet1 的 C4:C9 区域内。

Worksheets("Sheet1").Scenarios.CreateSummary _

resultCells := Worksheets("Sheet1").Range("C4:C9")


ErrorBar 方法示例

本示例为 Chart1 的序列1设置 Y 方向上的标准误差值。此误差值可在正反两个方向上使用。此示例必须在一个二维折线图上执行。

Charts("Chart1").SeriesCollection(1).ErrorBar _

direction:=xlY, include:=xlBoth, type:=xlStError


ErrorBars 方法示例

此示例为 Chart1 上序列1的误差值设置颜色。此示例必须在序列1上有误差值的二维折线图上执行。

With Charts("Chart1").SeriesCollection(1)

.ErrorBars.Border.ColorIndex = 8

End With


HasErrorBars 方法示例

本示例将删除 Chart1 上序列1的误差值。此示例必须在序列1上有误差值的二维折线图上执行。

Charts("Chart1").SeriesCollection(1).HasErrorBars = False


InvertIfNegative 方法示例

本示例将 Chart1上的序列1中的图案转换为负值。此示例必须在一个二维折线图上执行。

Charts("Chart1").SeriesCollection(1).InvertIfNegative = True


PlotOrder 方法示例

本示例将 Chart1 的序列2排在绘图序列的第三位。此示例必须在有三个以上序列的二维图中执行。

Charts("Chart1").ChartGroups(1).SeriesCollection(2).PlotOrder = 3


Points 方法示例

本示例为 Chart1 中序列1的第一个点设置一个数据标志。

Charts("Chart1").SeriesCollection(1).Points(1).ApplyDataLabels


Smooth 方法示例

本示例为 Chart1中 序列1打开曲线平滑功能。此示例必须在一个二维折线图上执行。

Charts("Chart1").SeriesCollection(1).Smooth = True


Trendlines 方法示例

此示例为 Chart1 的序列1添加一条线性趋势线。

Charts("Chart1").SeriesCollection(1).Trendlines.Add Type:=xlLinear


Values 方法示例

本示例在一个区域中设置序列值。此示例使用 Set 语句，因为表达式的右边是一个对象而不是一个值。

Set Charts("Chart1").SeriesCollection(1).Values = _

Worksheets("Sheet1").Range("C5:T5")

若要为每一个数据点分配常数值则必须使用数组。此示例不需要 Set 语句。

Charts("Chart1").SeriesCollection(1).Values = _

Array(1, 3, 5, 7, 11, 13, 17, 19)


Import 方法示例

此示例在 Sheet1 的 A1 单元格中增加一个声音附注。

Worksheets("Sheet1").Range("A1").SoundNote.Import "C:\SOUNDS\CHIMES.WAV"

This is the same example in Microsoft Excel for the Macintosh.

Worksheets("Sheet1").Range("A1").SoundNote.Import "HD:Sounds:Sound Note 1"


Play 方法示例

本示例删除 Sheet1 上 A1 单元格中的声音附注，为其录入一个新的声音附注，并播放这个声音附注。

With Worksheets("Sheet1").Range("A1").SoundNote

.Delete

.Record

.Play

End With


Record 方法示例

本示例删除 Sheet1 上 A1 单元格中的声音附注，为其录入一个新的声音附注，并播放这个声音附注。

With Worksheets("Sheet1").Range("A1").SoundNote

.Delete

.Record

.Play

End With


SQLBind 函数示例

本示例在 Nwind 样本数据库执行一个查询，然后使用 SQLBind 函数显示 Sheet1 上查询结果集（定购的产品名称和数量）的第四列和第九列。

If Application.OperatingSystem Like "*Win*" Then

databaseName = "NWind"

Else	'Macintosh

databaseName = "NorthWind"

End If

queryString = "SELECT * FROM product.dbf WHERE (product.ON_ORDER<>0)"

chan = SQLOpen("DSN=" & databaseName)

SQLExecQuery chan, queryString

Set output1 = Worksheets("Sheet1").Range("A1")

Set output2 = Worksheets("Sheet1").Range("B1")

SQLBind chan, 4, output1

SQLBind chan, 9, output2

SQLRetrieve chan

SQLClose chan


SQLClose 函数示例

此示例在 Nwind 样本数据库执行一个查询。显示在 Sheet1 上的查询结果是当前定购的所有产品的列表。

If Application.OperatingSystem Like "*Win*" Then

databaseName = "NWind"

Else	'Macintosh

databaseName = "NorthWind"

End If

queryString = "SELECT * FROM product.dbf WHERE (product.ON_ORDER<>0)"

chan = SQLOpen("DSN=" & databaseName)

SQLExecQuery chan, queryString

Set output = Worksheets("Sheet1").Range("A1")

SQLRetrieve chan, output, , , True

SQLClose chan


SQLError 函数示例

本示例通过使用一个不正确的连接字符串（NWind 被拼错）试图打开一个到 Nwind 样本数据库的连接因而产生一个错误。错误信息显示在 Sheet1 上。

chan = SQLOpen("DSN=NWin")

returnArray = SQLError()

For i = LBound(returnArray, 1) To UBound(returnArray, 1)

Worksheets("Sheet1").Cells(1, i).Formula = returnArray(i)

Next i

SQLClose chan


SQLExecQuery 函数示例

此示例在 Nwind 样本数据库执行一个查询。显示在 Sheet1 上的查询结果是当前定购的所有产品的列表。

If Application.OperatingSystem Like "*Win*" Then

databaseName = "NWind"

Else	'Macintosh

databaseName = "NorthWind"

End If

queryString = "SELECT * FROM product.dbf WHERE (product.ON_ORDER<>0)"

chan = SQLOpen("DSN=" & databaseName)

SQLExecQuery chan, queryString

Set output = Worksheets("Sheet1").Range("A1")

SQLRetrieve chan, output, , , True

SQLClose chan


SQLGetSchema 函数示例

本示例为 NWind 样本数据库检索数据库名和 DBMS 名，然后在一个信息框内显示这些内容。

If Application.OperatingSystem Like "*Win*" Then

databaseName = "NWind"

Else	'Macintosh

databaseName = "NorthWind"

End If

chan = SQLOpen("DSN=" & databaseName)

dsName = SQLGetSchema(chan, 8)

dsDBMS = SQLGetSchema(chan, 9)

MsgBox "Database name is " & dsName & ", and its DBMS is " & dsDBMS

SQLClose chan


SQLOpen 函数示例

此示例在 Nwind 样本数据库中执行一个查询。显示在 Sheet1 上的查询结果是当前定购的所有产品的列表。

If Application.OperatingSystem Like "*Win*" Then

databaseName = "NWind"

Else	'Macintosh

databaseName = "NorthWind"

End If

queryString = "SELECT * FROM product.dbf WHERE (product.ON_ORDER<>0)"

chan = SQLOpen("DSN=" & databaseName)

SQLExecQuery chan, queryString

Set output = Worksheets("Sheet1").Range("A1")

SQLRetrieve chan, output, , , True

SQLClose chan


SQLRequest 函数示例

此示例在 Nwind 样本数据库中执行一个查询。显示在 Sheet1 上的查询结果是当前定购的所有产品的列表。SQLRequest 函数还将完整的链接字符串（full connection string）写入 Sheet2。

If Application.OperatingSystem Like "*Win*" Then

databaseName = "NWind"

Else	'Macintosh

databaseName = "NorthWind"

End If

queryString = "SELECT * FROM product.dbf WHERE (product.ON_ORDER<>0)"

returnArray = SQLRequest("DSN=" & databaseName, _

queryString, _

Worksheets("Sheet1").Range("A1"), _

2, True)

For i = LBound(returnArray, 1) To UBound(returnArray, 1)

For j = LBound(returnArray, 2) To UBound(returnArray, 2)

Worksheets("Sheet1").Cells(i, j).Formula = returnArray(i, j)

Next j

Next i


SQLRetrieve 函数示例

此示例在 Nwind 样本数据库中执行一个查询。显示在 Sheet1 上的查询结果是当前定购的所有产品的列表。

If Application.OperatingSystem Like "*Win*" Then

databaseName = "NWind"

Else	'Macintosh

databaseName = "NorthWind"

End If

queryString = "SELECT * FROM product.dbf WHERE (product.ON_ORDER<>0)"

chan = SQLOpen("DSN=" & databaseName)

SQLExecQuery chan, queryString

Set output = Worksheets("Sheet1").Range("A1")

SQLRetrieve chan, output, , , True

SQLClose chan


SQLRetrieveToFile 函数示例

此示例在 Nwind 样本数据库中执行一个查询。显示在 Sheet1 上的查询结果是当前定购的所有产品的列表，此列表被写入当前目录或文件夹中的分隔符号文本文件 OUTPUT.TXT 中。

If Application.OperatingSystem Like "*Win*" Then

databaseName = "NWind"

Else	'Macintosh

databaseName = "NorthWind"

End If

queryString = "SELECT * FROM product.dbf WHERE (product.ON_ORDER<>0)"

chan = SQLOpen("DSN=" & databaseName)

SQLExecQuery chan, queryString

SQLRetrieveToFile chan, "OUTPUT.TXT", True

SQLClose chan


IncludeAlignment 属性示例

本示例设置 Sheet1 中 A1 单元格的样式使其包括对齐格式。

Worksheets("Sheet1").Range("A1").Style.IncludeAlignment = True


IncludeBorder 属性示例

本示例设置 Sheet1 中 A1 单元格的样式使其包括边界格式。

Worksheets("Sheet1").Range("A1").Style.IncludeBorder = True


IncludeFont 属性示例

本示例设置 Sheet1 中 A1 单元格的样式使其包括字体格式。

Worksheets("Sheet1").Range("A1").Style.IncludeFont = True


IncludeNumber 属性示例

本示例设置 Sheet1 中 A1 单元格的样式使其包括数字格式。

Worksheets("Sheet1").Range("A1").Style.IncludeNumber = True


IncludePatterns 属性示例

本示例设置 Sheet1 中 A1 单元格的样式使其包括图案格式。

Worksheets("Sheet1").Range("A1").Style.IncludePatterns = True


IncludeProtection 属性示例

本示例设置 Sheet1 中 A1 单元格的样式使其包含保护格式。

Worksheets("Sheet1").Range("A1").Style.IncludeProtection = True


在 Visual Basic 中使用工作表函数示例

本示例使用工作表函数 Pmt 来计算家庭抵押贷款的偿还问题。注意在本示例中使用 InputBox 方法来替代 InputBox 函数因而可以进行类型检查。Static 语句使 Visual Basic 保留三个变量的值；这些值将作为下一次运行程序时的默认值被显示。

Static loanAmt

Static loanInt

Static loanTerm

loanAmt = Application.InputBox _

(Prompt:="Loan amount (100,000 for example)", _

Default:=loanAmt, Type:=1)

loanInt = Application.InputBox _

(Prompt:="Annual interest rate (8.75 for example)", _

Default:=loanInt, Type:=1)

loanTerm = Application.InputBox _

(Prompt:="Term in years (30 for example)", _

Default:=loanTerm, Type:=1)

payment = Application.Pmt(loanInt / 1200, loanTerm * 12, loanAmt)

MsgBox "Monthly payment is " & Format(payment, "Currency")


错误单元格值示例

本示例在 Sheet1 的 A1:A7 单元格中插入 7 个错误的单元格值。

myArray = Array(xlErrDiv0, xlErrNA, xlErrName, xlErrNull, _

xlErrNum, xlErrRef, xlErrValue)

For i = 1 To 7

sheets("Sheet1").Cells(i, 1).Value = CVErr(myArray(i - 1))

Next i

本示例在 Sheet1 的当前单元格中包含有一个错误值时显示一条信息。可以使用此示例作为处理错误单元格值的框架。

工作表s("Sheet1").Activate

If IsError(ActiveCell.Value) Then

errval = ActiveCell.Value

Select Case errval

Case CVErr(xlErrDiv0)

MsgBox "#DIV/0! error"

Case CVErr(xlErrNA)

MsgBox "#N/A error"

Case CVErr(xlErrName)

MsgBox "#NAME? error"

Case CVErr(xlErrNull)

MsgBox "#NULL! error"

Case CVErr(xlErrNum)

MsgBox "#NUM! error"

Case CVErr(xlErrRef)

MsgBox "#REF! error"

Case CVErr(xlErrValue)

MsgBox "#VALUE! error"

Case Else

MsgBox "This should never happen!!"

End Select

End If


HelpContextID 属性 示例

本示例在“　Visual Basic 模块”菜单栏的“帮助”菜单中添加一个新菜单项，然后为新菜单项设置状态栏文本、“帮助”文件名 以及 有关此宏“帮助”内容的标识(注意 HelpFile 和 HelpContextId 属性是 Windows-only 属性)。

Set menuObj = MenuBars(xlModule).Menus("Help")

Set newMenuItem = menuObj.MenuItems.Add(Caption:="&Read Me First", _

OnAction:="readmeMacro", _

Before:=1)

newMenuItem.StatusBar = "Read this topic before you begin"

newMenuItem.HelpFile = "C:\xl5\vba_xl.hlp"

newMenuItem.HelpContextID = 65535


HelpFile 属性 示例

本示例在“Visual Basic 模块”菜单栏的“帮助”菜单中添加一个新菜单项， 然后为新菜单项设置状态栏文本、“帮助”文件名 、以及有关此宏“帮助”内容的标识 (注意 HelpFile 和 HelpContextId 属性是 Windows-only 属性)。

Set menuObj = MenuBars(xlModule).Menus("Help")

Set newMenuItem = menuObj.MenuItems.Add(Caption:="&Read Me First", _

OnAction:="readmeMacro", _

Before:=1)

newMenuItem.StatusBar = "Read this topic before you begin"

newMenuItem.HelpFile = "C:\xl5\vba_xl.hlp"

newMenuItem.HelpContextID = 65535


DisplayAlerts 属性示例

本示例关闭工作薄 BOOK1.XLS 并且不提示用户对改动进行保存。对 BOOK1.XLS 的所有改动将不被保存。

Application.DisplayAlerts = False

Workbooks("BOOK1.XLS").Close

Application.DisplayAlerts = True

本示例在为一个没有运行的应用程序初始化一个 DDE 通道时将隐藏显示的信息。

Application.DisplayAlerts = False

channelNumber = Application.DDEInitiate( _

app:="WinWord", _

topic:="C:\WINWORD\FORMLETR.DOC")

Application.DisplayAlerts = True

Application.DDEExecute channelNumber, "[FILEPRINT]"

Application.DDETerminate channelNumber


DisplayFormulaBar 属性示例

本示例隐藏公式栏。

Application.DisplayFormulaBar = False


DisplayNoteIndicator 属性示例

本示例隐藏附注提示器。

Application.DisplayNoteIndicator = True


DisplayStatusBar 属性示例

本示例保存 DisplayStatusBar 属性的当前状态，然后将属性设置为 True，这样状态栏是可见的。

saveStatusBar = Application.DisplayStatusBar

Application.DisplayStatusBar = True


DoubleClick 方法示例

本示例双击 Sheet1 上的当前单元格。

Worksheets("Sheet1").Activate

Application.DoubleClick


Evaluate 方法示例

本示例打开 Sheet1 的 A1 单元格的粗体字格式。

Worksheets("Sheet1").Activate

boldCell = "A1"

Application.Evaluate(boldCell).Font.Bold = True


ExecuteExcel4Macro 方法示例

本示例执行 Sheet1 上 C3 单元格中的 GET.CELL(42) 宏函数，并在信息框内显示结果。GET.CELL(42) 宏函数返从当前窗口的左边缘到当前单元格的左边缘的水平距离。这个宏函数在 Visual Basic 没有直接等效的的函数。

Worksheets("Sheet1").Activate

Range("C3").Select

MsgBox ExecuteExcel4Macro("GET.CELL(42)")


FixedDecimal 属性示例

本示例设置 FixedDecimal 的属性为 True，设置 FixedDecimalPlaces 属性为4。在工作薄执行此示例后出现“3”时输入“30000”，出现“1.25”时输入“12500”。

Application.FixedDecimal = True

Application.FixedDecimalPlaces = 4


FixedDecimalPlaces 属性示例

本示例设置 FixedDecimal 的属性为真（True）设置 FixedDecimalPlaces 属性为4。在工作薄执行此示例后，输入“30000”将产生“3”，输入“12500”将产生“1.25”。

Application.FixedDecimal = True

Application.FixedDecimalPlaces = 4


Height 属性示例

本示例设置 Sheet1 上的 oval 1 的高度为1英寸(72磅)。

Worksheets("Sheet1").Ovals(1).Height = 72

本示例设置 Sheet1 上所有的按钮高度为18磅。

For Each b In Worksheets("Sheet1").Buttons

b.Height = 18

Next b


Help 方法示例

本示例为“帮助”文档 OTISAPP.HLP 显示目录屏幕。

Application.Help "OTISAPP.HLP"


IgnoreRemoteRequests 属性示例

本示例设置 IgnoreRemoteRequests 属性为 True，这样远程 DDE 请求被忽略。

Application.IgnoreRemoteRequests = True


InputBox 方法示例

本示例提示用户输入一个数。

myNum = Application.InputBox("Enter a number")

本示例提示用户在 Sheet1 上选定一个单元格。此示例使用 type 参量来确保返回值 是一个合法的单元格引用( 一个 Range 对象)。

Worksheets("Sheet1").Activate

Set myCell = Application.InputBox( _

prompt:="Select a cell", Type:=8)


Interactive 属性示例

本示例当在 Windows 中使用 DDE 时设置 Interactive 属性为 False，当完成后将属性改回 True。这样可以防止用户对宏的干扰。

Application.Interactive = False

Application.DisplayAlerts = False

channelNumber = Application.DDEInitiate( _

app:="WinWord", _

topic:="C:\WINWORD\FORMLETR.DOC")

Application.DDEExecute channelNumber, "[FILEPRINT]"

Application.DDETerminate channelNumber

Application.DisplayAlerts = True

Application.Interactive = True


ActivePane 属性示例

本示例为 BOOK1.XLS 的当前窗口激活下一个窗格。当窗格被冻结时不能激活下一个窗格。此示例必须从 BOOK1.XLS 以外的工作薄中执行。在执行这个示例之前，请保证 BOOK1.XLS 在当前工作薄有两个或四个窗格。

Workbooks("BOOK1.XLS").Activate

If not ActiveWindow.FreezePanes Then

With ActiveWindow

i = .ActivePane.Index

If i = .Panes.Count Then

.Panes(1).Activate

Else

.Panes(i+1).Activate

End If

End With

End If


Arrange 方法示例

本示例在应用程序中平铺窗口。

Application.Windows.Arrange arrangeStyle:=xlTiled


DisplayAutomaticPageBreaks 属性示例

本示例使得 Sheet1 显示自动分页。

Worksheets("Sheet1").DisplayAutomaticPageBreaks = True


DisplayFormulas 属性示例

本示例改变 BOOK1.XLS 的当前窗口以显示公式。

Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate

ActiveWindow.DisplayFormulas = True


DisplayGridlines 属性示例

本示例在 BOOK1.XLS 的当前窗口中切换网格线的显示。

Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate

ActiveWindow.DisplayGridlines = Not(ActiveWindow.DisplayGridlines)


DisplayHeadings 属性示例

本示例关闭 BOOK1.XLS 的当前窗口中行和列的标题。

Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate

ActiveWindow.DisplayHeadings = False


DisplayOutline 属性示例

本示例为 BOOK1.XLS 的当前窗口显示分级显示符号。

Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate

ActiveWindow.DisplayOutline = True


DisplayZeros 属性示例

本示例设置 BOOK1.XLS 的当前窗口以显示零值。

Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate

ActiveWindow.DisplayZeros = True


FreezePanes 属性示例

本示例冻结 BOOK1.XLS 的当前窗口中的分割窗格。

Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate

ActiveWindow.FreezePanes = True


GridlineColor 属性示例

本示例设置 BOOK1.XLS 的当前窗口网格线的颜色为红色。

Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate

ActiveWindow.GridlineColor = RGB(255,0,0)


Panes 方法示例

本示例显示 BOOK1.XLS 当前窗口中窗格的数目。

Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate

MsgBox "There are " & ActiveWindow.Panes.Count & _

" panes in the active window"

本示例激活 BOOK1.XLS 当前窗口中左上角的窗格。

Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate

ActiveWindow.Panes(1).Activate


SelectedSheets 方法示例

本示例在当 BOOK1.XLS 中的 Sheet1 被选定时显示一个信息。

For Each sh In Workbooks("BOOK1.XLS").Windows(1).SelectedSheets

If sh.Name = "Sheet1" Then

MsgBox "Sheet1 is selected"

Exit For

End If

Next


Split 属性示例

本示例在 B2 单元格处分割 BOOK1.XLS 的当前窗口而不冻结窗格，这使得 Split 属性返回真

Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate

With ActiveWindow

.SplitColumn = 2

.SplitRow = 2

End With

有两种方法可以删除上例所添加的分割。

Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate

ActiveWindow.Split = False	'方法 1

Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate

ActiveWindow.SplitColumn = 0	'方法 2

ActiveWindow.SplitRow = 0

本示例删除窗口的分割。在删除分割之前，必须将 FreezePanes 设置为假以删除冻结的窗格。

Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate

With ActiveWindow

.FreezePanes = False

.Split = False

End With


SplitColumn 属性示例

本示例分割窗口并在分割线的左边留1.5列。

Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate

ActiveWindow.SplitColumn = 1.5


SplitHorizontal 属性示例

本示例设置当前窗口水平分割为216磅(3英寸)。

Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate

ActiveWindow.SplitHorizontal = 216


SplitRow 属性示例

本示例分割当前窗口使10行在分割线以上。

Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate

ActiveWindow.SplitRow = 10


SplitVertical 属性示例

本示例将当前窗口设置垂直分割为216磅(3英寸)。

Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate

ActiveWindow.SplitVertical = 216


CreateBackup 属性示例

活动工作簿被保存时如果要建立一个备份本示例将显示一条信息。

If ActiveWorkbook.CreateBackup = True Then

MsgBox "Remember, there is a backup copy of this workbook"

End If


DialogSheets 方法示例

本示例显示在 Dialog1 上的自定义对话框。如果单击“取消”按钮循环将使对话框再次被显示。

Do

returnVal = DialogSheets("Dialog1").Show

Loop Until returnVal = True


Excel4IntlMacroSheets 方法示例

本示例显示活动工作簿中 Microsoft Excel 4.0 国际宏表的数目。

MsgBox "There are " & ActiveWorkbook.Excel4IntlMacroSheets.Count & _

" Microsoft Excel 4.0 international macro sheets in this workbook."


Excel4MacroSheets 方法示例

本示例显示活动工作簿中 Microsoft Excel 4.0 宏表的数目。

MsgBox "There are " & ActiveWorkbook.Excel4MacroSheets.Count & _

" Microsoft Excel 4.0 macro sheets in this workbook."


FileFormat 属性示例

如果活动文本格式为 WK3 则本例将以普通文本格式保存活动工作簿。

If ActiveWorkbook.FileFormat = xlWK3 Then

ActiveWorkbook.SaveAs fileFormat:=xlNormal

End If


HasPassword 属性示例

如果活动工作簿有一个保护口令，则本例将显示一条信息。

If ActiveWorkbook.HasPassword = True Then

MsgBox "Remember to obtain the workbook password" & Chr(13) & _

" from the Network Administrator."

End If


Modules 方法示例

本示例在活动工作簿中建立一个新的 Visual Basic 模块，并在新模块中插入文件 TESTCODE.TXT 。

Set newModule = Modules.Add

newModule.InsertFile fileName:="testcode.txt"


NewWindow 方法示例

本示例为活动工作簿中建立一个新窗口。

ActiveWorkbook.NewWindow


Open 方法示例

本示例打开工作簿 ANALYSIS.XLS，然后执行其上的宏“Auto_Open”。

Workbooks.Open "ANALYSIS.XLS"

ActiveWorkbook.RunAutoMacros xlAutoOpenProtectStructure 属性示例

如果活动工作簿结构被保护，则本例显示一个信息。

If ActiveWorkbook.ProtectStructure = True Then

MsgBox "Remember, you cannot delete, add, or change " & Chr(13) & _

"the location of any sheets in this workbook."

End If


ProtectStructure 属性示例

如果活动工作簿中的结构被保护本例将显示一条信息。

This example displays a message if the structure of the active workbook is protected.

If ActiveWorkbook.ProtectStructure = True Then

MsgBox "Remember, you cannot delete, add, or change " & Chr(13) & _

"the location of any sheets in this workbook."

End If


ProtectWindows 属性示例

如果活动工作簿中的窗口被保护本例将显示一条信息。

If ActiveWorkbook.ProtectWindows = True Then

MsgBox "Remember, you cannot rearrange any window in this workbook."

End If


ReadOnly 属性示例

如果活动工作簿是只读的，则本示例将以 NEWFILE.XLS 保存它。

If ActiveWorkbook.ReadOnly Then

ActiveWorkbook.SaveAs fileName:="NEWFILE.XLS"

End If


ReadOnlyRecommended 属性示例

如果活动工作簿被建议保存为只读时本例将显示一条信息。

If ActiveWorkbook.ReadOnlyRecommended = True Then

MsgBox "This workbook is saved as read-only recommended"

End If


RunAutoMacros 方法示例

本示例打开工作簿 ANALYSIS.XLS 并运行其中的宏“Auto_Open”。

Workbooks.Open "ANALYSIS.XLS"

ActiveWorkbook.RunAutoMacros xlAutoOpen

本示例为活动工作簿执行 Auto_Close 宏然后关闭工作簿。

With ActiveWorkbook

.RunAutoMacros xlAutoClose

.Close

End With


SaveAs 方法示例

本示例建立一个新工作簿，提示用户输入一个文件名，然后关闭工作簿。

Set NewBook = Workbooks.Add

Do

fName = Application.GetSaveAsFilename

Loop Until fName <> False

NewBook.SaveAs Filename:=fName


Saved 属性示例

如果活动工作簿含有未保存的改动，本例将显示一条信息。

If Not ActiveWorkbook.Saved Then

MsgBox "This workbook contains unsaved changes."

End If

本示例关闭含有本示例程序的工作表，并设置 Saved 属性为真来丢弃对工作表的改动。

ThisWorkbook.Saved = True

ThisWorkbook.Close


Sheets 方法示例

本示例建立一个新工作簿，然后在第一列放置一个活动工作簿的工作表名列表。

Set newSheet = Sheets.Add(Type:=xlWorksheet)

For i = 1 To Sheets.Count

newSheet.Cells(i, 1).Value = Sheets(i).Name

Next i


Styles 方法示例

本示例从活动工作簿中删除用户自定义样式“Stock Quote Style”。

ActiveWorkbook.Styles("Stock Quote Style").Delete


Worksheets 方法示例

本示例显示活动工作簿的 Sheet1 中 A1 单元格的值。

MsgBox Worksheets("Sheet1").Range("A1").Value

本示例显示活动工作簿每一个工作表的名称。

For Each ws In Worksheets

MsgBox ws.Name

Next ws

本示例在活动工作簿中添加一个新工作簿，然后为新工作簿命名。

Set newSheet = Worksheets.Add

newSheet.Name = "1995 Budget"


WriteReserved 属性示例

如果活动工作簿有修改权口令，则本示例将显示为此工作簿设置修改权口令的用户名称。

With ActiveWorkbook

If .WriteReserved = True Then

MsgBox "Please contact " & .WriteReservedBy & Chr(13) & _

" if you need to insert data in this workbook."

End If

End With


WriteReservedBy 属性示例

如果活动工作簿有修改权口令，则本示例将显示为此工作簿设置修改权口令的用户名称。

With ActiveWorkbook

If .WriteReserved = True Then

MsgBox "Please contact " & .WriteReservedBy & Chr(13) & _

" if you need to insert data in this workbook."

End If

End With


TransitionExpEval 属性示例

本示例使 Microsoft Excel 对 Sheet1  使用 Lotus 1-2-3 的表达式计算规则。

Worksheets("Sheet1").TransitionExpEval = True


TransitionFormEntry 属性示例

本示例使 Microsoft Excel 对 Sheet1 使用 Lotus 1-2-3 的公式输入规则。

Worksheets("Sheet1").TransitionFormEntry = True


Date1904 属性示例

本示例使 Microsoft Excel 对当前工作薄使用1904日期系统。

ActiveWorkbook.Date1904 = True


DeleteNumberFormat 方法示例

本示例从当前工作薄中删除"000-00-0000"数字格式。

ActiveWorkbook.DeleteNumberFormat("000-00-0000")


DisplayDrawingObjects 属性示例

本示例隐藏当前工作表中的所有图形对象。

ActiveWorkbook.DisplayDrawingObjects = xlHide


Drawings 方法示例

本示例将图形1放置到 Sheet1 的前面。

Worksheets("Sheet1").Drawings(1).BringToFront


PrecisionAsDisplayed 属性示例

本示例使当前工作薄上的计算使用其显示数字的精度。

ActiveWorkbook.PrecisionAsDisplayed = True


SaveLinkValues 属性示例

本示例使得 Microsoft Excel 为当前工作薄存储外部连接值。

ActiveWorkbook.SaveLinkValues = True


ShowDataForm 方法示例

本示例显示 Sheet1 的数据格式。

Worksheets(1).ShowDataForm


SpecialCells 方法示例

本示例选定 Sheet1 上使用区域的最后一个单元格。

Worksheets("Sheet1").Activate

ActiveSheet.Cells.SpecialCells(xlLastCell).Activate


StandardHeight 属性示例

本示例将 Sheet1 上第一行的行高设置为标准高度。

Worksheets("Sheet1").Rows(1).RowHeight = _

Worksheets("Sheet1").StandardHeight


StandardWidth 属性示例

本示例将 Sheet1 上第一列的列宽设置为标准宽度。

Worksheets("Sheet1").Columns(1).ColumnWidth = _

Worksheets("Sheet1").StandardWidth


UpdateRemoteReferences 属性示例

本示例更新当前工作薄上的远程引用。

ActiveWorkbook.UpdateRemoteReferences = True


UsedRange 属性示例

本示例选定 Sheet1 上使用过的区域。

Worksheets("Sheet1").Activate

ActiveSheet.UsedRange.Select


WindowNumber 属性示例

本示例为当前窗口建立一个新的窗口并显示新窗口的窗口号。

ActiveWindow.NewWindow

MsgBox ActiveWindow.WindowNumber


Array 函数示例 (Microsoft Excel)

本示例用 Sheet1 中相同区域的内容填充 Sheet1、Sheet5、和 Sheet7 上的 A1:C5 区域。

x = Array("Sheet1", " Sheet5", " Sheet7")

Sheets(x).FillAcrossSheets _

WorkSheets("Sheet1").Range("A1:C5")

本示例使用 SUM 函数将 Sheet2 和 Sheet3 上的数据合并到 Sheet1 上。

Worksheets("Sheet1").Range("A1").Consolidate _

sources:=Array("Sheet2!R1C1:R37C6", " Sheet3!R1C1:R37C6"), _

function:=xlSum

本示例添加一个字符串数组作为自定义列表。

Application.AddCustomList Array("cogs", "sprockets", _

"widgets", "gizmos")

本示例隐藏 Chart1、Chart3、和Chart5。注意在本示例中 Charts 方法将返回一个 Sheets 对象而不是一个 Charts 对象。

Charts(Array("Chart1", "Chart3", "Chart5")).Visible = False

本示例在 Dialog1 的列表框1中设置输入项。

DialogSheets("Dialog1").ListBoxes(1).List = _

Array("cogs", "widgets", "sprockets", "gizmos")

本示例为 Sheet1 的绘图对象1、3、5建立一个分组。

Set myGroup = WorkSheets("Sheet1").DrawingObjects(Array(1, 3, 5)).Group

WorkSheets("Sheet1").Activate

myGroup.Select


Chr 函数示例 (Microsoft Excel)

本示例使用字母 A 到 Z 来填充 Dialog1 上的列表框1。

For i = 65 To 90

Dialogsheets("Dialog1").ListBoxes(1).AddItem Text:=Chr(i)

Next i

本示例在信息框中使用 Chr 函数建立一个换页标记。

msgText = "The current folder is:" & Chr(13) & CurDir()

MsgBox msgText


CVErr 函数示例 (Microsoft Excel)

本示例在 Sheet1的 A1:A7 单元格中插入7个错误的单元格值。

myArray = Array(xlErrDiv0, xlErrNA, xlErrName, xlErrNull, _

xlErrNum, xlErrRef, xlErrValue)

For i = 1 To 7

WorkSheets("Sheet1").Cells(i, 1).Value = CVErr(myArray(i - 1))

Next i

若 Sheet1 上的当前单元格含有错误值时本示例将显示一条信息。可以使用此示例作为一个单元格错误值处理器的框架。

WorkSheets("Sheet1").Activate

If IsError(ActiveCell.Value) Then

errval = ActiveCell.Value

Select Case errval

Case CVErr(xlErrDiv0)

MsgBox "#DIV/0! error"

Case CVErr(xlErrNA)

MsgBox "#N/A error"

Case CVErr(xlErrName)

MsgBox "#NAME? error"

Case CVErr(xlErrNull)

MsgBox "#NULL! error"

Case CVErr(xlErrNum)

MsgBox "#NUM! error"

Case CVErr(xlErrRef)

MsgBox "#REF! error"

Case CVErr(xlErrValue)

MsgBox "#VALUE! error"

Case Else

MsgBox "This should never happen!!"

End Select

End If


Do...Loop 语句示例 (Microsoft Excel)

本示例将 Sheet1 上第一列的数据排序，然后删除含有重复值的行。

Worksheets("Sheet1").Range("A1").Sort _

key1:=Worksheets("Sheet1").Range("A1")

Set currentCell = Worksheets("Sheet1").Range("A1")

Do While Not IsEmpty(currentCell)

Set nextCell = currentCell.Offset(1, 0)

If nextCell.Value = currentCell.Value Then

currentCell.EntireRow.Delete

End If

Set currentCell = nextCell

Loop


For Each...Next 语句示例 (Microsoft Excel)

本示例在 Sheet1 的 A1:D10 单元格上循环。如果某一个单元格的值小于0.001，程序将用0替代这个值。

For Each c in WorkSheets("Sheet1").Range("A1:D10")

If c.Value < .001 Then

c.Value = 0

End If

Next c

本示例在名为“TestRange”的区域循环并显示区域中空单元格的数目。

numBlanks = 0

For Each c In Range("TestRange")

If c.Value = "" Then

numBlanks = numBlanks + 1

End If

Next c

MsgBox "There are " & numBlanks & " empty cells in this range."

本示例关闭除执行本示例的工作薄以外的工作薄并保存改动。

For Each w In Workbooks

If w.Name <> ThisWorkbook.Name Then

w.Close savechanges:=True

End If

Next w

本示例删除当前工作薄中的每一个工作表但不显示确认对话框。

Application.DisplayAlerts = False

For Each w In WorkSheets

w.Delete

Next w

Application.DisplayAlerts = True

本示例建立一个新工作表，然后插入包含当前工作表上所有名称的列表，其中包括用户语言的 A1 样式注释公式。

Set newSheet = ActiveWorkbook.WorkSheets.Add

i = 1

For Each nm In ActiveWorkbook.Names

newSheet.Cells(i, 1).Value = nm.NameLocal

newSheet.Cells(i, 2).Value = "'" & nm.RefersToLocal

i = i + 1

Next nm


For...Next 语句示例 (Microsoft Excel)

本示例显示 Sheet1 上选定内容的列数。此程序还测试一个多区域选定；如果存在这样的选定，则程序在这个选定的区域内循环。

Worksheets("Sheet1").Activate

areaCount = Selection.Areas.Count

If areaCount <= 1 Then

MsgBox "The selection contains " & _

Selection.Columns.Count & " columns."

Else

For i = 1 To areaCount

MsgBox "Area " & i & " of the selection contains " & _

Selection.Areas(i).Columns.Count & " columns."

Next i

End If

本示例创建一个新工作薄，然后在第一列插入当前工作薄工作表名称的列表。

Set newSheet = Sheets.Add(Type:=xlWorkSheet)

For i = 1 To Sheets.Count

newSheet.Cells(i, 1).Value = Sheets(i).Name

Next i

本示例选定 Sheet1 上列表框1中的项，隔一个选一个。

Dim items() As Boolean

Set lbox = WorkSheets("Sheet1").ListBoxes(1)

ReDim items(1 To lbox.ListCount)

For i = 1 To lbox.ListCount

If i Mod 2 = 1 Then

items(i) = True·

Else

items(i) = False

End If

Next

lbox.MultiSelect = xlExtended

lbox.Selected = items


If...Then...Else 语句示例 (Microsoft Excel)

本示例在 Sheet1 的 A1:D10 单元格循环。如果某一个单元格的值小于0.001，此程序将用0取代这个值。

For Each c in WorkSheets("Sheet1").Range("A1:D10")

If c.Value < .001 Then

c.Value = 0

End If

Next c

本示例在名为“TestRange”的区域内循环并显示区域中空单元格的数目。

numBlanks = 0

For Each c In Range("TestRange")

If c.Value = "" Then

numBlanks = numBlanks + 1

End If

Next c

MsgBox "There are " & numBlanks & " empty cells in this range."

本示例设置标准字体为 Arial (在 Windows 中) 或 Geneva (在 Macintosh 中)。

If Application.OperatingSystem Like "*Macintosh*" Then

Application.StandardFont = "Geneva"

Else

Application.StandardFont = "Arial"

End If


Is Operator 示例 (Microsoft Excel)

本示例选定 Sheet1 上名为 rg1 和 rg2 的两个区域的相交部分。如果两个区域不相交，则本示例显示一条信息。

WorkSheets("Sheet1").Activate

Set isect = Application.Intersect(Range("rg1"), Range("rg2"))

If isect Is Nothing Then

MsgBox "Ranges do not intersect"

Else

isect.Select

End If

本示例寻找 Sheet1 B 列上第一次出现的单词“Phoenix”并显示包含这个词的单元格的地址。如果没有找到这个词，则此示例显示一条信息。

Set foundCell = WorkSheets("Sheet1").Columns("B").Find("Phoenix")

If foundCell Is Nothing Then

MsgBox "The word was not found"

Else

MsgBox "The word was found in cell " & foundCell.Address

End If


IsEmpty 函数示例 (Microsoft Excel)

本示例将 Sheet1 的第一列数据排序，然后删除含有重复数据的行。

WorkSheets("Sheet1").Range("A1").Sort _

key1:=WorkSheets("Sheet1").Range("A1")

Set currentCell = WorkSheets("Sheet1").Range("A1")

Do While Not IsEmpty(currentCell)

Set nextCell = currentCell.Offset(1, 0)

If nextCell.Value = currentCell.Value Then

currentCell.EntireRow.Delete

End If

Set currentCell = nextCell

Loop


IsNull 函数示例 (Microsoft Excel)

本示例建立一个已注册函数列表，每一个已注册函数占 Sheet1 上单独一行。A 列包含 DLL 或代码源的完整路径和文件名，B 列包含函数名，C 列包含参量的数据类型代码。

theArray = Application.Registeredfunctions

If IsNull(theArray) Then

MsgBox "No registered Functions"

Else

For i = LBound(theArray) To UBound(theArray)

For j = 1 To 3

WorkSheets("Sheet1").Cells(i, j).Formula = theArray(i, j)

Next j

Next i

End If


LBound 函数示例 (Microsoft Excel)

本示例在 Sheet1 的第一列写入第一个自定义列表中的元素。

Sub foo()

On Error GoTo err_handler

listArray = Application.GetCustomListContents(1)

For i = LBound(listArray, 1) To UBound(listArray, 1)

WorkSheets("Sheet1").Cells(i, 1).Value = listArray(i)

Next i

Exit Sub

err_handler:

MsgBox "Custom list does not exist"

End Sub

本示例假设您使用了外部数据源在 Sheet1 上建立了一个数据透视表。此示例在新工作薄内插入 SQL 连接字符串和查询字符串。

Set newSheet = ActiveWorkbook.WorkSheets.Add

sdArray = WorkSheets("Sheet1").UsedRange.PivotTable.SourceData

For i = LBound(sdArray) To UBound(sdArray)

newSheet.Cells(i, 1) = sdArray(i)

Next i


Like Operator 示例 (Microsoft Excel)

本示例删除每一个包含“temp”的命名。在所有包含本示例的模块顶部必须包含 Option Compare Text 语句。

For Each nm In ActiveWorkbook.Names

If nm.Name Like "*temp*" Then

nm.Delete

End If

Next nm

本示例为 Sheet1 上每一个名称中含有“Line”的图象对象添加一个箭头。

For Each d In WorkSheets("Sheet1").DrawingObjects

If d.Name Like "*Line*" Then

d.ArrowHeadLength = xlLong

d.ArrowHeadStyle = xlOpen

d.ArrowHeadWidth = xlNarrow

End If

Next


Mod Operator 示例 (Microsoft Excel)

本示例将 Sheet1 上每隔一列的列宽设置为4磅。

For Each col In WorkSheets("Sheet1").Columns

If col.Column Mod 2 = 0 Then

col.ColumnWidth = 4

End If

Next col

本示例将Sheet1上每隔一行的行高设置为4磅。

For Each rw In WorkSheets("Sheet1").Rows

If rw.Row Mod 2 = 0 Then

rw.RowHeight = 4

End If

Next rw

本示例选定 Sheet1 上列表框中的项，隔一个选一个。

Dim items() As Boolean

Set lbox = WorkSheets("Sheet1").ListBoxes(1)

ReDim items(1 To lbox.ListCount)

For i = 1 To lbox.ListCount

If i Mod 2 = 1 Then

items(i) = True

Else

items(i) = False

End If

Next

lbox.MultiSelect = xlExtended

lbox.Selected = items


RGB 函数示例 (Microsoft Excel)

本示例设置 BOOK1.XLS 当前窗口中的网格线的颜色为红色。

Workbooks("BOOK1.XLS").WorkSheets("Sheet1").Activate

ActiveWindow.GridlineColor = RGB(255,0,0)

本示例设置 Chart1 数值轴刻度标记的颜色为绿色。

Charts("Chart1").Axes(xlValue).TickLabels.Font.Color = RGB(0, 255, 0)

本示例为 Chart1 序列1中第二点设置标记的前景与背景色。

With Charts("Chart1").SeriesCollection(1).Points(2)

.MarkerBackgroundColor = RGB(0,255,0)	' green

.MarkerForegroundColor = RGB(255,0,0)	' red

End With

本示例为 Sheet1 中的矩形1设置内部图案颜色为红色。

With WorkSheets("Sheet1").Rectangles(1).Interior

.Pattern = xlGrid

.PatternColor = RGB(255,0,0)

End With


Select Case 语句示例 (Microsoft Excel)

本示例显示安装在计算机中的邮件系统名。

Sub foo()

Select Case Application.MailSystem

Case Is = xlMAPI

MsgBox "Mail system is Microsoft Mail"

Case Is = xlPowerTalk

MsgBox "Mail system is PowerTalk"

Case Is = xlNoMailSystem

MsgBox "No mail system installed"

End Select

End Sub

本示例显示一个描述当前单元格在数据透视表中位置的信息框。

WorkSheets("Sheet1").Activate

Select Case ActiveCell.LocationInTable

Case Is = xlRowHeader

MsgBox "Active cell is part of a row header"

Case Is = xlColumnHeader

MsgBox "Active cell is part of a column header"

Case Is = xlPageHeader

MsgBox "Active cell is part of a page header"

Case Is = xlDataHeader

MsgBox "Active cell is part of a data header"

Case Is = xlRowItem

MsgBox "Active cell is part of a row item"

Case Is = xlColumnItem

MsgBox "Active cell is part of a column item"

Case Is = xlPageItem

MsgBox "Active cell is part of a page item"

Case Is = xlDataItem

MsgBox "Active cell is part of a data item"

Case Is = xlTableBody

MsgBox "Active cell is part of the table body"

End Select

如果 Sheet1 当前单元格有错误值时本例将显示一条信息。本示例可以作为单元格错误值处理器框架。

WorkSheets("Sheet1").Activate

If IsError(ActiveCell.Value) Then

errval = ActiveCell.Value

Select Case errval

Case CVErr(xlErrDiv0)

MsgBox "#DIV/0! error"

Case CVErr(xlErrNA)

MsgBox "#N/A error"

Case CVErr(xlErrName)

MsgBox "#NAME? error"

Case CVErr(xlErrNull)

MsgBox "#NULL! error"

Case CVErr(xlErrNum)

MsgBox "#NUM! error"

Case CVErr(xlErrRef)

MsgBox "#REF! error"

Case CVErr(xlErrValue)

MsgBox "#VALUE! error"

Case Else

MsgBox "This should never happen!!"

End Select

End If


Set 语句示例 (Microsoft Excel)

本示例在当前工作薄中添加一个新工作薄，然后为这个工作薄起名。

Set newSheet = WorkSheets.Add

newsheet.Name = "1995 Budget"

本示例在当前工作薄中建立一个新工作薄，然后插入一个含有当前工作薄中所有名称的列表，包括用户语言中的 A1 样式注释公式。

Set newSheet = ActiveWorkbook.WorkSheets.Add

i = 1

For Each nm In ActiveWorkbook.Names

newSheet.Cells(i, 1).Value = nm.NameLocal

newSheet.Cells(i, 2).Value = "'" & nm.RefersToLocal

i = i + 1

Next


Static 语句示例 (Microsoft Excel)

本示例使用工作薄函数 Pmt 来计算家庭抵押贷款偿还问题。注意本示例使用 InputBox 方法而不是 InputBox 函数，这样此方法可进行类型检查。Static 语句使 Visual Basic 保留三个变量的数值；在下一次执行此示例时将其作为默认值显示。

Static loanAmt

Static loanInt

Static loanTerm

loanAmt = Application.InputBox _

(Prompt:="Loan amount (100,000 for example)", _

Default:=loanAmt, Type:=1)

loanInt = Application.InputBox _

(Prompt:="Annual interest rate (8.75 for example)", _

Default:=loanInt, Type:=1)

loanTerm = Application.InputBox _

(Prompt:="Term in years (30 for example)", _

Default:=loanTerm, Type:=1)

payment = Application.Pmt(loanInt / 1200, loanTerm * 12, loanAmt)

MsgBox "Monthly payment is " & Format(payment, "Currency")


TypeName 函数示例 (Microsoft Excel)

本示例显示选定的 Visual Basic 对象的类型。可以使用本示例来显示选定的单元格、单一椭圆、或几个不同的图形对象。

WorkSheets("Sheet1").Activate

MsgBox "The selection object type is " & TypeName(Selection)


UBound 函数示例 (Microsoft Excel)

本示例在 Sheet1 上写入第一列中第一个自定义列表中的元素。

Sub foo()

On Error GoTo err_handler

listArray = Application.GetCustomListContents(1)

For i = LBound(listArray, 1) To UBound(listArray, 1)

WorkSheets("Sheet1").Cells(i, 1).Value = listArray(i)

Next i

Exit Sub

err_handler:

MsgBox "Custom list does not exist"

End Sub

本示例假设使用外部数据源在 Sheet1 上建立一个“数据透视表”。示例在新的工作表中插入 SQL 连接字符串和查询字符串。

Set newSheet = ActiveWorkbook.Worksheets.Add

sdArray = WorkSheets("Sheet1").UsedRange.PivotTable.SourceData

For i = LBound(sdArray) To UBound(sdArray)

newSheet.Cells(i, 1) = sdArray(i)

Next i


With 语句示例 (Microsoft Excel)

以下示例添加一个新的菜单栏然后激活这个菜单栏。在执行这个示例后，可以使用 MenuBars(xlModule).Activate 来恢复 Visual Basic 的“模块”菜单。

With MenuBars.Add("Stock Chart")

With .Menus.Add("File")

.MenuItems.Add "Update", "UpdateProc"

.MenuItems.Add "Print", "PrintProc"

End With

End With

MenuBars("Stock Chart").Activate

本示例在 Sheet1 的 A1:K11 单元格中建立一个格式化的多应用表。

Set dataTableRange = WorkSheets("Sheet1").Range("A1:K11")

Set rowInputCell = WorkSheets("Sheet1").Range("A12")

Set columnInputCell = WorkSheets("Sheet1").Range("A13")

WorkSheets("Sheet1").Range("A1").Formula = "=A12*A13"

For i = 2 To 11

WorkSheets("Sheet1").Cells(i, 1) = i - 1

WorkSheets("Sheet1").Cells(1, i) = i - 1

Next i

dataTableRange.Table rowInputCell, columnInputCell

With WorkSheets("Sheet1").Range("A1").CurrentRegion

.Rows(1).Font.Bold = True

.Columns(1).Font.Bold = True

.Columns.AutoFit

End With


SolverAdd 函数示例

本示例在一个商业问题中使用规划求解函数使总利润最大。SolverAdd 函数被用来向当前问题添加三个约束条件。

Worksheets("Sheet1").Activate

SolverReset

SolverOptions precision:=0.001

SolverOK setCell:=Range("TotalProfit"), _

maxMinVal:=1, _

byChange:=Range("C4:E6")

SolverAdd cellRef:=Range("F4:F6"), _

relation:=1, _

formulaText:=100

SolverAdd cellRef:=Range("C4:E6"), _

relation:=3, _

formulaText:=0

SolverAdd cellRef:=Range("C4:E6"), _

relation:=4

SolverSolve userFinish:=False

SolverSave saveArea:=Range("A33")


SolverChange 函数示例

本示例装入保存在 Sheet1 上以前计算出的规划求解模型 ，改变其中的一个约束条件，然后，再次求解模型。

Worksheets("Sheet1").Activate

SolverLoad loadArea:=Range("A33:A38")

SolverChange cellRef:=Range("F4:F6"), _

relation:=1, _

formulaText:=200

SolverSolve userFinish:=False


SolverDelete 函数示例

本示例装入保存在 Sheet1 上以前计算出的规划求解模型，改变其中的一个约束条件，然后，再次求解模型。

Worksheets("Sheet1").Activate

SolverLoad loadArea:=Range("A33:A38")

SolverDelete cellRef:=Range("C4:E6"), _

relation:=4

SolverSolve userFinish:=False


SolverFinish 函数示例

本示例装入保存在 Sheet1 上以前计算出的规划求解模型，再次求解模型，然后在一个新的工作表上产生一个结果报告。

Worksheets("Sheet1").Activate

SolverLoad loadArea:=Range("A33:A38")

SolverSolve userFinish:=True

SolverFinish keepFinal:=1, reportArray:=Array(1)


SolverFinishDialog 函数示例

本示例装入保存在 Sheet1 上的以前计算出的规划求解模型，再次求解模型，然后使用两个预置的选项来显示“完成”对话框。

Worksheets("Sheet1").Activate

SolverLoad loadArea:=Range("A33:A38")

SolverSolve userFinish:=True

SolverFinishDialog keepFinal:=1, reportArray:=Array(1)


SolverGet 函数示例

本示例在没有使用 Sheet1 上的规划求解时显示一个信息。

Worksheets("Sheet1").Activate

state = SolverGet(typeNum:=1)

If IsError(state) Then

MsgBox "You have not used Solver on the active sheet"

End If


SolverLoad 函数示例

本示例装入保存在 Sheet1 上以前计算出的规划求解模型，改变其中的一个约束条件，然后再次求解模型。

Worksheets("Sheet1").Activate

SolverLoad loadArea:=Range("A33:A38")

SolverChange cellRef:=Range("F4:F6"), _

relation:=1, _

formulaText:=200

SolverSolve userFinish:=False


SolverOK 函数示例

本示例在一个商业问题中使用规划求解函数使总利润最大。SolverOK 函数通过指定 setCell、maxMinVal、和 byChange 参量来定义一个问题。

Worksheets("Sheet1").Activate

SolverReset

SolverOptions precision:=0.001

SolverOK setCell:=Range("TotalProfit"), _

maxMinVal:=1, _

byChange:=Range("C4:E6")

SolverAdd cellRef:=Range("F4:F6"), _

relation:=1, _

formulaText:=100

SolverAdd cellRef:=Range("C4:E6"), _

relation:=3, _

formulaText:=0

SolverAdd cellRef:=Range("C4:E6"), _

relation:=4

SolverSolve userFinish:=False

SolverSave saveArea:=Range("A33")


SolverOKDialog 函数示例

本示例装入保存在 Sheet1 上以前计算出的规划求解模型，重新设置所有的规划求解选项，然后显示“规划求解参数”对话框。以后就可以手动使用规划求解。

Worksheets("Sheet1").Activate

SolverLoad loadArea:=Range("A33:A38")

SolverReset

SolverOKDialog setCell:=Range("TotalProfit")

SolverSolve userFinish:=False


SolverOptions 函数示例

本示例设置“精度”选项为 .001。

Worksheets("Sheet1").Activate

SolverReset

SolverOptions precision:=0.001

SolverOK setCell:=Range("TotalProfit"), _

maxMinVal:=1, _

byChange:=Range("C4:E6")

SolverAdd cellRef:=Range("F4:F6"), _

relation:=1, _

formulaText:=100

SolverAdd cellRef:=Range("C4:E6"), _

relation:=3, _

formulaText:=0

SolverAdd cellRef:=Range("C4:E6"), _

relation:=4

SolverSolve userFinish:=False

SolverSave saveArea:=Range("A33")


SolverSave 函数示例

本示例在一个商业问题中使用规划求解函数使总利润最大。SolverSave 函数在当前工作薄中的一个区域保存当前问题。

Worksheets("Sheet1").Activate

SolverReset

SolverOptions precision:=0.001

SolverOK setCell:=Range("TotalProfit"), _

maxMinVal:=1, _

byChange:=Range("C4:E6")

SolverAdd cellRef:=Range("F4:F6"), _

relation:=1, _

formulaText:=100

SolverAdd cellRef:=Range("C4:E6"), _

relation:=3, _

formulaText:=0

SolverAdd cellRef:=Range("C4:E6"), _

relation:=4

SolverSolve userFinish:=False

SolverSave saveArea:=Range("A33")


SolverSolve 函数示例

本示例在一个商业问题中使用规划求解函数使总利润最大。SolverSolve 函数运行规划求解算法。

Worksheets("Sheet1").Activate

SolverReset

SolverOptions precision:=0.001

SolverOK setCell:=Range("TotalProfit"), _

maxMinVal:=1, _

byChange:=Range("C4:E6")

SolverAdd cellRef:=Range("F4:F6"), _

relation:=1, _

formulaText:=100

SolverAdd cellRef:=Range("C4:E6"), _

relation:=3, _

formulaText:=0

SolverAdd cellRef:=Range("C4:E6"), _

relation:=4

SolverSolve userFinish:=False

SolverSave saveArea:=Range("A33")


SolverReset 函数示例

本示例在定义一个新的问题之前重新设置规划求解，设定其为默认值。

Worksheets("Sheet1").Activate

SolverReset

SolverOptions precision:=0.001

SolverOK setCell:=Range("TotalProfit"), _

maxMinVal:=1, _

byChange:=Range("C4:E6")

SolverAdd cellRef:=Range("F4:F6"), _

relation:=1, _

formulaText:=100

SolverAdd cellRef:=Range("C4:E6"), _

relation:=3, _

formulaText:=0

SolverAdd cellRef:=Range("C4:E6"), _

relation:=4

SolverSolve userFinish:=False

SolverSave saveArea:=Range("A33")


International 属性示例

本示例显示国际通用十进制分隔符。

MsgBox "The decimal separator is " & _

Application.International(xlDecimalSeparator)


Intersect 方法示例

本示例选定 Sheet1 上两个名为 rg1 和 rg2 区域的相交部分。如果两个区域不相交，此示例显示一条信息。

Worksheets("Sheet1").Activate

Set isect = Application.Intersect(Range("rg1"), Range("rg2"))

If isect Is Nothing Then

MsgBox "Ranges do not intersect"

Else

isect.Select

End If


Iteration 属性示例

本示例设置 Iteration 属性为真，这样以迭代来解决循环引用的问题。

Application.Iteration = True


Left 属性示例

本示例移动 Sheet1 上的椭圆1使得其与 B 列的左边界对齐。

Worksheets("Sheet1").Ovals(1).Left = _

Worksheets("Sheet1").Columns("B").Left

本示例将 Sheet1 上每一个按钮的左边界与 B 列的左边界对齐。

leftEdge = Worksheets("Sheet1").Columns("B").Left

For Each b In Worksheets("Sheet1").Buttons

b.Left = leftEdge

Next b


LibraryPath 属性示例

本示例打开库文件夹(在 Macintosh 中为宏库文件夹)上的 OSCAR.XLA 文件。

pathSep = Application.PathSeparator

f = Application.LibraryPath & pathSep & "OSCAR.XLA"

Workbooks.Open filename:=f


Lines 方法示例

本示例删除 Sheet1 上的第三行。

Worksheets("Sheet1").Lines(3).Delete

本示例使 Sheet1 上的每一行为红色。

For Each l In Worksheets("Sheet1").Lines

l.Border.ColorIndex = 3

Next l


MathCoprocessorAvailable 属性示例

本示例在数字协处理器无效时显示一个信息框。

If Not Application.MathCoprocessorAvailable Then

MsgBox "This macro requires a math coprocessor"

End If


MaxChange 属性示例

本示例设置每次迭代的最大变化值为0.1。

Application.MaxChange = 0.1


MaxIterations 属性示例

本示例设置重复操作次数的最大值为1000。

Application.MaxIterations = 1000


MemoryFree 属性示例

本示例显示一个剩余内存字节数的信息框。

MsgBox "Microsoft Excel has " & Application.MemoryFree & " bytes free"


MemoryTotal 属性示例

本示例显示一个全部可用内存字节数的信息框。

MsgBox "Microsoft Excel has " & Application.MemoryTotal & _

" total bytes available"


MemoryUsed 属性示例

本示例显示一个当前占用内存字节数的信息框。

MsgBox "Microsoft Excel is currently using " & _

Application.MemoryUsed & " bytes"


MenuBars 方法示例

本示例重新设置所有的 Microsoft Excel 中的菜单栏。

For Each mb In MenuBars

mb.Reset

Next mb

本示例在“模块表”菜单栏中添加一个新菜单。

MenuBars(xlModule).Menus.Add Caption:="&More Help"


MouseAvailable 属性示例

本示例当鼠标不存在时显示一个信息。

If Application.MouseAvailable = False Then

MsgBox "Your system does not have a mouse"

End If


MoveAfterReturn 属性示例

本示例设置 MoveAfterReturn 属性为真。

Application.MoveAfterReturn = True


Names 方法示例

本示例定义 Sheet1差中的 A1 单元格的名字为 myName。

ActiveWorkbook.Names.Add Name:="myName", RefersToR1C1:= _

"=Sheet1!R1C1"

本示例删除每一个包含“temp”的命名。包含本示例的任意模块的顶部必须加入 Option Compare Text 语句。

For Each nm In ActiveWorkbook.Names

If nm.Name Like "*temp*" Then

nm.Delete

End If

Next nm


OnData 属性示例

本示例当数据进入 Sheet1 时执行 my_Worksheet_Data_Handler。

Worksheets("Sheet1").OnData = "my_Worksheet_Data_Handler"

本示例为 Sheet1 关闭 OnData 过程。

Worksheets("Sheet1").OnData = ""


OnEntry 属性示例

本示例当数据进入 Sheet1 时执行 my_Worksheet_Entry_Procedure。

Worksheets("Sheet1").OnEntry = "my_Worksheet_Entry_Procedure"

本示例为 Sheet1 关闭 OnEntry 过程。

Worksheets("Sheet1").OnEntry = ""


OnKey 方法示例

本示例分配给 my_InsertItem_Procedure 的组合键为 CTRL+加号，分配给 my_SpecialPrint_Procedure 的组合键为 SHIFT+CTRL+右箭头。

Application.OnKey "^{+}", "my_InsertItem_Procedure"

Application.OnKey "+^{RIGHT}", "my_SpecialPrint_Procedure"

本示例返回 SHIFT+CTRL+右箭头组合键的初始含义。

Application.OnKey "+^{RIGHT}"

本示例取消 SHIFT+CTRL+右箭头组合键。

Application.OnKey "+^{RIGHT}", ""


OnTime 方法示例

本示例从当前时刻起执行15秒钟 my_Procedure。

Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"

本示例在下午5点执行 my_Procedure。

Application.OnTime TimeValue("17:00:00"), "my_Procedure"

本示例从上一示例中取消 OnTime 设置。

Application.OnTime TimeValue("17:00:00"), "my_Procedure",,False


OnWindow 属性示例

本示例在用户从其它工作薄窗口切换到 STOCKS.XLS 窗口时执行 my_Stock_Procedure。

Application.Windows("STOCKS.XLS").OnWindow = "my_Stock_Procedure"

本示例为 STOCKS.XLS 窗口关闭 OnWindow 过程。

Application.Windows("STOCKS.XLS").OnWindow = ""


OperatingSystem 属性示例

本示例显示操作系统的名称。

MsgBox "Microsoft Excel is using " & Application.OperatingSystem


OrganizationName 属性示例

本示例显示注册单位名。

MsgBox "The registered organization is " & Application.OrganizationName


Ovals 方法示例

本示例删除 Sheet1 中每一个椭圆（oval）。

Worksheets("Sheet1").Ovals.Delete

此示例改变 Sheet1 中 椭圆1（oval 1）的颜色为红色。

Worksheets("Sheet1").Ovals(1).Border.ColorIndex = 3


Path 属性示例

这个示例显示 Microsoft Excel 的全部路径。

MsgBox "The path is " & Application.Path


PathSeparator 属性示例

这个示例显示当前路径分隔符。

MsgBox "The path separator character is " & Application.PathSeparator


Pictures 方法示例

此示例删除 Sheet1 上每一个图片。

Worksheets("Sheet1").Pictures.Delete

本示例改变 Sheet1 上图片1（picture one）边框的颜色为红色。

Worksheets("Sheet1").Pictures(1).Border.ColorIndex = 3


PreviousSelections 属性示例

这个示例显示所有先前选定项目的单元格地址。如果没有先前选定，则 LBound 函数返回一个错误。这个错误被捕捉并出现一个信息框。

On Error GoTo noSelections

For i = LBound(Application.PreviousSelections) To _

UBound(Application.PreviousSelections)

MsgBox Application.PreviousSelections(i).Address

Next i

Exit Sub

On Error GoTo 0

noSelections:

MsgBox "There are no previous selections"


Quit 方法示例

本示例保存所有打开的工作簿然后关闭 Microsoft Excel。

For Each w In Application.Workbooks

w.Save

Next w

Application.Quit


RecordRelative 属性示例

在个示例中，当 RcordRelative 为 False 时以 A1 样式显示 Sheet1 上当前单元格的地址。否则，以 R1C1 样式显示地址。

Worksheets("Sheet1").Activate

If Application.RecordRelative = False Then

MsgBox ActiveCell.Address(ReferenceStyle:=xlA1)

Else

MsgBox ActiveCell.Address(ReferenceStyle:=xlR1C1)

End If


Rectangles 方法示例

此示例删除 Sheet1 上每一个矩形（rectangle）。

Worksheets("Sheet1").Rectangles.Delete

本示例 Sheet1 中矩形（1）的颜色为红色。

Worksheets("Sheet1").Rectangles(1).Border.ColorIndex = 3


ReferenceStyle 属性示例

此示例显示当前引用样式。

If Application.ReferenceStyle = xlR1C1 Then

MsgBox ("Microsoft Excel is using R1C1 references")

Else

MsgBox ("Microsoft Excel is using A1 references")

End If


RegisteredFunctions 属性示例

本示例创建一个注册功能列表，在 Sheet1 上的每一行放置一个注册功能。A 列上放有 DLL 或全部路径和文件名或源程序，B 列包含有程序名，C 列有参量的数据类型代码。

theArray = Application.RegisteredFunctions

If IsNull(theArray) Then

MsgBox "No registered functions"

Else

For i = LBound(theArray) To UBound(theArray)

For j = 1 To 3

Worksheets("Sheet1").Cells(i, j).Formula = theArray(i, j)

Next j

Next i

End If


Repeat 方法示例

本示例重复上一个用户接口命令。此示例在宏的第一行。

Application.Repeat


Rows 方法示例

此示例删除 Sheet1 中的第三行。

Worksheets("Sheet1").Rows(3).Delete

本示例显示 Sheet1 选定内容的行数。如果选定的区域多于一个，则此示例循环到每一个区域。

Worksheets("Sheet1").Activate

areaCount = Selection.Areas.Count

If areaCount <= 1 Then

MsgBox "The selection contains " & _

Selection.Rows.Count & " rows."

Else

i = 1

For Each a In Selection.Areas

MsgBox "Area " & i & " of the selection contains " & _

a.Rows.Count & " rows."

i = i + 1

Next a

End If


Save 方法示例

本示例保存当前工作簿。

ActiveWorkbook.Save

此示例保存所有打开的工作簿然后关闭 Microsoft Excel。

For Each w In Application.Workbooks

w.Save

Next w

Application.Quit


ScreenUpdating 属性示例

这个示例演示如何关掉屏幕更新以使程序运行得更快。示例隐藏了 Sheet1 中其它列，并保留运行所用的时间。第一次运行时隐藏了列，屏幕更新打开，第二次运行时则屏幕更新关闭。当运行此示例时，可以比较示例显示在信息框中的两个时间。

Dim elapsedTime(2)

Application.ScreenUpdating = True

For i = 1 To 2

If i = 2 Then Application.ScreenUpdating = False

startTime = Time

Worksheets("Sheet1").Activate

For Each c In ActiveSheet.Columns

If c.Column Mod 2 = 0 Then

c.Hidden = True

End If

Next c

stopTime = Time

elapsedTime(i) = (stopTime - startTime) * 24 * 60 * 60

Next i

Application.ScreenUpdating = True

MsgBox "Elapsed time, screen updating on: " & elapsedTime(1) & _

" sec." & Chr(13) & _

"Elapsed time, screen updating off: " & elapsedTime(2) & _

" sec."


Selection 属性示例

此示例清除 Sheet1 中的选定内容(假设选定内容是单元格的一个区域)。

Worksheets("Sheet1").Activate

Selection.Clear

本示例显示所选定的 Visual Basic 对象类型。试用此示例选定单元格、选定一个单一的椭圆（oval）、和选定几个不同的图形对象。

Worksheets("Sheet1").Activate

MsgBox "The selection object type is " & TypeName(Selection)


SendKeys 方法示例

此示例使用 SendKeys 方法来退出 Microsoft Excel for Windows。

Application.SendKeys("%fx")


Background 属性

返回或设置文本背景类型（可以是 xlAutomatic、xlOpaque 或 xlTransparent）。该属性只用于图表中的文本。可读写。


Bold 属性

若字体为粗体则为 True。可读写。


Italic 属性

若字体为斜体则为 True。可读写。


Outline 属性

存取器，返回代表指定工作表中的分级显示的 Outline 对象。


Strikethrough 属性

若字体加删除线则为 True。可读写。


Underline 属性

返回或设置用于字体的下划线类型，如下表所示。可读写。

值	表示

xlNone	无下划线。

xlSingle	单下划线。

xlDouble	双下划线。

xlSingleAccounting	会计用单线。

xlDoubleAccounting	会计用双线


在 Visual Basic 中使用数组

当需要对一组相关的值进行操作时，可使用数组变量。例如，您需要画一个反映一年中每天支出的图表，没有必要申明356个变量，只需申明一个具有 356 个单元的数组变量。数组中的每个单元存储一个值。如下语句申明了一个具有 356 个单元的数组变量 expense（默认的第一个单元索引号为0）

Dim expense(364) as Currency

要设置一个单元的值，必须指定此单元的索引号。下例将初始值 20 赋给数组中的每个单元。

Sub FillArray()

Dim expense(364) As Currency

Dim counter As Integer

For counter = 0 to 364

expense(counter) = 20

Next

End Sub

改变数组的下边界

默认的第一个单元索引号为0。您可以在模块表的开始处使用 Option Base 语句将默认的第一个单元索引号改为1。如下语句申明了一个具有 356 个单元的数组变量 expense（默认的第一个单元索引号为1）

Option Base 1

Dim expense(365) as Currency

提示:由于对象集的索引号是以1为首值的，因此在使用数组和对象集的模块表的开始处加入 Option Base 1 语句将是非常有用的。

还可使用 To 子句设置明确的下边界，如下例。

Dim Expense(1 To 365) As Currency

Dim weekday(7 To 13) As String

将变体形的值存在数组中

有两种方法来创建变体形数组。一种方法是申明 Variant 数据类型的数组。如下例所示：

Sub ArrayVar()

Dim myData(4) As Variant

myData(1) = "Claudia Bendel"

myData(2) = "4242 Maple Blvd"

myData(3) = 38

myData(4) = Format("06-09-1952", "General Date")

End Sub

另一种方法是将 Array 函数返回的数组赋给变体形数据类的变量。如下例所示：

Option Base 1

Sub VarArray()

Dim myData As Variant

myData = Array("Claudia Bendel", "4242 Maple Blvd", 38, _

Format("06-09-1952", "General Date"))

End Sub

注意，无论用哪种方法创建的数组，都使用索引号来确定变体形数组的单元。例如，如下的语句可加到前两例的任意一个之后。

MsgBox myData(1)&"data recorded"

重要事项：当创建变体形数组时，注意每个单元占用16字节的内存。详细内容，请参阅在创建数组时节省空间。

在数组和单元格之间移动数据

可以使用数组对工作表上的一系列值进行操作。使用 For...Next 循环可高效地将单元格中的值赋给数组，反之亦然。如下例所示。FillArray 过程把 Sheet1 的 A1：A12 单元格中的值赋给一个字符串数组。FillCells过程把字符串数组中的值赋给工作表2的 A1：L1 单元格。

Dim myArray(1 To 12) As String

Sub FillArray()

For x = 1 To 12

myArray(x) = Worksheets("Sheet1").Cells(x, 1).Value

Next

End Sub

Sub FillCells()

For x = 1 To 12

Worksheets("Sheet2").Cells(1, x).Value = myArray(x)

Next

End Sub

使用多维数组

在 Visual Basic 中，可申明多达60维的数组。例如，如下语句申明了一个两维5×10的数组。

Dim multi(1 To 5,1 To 10) As Single

使用嵌套的 For...Next 语句来处理多维数组。下面的过程将 Sheet1 的 A1：J5 单元格中的单精度值赋给两维数组。

Sub FillMulti()

Dim i, j As Integer

Dim multi(1 To 5, 1 To 10) As Single

For i = 1 To 5

For j = 1 To 10

multi(i, j) = Worksheets("Sheet1").Cells(i, j).Value

Next j

Next i

End Sub

更多的示例

有关使用 VisaulBasic 数组的更多的示例，请参阅 Examples 文件夹中的 Samples.xls 文件。


在 VisaulBasic 中申明可重定义大小的数组

当您并不知道数组的确切大小，并希望在程序运行时改变数组的大小，可以使用动态数组。要达到此目的，仅需在使用 Static,Dim,Private,Public 语句申明变量时在括号中不添加值，如下例所示。

Dim newArray() As Single

之后，在此数组有效的过程中使用 Redim 语句改变维数，并确定每维的单元个数及其上下界。您可以随时随地使用 ReDim 语句改变动态数组的维数。

下例找到 Sheet1 中的当前区域（包含当前单元格并由空单元格包围的区域），然后计算行数和列数，使用这些数据重新定义动态数组 myArray 每一维的上边界。

Dim myArray()

Sub FindBounds()

Dim myRange As Range

Set myRange = Worksheets("Sheet1").Range("A1").CurrentRegion

r = myRange.Rows.Count

c = myRange.Columns.Count

ReDim myArray(1 To r, 1 To c)

End Sub

保护动态数组中的数据

每次当您使用 ReDim 语句时，数组中存储的所有值将会丢失。为保留已有的数据，可使用 Preserve 关键字。例如，下面语句将 myArray 的大小增加10个单元，同时保存了原始单元的当前值。

Redim Preserve myArray(UBound(myArray)+10)

注释：

l	若使用 Preserve 关键字，则只能改变数组最后一维的上边界。

l	若在动态数组中使用 Preserve 关键字，则不能改变动态数组的维数。


在创建数组时节省空间

如果不指定数据类型，数组将自动设置为变体形数据。变体形数组中的每个单元占用16字节的内存。通过指定数组的数据类型，可节省数组占用的内存空间。

' Integer array uses 20 bytes (10 elements * 2 bytes).

Option Base 1

Dim myIntegerArray(10) As Integer

' Double-precision array uses 80 bytes (10 elements * 8 bytes).

Option Base 1

Dim myDoubleArray(10) As Double

' Variant array uses at least 160 bytes (10 elements * 16 bytes).

Option Base 1

Dim myVariantArray(10) As Variant

有关各种数据类型的数组单元所占用的内存空间的详细信息，参见数据类型总结 。

数组中单元数的最大值决定于可用内存的大小。您一般不会达到此上限，但如果使用的数组所占空间超过了系统随机存取内存则将使程序运行缓慢。这是由于数据需要向硬盘读写。


与其他应用程序交换信息

除了处理 Microsoft Excel 的数据外，应用程序也许还需要与其他应用程序如 Word, PowerPoint, 或 Microsoft Project 等交换数据。通过 OLE 自动化或动态数据交换（DDE）可与其他应用程序交换信息。

提示：有关在 Microsoft Excel 中使用 OLE 动态数据交换（DDE）的详细信息，请参阅 Microsoft 出版的下述图书：

Microsoft Excel/Visual Basic for Windows 95 Programmer's Guide(Miscrosoft Press,1995), ISBN 1-55615-819-X

Developing Microsoft Excel Solutions, 2nd ed., by Eric Wells (Microsoft Press, 1995), ISBN 1-55615-893-9

这些书籍可从各地的计算机书店或直接从 Microsoft 出版社购买。信用卡订购：1—800—MSPRESS（1—800—677—7377）。CompuServe：GO MSP。要得到 Microsoft 出版社的当前书目，请打电话：1—800—MSPRESS。

OLE 自动化

OLE 自动化能够引用其他应用程序的对象、属性和方法，获取数据并编辑和输出。可以被其他应用程序引用的应用程序对象称为 OLE 自动化对象。

若要在 Microsoft Excel 中使用 OLE 与其他应用程序交换数据，应首先使用CreateObject 或 GetObject 获得此应用程序的引用。然后使用该应用程序的对象、属性和方法来增加、改变和删除信息。完成修改后，应关闭此应用程序。

有关引用对象库和使用其中对象的详细信息，请参阅 OLE Automation 。

动态数据交换（DDE）

动态数据交换（DDE） 是允许两个应用程序之间自动通过 DDE“通道”连续交换信息的一组协议。很多不支持 OLE 自动化的应用程序支持 DDE。若要控制 DDE 对话，需要先建立一个通道，再选择主题、申请和发送信息，最后关闭通道。下表列出 Microsoft Excel 通过 DDE 完成的任务，以及 Visual Basic 中控制每个任务的方法。

任务	方法
启动 DDE	DDEInitiate
从其他应用程序得到文字	DDERequest
向其他应用程序发送文字	DDEPoke
在其他应用程序中执行命令	DDEExecute
结束 DDE	DDETerminate
其他示例

有关使用 OLE 和 DDE 在程序间交换信息的更多的例子，请参阅在 Examples 文件夹中的 Samples.xls 文件。


检索外部数据

若要使用数据访问类（DAO）库中的对象、方法和属性，可以打开数据库，设计并运行查询功能提取一个记录集，然后将数据返回到您的 Microsoft Excel 工作簿。

若要使用 DAO，首先应从工作簿上创建对 DAO 库的引用。要创建该引用，应先激活一个 Visual Basic 模块表，在“工具”菜单上选择“引用”选项，然后在“现有引用”框中选用 Microsoft DAO3.0 对象库。

使用 OpenDatabase 方法连接到一个数据库并打开它。打开数据库后使用 OpenRecordset 访问表或进行查询。使用 Move 方法在记录集中移动。可使用 Seek 方法来找到特定的记录。

如果只需要一个子集而不是全部记录集，可使用 CreateQueryDef 方法来设计一个定制的查询来选择满足要求的记录。

创建好所需的记录集后，即可使用 CopyFromRecordset 方法把数据由数据库复制到您的 Microsoft Excel 工作簿中。完成对数据库的操作后，最好使用 Close 方法关闭此数据库以节省内存。

有关使用 DAO 库来引用外部数据的详细信息，请参阅以下主题：

Data Access Objects Overview

Using Data Access

使用 SQL和 DAO检索数据

使用 DAO 访问外部数据库

使用 DAO 访问 ODBC 数据库中的数据

其他示例

有关使用 DAO 更多的例子，请参阅在 Examples 文件夹中的 Samples.xls 文件。


编写国际应用代码

在装机过程中，无论使用的是哪种语言版本的 Microsoft Excel，Microsoft Excel 将英文版的类库登记为默认类库。然而，如果将合适的 Visua Basic 对象库装入 Windows 的系统文件夹，并将相应的 Microsoft Excel 对象库装入 Microsoft Excel 的程序文件夹，就可以使用其他语言进行 Visua Basic 编程。您的编程语言可以与 Microsoft Excel 的语言不同，因为对象库将您的代码转化成能在任何语言版本的 Microsoft Excel 中运行的形式。

选择编程语言

1. 激活一个 Visua Basic 模块表，选择“工具”菜单的“选项”命令。

2. 单击“模块表一般设置”选项卡。

3. 单击“默认值”按钮。

4. 在语言/国家下拉列表框中，选择所需语言和国别。

Visua Basic 使用操作系统的本地设置翻译和显示输入到对话框和工作簿单元格中的数字、日期和货币符号。操作系统的本地设置可以与 Microsoft Excel 的“模块表一般设置”选项卡上设置的编程语言不同。

选择操作系统的本地设置

1. 在 Windows95 的“开始”菜单中，选择“设置”，然后选择“控制面板”。

2. 双击“区域设置”。

3. 在“区域设置”选项卡中，选择所需国别设置值。

使用以下规则编写 Visua Basic 代码，可使之在其他区域设置下也能有效地运行。此规则有三种方案，其中第一种方案最安全且最有可能得到预期的结果。如果您能理解这三种方案，可更好的预测所发布代码的运行效果。

n	用英语编写代码（在“模块表一般设置”选项卡中设定：英语/美国）。此代码将能运行在任何运行 Microsoft Excel 的计算机上，因为在装机过程中 Microsoft Excel 将英文版的类库登记为默认类库。

n	用本地语言编写代码，并与正确的对象库文件一同发布。如果装上了相应的对象库，此代码在本地的机器上将正确运行。有关语言和相应对象库的完整列表，请参阅对象库文件名。

n	用本地语言编写代码,并与对应语言的对象库文件一同发布。此代码只能在装有合适对象库的机器上正确运行。有关语言和相应对象库的完整列表，参见对象库文件名。

注释  在“模块表一般设置”选项卡设为英语/（自定义）的情况下，不要编写用于发布到其他机器的 Visual Basic 代码。此环境下编写的代码无法在其他机器中正常运行。


对象库文件名

除非用英语编写 Visual Basic 代码，否则发布应用程序时，必须包括与编程所用语言相对应的对象库。下表列出最常见的对象库文件名。

语言	Microsoft Excel for Windows 95	应用程序使用的 Visual Basic
English	XL5EN32.OLB	VBAEN32.OLB
French	XL5FR32.OLB	VBAFR32.OLB
German	XL5DE32.OLB	VBADE32.OLB
Spanish	XL5ES32.OLB	VBAES32.OLB
Italian	XL5IT32.OLB	VBAIT32.OLB
Portuguese (Portugal)	XL5PTG32.OLB	VBAPTG32.OLB
Portuguese (Brazil)	XL5PTB32.OLB	VBAPTB32.OLB
Swedish	XL5SV32.OLB	VBASV32.OLB
Norwegian	XL5MP32.OLB	VBAMP32.OLB
Finnish	XL5FO32.OLB	VBAFO32.OLB
Dutch	XL5NL32.OLB	VBANL32.OLB
Danish	XL5DA32.OLB	VBADA32.OLB

任何语言的对象库文件可以从 CompuServe 卸装。与 CompuServe 连接后，请到 Microsoft Software Library(GO MSL).查找关键字“object”或“library”，然后卸装您所需要的文件。


检查代码的语法错误

在默认状态，当输入一个模块时，Visual Basic 将检查代码的语法错误。在语法检查开关打开时，按下 Enter 键，代码中有错误的行将变为红色。

打开或关闭语法复选框

1.	在“工具”菜单中，单击“选项”命令。

2.	在“模块表一般设置”选项卡中，选中或清除“显示语法错误”复选框。

产生语法错误的一般原因

下列是一些产生语法错误的一般原因：

  在字符串的前后忽略了引号。

  在变量表中忽略了表分隔符或逗号。

  在方法中使用了不该使用的括号。

  拼错了关键字。

  在一个控制结构中忽略了 End 语句(例如，在多行 If...Then...Else 语句后忽略了 End If )。

避免其它常见错误

有些错误不被标识为语法错误，只有在 Visual Basic 试图对代码进行编译或执行时才出现错误信息。另外一些错误则在程序中显示为不希望的结果。下面是在编写程序时避免此类错误应采取的一些简单措施：

  检查辅助方法及属性的拼写错误。常见的错误如在辅助方法 Workbooks 或 Worksheets 后忘掉了“s”。因为 Workbook 和 Worksheet 是有效的关键字，Visual Basic 不将它们认为是语法错误；然而，当执行程序时它们将出错。

  检查代码中拼错的字。如果在模块的顶部没有使用 Option Explicit 语句，那么拼错了的字将被翻译为一个新的变量。这可能不产生错误信息，但是执行代码可能产生意想不到的结果。

有关调试的其他信息，请参阅如何使用Debug 窗口。


使用 MsgBox 检查简单的错误

MsgBox 函数显示 Visual Basic 内部的对话框来暂停代码的执行并检查错误。当出现信息框时，程序将暂时停止。单击信息框上的某个按钮时，程序继续执行。在编写和测试程序时，可以使用该信息框显示代码中任意位置的一个变量或表达式的值。

例如，可以在循环语句中插入一个信息框来检查循环语句块每次重复后得到的值。

Sub CheckLoop()

num = 10

Do While num > 5

square = num ^ 2

MsgBox "The squared value is " & square

num = num - 1

Loop

End Sub

注意，当使用 MsgBox 函数来显示信息时，可以省略括号以忽略返回值。只需键入 MsgBox 和要显示的字符串或变量即可。使用 (&) 用于连接一个字符串名或表达式。

提示  如果代码产生一个包含 MsgBox 函数的死循环，将注释掉 MsgBox 函数所在的行。

有关调试的详细内容，请参阅如何使用Debug 窗口。


命名冲突错误

当试图建立一个 Visual Basic 认为已经定义过的标识符时，将出现命名冲突。在某些情况下，命名冲突产生如“Ambiguous name detected”或“Duplicate declaration in current scope”之类的错误。在另一些情况下，命名冲突未被发现，则可能产生错误的代码和错误的结果。

如果理解数据标识符的作用域特性、对象和过程，则大部分命名冲突均可避免。Visual Basic 有三种作用域级别 procedure、private、和 public。当一个标识符在一个以上作用域级别是可见的，或者在一个作用域级别中有两种不同的含义时将产生命名冲突错误。例如，在不同的模块表中可以有相同的过程名。这样，过程名“MySub”定义于两个模块“Mod1”和“Mod2”中。当过程只被自身模块调用时不会产生冲突。然而，如果从第三个模块表调用“MySub”并且没有提供区分两个“MySub”的限制，则产生命名冲突。

大多数命名冲突可以通过在名字前加限制的方法解决。该限制由模块表名构成，如果必要也可由模块表名和工作薄名构成。以下示例使用了工作表复选框中的值来确定哪个名为“Report”的过程从名为“Sales96.xls”的工作薄上执行。此过程在名为“Quarterly”或“Yearly”的模块表中。

If Worksheets("Options").CheckBoxes("ShowQuarters").Value = xlOn Then

[Sales96.xls].Quarterly.Report

Else

[Sales96.xls].Yearly.Report

End If

也可使用足以区分匹配标识的任意组合。

提示

  命名冲突引起的典型错误包括：含义不准确的名字，重复声明，未声明的标识符和未发现的过程等。

  每个模块表用 Option Explicit 语句开始，在变量使用前加以变量说明可避免一些可能的命名冲突和相对标识符错误。

有关调试的详细内容，请参阅如何使用“调试”窗口。


错误捕捉

可以使用 On Error GoTo 语句来捕捉和引导程序进入到模块中 error-handling 语句所在的位置。例如，下列语句将控制流引导到 myErrorCheck 表。

On Error GoTo myErrorCheck

可将 Exit Sub 语句放置在 myErrorCheck 之前，这样，如果没有错误出现时，程序将不执行错误检查语句。

Exit Sub

myErrorCheck:

MsgBox "Error number " & Err & ": " & Error(Err)

Resume Next

End Sub

Err 函数返回对应最近执行错误的数字。对类似于任意 public 变量中含有一个整数的错误起作用。Error 函数返回一个对应于给定错误数字的信息文本。

有关调使用 error-handling 语句处理的 Visual Basic 中的错误列表的详细内容，请参阅可捕获的错误信息。有关设置错误捕捉和编写 error-handling 语句的详细内容，请参阅Microsoft Excel/Visual Basic for Windows 95 程序员手册。

有关调试的详细内容，请参阅如何使用Debug 窗口。

其他示例

有关错误捕捉的更多示例，请参阅 Samples 文件夹中的 Samples.xls。


有关调试的提示

通过调试代码，可以发现并改正其中的错误。下面是三种在执行宏时可能遇到的错误：

  当 Visual Basic 试图编译结构不正确的代码时会出现语言错误。语言错误的一个例子是 Next 语句没有对应的 For 语句。语言错误包括 Visual Basic "grammar." 中的语法错误，其中包括关键字的误拼，括号使用不当(特别是用于方法中参量的括号)，或省略了列表分隔符或引号。

  当宏开始执行时出现执行错误。执行错误的例子包括一个非法操作，如向一个不存在的文档进行写操作或被(零)除。

  如果宏能够成功执行，但产生不正确的结果时将产生逻辑错误。要找到这类错误，则必须使用“调试”窗口来完成执行宏或在其执行中插入中断以检查数值和控制流。

有关调试的详细内容，请参阅如何使用“调试”窗口。

综合调试提示

  编写宏时，将其分为许多较小且有特定目的的 Sub 和 Function 过程。

  包括有关程序的提示或代码的备注。

  在模块的开头使用 Option Explicit 语句。这要求对所有的变量进行声明。当 Visual Basic 发现到某个变量没用被显式声明时就出现一个错误。这样可以很容易发现拼写错了的变量名。

  使用宏记录器来确定要在代码中使用 Visual Basic 的哪个对象、方法和属性。详细内容，请参阅通过记录宏来生成代码。

  按 CTRL+G 键显示“调试”窗口。

  使用“调试”窗口的“立即”区域(Immediate� pane)来测试代码中的个别行，只需在宏暂停后改变数值。

  在程序中，当语句执行时键入 Debug.Print 跟踪一个表达式来显示“调试”窗口“立即”区域上的表达式数值。

  有关在完成调试执行代码时，设置连续监视变量或表达式数值的监视表达式，请参阅如何使用“调试”窗口。

  使用 MsgBox 来停止代码并在内部对话框中显示数值或表达式。有关详细内容，请参阅使用 MsgBox 检查简单的错误。

  发现错误后，使用“查找”和“替换”命令(“编辑”菜单)可检查其它程序或模块表中类似的错误。

  要重新设置变量并启动运行，则单击“执行”菜单上的“重新设置”按钮。

  模块可以打印输出。转换到模块，然后单击 [image] 。

  当在中断模式时，选择一个变量或表达式，然后单击 [image] 来观察其数值。

进入中断模式

  要停止一个死循环，按下 ESC 或 CTRL+BREAK.。当调试一个死循环时，需要注释掉显示于信息框内的任何语句。

  为语句设置执行代码的中断点。单击代码行，然后再单击取消中断点。单击 [image] 在某些语句处设置停止执行的中断点。单击相应代码行，然后再单击 [image] 去掉中断点。

  当增加或编辑监视表达式时，在“增加监视”或“编辑监视”对话框(“工具”菜单)中选择“值为真时中断”或“值更改时中断”复选框。监视表达式将在调试窗口的监视区中显示。

  为了使每次执行时宏自动进入中断模式，必须在要调试的语句之后添加 Stop 语句。

  设置 Visual Basic 使其在每个错误处而中断，单击“工具”菜单上的“选项”命令。在“模块表一般设置”选项卡上，选择“在每个错误点上终止”复选框。

单步执行宏

  替代单击 [image] 来执行宏，可以单击 [image] 在“调试”窗口一次执行程序的一条语句。单击 [image] 一次执行一个过程。

  在任意位置进入宏的中断模式以后，可以在“调试”窗口中单击  [image]  或 [image] 来单步执行其余的宏。

程序跟踪

  单步执行宏时，活动过程名将出现在“调试”窗口的顶部。

  要观察当前所有活动过程的调用列表，可以在“调试”窗口单击 [image] 。

命名冲突

命名冲突可能产生类似于“检测到歧义名称”或“当前作用域中有双重声明”。这样的错误。当一个标识符在一个以上作用域级别是可见的，或者在一个作用域级别中有两种不同的含义时将产生命名冲突错误。

有关定义变量、常数和过程作用域的详细内容，请参阅理解作用域和作用域范围。


作用域级别

Visual Basic 过程有三种用来确定何时、何地识别(可见)标识符的作用域级别。说明如下：

作用域	在下列作用域中可见	说明语句	引用为
过程	仅在本过程中	Dim 或 Static，在过程中说明	variable
Private	模块中所有的过程	Dim 或 Private，在模块的开始处	[module.]variable
Public	工作薄中及所有引用工作薄中模块里的所有过程	Public，在模块的开始处	[workbook.[module.]]variable


向工作表中添加控制

可以向工作表、图表或对话框编辑表中添加控制。

1 从“视图”菜单中选择“工具栏”命令。

2 在“工具栏”对话框中，选择“窗体”复选框，单击“确定”按钮，“窗体”工具栏将出现在屏幕上。

3 在“窗体”工具栏中单击所要添加的控制项，在工作簿中拖动控制项直到尺寸和形状满足要求。

4 如果该控制具有标注项，可以改变它的缺省标注来说明此控制的用途。例如，可将“复选框4”改为“显示汇总值”。

5 在编辑栏的命名区，将缺省的控制名改为有实际含义的名字，以便于记忆。例如，可将“复选框4”改为“汇总_复选”。

这个名字就是您在Visual Basic编程中需用到的名字，所以名字越好记，编程就越轻松。

有关向对话框编辑表中添加控制项的详细信息，参见创建一个自定义对话框。


将控制链接到单元格或单元格区域

您可以将复选框、选择钮、列表框、滚动条或微调控制项的值与工作表中的单元格链接。您也可以将列表框或下拉列表框中的数据，与工作表中特定的单元格区域建立链接关系。所有这些操作都不需要您编制 Visual Basic 过程。

将控制项链接到单元格：

1. 选择控制项。

2. 单击 [image] 。

3. 单击单元格链接区（即编辑区）。

4. 切换到包含欲与此控制建立链接的单元格所在的工作表，单击要链接的单元格。单元格的引用会自动出现在单元格链接区。需要建立链接时，包含链接单元格的工作表必须打开。

提示：要将控制的值与多个单元格建立链接，只要先将此控制与一个单元格建立链接，再使其它需建立链接的单元格引用此单元格即可。

在 Visual Basic 的过程中也可以使用 LinkedCell 属性来将一个控制的值与一个单元格建立链接。下例将 Dialog1 中的一个复选框与 Sheet1 中的 A1 单元格建立链接。

Sub SetLink()

DialogSheets("Dialog1").CheckBoxes("Check Box 1") _

.LinkedCell = "Sheet1!A1"

End Sub

注意：当显示一个对话框时，如果改变了与工作表中某个单元格相链接的控制的值，此单元格的值将立刻改变。取消对话框后单元格并不恢复原值。而将保留更改的值。

用单元区域中的数据填充列表框或下拉列表框

1 选中列表框或下拉列表框

2 单击

3 单击数据源输入区

4 切换到欲与此列表建立链接的单元区域所在的工作表，单击要链接的单元格区域

单元格的引用会自动出现在单元格链接区。当需要建立链接时，包含链接单元格的工作表必需打开。

在 Visual Basic 的过程中也可以使用 ListFillRange 属性来链接一个控制的值与输入单元区域。下例将 Dialog1 中的一个列表框的数据源定为当前工作簿上Sheet1中的A1:A5单元区域。

Sub SetRange()

DialogSheets("Dialog1").ListBoxes("List Box 1") _

.ListFillRange = "Sheet1!A1:A5"

End Sub

有关向对话框编辑表中添加控制的详细内容，请参阅创建自定义对话换框。


在用户自定义的对话框中初始化控制

当运行用户自定义的对话框时，一般给控制设定一些缺省值。在对话框中创建调用OnAction 属性的过程可以达到此目的。

在初始化过程中，使用 ActiveDialog 属性来调用所打开的对话框中的方法和属性。在下例中，编辑框中的文字属性被设置成空字符串，设置 Edit Box 1 为 Focus，对话框中的功能钮被清除。

Sub Initialize()

With ActiveDialog

.EditBoxes("Edit Box 1").Text = ""

.Focus = "Edit Box 1"

End With

For Each b In ActiveDialog.OptionButtons

b.Value = xlOff

Next

End Sub

将初始化过程连接到用户自定义的对话框中

在对话框显示之前，Microsoft Excel将调用赋给当前对话框 OnAction 属性的过程。

1 在当前对话框编辑表中，单击对话框的外框选中此框。

2 在“工具”菜单上，单击“给对象指定宏”命令。

3 在“宏名/引用”框中，选择要在对话框显示前运行的过程名。

指定控制的TAB键次序

当用户在对话框中重复按TAB键时，各个控制按一定的顺序获得或失去焦点，此顺序称为TAB键次序。用户不是在 Visual Basic 过程而是在对话框编辑表中确定TAB键次序。

1 在当前对话框编辑表中，在“工具”菜单上，单击“TAB键次序”命令。

在“TAB键次序”对话框中，对话框编辑表中的各控制按得到焦点的顺序排列。

2 要改变控制的TAB键次序，可先选定控制，单击移动箭头即可。

有关向对话框编辑表中添加控制的详细内容，请参阅创建自定义对话换框。


从控制中返回数据

可以通过链接控制与单元格，将控制中的值传给工作表中的单元格。这种链接是双向链接：如果单元格中的值变了，控制中的值也随之改变，反之亦然。有关控制与单元格链接的详细内容，请参阅将控制链接到单元格或单元格区域。

控制中的当前值也可以被Visual Basic过程直接调用。下例将编辑框中的文字复制到 Sheet1 中的 A1 单元格中。

Sub GetText()

newInfo = DialogSheets("Dialog1").EditBoxes("Edit Box 1").Text

Worksheets("Sheet1").Range("A1").Value = newInfo

End Sub

提示：要从列表框中返回选中的文字，请使用 Value 属性作为由 List 属性返回的列表项数组中的索引。

可以在控制的值达到要求时执行某个宏。下例中，根据检查三个选项钮是否被选中，来执行三个宏中的一个。

Sub CheckButtons()

If DialogSheets("Dialog1").OptionButtons(1) = xlOn Then Macro1

If DialogSheets("Dialog1").OptionButtons(2) = xlOn Then Macro2

If DialogSheets("Dialog1").OptionButtons(3) = xlOn Then Macro3

End Sub

您可以将这个过程赋给对话框中的“确定”键，当用户单击“确定”键时，适当的宏就会执行。有关详细信息，请参阅给控制指定宏。

注释：对话框在显示前、运行中或是关闭后，都可以在过程中读取或设置控制的属性。但只能在对话框打开时才可以设置焦点。

有关向对话框编辑表中添加控制的详细内容，请参阅创建自定义对话换框。


给控制指定宏

正如可以将一个过程指定给一个按键或图形对象，同样也可以将一个过程指定给一个控制。这项功能可用于验证或返回输入的数据，或者可以改变控制和可见对话框的操作。

给控制指定已经存在的宏

1 选定控制。

2 在“工具”菜单上，单击“给对象指定宏”命令。

3 在“宏名/引用”框中，输入在此控制被激活时要运行的过程的名字。

给控制指定新宏

1 选定控制。

2 单击 [image] 。

Microsoft Excel将打开一个显示空过程框架的Visual Basic模块表。

3 输入在此控制被激活时要运行的过程的语句。

提示：为了验证对话框中所有控制的数据，可编写执行如下操作的过程，并将此过程指定给“确定”按钮。

验证各个控制的数据的可靠性。

如果某个控制中包含无效数据，将“确定”按钮的 DismissButton 属性设为 False，然后显示某控制有无效数据的信息框。

如果所有控制中的数据全部有效，将“确定”按钮的DismissButton 属性设为 True

有关向对话框编辑表中添加控制的详细信息，请参阅创建自定义对话换框。


显示用户自定义对话框

可用 DialogSheet 对象的 Show 方法来显示用户自定义的对话框。下述过程执行Dialog1所包含的对话框。

Sub ShowDialog()

DialogSheets("Dialog1").Show

End Sub

在对话框编辑表中工作时，可单击“窗体”工具栏来试运行对话框。

注释：使用Dialog对象时 Show方法将显示内嵌的 Microsoft Excel 对话框。有关详细内容，请参阅显示 Microsoft Excel 内部对话框。

n	有关向对话框编辑表中添加控制的详细内容，请参阅创建自定义对话换框。


控制总结
控制简介

控制是用户在创建对话框时可使用的显示对象。其中的几个控制可用于加强工作表和图表的功能。例如您可使用微调控制项，每次单击微调控制项，所链接的单元格的值就增加或减少5。

要在工作表中增加控制，请使用“窗体”工具栏中的相应按钮。

有关向对话框编辑表中添加控制的详细信息，请参阅创建自定义对话换框。

 标记

静态文字。不能定义其字体和背景。

 编辑框

在编辑框中用户可以输入文字、数字或单元格引用。只用于对话框编辑表。

 分组框

包含一组控制的边界。

 创建按钮

单击此按钮，可运行指定到该按钮的宏。此类按钮也可用于取消对话框。按钮的名字可指定为任意文字。

 复选框

可显示为选中、空（未选）或灰色的小方框，，它不依赖于其他控制的状态。如果在单元格和复选框之间建立链接，此链接是双向链接。在单元格中输入TRUE或非零值，FALSE或0，#N/A将与复选框中的选中、未选、灰色相对应。这样，当复选框的状态改变时，与其链接的单元格将随之改变。

 选项按钮

选项按钮是一个代表相互间具有排它性的选项或设置的圆形按钮，它与一个或多个其它选项按钮成组放置。要使选项按钮成组放置，需在其周围放上分组框。否则，Microsoft Excel 将认为表上的所有选项按钮为相互独占的一个组。将选项组中的任意一个选项与单元格建立链接，整个选项组就与此单元格建立了链接。在链接单元中显示的值是选中按钮的顺序号。（可使用“工具”菜单中的“TAB键次序”命令来改变按钮的顺序），清除链接单元将清除组中所有选项按钮。

 列表框

列表框是一系列字符串，可以选中其中的一个或几个。可以将工作表中的一些单元格作为输入区，这些单元格中包含要出现在列表框中的各项内容。也可以将列表框链接到单元格。在链接单元中显示的值是当前选中的列表项的顺序号。改变或清除单元格的值，列表框的选定项也随之改变或清除。（如果列表框被定义为允许多项选择，链接单元格和列表框就不能相互改变值）。

 下拉列表框

下拉列表框中的文字内容不可编辑，当单击其上的箭头，它的下拉式列表就弹出。下拉列表框的属性与列表框的基本相同，只是下拉列表框在一个时刻只能选择一项。

 组合式列表—编辑框

组合式列表—编辑框是编辑框和列表框的组合。仅用于对话框。

 组合式下拉列表—编辑框

组合式下拉列表—编辑框是编辑框和下拉列表框的组合。仅用于对话框。

 滚动条

滚动条是对应于可变数值量的横向或纵向条。要创建横向滚动条，只需横向拖动即可。滚动条的滚动位置可反映与它链接的单元格中的数值。链接单元格中的值如果改变，滚动位置也随之改变，反之亦然。使用“格式”菜单上的“对象”项可以改变滚动条的最大值和最小值，以及每次单击滚动箭头或滚动区时对应值的变化量。

 微调项

微调控制项与滚动条相似，但它仅包含箭头，没有“条”。使用“格式”菜单上的“对象”命令，可以改变微调控制项的起始值和终止值，以及每次单击箭头时值的变化步长。


关于使用用户自定义对话框的提示

当使用用户自定义对话框时，如下提示将对您有所帮助。

n	有关设计对话框的一般信息，请参阅创建自定义对话换框!EF("XLVISEX.EXE","/N:10555 /F:MAINXL.HLP",1,"xlmscALERRORXL")。

n	使用 DialogSheets().Show 来显示用户自定义对话框。使用 Application.Dialogs(xlDialogConstant).Show 来显示 Microsoft Excel 内嵌的对话框。有关详细内容请参阅显示 Microsoft Excel 内部对话框xlhowDisplayingbuiltinMicrosoftExceldialogboxes>langref。

n	给对话框起一个对您有实际意义的名字。若要给对话框改名，可双击工作表标签，在“重新命名”对话框中输入新名字。

n	在对话框编辑表中增加控制时，给每个控制起一个有实际意义的名字。当您在Visual Basic 代码中引用这些控制时，所起的名字将比诸如“复选框1”等缺省名字方便得多。要给控制改名，先选中控制，在编辑栏中输入新名称，然后按 ENTER 键即可。

n	用户不能控制自定义对话框的显示位置。Microsoft Excel 将自动把对话框显示在上一次显示的位置。

n	要想知道复选组中哪个选项被选中，可查看每个 OptionButton 对象的 Value 属性。有关示例请参阅从控制中返回数据。

n	要为编辑框设置口令，应先选中编辑框，再在“格式”菜单中选择“对象”命令。在“控制”选项卡中，选中“为编辑框设置口令”复选框。

n	在加载宏中调用用户自定义对话框时，应使用 ThisWorkbook 属性来访问加载宏的工作表。如下例所示：

n	ThisWorkbook.DialogSheets("Dialog1").Show

n	当把工作表存为加载宏时文件名将改变，所以再使用原来的工作表名将无效。

n	要使数据得到验证前保持对话框可见，可将“确定”铵钮的 DismissButton 属性设置为 False。当数据得到验证后再将 DismissButton 属性设置为 True。

n	要使编辑框中的值随微调控制项的值变化，将如下的代码指定给微调控制项。

Sub ChangeEdit()

ActiveDialog.EditBoxes("Edit Box 1") _

.Text = ActiveDialog.Spinners("Spinner 1").Value

End Sub

n	要想在双击选项或列表项时不关闭对话框，可将缺省键（一般为“确定”铵钮）的 DefaultButton 属性设为 False。

n	下例演示了显示一系列对话框的有效方法。

Sub DisplayPanels()

If DialogSheets("Panel1").Show Then

If DialogSheets("Panel2").Show Then

If DialogSheets("Panel3").Show Then

'...

End If

End If

End If

End Sub

其他示例

有关显示和使用用户自定义对话框的更多例子，请参阅 Examples 文件夹中的Samples.xls文件


使用图表

Microsoft Excel 有两类图表:嵌入式图表和图表工作表。两种都属于 Chart 类。

嵌入式图表

每个代表嵌入在工作表或对话框编辑表中图表的 Chart 对象都包含在 ChartObjects 对象中。要访问工作表中的 ChartObjects 对象，请使用 ChartObjects 方法。然后使用Chart 属性来访问包含在 ChartObjects 中的图表。例如，下述过程将 Sheet1 中名为“Chart 1”的嵌入式图表的类型改为三维饼图。

Sub ThreeDee()

Sheets("Sheet1").ChartObjects("Chart 1").Chart.Type = xl3DPie

End Sub

图表工作表

每个代表工作簿中的图表工作表的 Chart 对象都包含在 WorkBook 对象中。要访问工作簿中的 Chart 对象，请使用 Charts 方法或 Sheets 方法，如下例所示。

Sub Bar()

Charts("Chart1").Type = xlBar

End Sub

Sub Pie()

Sheets("Chart1").Type = xlPie

End Sub

修改已有图表

当修改已有图表时，使用对象变量是最方便的。例如，如下过程定义了名为 myChart 的对象变量，并将其值设为活动工作簿中 Sheet1 上的 Chart1。然后又通过使用此对象变量来修改图表。

Sub EasyChart()

Dim myChart As Chart

Set myChart = Sheets("Sheet1").ChartObjects("Chart 1").Chart

myChart.Type = xl3DBar

myChart.HasTitle = True

myChart.ChartTitle.Text = "March Sales"

End Sub

增加新图表

可以使用 Charts 集合或 ChartObjects 集合中的 Add 方法来增加新图表。下例中，对象变量 myChart 被设置为新图表。然后使用 ChartWizard 方法来定义并格式化新图表。图表的数据源被定义为 Sheet1 中的 A1:B2。其它参数是 ChartWizard 的缺省设置。

Sub NewChart()

Dim myChart As Chart

Set myChart = Charts.Add

myChart.ChartWizard Source:=Worksheets("Sheet1").Range("A1:B2"), _

Gallery:=xlColumn, Format:=6, PlotBy:=xlColumns, _

CategoryLabels:=1, SeriesLabels:=0, HasLegend:=1

End Sub

下例中，同一图表被作为嵌入式图表加到 Sheet1 中。

Sub NewEmChart()

Dim myChart As Chart

Set myChart = Sheets("Sheet1").ChartObjects.Add _

(50, 40, 200, 100).Chart

myChart.ChartWizard Source:=Worksheets("Sheet1").Range("A1:B2"), _

Gallery:=xlColumn, Format:=6, PlotBy:=xlColumns, _

CategoryLabels:=1, SeriesLabels:=0, HasLegend:=1

End Sub

提示

n	如果您对创建或更改图表中的某些单元没有把握，请先使用记录宏，然后再研究其 Visual Basic 代码。

n	在模块表中，单击一单词，然后击 F1 键来显示关于此关键字的帮助信息。


使用图形对象

在 Microsoft Excel 中，图形是使用绘图工具栏上的各工具按钮绘制在工作表上的各种形状。在 Visual Basic 中，可使用相应的图形集合来添加图形对象。例如，可使用Ovals集合的 Add 方法来增加一个新的椭圆。

图形对象是使用磅数（1/72英寸）来定位的，其定位基准点在工作表的左上角。图形对象的宽度和高度也是用磅数来衡量的。使用 RGB 函数可设定图形对象的颜色。

如下过程中，将一个黄色的椭圆、一个红色的矩形和一个文本框加到活动工作簿的第一个工作表。

Sub AddYellowCircle()

With Worksheets(1).Ovals.Add(50, 70, 30, 30)

.Interior.Color = RGB(255, 255, 0)

End With

End Sub

Sub AddRedRect()

With Worksheets(1).Rectangles.Add(90, 70, 80, 30)

.Interior.Color = RGB(255, 0, 0)

End With

End Sub

Sub AddText()

With Worksheets(1).TextBoxes.Add(70, 90, 80, 30)

.Text = "My TextBox"

End With

End Sub

如下过程使用 Range 对象 myCell 的左边界、上边界、宽度和高度来确定 Ovals 集合的 Add 方法的参数。Add 方法创建了一个与单元格区域边界重合的具有红色边界的透明椭圆。

Sub CircleCell()

Dim myOval As Oval

Dim myCell As Range

Set myCell = Worksheets(1).Range("B5")

myLeft = myCell.Left - 2

myTop = myCell.Top - 2

myWidth = myCell.Width + 4

myHeight = myCell.Height + 4

Set myOval = Sheets("Sheet1").Ovals. _

Add(myLeft, myTop, myWidth, myHeight)

With myOval

.Border.ColorIndex = 3

.Interior.ColorIndex = xlNone

End With

End Sub

提示

n	如果您对创建或更改图表中的某些单元没有把握，请先记录宏，然后再研究其 Visual Basic 代码。

n	在模块表中，单击一关键字，然后击 F1 键可显示关于此关键字的帮助信息。


如何编写循环语句和判断语句

使用判断语句和循环语句（或称为控制结构），可写出具有判断能力并能重复操作的Visual Basic 代码。另一个有用的控制结构：With 语句，可以使您在无需重新选定对象的情况下执行一系列命令。

使用判断语句来作判断

判断语句判定一个条件是真还是假，并依此来确定执行一条或多条语句。一般来说，条件是使用比较运算符来比较值或变量的一段表达式。有关 Visual Basic 比较运算符的信息，请参见 运算符简介

您将使用哪种条件判断语句？

If...Then...Else: 根据条件表达式为真还是假有条件地执行分支。

Select Case: 在一系列的分支中选定一个分支。

使用循环来重复执行代码

循环使您可以重复地执行一组代码。有的循环语句重复执行代码直到条件表达式为假。有的循环语句重复执行代码直到条件表达式为真。还有的循环语句重复执行代码直到达到一个指定的次数。

您将使用哪种循环语句？

Do...Loop: 重复循环直到条件表达式为真，或重复循环直到条件表达式为假

For...Next: 使用记数器重复运行代码到指定的次数。

For Each...Next: 对集合中的每一对象执行相同的一组代码。

对同一对象执行几条语句

在 Visual Basic 中，一般要在执行方法和改变属性前确定操作的对象。对若干条语句只需使用一条With语句来确定其操作对象。

With: 对同一对象执行一系列语句。


使用 With 语句

在 Visual Basic 中 With 语句非常重要，因为对若干条语句只需使用一条 With 语句就可确定其操作对象。With 语句不但可加快程序的运行，而且可帮助您避免重复击键。

下例将一个单元格区域赋值为30，改为粗体字，并将单元格改为黄色。

Sub FormatRange()

With Worksheets("Sheet1").Range("A1:C10")

.Value = 30

.Font.Bold = True

.Interior.Color = RGB(255, 255, 0)

End With

End Sub

使用嵌套 With 语句可获得更高的效率。下例将一个公式加入单元格A1，同时改变了字体

Sub MyInput()

With Workbooks("Book1").Worksheets("Sheet1").Cells(1, 1)

.Formula = "=SQRT(50)"

With .Font

.Name = "Arial"

.Bold = True

.Size = 8

End With

End With

End Sub

定义对象变量是加快程序运行并避免重复击键的另一种方法。下例将工作表1中的单元格区域定义为对象变量 myRange 。同时对象变量被用于 With 语句和其他语句中。

Sub RandomRanges()

Dim myRange As Range

Set myRange = Worksheets("Sheet1").Range("A1:D12")

With myRange

.Formula = "=Rand()"

.Font.Bold = True

End With

myRange.Copy myRange.Offset(13, 5)

End Sub


使用 If...Then...Else 语句

可使用 If...Then...Else 语句根据条件表达式的值来执行一条或一组语句。If...Then...Else 可以嵌套任意级。然而，为了提高可读性，最好使用 Select Case 语句而不是多重嵌套的 If...Then...Else 语句。

当条件表达式的值为真时执行语句

当条件表达式的值为真时只需执行一条语句，可使用 If...Then...Else 语句的单行语法。下例示出单行语法。注意，此例没有 Else 关键字。

Sub FixDate()

myDate = #2/13/95#

If myDate < Now Then myDate = Now

End Sub

如果需执行多条语句，请使用多行语法。此语法包括 End If 语句，如下例所示。

Sub AddFormat()

Set c = Worksheets(1).Cells(1, 1)

If c.Font.Bold = True Then

c.Borders(xlBottom).LineStyle = xlDouble

c.Interior.ColorIndex = 6

End If

End Sub

在条件表达式值为真时执行一些语句，当条件表达式值为假时执行另一些语句。

可使用If...Then...Else 语句来执行两组互异的语句：一组语句在条件表达式值为真时被执行，另一组语句在条件表达式值为假时被执行。

Sub Rename()

Set wk = Worksheets(1)

If wk.Cells(1, 1).Font.Bold = True Then

heading = wk.Cells(1, 1).Value

wk.Name = heading

Else

MsgBox "Cannot rename worksheet."

End If

End Sub

在第一个条件表达式的值为假时测试第二个条件表达式

在第一个条件表达式的值为假时可以将 ElseIf 语句加到 If...Then...Else 语句中以测试第二个条件表达式。例如，下述函数过程依据工作分类来计算红利。当所有的If和ElseIf 语句的条件表达式的值为假时执行 ElseIf 语句后的语句。

Function Bonus(performance, salary)

If performance = 1 Then

Bonus = salary * 0.1

ElseIf performance = 2 Then

Bonus = salary * 0.09

ElseIf performance = 3 Then

Bonus = salary * 0.07

Else

Bonus = 0

End If

End Function


使用 Select Case 语句

可用 Select Case  语句取代包含 ElseIf 的 If...Then...Else 语句来比较同一表达式的几个不同值时。注意 If...Then...Else 语句可在每个ElseIf语句比较不同表达式，而Select Case 语句只在控制结构的开始对条件表达式的值计算一次。

下例中，Select Case 语句对传递到函数中的 performance 参数进行判断。注意，每个 Case 语句可以包含多个值，值的区间，或者值与比较运算符的混合。当所有 Case 语句都不满足时执行 Case Else 语句。

Function Bonus(performance, salary)

Select Case performance

Case 1

Bonus = salary * 0.1

Case 2, 3

Bonus = salary * 0.09

Case 4 To 6

Bonus = salary * 0.07

Case Is > 8

Bonus = 100

Case Else

Bonus = 0

End Select

       End Function


使用 Do...Loop 语句

使用 Do...Loop语句可以当条件为真或直到条件为真时执行一组语句，而不确定循环次数。

当条件为真时重复执行

有两种方法可以使用 While 关键字来检查 Do...Loop 语句的条件表达式。既可以在进入循环前检查条件表达式（如下段中的第一例），也可以在循环执行至少一次以后再检查条件表达式（如下段中的第二例）。在 ChkFirstWhile 过程中如果 myNUm 的值为9而不是20，在循环内部的语句就不会执行，在 ChkLAstWhile 过程中当条件变为假之前在循环内部的语句就只执行一次。

Sub ChkFirstWhile()

counter = 0

myNum = 20

Do While myNum > 10

myNum = myNum - 1

counter = counter + 1

Loop

MsgBox "The loop made " & counter & " repetitions."

End Sub

Sub ChkLastWhile()

counter = 0

myNum = 9

Do

myNum = myNum - 1

counter = counter + 1

Loop While myNum > 10

MsgBox "The loop made " & counter & " repetitions."

End Sub

重复执行直到条件变为真

有两种方法可以使用 Until 关键字来检查 Do...Loop 语句的条件表达式。既可以在进入循环前检查条件表达式（如下段中的第一例），也可以在循环执行至少一次以后再检查条件表达式（如下段中的第二例）。当条件为假时，循环执行。

Sub ChkFirstUntil()

counter = 0

myNum = 20

Do Until myNum = 10

myNum = myNum - 1

counter = counter + 1

Loop

MsgBox "The loop made " & counter & " repetitions."

End Sub

Sub ChkLastUntil()

counter = 0

myNum = 1

Do

myNum = myNum + 1

counter = counter + 1

Loop Until myNum = 10

MsgBox "The loop made " & counter & " repetitions."

End Sub

从 Do...Loop 语句的循环中退出

可使用 Exit Do 语句从 Do...Loop 语句的循环中退出。由于一般只有当一定条件满足时才会退出（例如为避免无限循环），所以必须在 If...Then...Else 和 Select Case 语句的条件为真语句块中使用 Exit Do 语句。当条件为假，循环继续进行。

下例中，myNum 被赋给一个导致无限循环的值。If...Then...Else 语句检查这一条件，避免了无限循环。

Sub Exit实例()

counter = 0

myNum = 9

Do Until myNum = 10

myNum = myNum - 1

counter = counter + 1

If myNum < 10 Then Exit Do

Loop

MsgBox "The loop made " & counter & " repetitions."

End Sub

注释： 要中止无限循环，请按 ESC 或 CTRL+BREAK 键


使用 For...Next 语句

可使用 For...Next语句按指定次数循环执行一组语句。For 循环语句使用计数变量来控制循环，每一循环计数变量都以一定的值重复增加或减少。

例如，如下过程使计算机连续响50次。For 循环语句确定计数变量X的起始值和终止值，Next 语句每次使计数变量增加1。

Sub Beeps()

For x = 1 To 50

Beep

Next x

End Sub

使用 Step 关键字，您可指定计数变量增加或减少的步长。下例中，计数变量J每次循环增加2。当循环结束时，total 就是2，4，6，8和10的总和。

Sub TwosTotal()

For j = 2 To 10 Step 2

total = total + j

Next j

MsgBox "The total is " & total

End Sub

要减少计数变量的值，您可使用负的步长。注意，要使计数变量减少，其终止值必需小于其起始值。下例中，计数变量 myNUm 每次循环减少2。当循环结束时，total 就是16，14，12，10，8，6，4和2的总和。

Sub NewTotal()

For myNum = 16 To 2 Step -2

total = total + myNum

Next myNum

MsgBox "The total is " & total

End Sub

注释：在 Next 语句中没有必要包含计数变量。上例在 Next 语句中包含计数变量是为了增强可读性。

可以在 For...Next 语句中的计数变量达到终止值之前，使用Exit For语句退出循环。

由于一般只有条件满足时才会退出循环（例如发生错误），所以必须在 If...Then...Else 和 Select Case 语句的条件为真语句块中使用 Exit For 语句。当条件为假，循环继续进行。


使用 For Each...Next 语句

For Each...Next 语句对一个对象集合中的每个对象重复执行一组语句。在循环中 Visual Basic 自动设定对象变量。例如，下述过程将关闭所有其它的工作簿，除了包含正运行此过程的工作簿。

Sub CloseWorkbooks()

For Each wb In Application.Workbooks

If wb.Name <> ThisWorkbook.Name Then wb.Close

Next

End Sub

在一个单元格区域上循环

使用 For Each...Next 语句是在一个单元格区域上循环的最好方法。如下过程在工作表的 A1：D10 区域上循环，将其中绝对值小于0.01的所有数赋为0。

Sub RoundToZero()

For Each c In Worksheets("Sheet1").Range("A1:D10").Cells

If Abs(c.Value) < 0.01 Then c.Value = 0

Next

End Sub

下例使用CurrentRegion 属性返回具有指定单元的当前单元区（为空的行和列所包围）。使用 For Each...Next 语句计算区域第二列中有大于50的值的总行数。

Sub CountRows()

ctr = 0

Worksheets("Sheet1").Activate

For Each myRow In Cells(2, 1).CurrentRegion.Rows

If myRow.Columns(2).Value > 50 Then ctr = ctr + 1

Next

MsgBox ctr

End Sub

在 For Each...Next 循环未完成前退出循环

可以使用 Exit For 语句退出 For Each...Next 循环。由于一般只有条件满足时才会退出（例如发生错误），所以必须在 If...Then...Else 和Select Case 语句的条件为真语句块使用 Exit For 语句。当条件为假，循环继续进行。

下例测试区域 A1：B5 中的每个单元格，寻找第一个不包含数值的单元格。若发现，则显示一条信息并使用 Exit For 语句退出循环。

Sub TestForNumbers()

For Each c In Worksheets(1).Range("A1:B5").Cells

If IsNumeric(c.Value) = False Then

MsgBox "Range contains a non-numeric value."

Exit For

End If

Next c

End Sub


在单元格区域中循环执行某一操作

在使用 Visual Basic 时，经常需要在一个单元格区域的每个单元格上执行一段相同的代码。要达到此目的，在使用循环的同时，要使用一种或几种方法来确定每次执行操作的单元格。

在单元格区域上循环的一种方法是在 For...Next 循环中使用 Cells 方法。当使用 Cells方法时，将循环记数器（或其他变量或表达式）作为单元格的索引值。下例中，变量 counter 作为行的索引值，在单元格区域 C1：C20 上循环，将值小于0.01的单元格设为0。

Sub RoundToZero1()

For counter = 1 To 20

Set curCell = Worksheets("Sheet1").Cells(counter, 3)

If Abs(curCell.Value) < 0.01 Then curCell.Value = 0

Next counter

End Sub

在单元格区域上循环的另一种方法是在 For Each...Next 循环中使用由 Range 方法返回的单元格集合。循环运行时，Visual Basic 自动设定下一个单元格的对象变量。下例中，过程在单元格区域 C1：C20 上循环，将值小于0.01的单元格设为0。

Sub RoundToZero2()

For Each c In Worksheets("Sheet1").Range("A1:D10").Cells

If Abs(c.Value) < 0.01 Then c.Value = 0

Next

End Sub

更多的实例

有关在单元格区域上循环操作的更多实例，参见 Examples 文件夹中的 Samples.xls 文件。


创建用户自定义菜单

在 Microsoft Excel 中用户可以使用菜单编辑器或使用 Visual Basic 代码更改菜单或创建自己的菜单。内部菜单和菜单项属于 Microsoft Excel 应用程序。对菜单系统的任何改动都存储在活动工作簿的菜单编辑表中。每个打开的工作簿都拥有自己的菜单编辑表。当几个工作簿同时打开时，所显示的菜单是所打开的各个工作簿的混合体。

在现有菜单中添加新菜单项

创建新菜单和子菜单

创建新菜单栏

菜单和菜单项的恢复和删除


在现有菜单中加入新菜单项

如果只增加一两个菜单项，请参见 指定宏到“工具”菜单项。如果想在“工具”菜单之外增加菜单项，请遵循以下步骤：

1．激活一 Visual Basic 模块表，单击“工具”菜单中的“菜单编辑器”。

2．在“菜单栏”框中，选择一个菜单栏或一组快显菜单。

3．在“菜单”框中，选定要增加菜单项的菜单，或选定定义快显菜单的对象名。

4．在“菜单项”框中，选定新菜单项想要增加到其前面的菜单项，若要把新菜单项增加到菜单的底部，请选“菜单尾”。

5．选择“插入”按钮。

6．在“功能标题”框中输入您想要起的菜单名。在子菜单访问键的字符前输入连接符(&)，如果要设置分隔栏，请输入连字符（-）。

7．在“宏”框中选定或输入当用户选择菜单项时所要执行的过程名称。

注意：

可以在“菜单编辑器”中单击“全部恢复”来恢复已删除的内部菜单栏，菜单，或菜单项。但不能恢复用户自定义的菜单单元。

使用 Visual Basic 在菜单上增加菜单项

可以使用 Visual Basi c代码自定义菜单。在 Microsoft Excel 中，可以使用 MenuBars,Menus, 和 MenuItems 方法来访问自定义菜单项。

' Add a menu item

Sub AddItem()

MenuBars(xlWorksheet).Menus("File").MenuItems _

.Add Caption:="&My Command", _

OnAction:="MyMacro", Before:="Close"

End Sub


创建新菜单和子菜单

可以在内部菜单或用户自定义菜单中创建新的菜单和子菜单。

1．激活一 Visual Basic 模块表，在“工具”菜单中选择“菜单编辑器”。

2．在“菜单栏”框中，选择要增加菜单的菜单栏。

3．在“菜单”框中，选定要在其左侧加入新菜单的菜单名，如果要在最右端加入菜单，请单击“菜单栏尾部”。

如要加入子菜单，在“菜单项”框中，选定新菜单项想要增加的位置。

4．选择“插入”按钮。

5．在“功能标题”框中输入您想要起的菜单名。

在子菜单访问键的字符前输入连接符(&)。

注意：

可以在“菜单编辑器中”单击“全部恢复”来恢复已删除的内部菜单栏，菜单，或菜单项。但不能恢复用户自定义的菜单单元。

使用 Visual Basic 创建新的菜单和子菜单

可以使用 Visual Basic 代码自定义菜单。在 Microsoft Excel 中，使用MenuBars, Menus, 和 MenuItems.方法来访问自定义菜单项。

' Add a menu to a menu bar

Sub AddMenu()

Set newMenu = MenuBars(xlChart).Menus. _

Add(Caption:="&MyWork", before:="Help")

End Sub

' Add a submenu to a menu

Sub AddSubMenu()

MenuBars(xlWorksheet).Menus("File").MenuItems _

.AddMenu Caption:="&More"

End Sub

' Add a submenu and items

Sub AddSubMenu()

Dim m As Menu

Set m = MenuBars(xlWorksheet).Menus("File")

m.MenuItems.AddMenu Caption:="&More"

m.MenuItems("More").MenuItems.Add Caption:="&My Command"

m.MenuItems("More").MenuItems.Add Caption:="&Your Command"

End Sub


创建新菜单栏

在 Microsoft Excel 中，根据当前工作表的类型，菜单栏将自动地改变。“菜单编辑器”将几组快显菜单作为菜单栏来处理。

可使用“菜单编辑器”来创建一个新的菜单栏。但必须使用 Visual Basic 过程才能显示用户自定义的菜单栏。

创建新的菜单栏

1．激活一 Visual Basic 模块表，在“工具”菜单中选择“菜单编辑器”。

2．在“菜单栏”框中，选择任意一个菜单栏。

3．选择“插入”按钮。

4．在“功能标题”框中输入您想要起的菜单名。

5．加入想要增加的任何菜单和子菜单。

显示用户自定义的菜单栏

编写并运行一段用户自定义的 Visual Basic 过程，其中对由 MenuBars 返回的 MenuBar 对象使用 Activate方法。如下例所示。

Sub ShowBar()

MenuBars("My New Bar").Activate

End Sub

隐藏用户自定义的菜单栏

．编写并运行一段激活内部菜单栏的 Visual Basic 过程。如下例所示。

Sub ShowModuleBar()

MenuBars(xlModule).Activate

End Sub

注释：

依据当前表的类型，Microsoft Excel限制可以使用的内部菜单。例如，不能在一个工作簿激活时显示图表菜单栏。

使用Visual Basic创建新的菜单栏

可以使用Visual Basic代码自定义菜单。在Microsoft Excel 中，使用 MenuBars, Menus, 和 MenuItems.方法来访问自定义菜单项。

' Add a new menu bar

Sub AddMenuBar()

MenuBars.Add("My New Bar")

End Sub


菜单和菜单项的删除和恢复

用户可从内部菜单栏中删除菜单项，也可删除用户自定义的菜单栏。但用户于不能删除内部菜单栏。

删除一个菜单栏、菜单或菜单项

1．激活一Visual Basic模块表，在“工具”菜单中选择“菜单编辑器”。

2．在相应的框中选定要删除的菜单栏、菜单项、菜单项或快显菜单项。

3．选择“删除”按钮。

恢复删除的内部菜单和菜单项

1．激活一Visual Basic模块，在“工具”菜单中选择“菜单编辑器”。

2．选择“显示删除项”复选框，被删除的菜单项以暗色显示。

3．在相应的框中选定要恢复的菜单项。

4．选择“恢复”按钮。

恢复所有的内部菜单和菜单项

下述方法仅能恢复由“菜单编辑器”改变的菜单。使用 Visual Basic 修改的菜单必须使用 Visual Basic 代码来恢复。

1．激活一 Visual Basic 模块表，在“工具”菜单中选择“菜单编辑器”。

2．选择“全部恢复”按钮。

此时，所有用户自定义的菜单栏，菜单和菜单项全部被删除，Microsoft Excel的内部菜单被恢复。

使用 Visual Basic 删除和恢复菜单和菜单项

可以使用 Visual Basic 代码自定义菜单。在 Microsoft Excel 中，使用 MenuBars, Menus, 和 MenuItems.方法来访问自定义菜单项。

' Delete a menu

Sub DeleteMenu()

MenuBars(xlChart).Menus("MyWork").Delete

End Sub

' Restore a built-in menu

Sub RestoreMenu()

MenuBars(xlWorksheet).Menus.Add _

Caption:="&Edit", Before:=2, Restore:=True

End Sub

' Delete a menu item

Sub DeleteItem()

MenuBars(xlWorksheet).Menus("File") _

.MenuItems("My Command").Delete

End Sub

' Delete a submenu

Sub DeleteSubMenu()

MenuBars(xlWorksheet).Menus("File") _

.MenuItems("More").Delete

End Sub


创建用户自定义工具栏

不需创建 Visual Basic 过程就可以自定义 Microsoft Excel 的工具栏和工具栏按钮。有关详细信息，请参见如下主题。

创建自定义工具栏

添加或删除工作栏按钮

改变工具栏按钮所使用的图案

退出 Microsoft Excel 时，工作区中的工具栏将保存在 Windows 文件夹中扩展名为 .xlb 的文件中。此 .xlb 文件名被赋予用户名，这样，在同一台计算机上，不同的用户可以使用不同的工具栏配置。

可以把用户自定义的工具栏由工作区移到工作簿中。在用户应用程序中，工作簿级的工具栏可以十分容易地创造出简洁的用户界面。而工作簿是发布工具栏的简便方法。

将工具栏由移到工作簿

1．激活一 Visual Basic 模块表，在“工具”菜单中选择“附加工具栏”。

2．在“用户自定义工具栏框”中，选定复制到工作簿的工具栏名。

3．选择“复制”按钮。

使用 Visual Basic 创建用户自定义工具栏和工具栏上的按钮

可以使用 Visual Basic 代码自定义工具栏和工具栏上的按钮。可使用Toolbars 和 ToolbarButtons.方法来操作内部的和自定义的工具栏。

注释：

有关工具栏按钮号的列表，请参见 工具栏按钮的 ID 值 。

' Add a new toolbar

Sub AddToolbar()

Toolbars.Add "MyToolbar"

End Sub

' Add toolbar buttons

Sub AddButtons()

With Toolbars("MyToolbar").ToolbarButtons

.Add Button:=1, Before:=1

.Add Button:=2, Before:=2

.Add Button:=240, Before:=3

End With

End Sub

' Position a toolbar

Sub Position()

With Toolbars("MyToolbar")

.Position = xlFloating

.Left = 60

.Top = 28

.Width = 90

End With

End Sub

' Display a toolbar

Sub ShowBar()

Toolbars("MyToolbar").Visible = True

End Sub

' Copy buttons

Sub CopyButton()

Toolbars(1).ToolbarButtons(10).Copy _

Toolbar:=Toolbars("MyToolbar"), Before:=4

End Sub

' Move buttons

Sub MoveButton()

Toolbars(1).ToolbarButtons(11).Move _

Toolbar:=Toolbars("MyToolbar"), Before:=5

End Sub

提示：

当对工具栏和工具栏上按钮的属性和方法没有把握时，可以记录下此操作然后检查 Visual Basic 代码。


使用括号的规则

Sub (子程序）过程，内置语句以及一部分方法并不返回值。当使用其中的某个过程时，不需把参数括在括号中，如下例所示。

MySub �stringArgument�, integerArgument

Function （函数）过程，内置函数以及一部分方法会返回值。当要忽略返回值时，不需使用括号。在这种情况下，使用函数和使用 Sub (子程序）过程一样。只需忽略引号并列出参数（如果有的话）即可，但不能把函数的值赋给一个变量。如下例所示。

MsgBox �Task Completed!�, 0, �Task Box�

如果需要函数的返回值，就要把参数括在括号中，如下例所示。

Answer3= MsgBox(�Are you happy with your salary?�,4,�Question 3�)

子程序和函数中的代码可以使用命名参数将值传给所调用的过程。无论是否使用命名参数，括号的使用规则都有效。当使用命名参数时，可将其任意排列，也可以省略可选的参数。命名参数后总是跟着冒号和等号（：=），然后是参数的值。

下例使用命名参数调用MsgBox 函数，它忽略了返回值。

MsgBox Title:=�Task Box�, Prompt:=�Task Completed!�

下例使用命名参数调用 MsgBox 函数，它将返回值赋给了变量 answer3。

answer3 = MsgBox( Title:=�Question 3�, Prompt:=�Are you happy with your salary?�, Button:=4)


使用内部对话框

在开始设计自定义对话框之前，应考虑使用 Visual Basic 内部的对话框。

使用内部对话框作为输入和输出

使用内部对话框返回文档信息

显示 Microsoft Excel 内部对话框


使用内部对话框作为输入和输出

InputBox 函数显示一个带有特定信息和编辑框的对话框。当单击“确定”按钮时，此函数返回用户输入的文本。

MsgBox 函数显示一个简单的信息。也可以显示几个不同的命令按钮和图标。此函数返回代表被击中按钮的那个数。

在下一个例子中，第一个语句建立变量 myVar，这个变量存储着所输入的字符串。第二个语句在信息框内显示这个字符串。

Sub GetName()

myVar = InputBox(Prompt:="Please type your name:")

MsgBox Prompt:=myVar, Buttons:=vbExclamation, Title:="Your name is"

InputBox Application 对象的方法与 InputBox 函数基本相同，然而，这个函数带有一个为检查返回数据类型的可选参量 type 。


使用内部对话框返回文件信息

可以使用内部对话框来为程序返回文件信息；这类似于标准的“打开”及“另存为”对话框。

GetOpenFilename 显示一个类似标准的“打开”对话框的对话框。这个方法并不打开文档，而只是返回所选中文档的名称。下例中，在变量 myFilename 被赋值之前 Do...Loop 语句将显示对话框。

Sub GetFile()

Do

myFilename = Application.GetOpenFilename

Loop Until myFilename <> False

MsgBox myFilename

End Sub

GetSaveAsFilename 方法与 GetOpenFilename 类似。只是附加一个可选的参量 initialFilename, 这个参量设置“文档名称”框中显示的默认的名称，同样，这个方法只是返回指定的文档名称而不保存文档。

Sub MySaveAs()

Do

myFilename = Application.GetSaveAsFilename("Mybook.xls")

Loop Until myFilename <> False

MsgBox myFilename

End Sub


显示 Microsoft Excel 内部对话框

使用 Visual Basic 可以显示一个内部对话框以得到用户的输入或对 Microsoft Excel 进行控制。可以用 Dialog 对象的 Show 方法来显示许多 Microsoft Excel 内部对话框。要进入一个内部对话框，则必须为 Dialogs 方法的 index 参量指定正确的常数。以下示例显示“打开”对话框(xlDialogOpen)。

Sub Main()

Application.Dialogs(xlDialogOpen).Show

End Sub

通过使用对象浏览器，可以找到可用的对话框常数列表(都以“xlDialog”开头)。

要找到 Microsoft Excel 对话框常数表

1.激活 Microsoft Excel 工作薄中的一个模块表。

2.在“视图”菜单中，单击“对象浏览器”。

3.在“程序库/工作薄”框内，单击 Microsoft Excel 库。

4.在“对象/模块”框中，单击“常数”。

5.在“方法/属性”框中，滚动光标到以“xlDialog”开头的常数。

Show 方法返回的数值显示为了关掉对话框时用户单击了哪个按钮。False 显示单击了“取消”按钮；True 为单击了“确定”按钮。

提示

n	在标准环境之外，Microsoft Excel 的对话框是不能显示的。例如，只有当一个工作表被激活时对话框才能正常显示，如果当执行程序时所激活的 sheet 不是一个工作表，那么 Show 方法将失败。

n	要为内部的对话框设置默认值，包括跟随 Show 方法的对应的宏函数参量。有关更多的信息，请参阅内部对话框参数表。


 在 Visual Basic 中使用 Microsoft Excel 的工作表函数

在 Visual Basic 语句中可以使用 Microsoft Excel 的大多数工作表函数。关于可用的 Microsoft Excel 的工作表函数的列表，请参阅在 Visual Basic 中可使用的工作表函数。

附注  一些工作表函数在 Visual Basic 中是没用的。例如，Concatenate 函数是没有必要的因为 Visual Basic 可以使用 & 操作来结合多文本值。

从 Visual Basic 中调用一个工作薄函数

在 Visual Basic中，Microsoft Excel 工作薄函数通过 Application 对象生效；任何使用工作表函数的语句必须由 Application 限定。

以下的 Sub 程序使用 Min 工作表函数来确定区域中的单元格最小数值。首先，变量 myRange 被声明为一个 Range 对象，然后设置在 Sheet1 的 A1:C10 区域内。另一个变量 answer 指定给 myRange 使用 Min 函数后得到的结果。最后，answer 的数值显示在一个信息框内。

Sub UseFunction()

Dim myRange As Range

Set myRange = Worksheets("Sheet1").Range("A1:C10")

answer = Application.Min(myRange)

MsgBox answer

End Sub

如果使用的工作表要求用一个引用区域作为参量，则必须指定一个 Range 对象。例如，可以使用 Match 工作表函数来查找单元的一个区域。在一个工作表单元，必须借助于一个类似   =MATCH(9,A1:A10,0) 的公式。然而，在一个 Visual Basic 程序中，则必须指定一个 Rane 对象来得到相同的结果。

Sub FindFirst()

myVar = Application.Match(9, Worksheets(1).Range("A1:A10"), 0)

MsgBox myVar

End Sub

附注 Visual Basic 函数不使用 Application 限定(qualifier)。作为 Microsoft Excel 的一个函数可能有相同的名字但其功能不同。例如，Application.Log 和 Log 将返回不同的数值。

在单元格中插入一个工作表函数

要在一个单元中插入一个工作表函数，指定函数作为对应 Range 对象中的 Formula 属性的数值。在以下示例中，将工作表函数 RAND (它产生一个随机数)分配给激活工作薄中工作表 Sheet1中 A1:B3 区域的 Formula 属性。

Sub InsertFormula()

Worksheets("Sheet1").Range("A1:B3").Formula = "=RAND()"

End Sub


使程序自动执行

一个事件就是象打开一个工作薄，切换到一个工作表，或重新计算一个工作表。当一些事件发生时可以使程序自动执行。要做到这些有几种不同的方法。

n	可以为菜单项、工具栏按钮、组合键或图符对象指定一个宏。

指定一个宏

n	可以给程序一个名称，这个名称告诉 Visual Basic 这个程序将自动执行。

打开或关闭一个工作薄时执行程序

n	可以指定程序到对应指定事件的属性。

当激活或关闭一个工作表时执行程序

当一个事件发生时执行程序


打开或关闭一个工作薄时执行程序

当打开一个工作薄时，Microsoft Excel 将自动执行名为 Auto_Open 的 Sub 程序；当关闭这个工作薄时， Microsoft Excel 自动执行 Auto_ Close 程序。可以象建立和测试任意其它 Sub 程序一样建立和测试 Auto_Open 或 Auto_Close 程序。每一个工作薄中只能有一个 Auto_Open 和一个 Auto_Close 程序。然而，Auto_Open 和 Auto_Close 程序可以调用其它的 Sub 或 Function 程序。

以下示例在打开的工作薄上添加一个由使用者输入名称的新工作表。

Sub Auto_Open()

Worksheets.Add.Name = InputBox(Prompt:="Please enter a name for your worksheet")

End Sub

提示   可以使 Microsoft Excel 在每次启动时打开一个特定的工作薄。这只需将工作薄存储在启动文件夹(XLSTART)中。


当激活或关闭一个工作表时执行程序

可以指定一个存在的程序在激活或关闭一个工作表时自动执行。为此，要设置 OnSheetActivate 或 OnSheetDeactivate 属性。这些属性数值存储在工作薄中，因此只需对数值设置一次并保存工作薄。

指定执行的程序不一定要打开。可以设置一个程序使其在激活或关闭一个指定的工作表、指定工作薄上的任意工作表、或任意打开的工作薄上的任意工作表时执行。

在下例中，程序 PrepBook 为 Module1中的程序 AutoShee 设置了 OnSheetActivate 属性。

Sub PrepBook()

Worksheets("Sheet1").OnSheet Activate = "Module1.AutoSheet"

End Sub

Sub AutoSheet()

answer = MsgBox(Prompt:="Are you an exempt employee?", Buttons:= 4)

If answer = 6 Then Worksheets("Sheet2").Activate _

Else Worksheets("Sheet3").Activate

End Sub


当一个事件发生时执行程序

您可能希望在 Microsoft Excel 中只需一个程序就使一些事件自动发生。可以为一个属性(比如 OnSheetActivate、OnAction、或OnCalculate)分配现有的程序，或为一个方法(象 OnTime or OnKey)指定一个现有的程序。只需将这个属性或方法设置一次，然后将变化进行存储。这些设置将同工作薄一同保存。

可以在下列任一属性中指定一个程序： OnAction, OnCalculate, OnData, OnDoubleClick, OnEntry,, OnSheetActivate, OnSheetDeactivate, OnWindow.

可以在下列任一方法中指定一个程序：OnKey, OnRepeat, OnTime, OnUndo, SetLinkOnData.

下一示例使用 OnTime 方法在调用 RunReport 程序1分钟后打印一个报告。

Sub RunReport()

Application.OnTime _

EarliestTime:=Now + TimeValue("00:01:00"), _

procedure:="ReportSub"

End Sub

Sub ReportSub()

' Statements to print report

MsgBox "Report is Printing!"

End Sub


程序、参量、变量和常数的命名规则

当在 Visual Basic 的模块中为程序、常数和参量命名时应使用下列规则：

n	名字的第一个字符必须是字母。

n	名字中不可使用空格、逗号 (，)、惊叹号 (!)、 @、 &、 $、或 #。

n	名字中不可使用保留的关键字。有关保留关键字的列表，请参阅保留关键字。

n	不可在同一程序中声明两个名为 age 的变量。然而，可以在同一模块中声明一个 private 级的变量名 age 和一个 procedure 级的变量名 age。有关更多的信息，请参阅理解作用域。

附注 Visual Basic 忽略大小写，但是它在名字被声明的语句中保留大写。


Visual Basic 的数据类型

当一个常数、变量、或一个参量被声明时，也就是告知宏它称为什么。同时，也指定了它所包含的数据类型。例如，以下语句建立一个名为 answer 的变量并指明数据的类型为 Boolean(True 或 False)。

Dim answer As Boolean

可为常数、变量、和参量(在声明之前定义于 Sub 和 Function 中的变量) 给定一种数据类型。 可用的数据包括以下的类型：Boolean, Currency, Date, Double, Integer, Long, Single, String, Variant。 任何变量或参量都可以声明为一个 Object 或一个自定义类型。

要查看所有的数据类型，请参阅数据类型总结 有关下面数据类型的简化信息, 请参阅以下标题：

快速浏览变量的数据类型

Microsoft Excel 中的可用对象


快速浏览变量的数据类型

当声明一个常数、变量、参量而未指定数据类型时，Visual Basic 自动将其指定为 Variant 数据类型。这类数据类型变量声明的优点是它可以包含字符串，数据，时间，布尔量(Boolean)，数值，并且可以自动转换所包含的数据类型。其优点是 variant 数值要占用 16 位内存，这只有对大程序或复数模块表是有意义的。通常很少用到一个 Variant 数据类型的常数。

以下语句建立 variant 变量。

Dim myVar

Dim yourVar As Variant

theVar = "This is some text."

最后一个语句没有对变量 theVar 进行显式声明， 但是隐含地或自动地对变量进行了声明。被隐含声明的变量将指定为 Variant 类数据类型。

提示 如果在指定了变量的数据类型后错误地使用了变量的数据类型，将出现一个数据类型错误。为了避免数据类型错误，可以只使用隐含变量(Variant 类型数据)或显式声明变量并指定一种数据类型。


 在 Microsoft Excel 中使用对象变量

可以声明一个包含有一个对象的变量为三种数据类型中的一种：Variant, Object, 或一个指定的 Microsoft Excel 对象。以下三个语句中的每一个都声明了可分配为 Microsoft Excel 对象的一个变量。

Dim myCell

Dim yourCell As Object

Dim theCell As Range

第一的语句声明变量 myCell，Visual Basic 自动指定其为 Variant 类型变量。也可以用一个 Set 语句分配一个对象给这个变量来显式声明这个变量，如下列语句所示。

Set myCell = Worksheets(1).Range("A1")

第二个声明用来声明 yourCell 和指定 Object 的数据类型。这是一个可以用于任意类型对象的通用的数据类型。可以使用 Set 语句指定确切的对象。有关更多的信息，请参阅创建一个对象变量。

第三个声明定义 theCell 为一个 Microsoft Excel Range 对象。可以声明一个对象变量为 Microsoft Excel 对象等级中的任意一个对象。有关 Microsoft Excel 对象等级更多的信息，请参阅Microsoft Excel 对象。

下列示例声明 myCell 为一个对象变量并为 A1 单元赋值。这样，使用变量名将其区域改变了。

Sub SetCellValue()

Dim myCell As Range

Set myCell = Worksheets("Sheet1").Range("A1")

With myCell

.Value = 800

.Font.Bold = True

End With

End Sub


改变 Visual Basic 的选项

在“工具”菜单中，单击”选项“框。在“Module General”选项卡中，可以为下列选项指定设置。

要指定	设置
嵌套语句缩进的宽度	制表宽度
当按下 ENTER 键时 nested 语句是否自动缩进	自动缩进
当一个程序检测到语法错误时是否显式错误信息	显示语法错误
当任意错误出现时程序是否停止	所有错误中断 Break On All Errors
是否将 Option Explicit 语句自动插入每个新的模块	请求对变量声明 Require Variable Declaration
当前的语言或国家及其相应的设置	语言/国家
在”模块格式“选项卡中，可为以下选项指定设置。

要指定	设置
模块中使用的默认的字体	字体
默认字体的大小	大小
“模块格式”选项卡中的 “Under Code Colors”，可以使用“前景”和“后景”来为 代码元素列表中的所选中的项目指定颜色。

要指定	代码元素列表中的选择
所选部分的颜色	选择的文本
含有语法错误语句的颜色	语法错误文本
在逐步执行一个程序时下一个要执行语句的颜色	执行点文本
为调试在插入点产生的颜色	插入点文本
备注的颜色	备注文本
Visual Basic 关键字的颜色	关键字文本
程序、常数、变量、参量名称的颜色	识别符文本
其它文本的颜色	标准文本


编写 Sub 过程

Sub 过程是用 Sub 语句开始，由 End Sub 语句结束的一系列 Visual Basic 语句，它执行操作但并不返回值。Sub 过程可以带参数(由调用过程传递的常量，变量或表达式)。如果 Sub 过程没有参数，它的 Sub 语句必须带一对空括号。

下面的 Sub 过程带有解释每一行的注释。

Sub GetInfo()

' 声明名为GetInfo的过程- 此Sub过程不带参数

Dim answer As String

' 声明名为answer的字符串变量

answer = InputBox(Prompt:="What is your name?")

' 将InputBox函数的返回值赋给answer

If answer = Empty Then

' If...Then...Else条件语句

MsgBox Prompt:="You did not enter a name."

' 调用MsgBox函数(可执行语句)

Else

MsgBox Prompt:="Your name is " & answer

' MsgBox函数与变量连用(可执行语句)

End If

' 结束If...Then...Else语句

End Sub

' 结束Sub过程

语句

一个 Sub 过程体含有语句。语句是V isual Basic关键字变量常量或表达式的组合。

编写 Visual Basic 语句

变量和常量

既可在 Sub 过程之外也可以在 Sub 过程内声明变量或常量，在 Sub 过程内的声明在过程级。

变量声明

常量声明

Sub过程的参数

参数是为执行 Sub 过程所需数值保留的占位符。在 Sub 语句本身内定义一个参数，必须给每个参数命名，如果需要的话，还可以指定一个数据类型。

在下述例子中，Sub 过程 Main 传递两个参数给 Sub 过程 MyName。传递的参数的类型必须与所调用的 Sub 过程中指定的匹配。在本例中，参数是字符串类型的。

Sub Main()

MyName "Claudia", "Tanner"

End Sub

Sub MyName(first As String, last As String)

MsgBox "My name is " & first & " " & last

End Sub

在缺省情况下，所有 Visual Basic 过程按地址传递参数，这就意味着任何给定参数的值都可以由被调用的过程修改。如果想要调用的过程使用参数而不改变它的值，可以按值传递参数。

在下述例子中，在被调用的 Sub 过程 MyName 中参数 first 的值被改变了。但是因为参数是按值传递的，所以在 Sub 过程 Main中变量 startString 仍保持原来的值。如果从过程 MyName 的 Sub 语句中去掉关键字 ByVal，那么在传递后，变量 startString 的值就被改掉了。

Sub Main()

Dim startString As String

startString = "Pat"

MyName startString

MsgBox startString

End Sub

Sub MyName(ByVal first As String)

first = first & " Crenshaw"

MsgBox "My name is " & first

End Sub

提示   如果要了解怎样编写一个 Sub 过程的详细内容，请参阅在一个模块内编程。


编写Function过程

Funtion 过程是由 Function 语句开始，由 End Function 语句结束的一系列 Visual Basic 语句。Function 过程与 Sub 过程类似，但函数还能返回值。Function 过程可以带参数(由调用过程传递的常量，变量或表达式)。如果 Function 过程不带参数，那么它的 Function 语句必须包括一对空括号。函数通过在过程的一个或多个语句中把一个值赋给函数名来返回值。

附注 如果试图从一个工作表中调用函数，则必须清楚某些限制，这些限制在编写用户自定义工作表函数中描述。如果函数只是在另一个V isual Basic 中被调用，则没有这些限制。

在下面例子中，Celsius 函数根据华氏度计算摄氏度，并用工作表函数 Round 四舍五入成两位小数。在从 Main 过程中调用函数时，将一个包含参数值的变量传递给函数。四舍五入后的答案返回后显示在一个消息框中。

Sub Main()

temp = Application.InputBox(Prompt:= _

"Please enter the temperature in degrees F.", Type:=1)

MsgBox "The temperature is " & Celsius(temp) & " degrees C."

End Sub

Function Celsius(fDegrees)

Celsius = (fDegrees - 32) * 5 / 9

Celsius = Application.Round(Celsius, 2)

End Function


编写用户自定义工作表函数

用户自定义工作表函数是由工作表中的公式调用的 Function 过程。

通常，用户自定义工作表函数经过计算返回一个值。与使用一个内置Microsoft Excel工作表函数的方式一样，在一个工作表单元格中输入一个 Function 过程名，就返回一个值到该单元格中。

用户自定义函数可以代替一个长公式或几个公式。可以将数学表达式，内置Microsoft Excel工作表函数和Visual Basic代码组合在一起。用户自定义函数还可以使用文本、日期和值。

用户自定义工作表函数不能设置属性或应用方法来以如下方式改变Microsoft Excel环境：

n	插入、删除或编排单元格

n	更改单元格的值

n	移动、重新命名、删除或增加工作表

n	更改计算方式或屏幕视图

通过创建用户自定义函数，可以避免大多数错误，因为这些函数只根据您所提供或能从 Microsoft Excel 中调入的信息进行计算。

在下述例子中，Celsius 函数将华氏度转化为摄氏度，然后用 Round 工作表函数四舍五入成两位小数。

Function Celsius(fDegrees As Integer)

Celsius = (fDegrees - 32) * 5 / 9

Celsius = Application.Round(Celsius, 2)

End Function

把本例复制到一个模块中后，就可以通过单击“函数向导”按钮并键入 fDegrees 的值在工作表中使用 Celsius 函数。

“函数向导”按钮

编写用户自定义工作表函数的技巧：

n	使用不重名的函数或参数。

n	在函数中包括一个或多个语句来将返回值赋给函数名。

n	如果考虑到节省内存，可给函数及其参数指定一个数据类型。传给函数的值必须与参数的数据类型匹配。

n	如果想使一个函数的参数是一个单元格或区域，可以使用 Object 数据类型。

n	当在 Visual Basic 语句中使用内置工作表函数时，在函数名前加上 Application 对象修饰符。

n	可以使用“对象浏览器”来将函数分配给一个函数类或加入一个说明。在“函数向导”中，在指定的类选中时，就会列出您的函数名，并且在选中您的函数名时，就会显示说明。


编写Visual Basic语句

一个Visual Basic 中的语句是一条完整的指令；它可以包含关键字，运算符、变量、常量和表达式。每个语句都属于下列三种类型：

n	声明语句，它给一个变量、常量或过程命名，还可以指定一个数据类型。

编写声明语句

n	赋值语句，它将一个值或表达式赋给一个变量或常量。

编写赋值语句

n	可执行语句，它执行动作。这些语句可以执行一个方法或函数，并且可以循环或从代码块中分支。可执行语句经常包含数学或条件运算符。

编写可执行语句

在多行中放置一条语句

一条语句通常放置在一行中，但是通过键入一个空格和一个下划线可以在下一行上继续一个较长的语句。在下述例子中，可执行语句 MsBox 延续了三行。

Sub DemoBox()  '此过程声明了一个字符串变量，将其赋值为Claudia，然后显示了一

' 个连接的消息。

Dim myVar As String

myVar = "Claudia"

MsgBox Prompt:="Hello " & myVar, _

Title:="Greeting Box", _

Buttons:=vbExclamation

End Sub

添加注释

注释可以向您或其它阅读您代码的人说明一个过程或一条特殊指令。Visual Basic在运行过程时忽略掉注释。注释行(以单引号开头，或以 Rem 加空格开头)可以加在一个过程的任何地方。要在语句的同一行上加注释，可在语句后插入一个单引号，后面再跟上注释。缺省情况下，注释是绿色的。

检查语法错误

如果在键入一个代码行后按 ENTER 而这行变红了(也可能同时显示一个错误信息)，那么就需要查出语句的错误然后进行纠正。有关语句调试的内容，请参阅检查代码的语法错误。


编写声明语句

可以使用声明语句来命名并定义过程、变量、数组和常量。在声明一个过程、变量或常量时，同时也定义了它的范围，这依赖于声明放置的位置和声明所使用的关键字。

下面的例子包含了三个声明。

Sub ApplyFormat()

Const limit As Integer = 33

Dim myCell As Range

' 此处可写入其它语句

End Sub

Sub 语句(和与之匹配的 End Sub 语句一起)声明了一个名为ApplyFormat的过程。无论何时Sub过程ApplyFormat被调用或运行，Sub 和 End Sub 语句中间包含的所有语句都被执行。

编写 Sub 过程

Const 语句声明变量 limit，指定了整型数据类型和一个值33。

常量声明

Dim 语句声明了变量 myCell。数据类型是一个对象——在本例中，是一个 Range 对象。可以将一个变量声明为任何 Microsoft Excel 对象。Dim 语句是用来声明变量的其中一类语句。用来声明的其余关键字有：Redim,Static,Public,Private 和 Const。

变量声明


编写赋值语句

赋值语句将一个值或表达式赋给一个变量或常量。赋值语句总包含一个符号(=)。下面的例子将 inputBox 函数的返回值赋给变量 yourName。

Sub Question()

Dim yourName As String

yourName = InputBox("What is your name?")

MsgBox "Your name is " & yourName

End Sub

Let 语句是可选的，并且通常被省略。在上面例子中，赋值语句可以写成Let yourName = InputBox("What is your name?")。

Set 语句用来将一个对象赋给一个声明为对象类型的变量。Set 关键字是必需的。在下面的例子中，Set 语句将 Sheet1 中的一个区域赋给对象变量 myCell。

Sub ApplyFormat()

Dim myCell As Range

Set myCell = Worksheets("Sheet1").Range("A1")

With myCell.Font

.Bold = True

.Italic = True

End With

End Sub

设置属性值的语句也是赋值语句，下面的例子设置了当前单元格中 Font 对象的 Bold 属性。

ActiveCell.Font.Bold = True


编写可执行语句

可执行语句执行某个操作。它们可以执行一个方法或函数，并且还可以循环或从代码块中分支。可执行语句经常包含数学或条件运算符。

Sub ApplyFormat()

Const limit As Integer = 33

For Each c In Worksheets("Sheet1").Range("MyRange").Cells

If c.Value > limit Then

With c.Font

.Bold = True

.Italic = True

End With

End If

Next c

MsgBox "All done!"

End Sub

上述例子用 For Each...Next 语句对当前工作簿的Sheet 1上名为MyRange的区域中的每个单元格进行循环。变量 c 是 MyRange 中所包含单元格的集合中的一个单元格。

If...Then...Else 语句检查单元格的值。如果值大于33，With 语句就设置该单元格 Font 对象的 Bold 和 italic 属性。If…then…Else 语句以 End if 结束。

With 语句可以减少键入，因为它包含的语句自动在关键字 With 后的对象上执行。

Next 语句调用 MyRange 所包含的单元格集合中的下一个单元格。

MsgBox 函数(它显示一个内置 Visual Basic 对话框)显示一条消息来指示 Sub 过程结束运行。


变量声明

在Visual Basic中声明一个变量的最简单的方法是将它用在一个赋值语句中。当一个新变量出现在赋值语句中时，Visual Basic 隐式地(自动地)创建一个变量并指定一个变量数据类型。例如，下面的 Sub 过程在一个语句中创建变量 message 并赋给它值“Hello!”。

Sub MyDialog()

msg = "Hello!"

MsgBox msg

End Sub

如果不想让 Visual Basic 进行隐式声明，可以在一个模块中任何过程之前放置一条 Option Explicit 语句。这条语句要求在模块中显式声明所有变量。这就意味着必须通过编写一条或几条说明语句来为模块中的每个变量指定变量名。同样也可在一个声明语句中指定一个变量的数据类型。

当所有变量都作声明后，就不大可能犯键入错误。就是说如果在 Option Explicit 生效时错误拼写了一个变量名，有拼写错误的语句就会引起一个语法错误。如果 Option Explicit 不起作用，Visual Basic 会假设创建了一个新变量；过程运行可能没有错误，但它可能产生不可预料的结果。

要让 Visual Basic 在所有模块中自动放置 Option Explicit 语句，可单击“工具”菜单上的“选项”，然后单击“模块表一般设置”选项卡。选择“要求作变量声明”复选框。

附注   必须显式声明定长数组和动态数组。详细内容请参阅在 Visual Basic 中使用数组。

Dim 语句

在声明变量时，最常用的是 Dim 语句。这些声明语句既可放在一个过程里边，也可放在一个模块的开始。例如，下述语句创建变量 myName 并指定 String 数据类型。

Dim myName As String

如果这个语句出现在一个过程中间，则 myName 只能在该过程中使用。如果语句出现在模块头部，则 myName 在本模块的所有过程中都可用，但在本工作簿的其余模块不能用。

有关命名变量的详细内容，请参阅程序、参量、变量和常数的命名规则。

变量可以声明为下述数据类型之一：Boolean, lnteger, Long, Currency, Single, Double, Date, String(变长字符串)，String * length(定长字符串)，Object 或 Variant。如果未指定数据类型，就缺省为变量数据类型。

可以在一个语句中声明几个变量。如果要指定一个数据类型，就需要每个变量都带上数据类型。在下述语句中，变量 b、c和d 都声明为整型。

Dim b As Integer, c As Integer, d As Integer

在下面的语句中，x和y声明为变量，只有 z 被声明为整型。

Dim x, y, z As Integer

Public 语句

Public 语句的使用与 Dim 语句类似，不同的是它只出现在过程之外，并放于模块顶部。

Public MyName As String

在声明一个公共变量后，该变量在工作簿所有模块中的所有过程中都可使用。同时它还能用于任何引用声明该公用变量工作簿的工作簿。详细内容请参阅调用其它工作簿中的过程

Private 语句

Private 语句，与 Public 语句类似，只出现在过程之外，并放于模块顶部。在用 Private语句后，它声明的变量只能在同一模块的过程中使用。

Private MyName As String

附注 Dim 语句在用于模块级时，等价于 Private 语句。

Static 语句

在给一个已声明的变量赋值以前，它有一个相应于其数据类型的缺省值。无论何时调用一个过程，该过程中声明的所有变量自动重新设置为该值，除非用 Static 语句来声明变量。

Static MyNum As Integer

在用 Static 语句代替 Dim 语句后，声明的变量会在调用之间保持它的值。同样也可以在一个 Sub 或 Function 语句中使用 Static 关键字来将所有在过程中隐式或显式声明的变量都指定为静态的。详细内容，请参阅变量的状态。


常量声明

常量允许您把一个有意义的名字分配给一个值。在一个常量声明以后，它就不能修改或赋新值。可使用 Const 语句来声明一个常量并设置它的值。

下面的例子声明了公用常量 age，一个值为34的整数。

Public Const age As Integer = 34

有关常量命名的内容，请参阅过程、参数、变量和常量的命名规则

常量可以声明为下述数据类型之一：Boolean, Integer, Long, Currency, Single, Double, Date, String 或 Variant。因为知道一个常量的值，所以通常会在一个 Const 语句中指定其数据类型。

可以在一个语句中声明几个常量。如果要指定一个数据类型，就需要给每个常量带一个数据类型。在下面的例子中，常量 age 和 Wage 都声明为整数。

Const age As Integer = 34, wage As Integer = 35000

一个常量既可以在过程级，也可以在模块级声明。与变量同样的作用域级别也适用于常量。详细内容请参阅理解作用域。


使用内置常量

Visual Basic包含了很多内置常量。与特殊函数，方法或属性一起使用的特定内置常量在该函数、方法或属性的参考内容中描述。例如有关 MsgBox 函数的内容中包括了一个常量表，其中的常量代表了能在消息框中显示的不同按钮的数值。常量 vbOkOnly 和 vbYesNoCancel 是有意义的，而它们对应的数值却没有意义。

要看一个 visual Basic 内置常量列表，可以：

1.在一个Microsoft Excel工作簿中激活一个模块表。

2.在“视图”菜单上，单击“对象浏览器”。

3.在“程序库／工作簿”框中，选择VBA。

4.在“对象／模块”框中，选择“常量”。

所有 Visual Basic 常量都列在“方法／属性”框中，每个常量名都以字母“vb”开头。

要看一个 Microsoft Excel 内置常量列表，可以：

1.在一个 Microsoft Excel 工作簿中激活一个模块。

2.在“视图”菜单上，单击“对象浏览器”。

3.在“程序库／工作簿”框中，选择 Excel。

4.在“对象／模块”框中，选择“常量”。

所有 Microsoft Excel 常量都列在“方法／属性”框中，每个常量都以字母“xl”开头。


调用 Sub 和 Function 过程

要从另一个过程调用一个Sub过程，只要键入过程名和任何需要的参数的值。Call 语句不是必需的，但是如果用了，则必须把任何参数都括在括号中。

可以使用一个 Sub 过程来组织其它过程。这项技术可以使过程更易于理解和调试。在下面的例子中，Sub 过程 Main 调用了 Sub 过程 MultiBeep，传递值56作为参数。在 Multibeep 运行完毕之后，控制返回到 Main，然后 Main 又调用 Sub 过程 Message 来显示一个消息框；在用户单击“确定”后，控制又返回 Main，Main 结束。

Sub Main()

MultiBeep 56

Message

End Sub

Sub MultiBeep(numbeeps)

For counter = 1 To numbeeps

Beep

Next counter

End Sub

Sub Message()

MsgBox "Time to take a break!"

End Sub

调用多个参数的 Sub 过程

下面的例子用两种方式来调用一个带多个参数的 Sub 过程。第二次调用 HouseCalc 时，参数外面需要括号，因为使用了 Call 语句。

Sub Main()

HouseCalc 99800, 43100

Call HouseCalc(380950, 49500)

End Sub

Sub HouseCalc(price As Single, wage As Single)

If 2.5 * wage <= 0.8 * price Then

MsgBox "You cannot afford this house."

Else

MsgBox "This house is affordable."

End If

End Sub

在调用Function过程时使用括号

如果要使用一个函数的返回值，就需要把函数赋给一个变量并把参数括在括号中，如下例所示：

Answer3 = MsgBox("Are you happy with your salary?", 4, "Question 3")

如果不关心函数的返回值，则可与调用 Sub 过程一样来调用函数。可以省略括号，列出参数，并且不把函数赋给变量，如下例所示：

MsgBox "Task Completed!", 0, "Task Box"

附注   如果在前面的例子中包含了括号，则语句会引起语法错误。

传递命名参数

Sub 或 Function 过程中的语句可以使用命名参数，来传递值给调用的过程。可以用任何顺序来列命名参数。一个命名参数后总是跟着一个冒号和一个等号(=)，然后是参数的值。

下面的例子通过使用命名参数来调用 MsgBox 函数，它省略了返回值。

MsgBox Title:="Task Box", Prompt:="Task Completed!"

下面的例子通过使用命名参数来调用MsgBox函数；它把返回值赋给变量answer3。

answer3 = MsgBox(Title:="Question 3", _

Prompt:="Are you happy with your salary?", Buttons:=4)


调用其它工作簿中的过程

在能调用其它工作簿的过程之前，必须建立一个到该工作簿的引用(您的工作簿和包含要调用过程的工作簿之间的联系)。

要建立一个到其它工作簿的引用，可以

1.在一个 Visual Basic 模块活动时，单击“工具”菜单上的“引用”。

2.在“现有引用”框中，单击包含要调用过程的工作簿名

3.如果工作簿没有出现在列表中，单击“浏览”按钮把名字加入列表。

4.选择与工作簿名相邻的复选框。

一旦一个引用建立了，就可以调用被引用工作簿中的任何公用过程。在引用工作簿活动时，被引用工作簿也出现在“对象浏览器”的“库”列表中。

附注

n	在 Visual Basic 中不允许循环引用。即：如果工作簿A引用了工作簿 B，则工作簿 B 就不能再引用工作簿A。

n	在 Visual Basic 中允许间接引用，即：如果工作簿 A 引用了工作簿 B，工作簿 B 引用了工作簿 C，则工作簿 A 可以通过在调用语句中指定工作簿名来调用工作簿 C 中的过程。引起循环引用的任意直接或间接引用的组合都是不允许的。


调用同名过程

如果模块与当前模块在同一工作簿中，则可以调用该模块中的过程，如同调用当前模块中的过程一样。但是，如果两个或多个模块包含了一个同名的过程，则在调用语句中需指定模块名，如下例所示。

Sub Main()

[Module1].MyProcedure

End Sub

如果给了两个不同工作簿中的两个不同过程以相同的名字，则在调用该过程时必须指定一个工作簿名。例如，下面的例子调用了 MYBOOK.XLS 工作簿的 My Module 模块中的 Main 过程。

Sub Main()

[MyBook.xls].[My Module].Main

End Sub

调用过程的技巧

n	要使一个过程不被其它工作簿调用，可声明该过程为 Private 或声明整个模块为Option Private Module.

n	如果给一个模块或工作簿重新命名，则要保证在它出现在调用语句中的任何地方都修改该模块或工作簿名；否则，Visual Basic 将不能找到被调用的过程。可以使用“替换”命令(“编辑”菜单)来在一个模块中查找并替换文本。

n	要避免在引用的工作簿之间的名称冲突，可给过程一个独一无二的名称。通过避免名称冲突，就可以调用一个过程而不用指定它在哪个工作簿或模块中。


最常见的Visual Basic问题

 《Microsoft Excel/Visual Basic for Windows 95 Programmer�s Guide》

Visual Basic 基本概念

  了解对象，属性和方法

  如何找出所需要的属性和方法?

  什么是对象变量，如何使用?

  如何理解变量的作域?

  何谓变量的有效期?

  什么是变量?

  怎样使用数组变量?

  如何编写循环语句和判断语句?

  如何使用 With 语句?

过程与模块

  如何将语句延续到下一行?

  如何在Visual Basic中连接字符串?

  什么是 OnEvent 过程?

 编写用户自定义工作表函数的限制

  如何显示自定义对话框?

 如何建立带口令的编辑框?

  如何调用在其他的工作簿模块中的 Sub 过程或 Function 过程?

  怎样在两个工作表之间共享变量?

 什么是加载宏应用程序，何处可以了解加载宏的详细内容?

 如何打印模块中的代码?

Microsoft Excel 特点

  怎样在Visual Basic 中调用 Microsoft Excel 内部工作表函数?

  如何发现工作表函数是什么和它们用来做什么?

  与Visual Basic等价的Microsoft Excel 4.0 宏函数和命令

  如何显示 Microsoft Excel 内部对话框?

  怎样使用活动单元格?

  如何在Visual Basic 中引用工作表中的单元格或区域?

  如何在Visual Basic 中引用命名的区域?

  使用Visual Basic 在区域单元格中循环的较好方式是什么?

  如何关闭屏幕更新?

  如何在Visual Basic 中使用图表?

  何处可以得到关于如何使用Visual Basic 连接数据库的信息?

Code errors

  如何使用调试窗口?

  如何防止显示错误信息?

  如何停止无限循环的宏?

  为何使用Select 方法时过程失败了?

  当试图从模块中运行过程时,为何过程失败了?

  如何在Visual Basic 函数中正确使用括号?


如何将一个语句延续到下一行？

要将一个语句从一行延续到下一行，可键入一个空格，后面跟一个下划线字符(_)。不能在关键字的中间中断语句，可以在一个操作符，序列分隔点或圆点旁中断一行，如下面语句所示。

Workbooks("MyBook.xls").Worksheets("Sheet1") _

.Range("A1:B5").Value = _

var1 + 3.14159


如何关掉屏幕更新？

要关掉屏幕更新，可在一个过程中包含下列语句。

Application.ScreenUpdating = False


如何防止显示错误信息？

要关掉一个宏中的自动语法检查，可在“工具”菜单上单击“选项”。在“模块通用”选项卡中，清除“显示语法错误”复选框。

要在一个过程运行时不显示错误信息，可在该过程中包含下述语句。

Application.DisplayAlerts = False


如何找出所需要的属性和方法？

要找出所要用的属性和方法，一个简单的办法是将与过程要执行的动作类似的动作记录下来然后检查录下来的代码。详细内容请参阅通过记录宏来生成代码。


如何发现工作表函数是什么和它们做什么？

在一个工作表活动时，单击 [image] 。选择类目和所关心的函数。在对话框的底部就会显示一个说明。


如何停止陷入死循环的宏？

按ESC或CTRL+BREAK。要调试宏，可能需要标注出在循环中使用消息框或输入框的任何语句。如果依靠对话框来显示变量的值，可以代之以在“调试”窗口中用Debug.Print 来显示值。有关Debug.Print 和“调试”窗口的详细内容，请参阅如何使用 Debug 窗口。


为什么在模块中运行过程时过程会失败？

在从一个模块中运行过程时，该模块是当前工作表。某些属性(如 ActiveCell)和方法(如Select)要求工作表为当前工作表。有关不用 Select 方法来引用单元格的方法的详细内容，请参阅如何引用单元格和区域. 。无修饰的方法如 Range 和 Cells 必须在当前工作表中使用。如果想从一个模块中调用这些方法，则必须显式地修饰它们。


如何在 Visual Basic 中连接字符串？

在 Visual Basic 中，连接操作符是“和”号(&)。确保在“和”号前后有一个空格。下述例子连接字符串和一个变量以便在一个简单消息框中显示。

Sub Message()

MsgBox "The answer is " & myVariable

End Sub


怎样得到一份《Microsoft Excel/Visual Basic for Windows 95 Programmers Guide》资料?
《Microsoft Excel/Visual Basic for Windows 95 Programmer�s Guide》

在所有销售计算机书的地方和直接从Microsoft 出版社都可以获得《Microsoft Excel/Visual Basic for lsindows 95 Programmer�s Guide》(Microsoft 出版社，1995)。ISBN1_55615_819_X。信用卡订货：1_800_MSPRESS(1_800-677_7377)。CompuServe:GO MSP。

《Microsoft Excel/Visual Basic for Windows 95 Programmer�s Guide》中的信息可在 Microsoft Network 上联机获得。如果您是 Microsoft Network 的成员，单击这里 [image] 即可联到 Microsoft 论坛。


如何建立一个带口令的编辑框？

要为一个编辑框建立口令功能，在对话框编辑工作表中选择编辑框，然后单击“格式”菜单上的“对象”。选择“口令编辑”复选框。


如何打印模块中的代码？

切换到模块工作表，然后单击 [image] 。


什么是加载宏应用程序, 何处可以了解加载宏的详细内容？
什么是加载宏应用程序，何处可以了解加载宏的详细内容？

加载宏应用程序是一个以加载宏格式保存的工作簿。在将工作簿保存为加载宏时，Microsoft Excel 编译代码并保护它不被其它人打开或修改，加载宏是为用户分配宏、用户自定义函数或复杂宏应用程序的简单方法。有关怎样创建、传输和使用加载宏应用程序的内容，请参阅Microsoft Excel/Visual Basic for Windows 95 Programmer's Guide。


记录到正确的模块中

在创建和打开工作簿后作第一次记录时，宏记录器在该工作簿中插入一个新模块工作表。在该工作簿活动时，记录的每一个宏都记录到该模块中。缺省情况下，宏记录器为每个打开的工作簿都保留一个独立的 Visual Basic 模块。然而，如果在工作簿中加入其它 Visual Basic 模块，就可以指定这个模块为记录器要录制进来的模块。

1.激活要录入内容进去的 Visual Basic 模块。

2.单击任何现有过程的外部。

3.在“工具”菜单上，单击“记录宏”，然后单击“标示记录位置”。在下次单击“记录新宏”时，宏记录器就在标记的位置记录。

记录到新的工作簿

要在一个新工作簿的新模块中记录一个宏，在“记录新宏”对话框(“工具”菜单，“记录宏”子菜单，“记录新宏”命令)中单击“选项”，然后在“保存到”下单击“新工作簿”。在每次记录宏时，都必须设置该选项。

记录到个人宏工作簿

要记录一个总是可用的宏，在“记录新宏”对话框中单击“选项”，然后单击“个人宏工作簿”。个人宏工作簿是一个一直打开的隐藏工作簿。请记住给记录到该工作簿的宏起有意义的名称和说明。可能还要给常用的宏分配菜单项或快捷键。要取消隐藏个人宏工作簿，在“窗口”菜单下单击“取消隐藏”。

使用记录宏的技巧

n	如果经常记录来查找方法名和属性名或试验特性，可以只为这个目的保留一个打开的工作簿。优化宏之后，可以把它们复制到其它 Visual Basic 模块中。

n	可以在工作簿间移动或复制模块工作表。如果这样做，要确保引用是完整的。

n	可以从一个模块中复制和粘贴代码段至另一模块。

n	可以给 Visual Basic 模块改名，双击模块标签即可给工作表改名。


记录到一个已有的过程

可以将一个或多个语句记录到任何打开的 Visual Basic 模块。不像“记录新宏”命令(“工具”菜单，“记录宏”子菜单)，这项技术不将录入的语句括进 Sub…End Sub 语句中。

1.激活 Visual Basic 模块，在这个模块中要记录一个或多个语句。

2.单击要加入代码的位置。

3.在“工具”菜单上，单击“记录宏”，然后单击“标示记录位置”。

4.激活要从中记录宏的工作表。

5.在“工具”菜单上，单击“记录宏，然后单击“在标示处记录”。

6.执行要记录的动作。

7.单击 [image] 。


修改已记录的 Visual Basic 宏

宏记录器是发现想要用的Visual Basic方法和属性的很好的工具，但在记录宏时有限制，不能记录下列动作：

�	条件分支

�	循环结构

�	记算的选定和引用

�	一些内置函数和对话框

�	自定义对话框

要增强宏的功能，需要编辑记录到模块中的代码。有关在模块中编辑的基本内容，请参阅在一个模块内编程。

去掉 Select 方法和 Selection 属性

记录器经常记录 Select 方法和 Selction 特性。例如在画一个椭圆时记录了下列宏。

Sub Macro1()

ActiveSheet.Ovals.Add(46.5, 24, 51.75, 18).Select

Selection.Interior.ColorIndex = xlNone

End Sub

要从任何工作表中运行宏并在 sheet1 上画椭圆，需要引用正在操作的对象。可以重写宏如下：

Sub MyMacro()

Worksheets("Sheet1").Ovals.Add(46.5, 24, 51.75, 18) _

.Interior.ColorIndex = xlNone

End Sub

要使椭圆出现在 Sheet1(非当前工作表)上，需要用 Worksheets 方法来替换 ActiveSheets 属性。Select 方法和 Selection 属性要求工作表是活动的，因此要把两个都去掉；这通过组合两个初始记录的语句来完成。结果，代码简化了，并且宏可以从任何工作表中运行。

去掉 ActiveCell 属性

记录器经常记录 ActiveCell 属性，如下例所示。

Sub Macro1()

ActiveCell.FormulaR1C1 = "Cost per Unit"

Selection.Font.Bold = True

Selection.Columns.AutoFit

End Sub

只有从一个工作表的活动单元格运行宏时，宏才工作。可以改写宏，来传递给 Sub 过程 MyMacro 一个单元格引用作为参数。Mymacro 不要求工作表是活动的。

Sub Main()

MyMacro (Worksheets("Sheet1").Range("A1"))

End Sub

Sub MyMacro(myCell As Range)

With myCell

.FormulaR1C1 = "Cost per Unit"

.Font.Bold = True

.Columns.AutoFit

End With

End Sub

去掉不必要的参数

记录器可能会记录一个方法的所有参数，即使在只想修改其中一两个时。可从录下的语句中清除不必要的参数。下面的记录宏包含了 Find 方法的所有参数。

Sub Macro4()

Cells.Find(What:="Total", After:=ActiveCell, LookIn:=xlFormulas, _

LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext _

, MatchCase:=False).Activate

End Sub

因为只修改一个参数，所以可把宏改写如下：

Sub MyMacro()

Cells.Find(What:="Total").Activate

End Sub


创建新工作簿

可用 Add 方法在 Visual Basic 中创建新工作簿。下列过程创建了一个新工作簿。Microsoft Excel 自动命名工作簿 BookN，此处N 指下一个可用数字。新工作簿成为活动工作簿.

Sub AddOne()

Workbooks.Add

End Sub

创建新工作簿的较好方式是将其赋给某对象变量。下例中，Add 方法返回的 Workbook 对象赋给了对象变量 newBook。然后，设置 newBook 的若干属性。可以很容易地用对象变量控制该新工作簿。

Sub AddNew()

Set newBook = Workbooks.Add

With newBook

.Title = "1995 Sales"

.Subject = "Sales"

.SaveAs filename:="95Sales.xls"

End With

End Sub


打开工作簿

使用 Open 方法打开工作簿时，该工作簿成为 Workbooks 集合的成员。下列过程打开驱动器 C 上位于文件夹“MyFolder”中名为 MyBook.xls 的工作簿。

Sub OpenUp()

Workbooks.Open("C:\MyFolder\MyBook.xls")

End Sub


激活工作簿

使用 Activate 方法激活工作簿时，将把该工作簿置于活动窗口中。下列过程激活名为"MyBook.xls"的打开的工作簿。

Sub MakeActive()

Workbooks("MyBook.xls").Activate

End Sub


用名称引用工作表

可用 Worksheets, Charts、Modules 和 DialogSheets 方法以名称标识工作表。下列语句激活工作簿中不同的工作表。

Worksheets("Sheet1").Activate

Charts("Chart1").Activate

Modules("Module1").Activate

DialogSheets("Dialog1").Activate

可用 Sheets 方法返回工作表、图表工作表、模块表、或对话框编辑表；所有这些都包含在 Sheets 集合中。下例激活活动工作簿中名为"Chart1"的表。

Sub ActivateChart()

Sheets("Chart1").Activate

End Sub

附注   嵌入工作表中的图表是ChartObjects 集合的成员，而处于图表工作表中的图表属于Charts 集合。欲知更多信息，请参阅使用图表工作。


用索引号引用工作表

索引号是赋予工作表的序数，基于同类工作表标签的位置(从左开始计数)。下列过程使用 Worksheets 方法激活活动工作簿的第一个工作表。

Sub FirstOne()

Worksheets(1).Activate

End Sub

如果希望操作所有类型的工作表(工作表、图表工作表、模块表、对话框编辑表)，可用 Sheets 方法。下列过程激活工作簿中的第四个表。

Sub FourthOne()

Sheets(4).Activate

End Sub

附注   移动、新增或删除工作表时索引顺序会改变。


引用多个工作表

可用 Array 函数标识一组工作表。下例在活动工作簿中选定三个工作表。

Sub Several()

Worksheets(Array("Sheet1", "Sheet2", "Sheet4")).Select

End Sub


如何引用单元格和区域

使用 Visual Basic 时，通常先指定一个单元格或某一单元格区域，然后再进行某些操作（例如输入公式或改变格式）。通常用一条语句来实现，在这条语句中指定区域，并且改变属性或应用某方法。

在 Visual Basic 中，Range 对象可以是一个单元格，也可以是某一区域内的多个单元格。下列标题列出了指定和使用 Range 对象的最常用方法。

引用单元格的多种可选方法：

用 A1样式标志引用单元格和区域

用索引号引用单元格

引用行和列

用快捷标志引用单元格

引用命名区域

引用相关单元格

使用 Range 对象引用单元格

引用工作表上的所有单元格

引用多个区域


用 A1样式标志引用单元格和区域

使用 Range 方法可以以 A1引用样式引用一个或多个单元格。下列子过程将单元格 A1：D5的格式改成粗体。

Sub FormatRange()

Workbooks("Book1").Sheets("Sheet1").Range("A1:D5") _

.Font.Bold = True

End Sub

下表对用 Range 方法引用的 A1样式标志加以说明：

引用	含义
Range("A1")	单元格 A1
Range("A1:B5")	单元格 A1到 B5的区域
Range("C5:D9,G9:H16")	多区域选择
Range("A:A")	列 A
Range("1:1")	第一行
Range("A:C")	列 A到列 C
Range("1:5")	第一行到第五行
Range("1:1,3:3,8:8")	第一行，第三行和第八行
Range("A:A,C:C,F:F")	列 A，列 C和列F


用索引号引用单元格

在 Cells 方法中加入行列索引号可引用一个单元格，用这种方法返回的 Range 对象只代表一个单元格。下例中，Cells(6,1)返回 Sheet1中的单元格 A6，其 Value 属性设为10。

Sub EnterValue()

Worksheets("Sheet1").Cells(6, 1).Value = 10

End Sub

由于可以用变量来取代索引号，Cells 方法在对某一区域的单元格进行循环操作时非常有效。如下例所示：

Sub CycleThrough()

Dim counter As Integer

For counter = 1 To 20

Worksheets("Sheet1").Cells(counter, 3).Value = counter

Next counter

End Sub

注意：   如果要同时对某一区域的所有单元格改变属性或应用某一方法，请应用 Range 方法来实现。有关的详细内容，请参阅 使用 A1 样式引用单元格 。


引用行和列

使用 Rows 方法或 Columns 方法可对整个行或列进行操作，它们返回的 Range 对象代表某一区域的单元格。下例用 Rows（1）返回Sheet1的第一行，随后将 Font 对象的 Bold 属性设为 True。

下表对用 Rows 和 Columns 方法引用的行和列作一些说明：

引用	含义
Rows(1)	第一行
Rows	工作表格上的所有行
Columns(1)	第一列
Columns("A")	第一列
Columns	工作表格上的所有列

若要同时对多行或多列进行操作，应创建一个对象变量，并用 Union 方法将多个 Rows 或 Columns 方法的调用联结起来。下例将工作簿中工作表1的第一三五行改为粗体格式。

Sub SeveralRows()

Worksheets("Sheet1").Activate

Dim myUnion As Range

Set myUnion = Union(Rows(1), Rows(3), Rows(5))

myUnion.Font.Bold = True

End Sub


用快捷标志引用单元格

使用 Range 方法，除了用 A1样式标志引用外，还可用一种更为快捷的方式：将已命名的区域放在方括号中。此时不要求加“Range”一词和引号。如下所示：

Sub ClearRange()

Worksheets("Sheet1").[A1:B5].ClearContents

End Sub

Sub SetValue()

[MyRange].Value = 30

End Sub


引用命名区域

用名称来指定区域比用 A1样式标志更为方便。若要给选定区域命名，可单击编辑栏左下端的名称框，再键入名称，最后按下“ ENTER ”键。

命名区域的引用

下例引用工作簿“ MyBook.xls ”中名为“ MyRange ”的区域：

Sub FormatRange()

Range("MyBook.xls!MyRange").Font.Italic = True

End Sub

下例引用工作簿“ Report.xls ”中名为“ Sheet!Sales ”的特定工作表区域：

Sub FormatSales()

Range("[Report.xls]Sheet1!Sales").BorderAround weight:=xlthin

End Sub

若要选定一个命名区域，可用 GoTo 方法。此方法先激活工作簿和工作表，再选定区域。

Sub ClearRange()

Application.Goto Reference:="MyBook.xls!MyRange"

Selection.ClearContents

End Sub

在工作簿已激活的情况下，上述过程应改写为：

Sub ClearRange()

Application.Goto Reference:="MyRange"

Selection.ClearContents

End Sub

命名区域内单元格的循环操作

下例用 For Each...Next  循环对某一命名区域内的每一单元格进行循环操作，如果该区域内任一单元格的值大于 Limit 值，则该单元格变为黄色。

Sub ApplyColor()

Const limit As Integer = 25

For Each c In Range("MyRange")

If c.Value > limit Then

c.Interior.ColorIndex = 27

End If

Next c

End Sub


引用相关单元格

通常用 Offset 方法引用相关单元格。下例将活动工作表上活动单元格下一行，后三列处的单元格的内容设置为双下划线格式。

Sub Underline()

ActiveCell.Offset(1, 3).Font.Underline = xlDouble

End Sub

注意：除了用于引用之外，还可将使用 Offset 方法的宏记录下来。方法为：指向“工具”菜单中的“记录宏”，然后单击“使用相对引用”。

要对某一区域内的单元格进行循环操作，可在循环中对 cells 方法使用变量。下例将5到100之间的数填写到第三列的前20个单元格 ，每次递增5。变量 counter 用作 Cells 方法的行索引。

Sub CycleThrough()

Dim counter As Integer

For counter = 1 To 20

Worksheets("Sheet1").Cells(counter, 3).Value = counter * 5

Next counter

End Sub


使用 Range 对象引用单元格

如果给 Range 对象设一个对象变量，就可以方便地用变量名来操作该对象区域。

下列过程创建一个名为 myRange 的对象变量，指定其区域为：活动工作簿中 Sheet1上的单元格 A1：D5；然后用变量名指代这一区域对象，对其部分属性加以修改。

Sub Random()

Dim myRange As Range

Set myRange = Worksheets("Sheet1").Range("A1:D5")

myRange.Formula = "=RAND()"

myRange.Font.Bold = True

End Sub

注意：

可以为 Microsoft Excel 的任何对象创建对象变量。关于创建对象变量的详细内容，请参阅Microsoft Excel 中的可用对象 。


引用工作表上的所有单元格

在未指定索引号的情况下对工作表应用 Cells 方法，返回的 Range 对象将代表工作表上的所有单元格。下列子过程将清除活动工作簿中 Sheet1上所有单元格的内容。

Sub ClearSheet()

Worksheets("Sheet1").Cells.ClearContents

End Sub


引用多个区域

使用适当的方法便可方便地引用多个区域，使用 Range 方法和 Union 方法可以引用任意一组区域；使用 Area 方法可以引用工作表上选定的一组区域。

使用 Range 方法

使用 Range 方法时，在每两个或多个引用区域之间加上逗号，即可引用多个区域。下例清除 Sheet1上三个区域的内容。

Sub ClearRanges()

Worksheets("Sheet1").Range("C5:D9,G9:H16,B14:D18").ClearContents

End Sub

在使用 Range 方法操作多个区域时，如果使用命名区域则更为方便。下例对同一表上的三个命名区域进行操作。

Sub ClearNamed()

Range("MyRange, YourRange, HisRange").ClearContents

End Sub

使用 Union 方法

使用 Union 方法可将多个区域联结成一个 Range 对象。下例创建一个名为“myMultipleRange”的 Range 对象，并把它定义为区域 A1：B2和区域 C3：D4；然后将这个联结而成的区域设置为粗体格式。

Sub MultipleRange()

Dim r1, r2, myMultipleRange As Range

Set r1 = Sheets("Sheet1").Range("A1:B2")

Set r2 = Sheets("Sheet1").Range("C3:D4")

Set myMultipleRange = Union(r1, r2)

myMultipleRange.Font.Bold = True

End Sub

使用 Areas 方法

使用 Areas 方法，可以引用选定区域或由多个选定区域组成的区域集合。下列过程计算选定的区域数，如果选定区域多于1个，则显示一条警告信息。

Sub FindMultiple()

If Selection.Areas.Count > 1 Then

MsgBox "Cannot do this to a multiple selection."

End If

End Sub


选定和激活单元格

使用 Microsoft Excel 时，通常先选定一个或多个单元格，然后再进行某种操作（例如设置单元格格式或给单元格输入数值）。而在 Visual Basic 中，进行修改之前通常是无需选定单元格的。

例如，在 Visual Basic 中，要往单元格 D6中输入公式，并不需要选定区域 D6，只需返回该 Range 对象，然后将 Formula 属性设置为所需公式即可，如下例所示：

Sub EnterFormula()

Worksheets("Sheet1").Range("D6").Formula = "=SUM(D2:D5)"

End Sub

不先选定就可控制单元格的有关示例请参阅如何引用单元格和区域

使用 Select 方法和 Selection 属性

Select 方法激活工作簿中各工作表及其对象；Selection 属性返回一个对象，该对象代表活动工作簿中活动表上的当前选定内容。要想成功地使用 Selection 属性，必须先激活工作簿，再激活或选定某工作表；然后用 Select 方法选定一个区域（或其它对象）。

宏记录器可频繁创建应用 Select 方法和 Selection 属性的宏。下面的子过程是用宏记录器生成的，它也说明了 Select 和 Selection 是如何配合使用的。

Sub Macro1()

Sheets("Sheet1").Select

Range("A1").Select

ActiveCell.FormulaR1C1 = "Name"

Range("B1").Select

ActiveCell.FormulaR1C1 = "Address"

Range("A1:B1").Select

Selection.Font.Bold = True

End Sub

下例未激活或选定单元格或工作表，却完成了同样的任务。

Sub Labels()

With Worksheets("Sheet1")

.Range("A1") = "Name"

.Range("B1") = "Address"

.Range("A1:B1").Font.Bold = True

End With

End Sub

选定活动工作表上的单元格

用 Select 方法选定单元格时必须注意，Select 方法仅在活动工作表上有效。如果在模块表中运行子过程，在对某一区域的单元格应用 Select 方法之前，必须先由过程激活工作表，否则 Select 方法会失败。下列过程在活动工作簿中将 Sheet1中的一行复制到 Sheet2中。

Sub CopyRow()

Worksheets("Sheet1").Rows(1).Copy

Worksheets("Sheet2").Select

Worksheets("Sheet2").Rows(1).Select

Worksheets("Sheet2").Paste

End Sub

激活选定的单元格

用 Activate 方法可以激活选定单元格。即便选定了多个单元格，也只能激活其中的一个，因为只能有一个活动单元格。下列过程先选定一个区域，然后激活区域中的一个单元格，但并未改变选定区域。

Sub MakeActive()

Worksheets("Sheet1").Activate

Range("A1:D4").Select

Range("B2").Activate

End Sub


处理活动单元格

ActiveCell 属性返回的 Range 对象代表活动单元格。

Range 对象的任一方法或属性都可用于活动单元格，如下例所示：

Sub SetValue()

Worksheets("Sheet1").Activate

ActiveCell.Value = 35

End Sub

注意：

只有工作表为活动工作表时才能对其上的活动单元格进行操作。

移动活动单元格

可用 Activate 方法指定活动单元格，例如，下面的过程将 B5设为活动单元格，并将其格式变为粗体。

Sub SetActive()

Worksheets("Sheet1").Activate

Worksheets("Sheet1").Range("B5").Activate

ActiveCell.Font.Bold = True

End Sub

注意：

请用 Select 方法选定单元格区域，用 Activate 方法激活某一个单元格。

也可用 Offset 方法来移动活动单元格。下列过程在活动单元格中插入正文，然后在原有选定区域内将活动单元格右移一格。

Sub MoveActive()

Worksheets("Sheet1").Activate

Range("A1:D10").Select

ActiveCell.Value = "Monthly Totals"

ActiveCell.Offset(0, 1).Activate

End Sub

选定活动单元格周围的单元格

CurrentRegion 属性返回用空白行和空白列围住的多个单元格。下列过程将活动单元格附近有数据的单元格都纳入选定区域，然后将选定区域中的所有单元格都变为货币样式。

Sub Region()

Worksheets("Sheet1").Activate

ActiveCell.CurrentRegion.Select

Selection.Style = "Currency"

End Sub


使用三维区域

如果要在多个工作表上操作同一区域，可用 Array 函数指定多个工作表。下例设置三维区域单元格的边框格式。

Sub FormatSheets()

Sheets(Array("Sheet2", "Sheet3", "Sheet5")).Select

Range("A1:H1").Select

Selection.Borders(xlBottom).LineStyle = xlDouble

End Sub

下例用 FillAcrossSheets 方法，将 Sheet2上某一区域单元格的格式和所有数据，传送给活动工作簿中所有工作表上的相应区域。

Sub FillAll()

Worksheets("Sheet2").Range("A1:H1") _

.Borders(xlBottom).LineStyle = xlDouble

Worksheets.FillAcrossSheets (Worksheets("Sheet2") _

.Range("A1:H1"))

End Sub


通过记录宏来生成代码

如果对使用何种 Visual Basic 方法或属性没有把握，可以通过记录一段简短的宏来生成所需代码。代码生成后，再加以修改，就可以实现所要达到的功能。

记录宏时的一些提示：

打开 Visual Basic 工具栏，这时便可使用工具栏中的“记录宏”、“执行宏”和“停止执行宏”按钮来取代菜单。

请记录那些可在主过程中调用和使用的简短过程，这样可使生成的代码更易于管理，使用和调试。

启用“使用相对引用”，这样在记录时就可使 Microsoft Excel 追踪与活动单元格相关的单元格引用信息。可在工作表的任意位置运行宏。有关使用这一命令的详细内容，请参阅记录宏.

使用“在标记处记录宏”可将代码记录在已有过程中，有关使用这一命令的详细内容，请参阅 记录到现有过程中


获得Visual Basic 联机帮助

有多种途径可进入联机”帮助“来获得 Visual Basic 的问题解答以及了解 Visual Basic 关键字的有关情况。下面是几种最常用，最有效的进入“帮助”的方法。

在 Visual Basic 模块表中按 F1键。

在模块表中操作时，如果在代码行中单击方法属性，函数，语句或对象等关键字，然后按下 F1键，就可直接进入联机帮助。

浏览对象层次结构

在“帮助”目录中单击“ Microsoft Excel Visual Basic 引用”下的“Microsoft Excel 对象模型”命令，就可显示一个包含所有 Microsoft Excel  对象模型说明的帮助主题。单击某个对象，即可显示该对象的帮助主题。在对象主题中，可单击更多的图形来显示相关的对象主题。

对象模型只显示对象的图形。如果要查找某一特定对象的方法或属性，可单击对象主题顶部的“方法”或“属性”命令。

还可用“对象浏览器”命令来查看对象的方法和属性列表。有关使用“对象浏览器”命令的详细内容，请参阅 使用“对象浏览器”

询问“问答向导”

使用“问答向导”可非常方便地找到所要查找的主题。只要键入问题，然后在“问答向导”建议的多个主题中选择其一即可。问题越详细，则提供的主题也越详细。例如“怎样将我的图表编成一个饼图？”就是一个比较详细的问题。

可在“帮助主题”对话框中的“问答向导”选项卡内，使用“程序设计与语言参考”查看与 Visual Basic 有关的主题。“怎样做?”和“ 请告诉我”区域内列出了相应的 Microsoft Excel 主题。

使用“目录”选项卡。

“帮助主题 ”对话框中有多个选项卡。使用“目录”选项卡可查看按字母顺序排列的对象，方法，属性，函数和语句，此外，还可从“目录”选项卡进入“？入门指南”。

提示：可使用 ALT+TAB 键或“任务栏”在应用程序和联机帮助之间进行切换。如果让联机帮助保持活动状态，则可随时迅速返回上次阅读的主题。使用快捷菜单，可复制选定文本，改变字体大小，打印，批注或将“帮助”窗口保留在屏幕顶部。


复制Visual Basic 中的示例

要复制“帮助”主题中的示例或任何文字内容，应先用鼠标右键选定要复制的内容，然后单击快捷菜单中的“复制”命令，再激活 Microsoft Excel 来将示例粘贴到模块表中。

请试一试将如下示例复制到一个模块表中。

Try copying the following example into a module.

Sub Squared()

answer = Application.InputBox(Prompt:="Type a number", Type:=1)

answer = Sqr(answer)

MsgBox "The square root is " & answer

End Sub

提示：也可按 CTRL+C 键来复制“帮助”窗口中的选定示例。按 CTRL+V 键可将示例粘贴入模块表中。


使用“对象浏览器”

利用“对象浏览器”可浏览 Visual Basic 提供的所有对象及其属性和方法，浏览时可方便地显示联机帮助。

在“对象浏览器”中查找方法或属性：

1 激活一个模块表。

2 在“视图”菜单中，单击“对象浏览器”。

3 在“程序库/工作簿”框中，单击“Microsoft Excel ”库或其它库。

4 在“对象/模块”框中，单击要查找的对象。

5 在“方法/属性”框中，单击所需方法或属性。

可单击 [image] 来查看选定项的联机帮助。

查到所需方法或属性后，可将其语法粘贴到活动模块表中。

将方法语法或属性语法粘贴到模块表中：

1 在需要粘贴语法的模块表的指定位置单击。

2 在“对象浏览器”中查找方法或属性。

3 单击“粘贴”命令。

至此，包括所有命名参数的语法信息就会出现在模块表中。


了解对象,属性和方法
了解对象，属性和方法

对象是 Visual Basic 的基本结构块，在 Visual Basic 中几乎所做的每件事都要用到对象。 Microsoft Excel 中的任一元素—工作簿，工作表，图表，单元格等等�都可用 Visual Basic 中的对象来表示。通过创建过程，在过程中使用上述对象的方法，控制上述对象的属性，可自动完成 Microsoft Excel 的各种任务。

什么是对象？

对象表示 Microsoft Excel 的一个元素，如一个工作簿，一个工作表，一个图表或某一区域的单元格。在 Visual Basic 代码中，如果要使用对象的某个方法，或改变对象的某个属性值，必须先选定对象。

什么是集合？

集合是包含多个其它对象（通常为同一类的）的对象。例如 Workbooks 对象就包含了所有打开的 Workbook 对象。

可以用 Workbooks 方法来返回 Workbooks 集合中的某一个成员。使用集合就象使用数组一样，在圆括号中写入名称或编号，就可以指定集合中的某一项。例如在下列过程中，用 Workbooks(1)指定第一个打开的 Workbook 对象，并用 Close 方法关闭它。

Sub CloseFirst()

Workbooks(1).Close

End Sub

下列过程用名称（为一字符串）来指定一个 Workbook 对象。

Sub CloseBook()

Workbooks("MyBook.xls").Close

End Sub

注意：

应该用 Workbook 和 Worksheets 方法来指定某个工作簿或工作表。在 Visual Basic 中禁止直接用“Workbook”或“Worksheet”等词来表示某个 Workbook 或 Worksheet 对象。

还可对整个对象集合进行操作。例如，下列过程关闭所有打开的工作簿。

Sub CloseAll()

Workbooks.Close

End Sub

逐层降至对象

沿着 Microsoft Excel 的类等级结构，由高到低，逐层而下，才能返回一个对象。例如，下列过程删除工作簿“Book6.xls”中的第一个工作表。

Sub DeleteOne()

Application.Workbooks("Book6.xls").Worksheets(1).Delete

End Sub

 Application 属性返回 Application 对象，而 Application 对象的 Workbook 方法返回一个单独的工作簿对象即“Book6.xls”；其后，由 Workbook 对象的 Worksheets 方法返回“Book6.xls”中的第一个 Worksheet 对象；最后才用 Delete 方法将该 Worksheets 对象删除。

如上所示，总是用方法或属性由高到低，逐层降至对象。也就是说，总是用等级结构中较高层次对象的方法或属性来返回较低层次的对象。返回所需对象之后，才可以使用该对象的方法或控制该对象的属性。要查阅有关等级结构方面的内容，请参看 Microsoft Excel Objects. 。有关利用方法和属性逐层降至对象的详细内容，请参阅后文中题为“用方法和属性返回对象”一节。

提示：如果过程无法运行，可能是遗漏了类等级结构中的部分层次。例如，在试图引用某个 Range 对象时，没有指出包含它的 Worksheets 对象，则 Visual Basic 会显示一条信息： Application 类的 Range 方法失败”

很多情况下，无需在 Visual Basic 语句中使用 Application 对象。要搞清楚每一个特定的方法或属性是否需要指明 Application 对象，可查阅该方法或属性的联机“帮助”主题。

什么是方法？

方法是对象可执行的操作，例如 Close 就是 Workbook 对象的一个方法。

下列过程用Add方法在活动工作簿中添加一个新的工作表。由于 Add 可在工作表集合中增加一个新的工作表，因而它是 Worksheets 对象的一个方法。

什么是属性？

属性通常是指对象的某种特征（如大小，颜色，或屏幕位置等）或某种行为方式（如是否允许或是否可见）。若要改变对象的特征，只要改变其属性值即可。属性不带参数。

设置属性值时，先用一小句点将引出的对象及其属性名隔开，之后用一个等号，在等号后面写入新的属性值。例如，下列过程通过设置Name属性来改变工作表的名称。

Sub ChangeName()

Workbooks("MyBook.xls").Worksheets("Sheet1") _

.Name = "MyWorksheet"

End Sub

有一些属性是不能设置的。属性的“帮助”主题指明了该主题是可设置（可读写）的还是不可设置（只读）的。

通过返回属性值，可以获得对象的一些信息。下列过程将单元格C5的公式放在变量 myFormula 中，然后用 MsgBox 函数将变量的内容显示在对话框中。Formula为Range对象的属性。

用方法和属性返回对象

可以返回对象的方法或属性称为存取器。

下列过程中， Workbooks 方法返回一个特定的 Workbook 对象，该 Workbooks 方法即为一个存取器。随后将 Activate 方法应用于该 Workbook 对象。

Sub GetFormula()

myFormula = Worksheets("Sheet1").Range("C5").Formula

MsgBox myFormula

End Sub

存取器后面通常总带有一个或多个用圆括号括起来的参数。下例中，由于圆括号中的参数为“Sheet1”，因而 Worksheets 方法返回名为“Sheet1”的 Worksheet 对象。其后， Cells 方法返回一个包含单元格 A1的 Range 对象，然后才将 ClearContents 方法应用于该区域。

Sub ClearCell()

Worksheets("Sheet1").Cells(1, 1).ClearContents

End Sub

属性通常返回的是数字，文本， True 或 False 等值，但有些属性也返回对象，比如 ActiveCell, ActiveWindow, ActiveSheet, Selection, Font, Interior, 和 Border 等都是存取器属性的例子。例如， ActiveWorkbook 属性返回一个代表当前活动工作簿的 Workbook 对象。下列过程用 Close 方法关闭活动工作簿，并不保存已做的修改。

Sub CloseActive()

ActiveWorkbook.Close saveChanges:=False

End Sub

获取关于对象，方法和属性的“帮助”

必须沿类等级结构由高到低，逐层下降，才能利用较高层对象的方法或属性，返回所需的较低对象。通过“帮助”可以了解一个对象有哪些方法和属性；在类等级结构中哪些对象高于给定对象，哪些对象低于给定对象等等。

进入模块表后，单击关键字并按下F1键，就可显示联机“帮助”。


理解作用域

作用域就是指变量，常量或过程的可访问性，即它可被其它过程识别的程度。例如，在过程内部被声明的变量就不可被同一工作簿或模块表中的其它过程访问。共有三个 作用域级别 过程，私有，公用。

过程作用域

在一个过程中定义的变量或常量在过程外部不能被识别。只有定义它的过程可以使用它。

下例中，过程 Myprog 在消息框内显示一个字符串“Hello！”，而过程 YourProg 只显示了一个空白的消息框，因为变量 myMsg 是在 MyPrlg 过程之内（而不是之外）定义的。

Sub MyProg()

Dim myMsg As String

myMsg = "Hello!"

MsgBox myMsg

End Sub

Sub YourProg()

MsgBox myMsg

End Sub

私有作用域

也可将变量和常量定义在过程之外，定义在模块顶部的公用声明段中。公用声明段中用 Dim 语句声明的变量默认为私有作用域（即只适用于该模块中的过程），但若用 Private 来代替 Dim ，则会使代码的作用域表现得更为明确。

下例中，字符串变量 myMsg 适用于过程 myProg ，yourProg 以及同一模块中的任意其它过程。

Dim myMsg As String

Sub MyProg()

myMsg = "Hello!"

End Sub

Sub YourProg()

MsgBox myMsg

End Sub

过程本身也有作用域，并默认为适用于同一工作簿中的所有模块。但若将过程声明为 Private ，则该过程只能被同一模块中的任意过程调用，其它模块是无法调用的。此外，一个 Private 的过程，既不能作为独立的宏来运行，也不能指定为菜单项，快捷键，工具栏或控制。

下例中， MyPr1v 只能在 Get Privat 中调用，其它模块都无法调用它。

Private Sub MyPriv()

MsgBox "Message from MyPriv"

End Sub

Sub GetPrivate()

MyPriv

End Sub

注意：

若要将过程的作用域限制在定义它的工作簿中，可在公用声明段中增加一条语句：OptionPrivateModule，使该过程所在的模块变为私有模块。

公用作用域

除非用了 Private 声明，过程的作用域一般都默认为公共作用域，即同一工作簿中的所有模块都可访问该过程。私有过程只能由它所在的模块来访问。如果希望工作簿中的所有模块都可访问某个变量或常量，必须在模块顶部的公用声明段中用 Public 来声明该变量或常量。下例中，字符串变量 myMsg 可由工作簿中任意模块的任意过程来调用。

Public myMsg As String

也可使用其它工作簿的公用过程，公用变量和公用常量。但使用之前，必须先建立起工作簿的引用存取器。有关引用其它工作簿的详细内容，请参阅调用其它工作簿中的过程 。


变量的有效期

一个变量保持其变量值的时间称为变量的有效期。

通常，过程级变量的有效期即为过程的运行持续时间，过程每被调用一次，过程级变量都需重新赋给默认值。但用 Static 关键字声明的过程级变量，在工作簿打开的整个期间都是有效的，即便是在过程两次调用之间，也仍然保持已有值。

下例中，在用户第二次运行该程序时，三个变量仍保存和显示已给的默认值。

Sub LoanCalc()

Static loanAmt

Static loanInt

Static loanTerm

loanAmt = Application.InputBox _

(Prompt:="Loan amount (100,000 for example)", _

Default:=loanAmt, Type:=1)

loanInt = Application.InputBox _

(Prompt:="Annual interest rate (8.75 for example)", _

Default:=loanInt, Type:=1)

loanTerm = Application.InputBox _

(Prompt:="Term in years (30 for example)", _

Default:=loanTerm, Type:=1)

payment = Application.Pmt(loanInt / 1200, loanTerm * 12, loanAmt)

MsgBox "Monthly payment is " & Format(payment, "Currency")

End Sub

若在Sub或Function语句前加上Static关键字，则过程中的所有过程级变量，在过程的调用之间，都将保持已有值不变。例如，下例中的前4行可按如下写法来编写：

Static Sub LoanCalc()

Dim loanAmt

Dim loanInt

Dim loanTerm

注意：

编辑完模块后，再次运行过程时， Visual Basic 会重组工作簿中的所有模块，并重置所有变量。若要保留工作簿进行重组或保存时的值，可以用一个隐藏的工作表来存贮。


如何理解Visual Basic 的语法

在 Visual Basic 帮助主题中，可以找到有关方法，语句，函数的语法。语法指出正确使用方法，语句或函数所需的所有元素。本节将用实例说明如何理解最常用的语法元素。

Activate方法的语法

object.Activate

在 Activate 方法的语句中，斜体的 object 处应放置所提供的信息棗在这里即为一个对象，粗体字应照原样键入。例如，下列过程激活活动文档中的第二个窗口。

Sub MakeActive()

Windows(2).Activate

End Sub

MsgBox函数的语法

MsgBox(prompt[,buttons][,title][,helpfile,context])

在 MsgBox 函数语法中，粗斜体表示的是函数的参数，方括号中的参数为可选项（在 Visual Basic 代码中不需键入方括号）。对于 MsgBox 函数来说，只有提示文字是必选的参数。

在代码中，既可用位置也可用名字来表示函数和方法的参数。用位置表示时，顺序应与语法相同，例如：

MsgBox "Your answer is correct!",0,"Answer Box"

用名字表示时，参数名后要跟一个冒号和等号，等号后面为参数的值；参数之间的顺序是任意的，例如：

MsgBox Title:="Answer Box", Prompt:="Your answer is correct!"

在函数和部分方法的语法中，参数要求用圆括号括起。因为这些函数和方法有返回值，必须用圆括号中的参数来给变量传值。但如果忽略返回值或根本不传递参数，就不需用圆括号。无返回值的方法也不需把参数放在圆括号中。不论是用位置参数还是用名称参数，以上原则都适用。

下例中， MsgBox 函数的返回值（选定按钮的编号），存放在变量 myVar 里。由于有返回值，所以用了圆括号。过程中还用了另一个消息框来显示变量的值。

Sub Question()

myVar = MsgBox(Prompt:="I enjoy my job.", _

Title:="Answer Box", Buttons:="4")

MsgBox myVar

End Sub

Option Compare语句的语法

Option Compare {Binary | Text}

Option Compare 语句语法中的花括号和直线，表明要在两项之间作强制选择。（在 Visual Basic 语句中不需键入花括号）。如下语句表示在模块中，用不区分大小写的排序顺序，对字符串进行比较。

Option Compare Text

Dim语句的语法

Dim varname[([subscripts])][As type][,varname[([subscripts])][As type]] . . .

在 Dim 语句的语法中， Dim 是必有的关键字， Varname 是唯一的必选项。例如，下列语句创建三个变量：myVar，nextVar 和 thirdVar，三个变量都自动声明为 Variant 数据类型。

Dim myVar, nextVar, thirdVar

下例声明一个字符串变量。写出数据类型，既可节省内存空间，也有助于对代码查错。

若要用一条语句来声明多个变量，需要写出每个变量的数据类型。未写出数据类型的变量将自动声明为 Variant 数据类型。

Dim myAnswer As String

在下列语句中， x 和 y 定义为变体类型，只有 z 定义为 Integer 类型。

Dim x, y, z As Integer

如果要声明一个数组变量，必须用圆括号。下标是任选的，可以用也可以不用。下列语句定义一个动态数组。

Dim myArray()

有关数组的详细内容，请参阅Using arrays in Visual Basic.。


LargeScroll方法

按页滚动窗口。

语法

object.LargeScroll(down, up, toRight, toLeft)

object

必选项，要滚动的窗口。

down

可选项，向下滚动窗口的页数。

up

可选项，向上滚动窗口的页数。

toRight

可选项，向右滚动窗口的页数。

toLeft

可选项，向左滚动窗口的页数。

注释

若down和up二者都已指定，则根据两个变量之差来滚动窗口。例如，若down为3，而up为6，则窗口向上滚动3页。

若toLeft和toRight二者都已指定，则根据两个变量之差来滚动窗口。例如，若toLeft为3，而toRight为6，则窗口向右滚动3页。

其中的任何变量都可为负数。


SmallScroll方法

按行或列滚动窗口。

语法

object.SmallScroll(down, up, toRight, toLeft)

object

必选项，要滚动的窗口。

down

可选项，向下滚动窗口的行数。

up

可选项，向上滚动窗口的行数。

toRight

可选项，向右滚动窗口的列数。

toLeft

可选项，向左滚动窗口的列数。

注释

若down和up二者都已指定，则根据两个变量之差来滚动窗口。例如，若down为3，而up为6，则窗口向上滚动3行。

若toLeft和toRight二者都已指定，则根据两个变量之差来滚动窗口。例如，若toLeft为3，而toRight为6，则窗口向右滚动3列。

其中的任何变量都可为负数。


CopyFromRecordset 方法

将 DAO Recordset 对象的内容复制到工作表中，从指定区域的左上角开始。若 Recordset对象包含带 有OLE 对象的字段，本方法将失效。本方法仅适用于 Microsoft Excel for Windows 95。

语法

object.CopyFromRecordset(data, maxRows, maxColumns)

object

必选项，目标 Range 对象

data

必选项，要复制到指定区域的 Recordset 对象。

maxRows

可选项，要复制到工作表中的最大记录数。若省略则将 Recordset 对象中的所有记录进行复制。

maxColumns

可选项，要复制到工作表中的最大字段数。若省略，则将 Recordset 对象中的所有字段进行复制。

注释

复制是从 Recordset 对象的当前行开始的。复制完成之后，Recordset 对象的 EOF 属性为 True。


CopyFromRecordset 方法实例

本实例将字段名从 DAO Recordset 对象复制到工作表的第一行，并将这些字段名格式化为粗体。然后将记录集复制到工作表，从 A2 单元格开始。

For iCols = 0 to rs.Fields.Count - 1

ws.Cells(1, iCols + 1).Value = rs.Fields(iCols).Name

Next

ws.Range(ws.Cells(1, 1),  _

ws.Cells(1, rs.Fields.Count)).Font.Bold = True

ws.Range(�A2�).CopyFromRecordset rs


Cursor 属性

返回或设置Microsoft Excel鼠标标志的形状，如下表所示。本属性仅适用于Microsoft Excel for Windows 95。可读写

值	表示
xlNormal	默认标志
xlWait	砂漏型标志
xlNorthwestArrow	西北向箭头标志
xlIBeam	I型标志
注释

当宏停止运行时，Cursor 属性不能自动复位。在宏停止之前，应将鼠标标志复位到 xlNormal。


Cursor 属性实例

本实例将鼠标标志转换成I型，暂停，然后将该标志转换成默认标志。

Sub ChangeCursor()

Application.Cursor = xlIBeam

For x = 1 To 1000

For y = 1 to 1000

Next y

Next x

Application.Cursor = xlNormal

End Sub


EnableAutoFilter 属性

若在打开“只对用户接口”保护时，AutoFilter 箭头是允许的，则为 True。本属性仅适用于 Microsoft Excel for Windows 95。

注释

本属应用于每个工作表，它不随工作表一起保存。


EnableAutoFilter 属性实例

本实例允许在有保护的工作表中使用AutoFilter箭头。

ActiveSheet.EnableAutoFilter = True

ActiveSheet.Protect contents:=True, userInterfaceOnly:=True


EnableOutlining 属性

若在打开“只对用户接口”保护时，分级显示符号是允许的，则为 True。该属性仅适用于 Microsoft Excel for Windows 95。可读写。

注释

本属性应用于每个工作表，它不随工作表一起保存。


EnableOutlining 属性实例

本实例允许在有保护的工作表中使用分级显示符号。

ActiveSheet.EnableOutlining = True

ActiveSheet.Protect contents:=True, userInterfaceOnly:=True


EnablePivotTable 属性

若在打开“只对用户接口”保护时，“数据透视表”的控制和方式是允许的，则为 True。本属性仅适用于 Microsoft Excel for Windows 95。可读写

注释

本属性应用于每个工作表，它不随工作表一起保存。

在“数据透视表”的下面和右边必须有足够数目的非锁定单元格，供Microsoft Excel重新计算和显示该“数据透视表”。

使用 OnDoubleClick 属性在“数据透视表”中禁止双击。


EnablePivotTable 属性实例

本实例允许在有保护的工作表中使用“数据透视表”控制。

ActiveSheet.EnablePivotTable = True

ActiveSheet.Protect contents:=True, userInterfaceOnly:=True


PasswordEdit 属性

若编辑框将其内容显示成一系列星号，则为 True。该属性仅适用于 Microsoft Excel for Windows 95。可读写。


PasswordEdit 属性实例

本实例将编辑框1设置为当用户输入数据时显示星号。

DialogSheets(1).EditBoxes(1).PasswordEdit = True


RefersToRange 属性

返回由 Name 对象引用的 Range 对象，本属性仅适用于 Microsoft Excel for Windows 95。只读。

注释

若 Name 对象未引用某个区域（例如，若 Name 对象引用常量或公式），该属性失效。

要改变某名称引用的区域，可使用 RefersTo 属性。


RefersToRange 属性实例

本实例显示当前工作表中打印区域中的行数和列数。

p = Names(�Print_Area�).RefersToRange.Value

MsgBox �Print_Area: � & UBound(p, 1) & � rows, � & _

UBound(p, 2) & � columns�


Item 方法

存取器。返回集合的一部分。Item 方法与集合的存取器方法相类似。例如：下面的两行代码等价。

ActiveWorkbook.Worksheets.Item(1)

ActiveWorkbook.Worksheets(1)

有关访问集合单个方法的详细信息，请在下表中选择存取器方法或属性。

AddIns Arcs AreaGroups Axes BarGroups Borders BuiltinDocumentProperties Buttons Cells Characters ChartGroups ChartObjects Charts CheckBoxes ChildItems ColumnFields ColumnGroups Columns CustomDocumentProperties DataFields DialogSheets Dialogs DoughnutGroups DrawingObjects Drawings	DropDowns EditBoxes Excel4IntlMacroSheets Excel4MacroSheets GroupBoxes GroupObjects HiddenFields HiddenItems Labels LegendEntries LineGroups Lines ListBoxes MenuBars MenuItems Menus Modules Names OLEObjects OptionButtons Ovals PageFields Panes ParentItems Pictures PieGroups PivotFields	PivotItems PivotTables Points RadarGroups Range Rectangles RowFields Rows Scenarios ScrollBars SeriesCollection Sheets ShortcutMenus Spinners Styles TextBoxes ToolbarButtons Toolbars Trendlines VisibleFields VisibleItems Windows Workbooks Worksheets XYGroups


DownBars 属性

存取器。返回 DownBars 对象，代表折线图上的涨跌柱线。只适用于折线图，只读。


DropLines 属性

存取器。返回 DropLines 对象，代表折线图或面积图上系列的垂直线。只适用于折线图或面积图。可读写。


FirstSliceAngle 属性

返回或设置饼图，三维饼图或圆环图上第一个倾角或圆环的角度，从竖直方向顺时针旋转。

只适用于饼图，三维饼图及圆环图。可读写。


HasDropLines 属性

若折线图或面积图有垂直线则为 True，只适用于折线图和面积图。可读写。


HasHiLoLines 属性

若折线图有高低点连线则为 True，只适用于折线图。可读写。


HasRadarAxisLabels 属性

若雷达图有轴标则为 True，只适用于雷达图，可读写。


HasSeriesLines 属性

若层叠列图或条形图有系列线则为 True，只适用于叠列图和条形图，可读写。


HasUpDownBars 属性

若折线图有涨跌柱线则为 True，只适用于折线图。可读写。


HasUpDownBars 属性
HiLoLines 属性

存取器.返回 HiLoLines 对象，代表折线图上系列的高低点连线。只适用于折线图。只读。


Overlap 属性

用于确定条和列的位置。其值为-100到100。

只适用于二维形图和二维列图。可读写。

附注：若此属性设置为-100，则各条间距离为一个条宽。若重叠比例为零，则各条间没有距离（条与条紧挨着）。若重叠比例为100，则一个条完全覆盖另外一个条。


RadarAxisLabels 属性

存取器。返回 TickLabels 对象，表示特定图表组的雷达轴标。只读。


SeriesLines 属性

存取器。返回 SeriesLines 对象，代表层叠条形图或层叠列图的系列线，只适用于层叠条形图和层叠列图。只读。


UpBars 属性

存取器。返回 UpBars　对象，代表折线图上的涨（跌）柱线。只适用于折线图，只读。


VaryByCategories 属性

若此属性为 True，则为每个数据标记指定不同的颜色或图案。此图表只能包含一个系列。可读写。


Add 方法（圆弧和折线）

生成新的圆弧或折线。

语法

object.Add(x1, y1, x2, y2)

object

必选项，指定 Arc 或 Line 对象。

x1, y1

必选项，用于确定一个对象的坐标位置，以相对于单元格 A1 左上角或图表左上角的磅值（1/72英寸）确定其位置。

x2, y2

必选项，用于确定第二个对象的坐标位置，以相对于单元格 A1 左上角或图表左上角的磅值确定其位置。


Add 方法（图形集合）

将多边形的前二个顶点作为相对于单元格A1或图表左上角的坐标来生成新的图形。其它顶点的坐标可用 AddVertex 方法加上前一个顶点的坐标得到。

语法

object.Add(x1, y1, x2, y2, closed)

object

必选项，指定 Drawings 对象。

x1, y1

必选项，用于确定多边形的第一个坐标位置，以相对于单元格 A1 左上角或图表左上角的磅值（1/72英寸）确定其位置。

x2, y2

必选项，用于确定多边形的第二个坐标位置，以相对于单元格 A1 左上角或图表左上角的磅值（1/72英寸）确定其位置。

closed

必选项，若为 True，则新图形被封闭，最后一个顶点与第一个顶点相连接。则为 False，则图形未封闭，最后一个顶点未与第一个顶点相接。


Add 方法（下拉列表集合）

使用以点（1/72英寸）数确定的矩形坐标生成新的下拉列表框。

语法

object.Add(left, top, width, height, editable)

object

必选项，指定 DropDowns 对象。

left, top, width, height

必选项，用于确定对象的宽度，高度，及左上角坐标，以相对于单元格 A1 左上角或图表左上角的磅值进行计算。

editable

可选项，若下拉列表框可编辑则为 True，若此参数为 False或被省略，则下拉列表框编辑区里的内容只有通过从列表中选择才能改变。


AddVertex 方法

在图形末端添加顶点。

语法

object.AddVertex(left, top)

object

必选项，指定 Drawing 对象。

left

必选项，指定相对于工作表左上角的新顶点的左位置，以磅值（1/72英寸）计算。

top

必选项，指定相对于工作表左上角的新顶点的上边位置，以磅值（1/72英寸）计算。


CentimetersToPoints 方法

将以厘米为单位的值转换成以磅值（0.035CM）为单位的值。

语法

object.CentimetersToPoints(centimeters)

object

必选项。指定 Application 对象。

centimeters

必选项。指定将转换成磅值的厘米值。


ChartObjects 方法

存取器。返回一个对象，代表工作表上的单个嵌入图表（ChartObject 对象，语法1）或所有嵌入图表的集合（ChartObjects 对象，语法2）。

语法1

object.ChartObjects(index)

语法2

object.ChartObjects

object

必选项，指定此方法所应用的所有对象，若为Chart 对象，则必须为图表工作表（不能是嵌入图表）。

index

在语法1中为必选项。指定图表的名称或序号（可为确定多个图表的阵列）。

注释：

这个方法与 Charts 方法不同，此方法返回嵌入图表，而 Charts 方法则返回图表工作表。应使用 Chart 属性返回嵌入图表对象的图表工作表。


CircularReference 属性

存取器。返回 Range 对象，代表包含工作表上第一个循环引用的区域。若无循 环引用则返回 Nothing。循环引用必须在运算执行前取消。只读。


ColorButtons 属性

若使用彩色界面显示工具栏，则此属性为 True，可读写。


ColorIndex 属性

返回或设置边缘，字体或内部的颜色，如下表所示，颜色被作为索引值定义在调色板内，或使用自动填充模式的特殊常量 xlAutomatic。 可读写。

对象	颜色索引
Border	边缘色
Borders	四边的颜色，若不全相同则返回 Null。
Font	字体颜色。可指定 xlAutomatic 用于自动颜色。
Interior	内部填充色。将此属性设置为 xlNone 则不执行填充。设置为 xlAutomatic 用于自动填充（对图形对象）。

注释：

此属性将颜色作为索引值定义在工作簿调色板内。Colors 属性可用于返回当前调色板。

下面列出默认调色板中的颜色索引值


DataLabels 方法

存取器。返回一个对象，代表单个数据标志（DataLabel 对象，语法1） 或所有系列数据标志的集合（DataLabels 对象，语法2)。

语法1

object.DataLabels(index)

语法2

object.DataLabels

object

必选项，指定 Series 对象。

index

语法 1 必选项，指定数据标志的序号。

注释：

若系列具有为数据标志设置的“显示值”选项，则返回的集合可包含每点的标志。可为系列中的单个点打开或关闭数据标志。

若系列在面积图上，且具有为数据标志设置的“显示标志”选项，则返回的集合只包含一个标志，即面积图系列标志。


Explosion 属性

返回或设置饼图或圆环图倾角增长率，0代表无增长（倾角的顶点在饼图中心），可读写。


GetOpenFilename 方法

显示标准的“打开”对话框并获取用户输入的文件名，但并不打开任何文件。

语法：

object.GetOpenFilename(fileFilter, filterIndex, title, buttonText, multiSelect)

object

必选项，指定 Application 对象。

fileFilter

可选项，指定用于定义文件筛选条件的字符串。

在 Microsoft Windows 中，这个字符串包含若干对文件筛选字符串，其后紧跟 MS—DOS 文件通配符。每部分和每一对都由逗号隔开。每一对都列在“文件类型”列表框中。例如，下列字串定义了两个文件筛选器棗文本和加载宏：“Text Files (*.txt),*.txt,Add-In Files (*.xla),*.xla”。

若要对单个文件筛选类型使用多个 MS-DOS 通配符表达式，应以分号隔开每个通配符表达式。例如：“Visual Basic Files (*.bas; *.txt),*.bas;*.txt”

若在 Windows 上省略此参数，则其默认值为“All Files (*.*),*.*”。

在 Apple Macintosh 机器上，这个字串是一个由逗号隔开的文件类型编码序列（“TEXT，XLA，XLS4”）。空格是有意义的，不能随便插在逗号分隔符的前后，除非它们是文件类型编码的一部分。若此参数被省略，则其默认值为所有文件类型。

filterIndex

可选项，只适用于Microsoft Windows （在Apple Macintosh 上可忽略）。用于确定默认文件筛选条件的索引号，范围为从１到fileFilter 中定义的筛选器数目。若此参数被省略或大于现有筛选器数，则使用第一个文件筛选器。

title

可选项。只适用于Microsoft Windows （在Apple Macintosh 上可忽略），用于确定对话框标题。若此参数被省略，则对话框标题为“打开”。

buttonText

可选项，只适用于Apple Macintosh （在Microsoft Windows 中可忽略）。用于确定对话框中用于“打开”工具按钮的文本。若此参数被省略，则工具按钮文本为“打开”。

multiSelect

可选项，若为True则允许指定多个文件名。若为False或被省略，则只可选择一个文件名。

注释：

此方法返回选定文件名或用户输入的文件名，返回的名称可能包含路径说明。若 multiSelect 为 True，则返回值是多个选定文件名的列表（即使只选定了一个文件名），若用户取消了对话框，则返回 False。

这个方法可能会改变当前驱动器或路径。


GetSaveAsFilename 方法

显示标准的“另存为”对话框并获取用户输入的文件名，但不保存任何文件。

语法

object.GetSaveAsFilename(initialFilename, fileFilter, filterIndex, title, buttonText)

object

必选项。指定 Application 对象。

initialFilename

可选项。指定提示的文件名。若此参数被省略，则Microsoft Excel 将使用当前工作簿的名称。

fileFilter

可选项，指定用于定义文件筛选条件的字符串。

在 Microsoft Windows 中，这个字符串包含若干对文件筛选字符串，其后紧跟 MS-DOS 文件通配符。每部分和每一对都由逗号隔开。每一对都列在“文件类型”列表框中。例如，下列字串定义了两个文件筛选器棗文本和加载宏：“Text Files (*.txt),*.txt,Add-In Files (*.xla),*.xla”。

若要对单个文件筛选类型使用多个 MS-DOS 通配符表达式，应以分号隔开每个通配符表达式。例如：“Visual Basic Files (*.bas; *.txt),*.bas;*.txt”

若在 Windows 上省略此参数，则其默认值为"All Files (*.*),*.*"。

在 Apple Macintosh 机器上，这个字串是一个由逗号隔开的文件类型编码序列（“TEXT，XLA，XLS4”）。空格是有意义的，不能随便插在逗号分隔符的前后，除非它们是文件类型编码的一部分。若此参数被省略，则其默认值为所有文件类型。

filterIndex

可选项，只适用于 Microsoft Windows（在 Apple Macintosh 上可忽略）。用于确定默认文件筛选条件的索引号，范围为从１到 fileFilter 中定义的筛选器数目。若此参数被省略或大于现有筛选器数，则使用第一个文件筛选器。

title

可选项，只适用于 Microsoft Windows（在 Apple Macintosh 上可忽略），用于确定对话框标题。若此参数被省略，则使用缺省的对话框标题。

buttonText

可选项，只适用于 Apple Macintosh（在 Microsoft Windows 中可忽略）。用于确定对话框中用于“保存”工具按钮的文本。若此参数被省略，则工具按钮文本为“保存”。

注释：

此方法返回选项文件名或由用户输入的名称。返回的名称可能包含路径说明，若用户取消了此对话框，则返回 False。

此方法可能会改变当前驱动器或路径。


GridlineColorIndex 属性

将窗格线颜色作为索引，从当前调色板内返回或设置。可读写。

注释：

将此属性设置为 xlAutomatic 则指定自动颜色。

下面显示的是默认调色板中的颜色索引值。


InchesToPoints 方法

用于将英寸值转换为磅值（1/72英寸）。

语法：

object.InchesToPoints(inches)

object

必选项，指定 Application 对象。

inches

必选项，用于确定欲转换成磅值的英寸值。


LinkCombo 方法

用于合并列表框和编辑框以生成列表－编辑组合框。被连接的编辑框和列表框必须是 DrawingObjects 集合中唯一的两个对象。

语法：

object.LinkCombo(link)

object

必选项，指定 DrawingObjects 集合。

link

可选项，若此参数被省略或为 True，则对象将被连接，这使得用户无论何时选择新的列表框选项，编辑框文本都会随之自动更新。若为 False，则对象间连接无效。

注释：

此功能只在对话框工作表上有用，因为工作表或图表上不允许有编辑框。要了解LinkCombo 方法的使用，可使用宏记录器记录在对话框工作表上生成列表－编辑组合控制的过程。


MarkerBackgroundColor 属性

以 RGB 值返回或设置标记背景色。此属性只适用于折线图，分布图和雷达图，可读写。


MarkerBackgroundColorIndex 属性

将标记背景色作为索引，在当前调色板中返回或设置其值（其值为1到56，若无背景色则为 xlNone ），只适用于折线图，分布图和雷达图，可读写。

注释：

下面列出默认调色板中的颜色索引值：


MarkerForegroundColor 属性

返回或设置以 RGB 值定义的标记前景色，只适用于折线图，分布图和雷达图，可读写。


MarkerForegroundColorIndex 属性

将标记前景色作为索引，在当前调色板中返回或设置其值（其值为1到56，若无前景色则为 xlNone ）。只适用于折线图，分布图和雷达图，可读写。

注释：

下面列出默认调色板中的颜色索引值。


OnRepeat 方法

用于设置“重复”菜单项和程序名称，若在执行设置此属性的程序后从“编辑”菜单选择“重复”，则此程序将运行。

语法

object.OnRepeat(text, procedure)

object

必选项，指定 Application 对象。

text

必选项，定义与“重复”命令一起出现的文本（“编辑”菜单）。

procedure

必选项，确定从“编辑”菜单选择“重复”后将运行的程序的名称。

注释：

若程序不使用 OnRepeat 方法，则“重复”命令将重复最近运行的程序。

程序必须在最后使用 OnRepeat 或 OnUndo 方法，以防止重复或撤消程序被程序的后续操作改写。


OnSheetActivate 属性

返回或设置当用户激活特定工作表（Chart, DialogSheet, Module, 或 Worksheet 对象），特定工作簿中的任意工作表（Workbook 对象）或任何打开工作簿中的任何工作表（Application 对象）时运行的宏名称。可读写。

注释：

若要使某个 OnSheetActivate 宏失效，可将此属性设置为空字串，如下例所示。


OnSheetDeactivate 属性

返回或设置当用户取消特定工作表（Chart, DialogSheet, Module, 或 Worksheet 对象），特定工作簿中的任意工作表（Workbook 对象）或任何打开工作簿中的任何工作表（Application 对象）的活动状态时执行的宏名称，可读写。


OnUndo 方法

用于设置“撤消”菜单和程序名称，若在设置此属性的程序运行后，从“编辑”菜单中选择“撤消”，则此程序将执行，

语法

object.OnUndo(text, procedure)

object

必选项，指定Application 对象。

text

必选项，用于确定与“撤消”命令一起出现的文本（“编辑”菜单）。

procedure

必选项，确定在从“编辑”菜单选择“撤消”后将运行的程序的名称。

注释：

若某程序未使用 OnUndo 方法，则“撤消”命令无效，程序必须在最后使用 OnRepeat 合 OnUndo 方法，以防止重复或撤消程序被程序中的后续操作改写。


OutlineFont 属性

若字体为边框字体，则为 True，可读写。

注释：

此属性在 Microsoft Windows 中无效，但它的值被保留（它可被设置和返回）。


PatternColor 属性

以 RGB 值返回或设置内部图案色。可读写。


PatternColorIndex 属性

将内部图案色作为索引返回或设置在当前调色板中。可读写。

注释：

将此属性定义为 xlAutomatic 表示为单元格定义自动图案或为图形对象定义自动填充方式。将此属性定义为 xlNone 则表示无图案（这等同于设置 Interior.Pattern 为 xlNone）。


ResetTipWizard 方法

重新设置提示指南内存以显示所有提示，一般显示过几次的提示将变成无效，以防令人厌烦。

语法

object.ResetTipWizard

object

必选项，指定 Application 对象。


ToolbarButtons 方法

存取器。在特定工具栏上返回一个对象，代表单个工具栏按钮（ToolbarButton 对象，语法1)或工具栏按钮集合（ToolbarButtons　对象，语法2）。

语法1

object.ToolbarButtons(index)

语法2

object.ToolbarButtons

object

必选项，指定 Toolbar 对象。

index

语法 1 必选项，指定工具按钮的序号。


Volatile 方法

用于将自定义函数标记为易失性函数，无论何时在工作表的任意单元格中执行计算，易失性函数都必需重新进行计算。非易失性函数只在输入变量改变时才重新计算，若不在计算工作表元格的自定义函数中，则此方法无效。

语法

object.Volatile(volatile)

object

必选项，指定 Application 对象。

volatile

可选项，若为 True或被省略，则函数被标记为易失性。若为 False，则函数被标记为非易失性。


AutoFormat 方法

Chart 对象：应用内置或自定义的自动套用格式于指定图表。

Range 对象：使用预定义格式自动格式化单元格区域。


ActivateMicrosoftApp 方法

激活Microsoft应用程序。如果应用程序已经运行，则激活该程序。如果应用程序没有运行，则启动应用程序的新例程。

语法

object.ActivateMicrosoftApp(index)

object

必选项，对象 Application。

index

必选项，指定被激活的 Mircrosoft 应用程序.(可为xlMicrosoftWord, xlMicrosoftPowerPoint, xlMicrosoftMail, xlMicrosoftAccess, xlMicrosoftFoxPro, xlMicrosoftProject, xlMicrosoftSchedulePlus 之一).


ActivateNext方法

激活指定窗口并将其沿z-顺序向后移。

语法

object.ActivateNext

object

必选项，Window对象。


ActivatePrevious方法

激活指定窗口然后沿Z-顺序向前移而激活前一个窗口。

语法

object.ActivatePrevious

object

必选项，对象Window。


AddIndent属性

如果分散式对齐风格文本在每行头尾有附加空格，为True。可读写。

注释

仅有Microsoft Excel远东版本具有此属性，并且仅适用于处理文本说明中xlDistributed对齐类型文本(如果文本 Orientation 为 xlVertical 且 VerticalAlignment 为 xldistributed，或文本Orientation 为 xlHorizontal，且 HorizontalAlignment 为 xlDistributed，加入缩进)。


AxisTitle属性

存取器。返回代表指定坐标轴标题的对象 AxisTitle。只读。


CategoryNames属性

返回或设置所有指定坐标轴的类型名，它为文本数组。一旦设置该属性，用户将其设置到包含此类型名的数组或对象 Range。可读写。

注释

分类名实际上是坐标轴组中“特殊”序列的属性。删除或更改此特殊序列将改变所有使用坐标轴序列的分类名。


ChartTitle属性

存取器。返回代表指定图表标题的类 ChartTitle。只读。


Deselect方法

取消指定图表的选定区域。

语法

object.Deselect

object

必选项，对象Chart。


Display3DShading 属性

如果控制项使用三维视觉效果，为 True。仅适用于工作表及图表的控制项。可读写。


DoughnutHoleSize 属性

返回或设置圆环图组内径大小。内径大小用图表大小百分比表示，百分比从10％－90％。只读。


EnableCancelKey属性

控制Microsoft Excel如何处理运行过程中的用户中断CTRL+BREAK(ESC/COMMAND+PERIOD)，如下表所示。可读写。

Valu	Meaning

值	      意义

xlDisabled	删除键捕获失效。

xlInterrupt	中断当前过程，并让用户调试或结束该过程。

xlErrorHandler	中断被当作错误发送至正在运行过程，用On Error GoTo语句建立错误处理器可捕获该错误。其错误代码为18。

注释

应谨慎使用。如果使用xlDisabled，将无法中断失控循环或其它不能自结束代码。如果使用xlErrorHandler但错误处理程序总使用Resume语句返回，将无法中止失控代码。

如果Microsoft Excel返回至空闲状态并且无代码运行，则属性EnableCancelKey重置为xlInterrupt。在过程中捕获取消或不能取消，则每次调用过程时显式改变属性EnableCancelKey。


EndStyle属性

返回或设置误差条的末端类型(xlCap或者xlNoCap)。可读写。


MultiSelect属性

返回或设置列表框(或列表框集)的选定方式。可为(xlNone，xlSimple或xlExtended)之一。可读写。

注释

Single select(xlNone)：仅允许每次选取一项。单击空格键取消当前选项，并选定中项。

Simple multi-select(slSimple)：当用鼠标点按选项，或当选项有焦点时按空格键，将改变选项的选定状态，此方式适用于频繁选定选项时拾取列表情况。

Extended multi-select(xlExtended)：作用与单选列表框一样，单击某选项将取消其它选项选定。按住SHIFT键，并单击鼠标或按ARROW键，可顺序选定当前选项。按住CTR键并单击鼠标，可在列表选定中累加单独项。此方式适用于允许但不经常使用多重选项的情况。

可使用Value或ListIndex属性在单选列表框中获取和设置选定选项。必须使用属性Selected在多重选定列表框中获取和设置选定选项。

不能使用属性LinkedCell链结多重选定列表框与单元格。


NavigateArrow方法

引导追踪箭头，该箭头指定引用单元格、从属单元格或错误源单元格、选定引用单元格、从属单元格或错误源单元格，并返回新选定对象Range。如果单元格不具有可见追踪箭头，使用该方法将导致错误。

语法

object.NavigateArrow(towardPrecedent, arrowNumber, linkNumber)

object

必选项，对象Range。

towardPrecedent

必选项，指定引导方向(引导至引用单元格为True，至从属单元格为False)。

arrowNumber

必选项，按照单元格公式中的引用编号指定引导箭头号。

linkNumber

可选项，如果箭头为外部引用箭头，此参数指明紧随在哪个被引用箭头后。如果省略，指明紧随在第一个外部引用后。


OpenText方法

采用包含分列后文本文件数据的单个工作表的工作簿，调用并分列文本文件。

语法

object.OpenText(filename, origin, startRow, dataType, textQualifier, consecutiveDelimiter, tab, semicolon, comma, space, other, otherChar, fieldInfo)

object

必选项，对象Workbooks。

filename

必选项，指定打开并分列的文本文件名。

origin

可选项，指定文本文件源(xlMacintosh、xlWindows、xlMSDOS之一)。如果省略，则该方法使用Text Import Wizard中文件源选择项的当前设置。

startRow

可选项，开始分列文本的列号。第一行为1。如果省略，则假定为１。

dataType

可选项，指定文件中数据列格式〈xlDelimited或xlFixedWidth〉。默认值为xlDelimited。

textQualifier

可选项，指定文本限制。可为(xlDoubleQuote、xlSinglequote、xlNone)之一。默认值为xlDoubleQuote。

consecutiveDelimiter

可选项，如果连续分隔符号被认为是一个分隔符号时为True。默认值为False。

tab

可选项，如果dataType为xlDelimited并且制表符为分隔符时为True。默认值为False。

semicolon

可选项，如果dataType为xlDelimited且分号为分隔符时为True。默认值为False。

comma

可选项，如果dataType为xlDelimited且逗号为分隔符时为True。默认值为False。

space

可选项，如果dataType为xlDelimited并且空格符为分隔符时为True。默认值为False。

other

可选项，如果dataType为xlDelimited并且otherChar指定的字符为分隔符时为True。默认值为False。

otherChar

可选项〈如果other为True时为必选项〉。当other为True时指定分隔符。如果指定多个字符，仅字符串第一个字符有效，其余忽略。

fieldInfo

可选项，单个列数据分列信息数组。dataType值表明其意义。

如果数据用分隔符号隔开时，此参数为二元素数组列，每个二元数组指定每列转换选项。第一个元素为列号(one based)，第二个元素为以下指定分列方式数值之一：

1  一般

2  文本

3  MDY日期

4  DMY日期

5  YMD日期

6  MYD日期

7  DYM日期

8  YDM日期

9  跳过此列

列标识符可为任意顺序。如果在输入数据中特定列的列标识符不存在，则用一般设置分列。下例表示跳过第三列，将第一列按文本分列并采用一般设置分列剩余列。

Array(Array(3, 9), Array(1, 2))

如果源数据为定宽列，每个二元数组的第一个元素指定列中起始元素位置（用整数，字符零为第一个字符）。二元数组的第二个元素用０—９指定分列项，如上所示。

下例将一定宽文本文件中分列出两列。第一列包含从而1至10的字符。字符11，12，13，14及15被忽略。第二列包含行中16至最后一个字符。

Array(Array(0, 1), Array(10, 9), Array(15, 1))


RegisterXLL方法

调用XLL代码源并自动注册源包含的函数及命令。

语法

object.RegisterXLL(filename)

object

必选项，对象Application。

filename

必选项，指定调用XLL名。

注释

如果代码源调用成功，返回True。否则，返回False。


SaveCopyAs方法

将工作簿的副本保存为一个文件但不更改内存中已打开的工作簿。

语法

object.SaveCopyAs(filename)

object

必选项，对象Workbook。

filename

必选项，指定副本文件名。


Selected属性

返回或设置指示列表框选项选定状态的布尔值数组。数组的每项对应于列表框的相应项，如果项被选定为True，如果未被选定为False。使用此属性可获得多项选定列表框的被选项。可读写。

注释

对于单选列表框，使用Value或者ListIndex获得并设置选项将更方便。


UpdateFromFile方法

如果盘上工作簿版本比内存中的当前工作簿副本新，则用盘上保存的工作簿文件更新只读工作簿。如果自调用工作簿以来，盘上的副本无改变，则不更新内存中的副本。

语法

object.UpdateFromFile

object

必选项，对象Workbook。

注释

此法适用于用户A将工作簿按只读打开，同时用户B按可读写文件打开。如果用户B将工作簿新版存盘而用户A仍在使用原工作簿，那么用户A若不关闭并重新打开工作簿，同时丢掉当前设置，将不能获得更新版本。UpdateFromFile从磁盘文件更新内存中的工作簿副本。


WindowNumber属性

返回窗口号。例如，标题为“BOOK1.XLS:2”的窗口，其窗口号为２。大多数窗口其窗口号为１。只读。

注释

窗口号不等于窗口的Index，它是窗口在Windows集中的位置。


Xvalues属性

返回或设置图表序列的x值数组。属性Xvalue可设置为工作表区域或数值数组，但不能为二者组合。可读写。


BCCRecipients 属性

返回或设置邮件的隐含副本收件人。只能在安装了 PowerTalk 邮件系统扩展的 Microsoft Excel for the Apple Macintosh 中使用。该属性可读写。

注释

该属性是一个字符串数组，它用下列格式之一指定地址：

Preferred Personal Catalog 中的一个记录。只列一级姓名(如"Fred" or "June")。

指定个人目录中记录(如“HD:Excel Folder:My Catalog:Barney”)或普通记录(如“HD:Folder:Martin”).的全路径。

在当前使用文件夹中指定个人目录记录(如“My Catalog:Barney”)或普通记录(如“Martin”)的相对路径。

PowerShare 目录树中的一条路径，该目录树的形式为“CATALOG-NAME：<node>：RECORD-NAME”，此处<node>是通向 PowerShare 目录的一条路径。

一条完整路径的例子为“AppleTalk:North Building Zone:George's Mac”。


CCRecipients 属性

返回或设置邮件的副本(间接)收件人。只能在安装了 PowerTalk 邮件系统扩展的 Microsoft Excel for the Apple Macintosh 中使用。该属性可读写。

注释

该属性是一个字符串数组，它用下列格式之一指定地址：

Preferred Personal Catalog 中的一个记录。只列一级姓名(如"Fred" or "June")

指定个人目录中记录(如“HD:Excel Folder:My Catalog:Barney”)或普通记录(如“HD:Folder:Martin”)的全路径。

在当前使用文件夹中指定个人目录记录(如“My Catalog:Barney”)或普通记录(如“Martin”)的相对路径。

PowerShare目录树中的一条路径，该目录树的形式为“CATALOG-NAME：<node>：RECORD-NAME”，此处<node>是通向 PowerShare 目录的一条路径。

一条完整路径的例子为“AppleTalk:North Building Zone:George's Mac”。


Enclosures 属性

返回或设置加到工作簿邮件的封入文件，其形式为字符串数组，每个字符串表示一个作为附件追加的文件的路径名。允许使用相对路径，并假定相对路径是基于当前文件夹的。只能在安装了 PowerTalk 邮件系统扩展的 Microsoft Excel for the Apple Macintosh 中使用。该属性可读写。


Mailer 属性

存取器。返回一个Mailer对象，它表示连接到工作簿的 PowerTalk 邮件。只能在安装了PowerTalk邮件系统扩展的 Microsoft Excel for the Apple Macintosh 中使用。该属性只读。

注释

Mailer 对象包含有用 PowerTalk 邮送工作簿所需的属性。要邮送工作簿，请用 HasMailer 属性打开邮件，设置邮件属性，然后用 SendMailer 方法发送工作簿和邮件。


Received 属性

若已收到工作簿邮件(假设该邮件是由其它用户发送给当前用户的)，并且当前用户未用 Reply,ReplyAll 或 ForwardMailer 方法对邮件作修改，则为真(True)。PowerTalk 要求在对邮件传送或回复之前先接收该邮件。只能在安装了 PowerTalk 的 Microsoft Excel for the Apple Macintosh 中使用。该属性只读。


SendDateTime 属性

返回发送邮件的日期和时间。邮件必须在本属性生效之前发送。只能在安装了 PowerTalk 邮件系统扩展的 Microsoft Excel for the Apple Macintosh 中使用。该属性只读。


Sender 属性

返回发送该工作簿邮件的用户名(以文本形式)。只能在安装了 PowerTalk 邮件系统扩展的 Microsoft Excel for the Apple Macintosh 中使用。该属性只读。


SendMailer 方法

用PowerTalk邮件发送工作簿，本方法只能在安装了PowerTalk系统扩展的Apple Macintosh 中使用，而且只能用于连接了邮件的工作簿。

语法

object.SendMailer(fileFormat, priority)

object

必选项，即 Workbook 对象

fileFormat

可选项，指定要发送的工作簿所使用的文件格式。关于有效类型的清单，请参阅 FileFormat 属性。

priority

可选项，指定消息的邮递优先级(XINormal,XIHigh或XILow)。默认值为XINormal 。

注释

在Microsoft Mail(MAPI或Microsoft Mail for the Apple Macintosh )电子邮件系统中使用 SendMail 方法。将地址信息作为参数传递。在 Apple Macintosh 上的 PowerTalk 电子邮件系统中使用 SendMailer 方法。Mailer 对象包含有用于 PowerTalk 的地址信息。


ToRecipients 属性

返回或设置邮件的直接收件人。只能在安装了 PowerTalk 邮件系统扩展的 Microsoft Excel for the Apple Macintosh 中使用。该属性可读写。

注释

该属性是一个字符串数组，它用下列格式之一指定地址：

Preferred Personal Catalog 中的一个记录。只列一级姓名(如“Fred”或“June”)

指定个人目录中记录(如“HD:Excel Folder:My Catalog:Barney”)或普通记录(如“HD:Folder:Martin”)的全路径。

在当前使用文件夹中指定个人目录记录(如“My Catalog:Barney”)或普通记录(如“Martin”)的相对路径。

PowerShare 目录树中的一条路径，该目录树的形式为“CATALOG-NAME：<node>：RECORD-NAME”，此处<node>是通向PowerShare目录的一条路径。一条完整路径的例子为“AppleTalk:North Building Zone:George's Mac”。


ExclusiveAccess 方法

指定当前用户对作为共享清单打开的工作簿进行独占存取。若工作簿成功地转变为独占的，非共享清单，则返回 True。本方法只能在 Microsoft Excel for Windows 95 中使用。

语法

object.ExclusiveAccess

object

必选项，即 Wookbook 对象。

注释

ExclusiveAccess 方法将您所做的任何修改都保存到工作簿，并要求已打开该工作簿的其它用户将所做的修改保存到其它文件中。

若指定的工作簿未作为共享清单打开，则 ExclusiveAccess 方法失效。要确定工作簿是否作为共享清单打开，可使用 MultiUserEditing 属性


ExclusiveAccess 方法实例

该实例确定当前工作簿是否作为共享清单打开。若是，该例指定当前用户独占存取。

If ActiveWorkbook.MultiUserEditing Then

ActiveWorkbook.ExclusiveAccess

End If


MultiUserEditing 属性

若工作簿作为共享清单打开，则为 True。该属性只能在Microsoft Excel for Windows 95中使用，且为只读的。

注释

要将工作簿保存为共享清单，可使用 SaveAs 方法。要将工作簿从共享模式转变为独占模式，可使用 ExclusiveAccess 方法。


MultiUserEditing 属性实例

该实例确定当前工作簿是否作为共享清单打开。若是，该例通知用户不能修改当前工作簿中的宏。

If ActiveWorkbook.MultiUserEditing Then

MsgBox "Cannot modify Visual Basic modules in this workbook."

End If

该实例确定当前工作簿是否以独占模式打开。若是，该例将它保存为共享清单。

If Not ActiveWorkbook.MultiUserEditing Then

ActiveWorkbook.SaveAs fileName:=ActiveWorkbook.FullName, _

accessMode:=xlShared

End If


ShowConflictHistory 属性

若“冲突日志”工作表在打开为共享清单的工作簿中是可见的，则为 True。该属性只能在 Microsoft Excel for Windows 95 中使用。它是可读写的。

注释

若指定的工作簿不是以共享清单的形式打开，ShowConflictHistory 失效。要确定工作簿是否作为共享清单打开，可使用 MultiuserEditing 属性。


ShowConflictHistory 属性实例

该实例确定当前工作簿是否打开为共享清单。若是，该例显示“冲突日志”工作表。

If ActiveWorkbook.MultiUserEditing Then

ActiveWorkbook.ShowConflictHistory = True

End If


RevisionNumber 属性

返回工作簿打开为共享清单时被保存的次数。若工作簿以独占模式打开，该属性返回0(零)。该属性只能在 Microsoft Excel for Windows 95 中使用，且是只读的。

注释

只有在保存工作簿的本地副本，而不是保存远程副本时，才更新 RevisionNumber 属性。


RevisionNumber 属性实例

该实例使用版本号来确定当前工作簿是否以独占模式打开。若是，该例将当前工作簿保存为共享清单。

If ActiveWorkbook.RevisionNumber = 0 then

ActiveWorkbook.SaveAs filename := ActiveWorkbook.FullName, _

accessMode:= xlShared, conflictResolution := _

xlOtherSessionChanges

End If

该实例显示当前工作簿的版本号。

MsgBox ActiveWorkbook.RevisionNumber


UserStatus 属性

返回一个基于1的二维数组，该数组表明已将工作簿打开为共享清单的每个用户的有关信息。该二维数组的第一个元素是用户名；第二个元素是用户打开工作簿的日期和时间；第三个元素是一个表示数据清单类型的数字(1表示独占，2表示共享)。该属性只能在 Microsoft Excel for Windows 95 中使用，且是只读的。

注释

UserStatus 属性不返回将指定的工作簿以只读方式打开的用户的有关信息。


UserStatus 属性实例

该实例建立新工作簿，并插入将当前工作簿打开为共享清单的所有用户的有关信息。

users = ActiveWorkbook.UserStatus

With Workbooks.Add.Sheets(1)

For row = 1 To UBound(users, 1)

.Cells(row, 1) = users(row, 1)

.Cells(row, 2) = users(row, 2)

Select Case users(row, 3)

Case 1

.Cells(row, 3).Value = "Exclusive"

Case 2

.Cells(row, 3).Value = "Shared"

End Select

Next

End With


更改为 Visual Basic in Microsoft Excel for Windows 95

Top

在 Visual Basic in Microsoft Excel for Windows 95 中，对已有的属性和方法作了修改，并增加了几个新属性，方法和对象。有关这些修改和增添项的详细信息，可选择下列列表中的任一项，或者沿本标题滚动以找到所要的内容。

更改属性和方法

AutoCorrect 支持

OLE文档属性支持

AutoComplete 支持

保护控制

外观控制

其他

更改属性和方法

对下列属性和方法进行了修改，以便支持Microsoft Excel 的新功能或增强功能。

标题	说明
GetOpenFileName 方法	新的 multiselect 参数允许您在“打开”对话框中选择多于一个的文件名。
HelpContextID 属性	添加到 ToolbarButton 对象。
HelpFile 属性	添加到 ToolbarButton 对象。
Names 方法	添加到 work sheet 对象，以便处理工作表型的名称。
PasteSpecial 方法	对于 Range 对象，Paste 参数的一个新常量允许您粘贴区域内容和格式，但不能粘贴边框格式。
Protect 方法	用新的 userInterfaceOnly 参数可以指定保护，防止用户修改，同时仍允许从Visual Basic 代码中修改。
SaveAs 方法	新参数允许指定共享模式存取以及解决修改冲突的方法。
StatusBar 属性	添加到 ToolbarButton 对象。
AutoCorrect支持

增加了下列新对象，属性和方法来支持自动更正。

标题	说明
AddReplacement 方法	在由 ReplacementList 属性返回的“自动更正”替换数组中增加一行。
AutoCorrect 对象	包含“自动更正”属性(日期名以大写字母开头，更正两个起始大写字母，自动更正列表，等等)。
AutoCorrect 属性	返回代表“自动更正”属性的 Autocorrect 对象
CapitalizeNamesOfDays 属性	若日期名(和缩写名)的首字母自动大写，则为 true。
DeleteReplacement 方法	从 ReplacementList 属性返回的“自动更正”替换数组中删除一行。
ReplacementList 属性	返回或设置整个“自动更正”替换数组或数组的一行。
ReplaceText 属性	若“自动更正”替换数组中列1的文本被列2的文本自动替换，则为 True。
TwoInitialCapitals 属性	若自动更正某单词中的两个起始大写字母，则为 True。
OLE文档属性支持

增加了下列新属性，方法和对象来支持 OLE 文档属性。文档属性允许 Microsoft Excel 展示内部文档属性的标准集以及由用户添加的附加自定义文档属性。

标题	说明
BuiltinDocumentProperties 属性	返回 DocumentProperties 集对象，它包含对象的内部文档属性。
CustomDocumentProperties 属性	返回 DocumentProperties 集对象，它包含对象的自定义文档属性。
DocumentProperties 对象	表示文档属性(或者为内部，或者为自定义)集。
DocumentProperty 对象	表示单个文档属性。
LinkedToContent 属性	若自定义属性的值链接到它所包含文档的内容，则为 True；若该属性为一固定值，则为 False。
LinkSource 属性	指定与文档内容相链接的自定义文档属性的源。
AutoComplete支持

增加了下列文档和属性来支持“记忆式键入”功能。

标题	说明
AutoComplete 方法	返回列表中的一个字符串，若未完成或者列表匹配中有多个入口，则返回空串。
EnableAutoComplete 属性	若“记忆式键入”功能是允许的，则为 True。
保护控制

增加了下列属性，以便让您控制用户修改工具栏，筛选列表，数据透视表和分级显示的权限。

标题	说明
EnableAutoFilter 属性	若在打开“只对用户接口”保护时，“自动筛选”箭头是允许的，则为 True。
EnableOutlining 属性	若在打开“只对用户接口”保护时，分级显示符号(显示明细数据或隐藏明细数据)是允许的，则为 True。
EnablePivotTable 属性	若在打开“只对用户接口”保护时，数据透视表控制和操作是允许的，则为 True。
Protection 属性	对用户可对工具栏做何种修改进行控制。
外观控制

增加了下列属性和方法，以便控制鼠标光标的外观，打开或关闭动态的插入和删除，建立口令输入编辑框，以及为工作表或图表设置背景图形。

标题	说明
Cursor 属性	设置Microsoft Excel 中鼠标光标的外观。
EnableAnimations 属性	若允许动态插入和删除，则为 True。
PasswordEdit 属性	使编辑框将其内容显示为一系列星号。
SetBackgroundPicture 方法	为工作表或图表设置背景图形。
其他

标题	说明
AutoLoad 属性	若在包含OLE对象的工作簿打开时，自动加载该OLE对象，则为 True。
CopyFromRecordset 方法	将 DAO Recordset 对象的内容复制到工作表中的单元格，从指定区域的第一个单元格开始。
ListHeaderRows 属性	返回指定区域中页眉的行数。
MoveAfterReturnDirection 属性	控制用户按 ENTER 键后当前单元格移动的方向。
NetworkTemplatesPath 属性	返回存放模板的网络路径。若网络路径不存在，本属性返回一空字符串。
OnSave 属性	返回或设置 Visual Basic 过程名，每当用户调用“保存”或“另存为”命令时，就运行该过程。
Post 方法	将指定的工作簿邮寄到 Microsoft Exchange 公共文件夹或Lotus Notes数据库。
ProtectionMode 属性	若打开“只对用户接口”保护，则为 True。
RangeSelection 属性	返回一个 Range 对象，即使图形对象是工作表中的当前对象或选定对象，该 Range 对象也表示指定窗口中工作表上的选定单元格。
RefersToRange 属性	返回由 Name 对象引用的 Range 对象。
TemplatesPath 属性	返回模板存放的本地路径。


AddIn 对象

表示单个加载宏，无论已安装或未安装。

存取器

AddIn 对象是 AddIns 集合的成员。AddIns 集合包含可在 Microsoft Excel 中使用的所有加载宏的列表，而不管这些加载宏是否已安装。该列表与“加载宏”对话框（“工具”菜单）中显示的加载宏列表一致。要访问该集合的单个成员，可使用 AddIns 方法，以加载宏标题或索引序号为参数。不要将加载宏标题与加载宏名称相混淆，前者出现在“加载宏”对话框中，后者是加载宏的文件名。

使用 Title 属性返回加载宏的标题（对加载宏来说，该属性为只读）当标题显示在“加载宏”对话框中时，必须严格检查标题的拼写，而不是大写字母。下面的例子安装

AddIns("analysis toolpak").Installed = True

索引序号表示加载宏在“加载宏”对话框中所显示的加载宏列表中的位置。下面的例子在名为“Sheet1”的工作表中建立一个列表。该列表包含可用加载宏的指定属性。

Sub EnumerateAddIns()

    Worksheets("sheet1").Rows(1).Font.Bold = True

    Worksheets("sheet1").Range("a1:d1").Value = _

        Array("Name", "Full Name", "Title", "Installed")

    For i = 1 To AddIns.Count

        Worksheets("sheet1").Cells(i + 1, 1) = AddIns(i).Name

        Worksheets("sheet1").Cells(i + 1, 2) = AddIns(i).FullName

        Worksheets("sheet1").Cells(i + 1, 3) = AddIns(i).Title

        Worksheets("sheet1").Cells(i + 1, 4) = AddIns(i).Installed

    Next

    Worksheets("sheet1").Range("a1").CurrentRegion.Columns.AutoFit

End Sub

注释：

Add 方法向可用加载宏列表中增加一个加载宏，但不安装该加载宏。要安装它，可以将加载宏的 Installed 属性设置为 True。要安装未在可用加载宏列表中显示的加载宏，您必须先使用 Add 方法，然后设置 Installed 属性。这可以在一步中完成，如下例所示（注意：在用 Add 方法时，使用加载宏名，而不是加载宏标题）：

AddIns.Add("generic.xll").Installed = True

带加载宏文件名（而不是标题）使用 Workbooks 方法，可返回与装入加载宏相对应的工作簿的引用。您必须使用文件名，因为已装入的加载宏不象平时一样出现在 Workbooks 集合中。下面的例子将 WB 变量设置成与MYADDIN.XLA对应的工作簿。

Set wb = Workbooks("myaddin.xla")

下面的例子将 WB 变量设置为与 AnalysisToolpak 加载宏对应的工作簿。

Set wb = Workbooks(AddIns("analysis toolpak").Name)

若 Installed 属性返回 true，但加载宏中的函数调用仍失效，那么，实际上加载宏可能并未装入。因为 Addin 对象表示加载宏的存在和安装状态，但不表示加载宏工作簿的实际内容（加载宏对话工作表，工作表，等等）。要保证装入已安装的加载宏，必须打开加载宏工作簿。下面的例子，在加载宏未显示在 Workbooks 集合中时，为名为“MyAddin”的加载宏打开工作簿。

On Error Resume Next	' turn off error checking

Set wbMyAddin = Workbooks(Addins("My Addin").Name)

lastError = Err

On Error Goto 0	' restore error checking

If lastError <> 0 Then

' the add-in workbook isn't currently open. Manually open it.

Set wbMyAddin = Workbooks.Open(Addins("My Addin").FullName)

End If

在 Visual Basic 模块中，可以单击“工具”菜单中的“生成加载宏”命令，建立加载宏。Addin 对象提供一个与“加载宏管理器”的可偏程接口；实际上它不建立加载宏。


AddIns Collection 对象

一个 AddIn 对象集合，它表示 Microsoft Excel 中所有可用加载宏，而不管这些加载宏是否已安装。该列表与“加载宏”对话框（“工具”菜单）中显示的加载宏列表一致。

存取器

使用 Add 方法向可用加载宏列表添加加载宏。

带参数使用 AddIns 方法，可存取集合的单个成员，或者不使用参数，可以一次存取整个集合。

下面的例子在名为“sheet1”的工作表中建立所有可用加载宏名称和安装状态的列表。

Sub DisplayAddIns()

    Worksheets("Sheet1").Activate

    rw = 1

    For Each ad In Application.AddIns

        Worksheets("Sheet1").Cells(rw, 1) = ad.Name

        Worksheets("Sheet1").Cells(rw, 2) = ad.Installed

        rw = rw + 1

    Next

End Sub


Application 对象

表示整个 Microsoft Excel 应用程序。Application 对象包括：

全应用程序设置和选项（例如，“工具选项”对话框中的很多选项）。

内部工作表函数，如 SUM，AVERAGE 和 COUNTA。

返回顶层对象的方法，如 ActiveCell，ActiveSheet 等等。

存取器

在Microsoft Excel 中，您总能用“Application”一词访问 Application 对象。下面的例子将 Windows 方法用于 Application 对象。

Application.Windows("book1.xls").Activate

对于所有 Microsoft Excel 对象，Application 属性返回 Microsoft Excel Application 对象。在使用“OLE 自动化”访问另一个应用程序中的 Microsoft Excel 对象时，这一点很有用。下面的例子建立另一个应用程序中的 Microsoft Excel 工作表对象，然后打开 Microsoft Excel 中的工作簿。

Set xl = CreateObject("Excel.Sheet")

xl.Application.Workbooks.Open "newbook.xls"

注释：

很多属性和方法返回最常用的用户接口对象，如当前单元格（ActiveCell 属性），这些属性和方法在使用时可以不用 Application 对象标识。例如，您可以写成 ActiveCell Font.Bold=True，而不用写成 Application，Activecell.Font.Bold=True。


AddIn, Debug, Dialog, MenuBar, Toolbar, Window, Workbook


Arc 对象

表示图表工作表，对话框编辑表或工作表中的弧图形对象。弧总是描述为圆或椭圆的四分之一。

存取器

Arc 对象是 Arcs 集合的成员。用 Add 方法可建立新弧并将它加到集合中。要存取集合的单个成员，可使用 Arcs 方法，用索引序号或弧名作为参数。

下面的例子为弧1设置内部颜色。

Worksheets("sheet1").Activate

ActiveSheet.Arcs(1).Interior.Color = RGB(0, 255, 255)

当选定弧时，该弧的名称显示在名称框中。使用 Name 属性设置并返回弧名。

下面的例子在当前工作表中选定名为“Arc1”的弧，然后设置弧边框的颜色。

Worksheets("sheet1").Activate

ActiveSheet.Arcs("arc 1").Select

Selection.Border.Color = RGB(255, 0, 0)


A Chart sheet, DialogSheet, or Worksheet.


Arcs Collection 对象

指定图表工作表，对话框编辑表或工作表中所有 Arc 对象的集合。

存取器

使用 Add 方法可以建立新弧并将它增加到集合中。下面的例子画一个弧，从 C3 单元格的左上角开始。在 D9 单元格的左上角结束。

Worksheets("sheet1").Activate

Set r1 = Range("c3")

Set r2 = Range("d9")

ActiveSheet.Arcs.Add r1.Left, r1.Top, r2.Left, r2.Top

Arcs 方法带参数使用时，存取集合的单个成员，或者不带参数使用，一次存取整个集合。下面的例子删除名为“Sheet1”的工作表中的所有弧。

Worksheets("sheet1").Arcs.Delete


Areas Collection 对象

选定区域内的区域集合，或邻接单元格块。没有单个“Area”对象；Areas 集合的成员是 Range 对象，Areas 集合为选定区域内的每个不连续的邻接单元格区域包含一个 Range 对象。若选定区域只包含一个区域，Areas 集合就包含单个 Range 对象，该对象与选定区域相对应。

存取器

不带参数使用 Areas 方法。可以返回整个集合。下面的例子，若当前选定区域包含多个区域则清除该当前选定区域。

If Selection.Areas.Count <> 1 Then Selection.Clear

用区域索引序号作为参数使用 Areas 方法可以返回集合中的单个区域。索引序号对应于选定该区域时用的次序。下面的例子，若当前选定区域包含多个区域，则清除该当前选定区域。

If Selection.Areas.Count <> 1 Then

        Selection.Areas(1).Clear

End If

有些操作一次不能在选定区域中的多个区域中执行；您必须在选定区域中循环经过各个区域，并分别对每个区域执行操作。下面的例子，若选定区域只包含一个区域，则对选定区域执行名为“myOperation”的操作；若选定区域包含多个区域，该例对选定区域中的每个区域执行 myOperation。

Set rangeToUse = Selection

If rangeToUse.Areas.Count = 1 Then

    myOperation rangeToUse

Else

    For Each singleArea in rangeToUse.Areas

        myOperation singleArea

    Next

End If


Border, Characters, Font, Interior, Name, SoundNote, Style


Axes Collection 对象

指定图表中所有 Axis 对象的集合合。

存取器

Axes 方法带参数使用时，存取集合的单个成员，或者，不带参数使用，一次存取整个集合。与大多数集合不同，Axes 集合用常量作为索引。若存在一次坐标轴，可用一个附加参数存取它。有关的详细内容，参见 Axes 方法。

下面的例子，带参数使用 Axes 方法，在名为“Chart1”的图表工作表中设置分类轴标题文本。

With Charts("chart1").Axes(xlCategory)

    .HasTitle = True

    .AxisTitle.Caption = "1994"

End With


Axis 对象

表示图表中的单个轴。

存取器

Axis对象是 Axes 集合的成员。可以用 Axes 方法指定坐标轴类型（xlCategory|、xlValue、或 xlSeries）并可选择地指定坐标轴组（xlPrimary 或 xlSecondary），来存取集合的各个成员。只有三维图表有系列轴，只有二维图表可以有次坐标轴组。

下面的例子在名为“Chart1”的图表工作表中设置分类轴标题文本。

With Charts("chart1").Axes(xlCategory)

    .HasTitle = True

    .AxisTitle.Caption = "1995"

End With


AxisTitle 对象

表示图表中一个坐标轴标题。

存取器

AxisTitle 属性指定坐标轴的坐标轴标题。下面的例子激活名为“Sheet1”的工作表中的嵌入图表1，设置数值轴标题文本，将字体设置为10点 Bookman，并将“Millions”词设置

Worksheets("sheet1").ChartObjects(1).Activate

With ActiveChart.Axes(xlValue)

    .HasTitle = True

    With .AxisTitle

        .Caption = "Revenue (millions)"

        .Font.Name = "bookman"

        .Font.Size = 10

        .Characters(10, 8).Font.Italic = True

    End With

End With

注释：

除非坐标轴的 HasTitle 属性为 True，否则 AxisTitle 对象不存在，也不能存取它。


Border, Characters, Font, Interior


Border 对象

表示对象的边框。

存取器

大多数带边框的对象（除 Range 和 Style 以外的所有对象）都有一个边框，该边框被视为单个项，而不管它有几个边。整个边框必须一次存取。用 Border 属性返回这种对象的边框。下面的例子激活名为“Chart1”的工作表，在图表区的周围为当前图表放置一虚线边框，在绘图区周围放置一点线边框。

Charts("chart1").Activate

With ActiveChart

    .ChartArea.Border.LineStyle = xlDash

    .PlotArea.Border.LineStyle = xlDot

End With

线型对象（如线条，误差栏，和弧）的外观可通过为线型对象设置 Border 对象的属性来控制。例如，设置线条的 Border 属性，可以改变线条本身绘制的方式。下面的例子激活名为“Sheet1”的工作表，然后为当前工作表中的某线条设置线条样式和颜色。

Worksheets("sheet1").Activate

With ActiveSheet.Lines(1).Border

    .LineStyle = xlDashDot

    .Color = RGB(255, 0, 0)

End With

Range 和 Style 对象有4个可分离边框棗左，右，上和下棗可以分别存取，也可作为一组存取。带参数使用 Borders 方法，可返回单个 Border 对象。下面的例子将 A1：G1 单元格的下边框设置为双线。

Worksheets("Sheet1").Range("a1:g1"). _

    Borders(xlBottom).LineStyle = xlDouble

要修改 Range 或 Style 对象的所有4个边框，可以不带参数使用 Borders 方法，一次存取整个 Borders 集合。


Arc, Arcs, Axis, AxisTitle, ChartArea, ChartObject, ChartObjects, ChartTitle, CheckBox, CheckBoxes, DataLabel, DataLabels, DownBars, Drawing, DrawingObjects, Drawings, DropLines, ErrorBars, Floor, Gridlines, GroupObject, GroupObjects, HiLoLines, Legend, LegendKey, Line, Lines, OLEObject, OLEObjects, OptionButton, OptionButtons, Oval, Ovals, Picture, Pictures, PlotArea, Point, Rectangle, Rectangles, Series, SeriesLines, TextBox, TextBoxes, Trendline, UpBars, Walls


Borders Collection 对象

4个 Border 对象的集合。它表示 Range 或 Style 对象的4个边框。

存取器

带参数使用 Borders 方法，可以存取集合的单个成员。下面的例子将 A1：G1 单元格的下边框设置为双线。

Worksheets("Sheet1").Range("a1:g1"). _

    Borders(xlBottom).LineStyle = xlDouble

不带参数使用Borders方法，可以一次存取所有4个边框。下面的例子在C5单元格周围放置一双线兰色边框。

With Worksheets("sheet1").Range("c5").Borders

    .LineStyle = xlDouble

    .Color = RGB(0, 0, 255)

End With

注释：

您只能为 Range 和 Style 对象设置各个边框的属性。其它带边框的对象，例如复选框或图表区域，其边框被视为一个项，而不管它有多少个边。对于这些对象，必须一次存取和设置整个边框的属性。详细内容参见 Border 对象。


Range, Style


Button 对象

表示图表工作表，对话工作表或工作表中的自定义按钮图形对象。不要将 Button 对象与 ToolbarButton 对象相混淆，后者是工具栏中的按钮。

存取器

Button 对象是 Buttons 集合的成员。Buttons 集合包含一个工作表中的所有 Button 对象。使用 Add 方法，可以建立新按钮并将它添加到集合中。

要存取集合的单个成员，可以用索引序号或按钮的名称作为参数使用 Buttons 方法。

下面的例子为名为 Sheet1 的工作表中的按钮1设置文本。

Worksheets("sheet1").Buttons(1).Text = "Repeat"

当选定按钮时，按钮名便显示在名称框中。使用 Name 属性来设置或返回按钮名。下面的例子为名为“go-button”的按钮定位，以使它完全覆盖 C10 单元格。按压该按钮时，运行 GoButtonTest 宏。

Worksheets("sheet1").Activate

Set r = ActiveSheet.Range("c10")

With ActiveSheet.Buttons("go_button")

    .Caption = "Go"

    .Left = r.Left

    .Top = r.Top

    .Width = r.Width

    .Height = r.Height

    .OnAction = "GoButtonTest"

End With


Buttons Collection 对象

指定的图表工作表，对话框编辑表或工作表中的所有 Button对象集合．

存取器

使用 Add 方法可以建立新按钮并将它加到集合中。下面的例子激活工作表1，然后将一个新按钮添加到当前工作表。新按钮的位置是覆盖在 C5 和 D5 单元格上。

Worksheets(1).Activate

Set r = ActiveSheet.Range("c5:d5")

Set newButton = ActiveSheet.Buttons.Add(r.Left, r.Top, _

    r.Width, r.Height)

Buttons 方法在带参数使用时，存取集合的单个成员，或者不带参数使用，一次存取整个集合。


Characters 对象

表示含有文本的对象中的字符。使用 Characters 对象，可以存取包含在整文本串中的任何字符序列。

存取器

使用 Characters 方法，可以返回文本中连续字符的子集合。

下面的例子将文本增加到名为“Sheet1”的工作表中的B1单元格，然后使第二个字变为粗体。

With Worksheets("sheet1").Range("b1")

    .Value = "New Title"

    .Characters(5, 5).Font.Bold = True

End With

注释：

只有在需要改变包含在对象中的某些文本而又不影响其余项时，Characters 方法是必要的（若对象不支持文本，就不能用 Characters 方法对部分文本格式化）。要一次修改所有文本，通常采用直接用于对象的适应方法或属性。

下面的例子将名为“Sheet1”的工作表中 C5 单元格的内容设置为斜体。

Worksheets("sheet1").Range("a5").Font.Italic = True


AxisTitle, Button, Buttons, ChartTitle, CheckBox, CheckBoxes, DataLabel, DialogFrame, DrawingObjects, DropDown, DropDowns, EditBox, EditBoxes, GroupBox, GroupBoxes, Label, Labels, OptionButton, OptionButtons, Range, TextBox, TextBoxes


Chart 对象

表示工作簿中的图表，可以是嵌入图表（包含在 Worksheet 或DialogSheet 对象中的 ChartObject 中），也可以是独立的图表工作表。

嵌入图表

ChartObject 包含工作表或对话框编辑表中的嵌入图表，它是ChartObjects 集合的成员。用Add 方法可以建立新的空嵌入图表并将其添加到集合中。用 Chart 属性可以存取包含在指定 ChartObject 对象中的图表。下面的例子为名为“Sheet1”的工作表中嵌入图表1中的图表区域设置图案。

Worksheets("sheet1").ChartObjects(1).Chart. _

    ChartArea.Interior.Pattern = xlLightDown

图表工作表

Chart 对象表示独立图表工作表，它是 Charts 集合的成员。Charts 集合包含所有 Chart 对象，这些对象表示工作簿中的图表工作表。用 Add 方法可以建立新图表工作表并将它添加到集合中要存取集合的单个成员，可使用 Charts 方法，以索引序号或图表工作表名作为参数。

图表索引序号表示图表工作表工作簿标签栏中的位置。Charts(1)是工作簿中的第一个（最左边）图表；Charts(Chartsm,Count）是最后一个。所有图表工作表，即使是隐藏的，都包括在索引总计中。

下面的例子改变图表工作表1中系列1的颜色。

Charts(1).SeriesCollection(1).Interior.Color = RGB(255, 0, 0)

图表名显示在工作簿中图表的标签中。可以用 Name 属性设置或返回图表名。

下面的例子将名为“销售人员”的图表移动到当前工作簿的末尾。

Charts("sales").Move after:=Sheets(Sheets.Count)

Chart 对象又是 Sheets 集合的成员。Sheets 集合包含工作簿中的所有工作表（图表工作表，对话框编辑表，模块表和工作表）。要存取集合的单个成员，可使用 Sheets 方法，以索引序号或工作表名作为参数。

使用 ActiveChart

当图表为当前对象时，可以使用 ActiveChart 属性引用它。若图表工作表已由用户选定或已用 Activate 方法激活，则该图表工作表为当前对象，下面的例子激活图表工作表1，然后设置图表类型和标题。

Charts(1).Activate

With ActiveChart

.Type = xlLine

.HasTitle = True

.ChartTitle.Text = "January Sales"

End With

若嵌入图表已由用户选定或已用 Activate 方法激活包含它的ChartObject t对象，则该嵌入图表是当前对象，下面的例子激活工作表1中的嵌入图表1，然后设置图表类型和标题。注意：一旦激活了嵌入图表，本例中的代码与上例相同，使用 ActiveChart 属性可以书写 Visual Basic 代码，该代码可引用嵌入图表或图表工作表，只要工作表是当前对象即可。

Worksheets(1).ChartObjects(1).Activate

ActiveChart.Type = xlLine

ActiveChart.HasTitle = True

ActiveChart.ChartTitle.Text = "January Sales"

使用 ActiveSheet

当图表工作表为当前工作表时，可以用 ActiveSheet 属性来引用它。下面的例子用 Activate 方法激活名为“Sheet1”的图表工作表，然后设置图表中系列1的内部颜色。

Charts("chart1").Activate

ActiveSheet.SeriesCollection(1).Interior.ColorIndex = 5


Arc, Axis, Button, ChartArea, ChartGroup, ChartObject, ChartTitle, CheckBox, Corners, Drawing, DrawingObjects, DropDown, Floor, GroupBox, GroupObject, Label, Legend, Line, ListBox, OLEObject, OptionButton, Oval, PageSetup, Picture, PlotArea, Rectangle, ScrollBar, Series, Spinner, TextBox, Walls


ChartArea 对象

表示图表的图表区域。二维图表中的图表区域包含坐标轴，图表标题，坐标轴标题和图例。三维图表的图表区域包含图表标题和图例。它不包括绘制区域（图表区域内绘制数据的区域）。关于格式化绘制区域的内容，请参阅 PlotArea 对象。

存取器

ChartArea 属性返回指定图表的图表区域。下面的例子为名为“Sheet1”的工作表中嵌入图表1中的图形区域设置图案。

Worksheets("sheet1").ChartObjects(1).Chart. _

    ChartArea.Interior.Pattern = xlLightDown


DialogSheet or Worksheet


ChartGroup 对象

表示用相同格式绘制在图表中的一个或多个系列。一个图表包含一个或多个图表组，每个图表组包含一个或多个 series,，每个系列包含一个或多个 point。例如，一个图表或能包含一个线条图表组，它包含所有用线条图表格式绘制的系列，以及条形图表组，它包含所有用条形图表格式绘制的系列。

存取器

ChartGroups 对象是 ChartGroups 集合的成员。要存取集合的单个成员，可使用 ChartGroups 方法，以图表组索引序号作为参数。下面的例子将垂直线添加到图表组1。

Charts(1).ChartGroups(1).HasDropLines = True

若图表已经激活，则可以使用 ActiveChart 属性：

Charts(1).Activate

ActiveChart.ChartGroups(1).HasDropLines = True

若图表组使用的图表格式发生改变，则特定图表组的图表组索引序号可能改变，基于此原因，用一种命名图表组快捷法存取特定图表组可能更方便。PieGroups 方法返回图表中饼图图表组的集合合。LineGroups 方法返回线条图表组的集合。等等。

这些方法中的每个都可以带索引序号使用以返回单个 ChartGroup 对象，或者不带索引使用以返回 ChartGroups 集合。下面是所提供的图表组方法：

AreaGroups 方法

BarGroups 方法

ColumnGroups 方法

DoughnutGroups 方法

LineGroups 方法

PieGroups 方法


DownBars, DropLines, HiLoLines, Series, SeriesLines, UpBars


ChartGroups Collection 对象

指定图表中所有 ChartGroup 对象的集合。每个 ChartGroup 对象表示图表中用相同格式绘制的一个或多个系列。一个图表包含一个或多个图表组，每个图表组包含一个或多个 series，每个系列包含一个或多个 point。例如，一个图表或能包含一个线条图表组，它包含所有用线条图表格式绘制的系列，以及条形图表组，它包含所有用条形图表格式绘制的系列。

存取器

ChartGroups 集合包含一个图表中的所有图表组。ChartGroups 方法带参数使用时可存取集合的单个成员，或者不带参数使用可一次存取整个集合。您还可以用命名图表组快捷方法来存取特定图表组。PieGroups 方法返回图表中饼图图表组的集合，LineGroups 方法返回线条图表组的集合合，等等，这些方法中的每一个都可以带索引序号使用以返回单个 ChartGroup 对象，或者不带参数使用以返回 ChartGroups 集合。下面是所提供的图表组方法：

AreaGroups 方法

BarGroups 方法

ColumnGroups 方法

DoughnutGroups 方法

LineGroups 方法

PieGroups 方法


ChartObject 对象

表示工作表中的嵌入图表。ChartObject对象的作用可容纳Chart对象，用ChartObject对象的属性和方法可以控制工作表中嵌入图表的外观的大小。

存取器

ChartObject 对象是 ChartObjects 集合的成员。ChartObjects 集合包含一个工作表中的所有嵌入图表。用 Add 方法可以建立新的嵌入图表并将它添加到集合中。用 ChartWizard 方法可以添加数据并格式化新的空图表。用 Chart 属性可以存取包含在 ChartObject 对象中的嵌入图表。

要存取集合的单个成员，可以使用 ChartObjects 方法，以嵌入图表的索引序号或名称作为参数。

下面的例子为名为“Sheet1”的工作表中嵌入图表1的图表区域设置图案。

Worksheets("Sheet1").ChartObjects(1).Chart. _

    ChartArea.Interior.Pattern = xlLightDown

在选定嵌入图表时，该嵌入图表名即显示在名称框中。用 Name 属性可以设置或返回 ChartObject 对象的名称。下面的例子在名为“Sheet1”的工作表中的名为“Chart1”的嵌入图表中放置圆角。

Worksheets("sheet1").ChartObjects("chart 1").RoundedCorners = True


Chart Objects Collection 对象

指定的图表工作表，对话框编辑表或工作表中所有 ChartObject 对象的集合。每个 ChartObject 对象表示一个嵌入图表。ChartObject 对象的作用是容纳 Chart 对象。用 ChartObject 对象的属性和方法可以控制工作表中嵌入图表的外观和大小。

存取器

ChartObjects 集合包含一个工作表中的所有嵌入图表。用 Add 方法可以建立新的空嵌入图表并将它添加到集合中。用 ChartWizard 方法可以增加数据并格式化新的空图表。下面的例子在名为“sheet1”的工作表中建立一个新的嵌入图表，然后添加 A1：A20 单元格的数据成为线条图表。

Dim ch As ChartObject

Set ch = Worksheets("sheet1").ChartObjects.Add(100, 30, 400, 250)

ch.Chart.ChartWizard source:=Worksheets("sheet1").Range("a1:a20"), _

    gallery:=xlLine, title:="New Chart"

ChartObjects 方法带参数使用时，可以存取集合的单个成员，或者不带参数使用，可以一次存取整个集合。下面的例子删除名为“Sheet1”的工作表中的所有嵌入图表。

Worksheets("sheet1").ChartObjects.Delete


Charts Collection 对象

指定工作簿或当前工作簿中所有图表工作表的集合。这不包括嵌入在工作表或对话工作表中的图表。有关嵌入图表的内容，请参阅 Chart 或 ChartObject 对象。

存取器

用 Add 方法可以建立新图表工作表并将它添加到工作簿中。下面的例子在当前工作簿中增加一个新图表工作表，并将新图表工作表放在名为“Sheet1”的工作表后．

Charts.Add after:=Worksheets("sheet1")

使用 Add 方法和 ChartWizard 方法可以添加一个新的图表，该图表包含工作表中的数据。下面的示例将根据“Sheet1”工作表上单元格 A1:A20 中的数据添加线型图。

With Charts.Add

.ChartWizard source:=Worksheets("sheet1").Range("a1:a20"), _

   	 gallery:=xlLine, title:="February Data"

End With

Charts 方法带参数使用时，可以存取集的单个成员，或者不带参数使用，可以一次存取整个集。Sheets 集包含工作簿中的所有工作表（图表工作表，对话框编辑表，模块表和工作表）。Sheets 方法带参数使用时，可以存取集的单个成员，或者不带参数使用，可以一次存取整个集。


ChartTitle 对象

表示图表中的标题。

存取器

使用 ChartTitle 属性可以返回指定图表的标题，下面的例子为名为“Sheet1”的工作表中的嵌入图表1增加标题。

With Worksheets("sheet1").ChartObjects(1).Chart

    .HasTitle = True

    .ChartTitle.Text = "February Sales"

End With

注释：

除非图表的 HasTitle 属性为 True，否则 ChartTitle 对象不存在，也不能对它进行存取。


CheckBox 对象

表示图表工作表、对话框编辑工作表或工作表中的复选框控制，您可以设置复选框的位置和大小。在工作表或图表中，还可以格式化复选框的边框和背景。字体是固定的。

存取器

CheckBox 对象是 CheckBoxes 集的成员。CheckBoxes 集包含一个工作表中的所有 CheckBox 对象。用 Add 方法可以建立新复选框并将它添加到集中。

要存取集的单个成员，可用复选框的索引序号或名称作为参数，使用 CheckBoxes 方法。

下面的例子将对话框编辑工作表1中的复选框1链接到名为“Sheet1”的工作表中 A1 单元格。当 A1 单元格的值为 True 时，复选框打开，反之亦然。

DialogSheets("sheet1").CheckBoxes(1).LinkedCell = "=sheet1!a1"

当选定复选框时，该复选框名即显示在 NameBox 中，使用 Name 属性可以设置或返回复选框名称。下面的例子打开名为“CheckBox5”的复选框。

DialogSheets(1).CheckBoxes("check box 5").Value = True


CheckBoxes Collection 对象

指定的图表工作表，对话框编辑工作表或工作表中所有 CheckBox 对象的集合。您可以设置复选框的位置和大小。在工作表或图表中还可以设置复选框的边框和背景。字体是固定的。

存取器

用 Add 方法可以建立新复选框并将它添加到集中，下面的例子在名为“Dialog1”的对话框编辑工作表中增加一个新复选框。新复选框定位于对话框内。

Dim df as DialogFrame

DialogSheets("dialog1").Activate

Set df = ActiveSheet.DialogFrame

ActiveSheet.CheckBoxes.Add df.Left + 10, df.Top + 10, 100, 10

CheckBoxes 方法带参数使用时，可以存取集的单个成员，不带参数使用，可以一次存取整个集。下面的例子关闭(清除)名为“Dialog1”的对话框编辑工作表中的所有复选框。

DialogSheets("dialog1").CheckBoxes.Value = xlOff


Corners 对象

表示三维图表的角。Corners 对象只支持 Select方 法。当您拖动角来设置图表的上下仰角和左右转角时，宏记录器用该对象和方法来记录对三维图表的角的选择。由于您可以直接在 Visual Basic 中设置这些属性，所以将不必使用 Corners 对象。您可以删除包含该对象的线条而不影响代码的功能。


DataLabel 对象

表示图表数据点或趋势线中的数据标志。

存取器

对于系列来说，系列中所有数据点的数据标志包含在 DataLabels 集中。对于没有可定义数据点的系列(如面积图系列)，DataLabels 集包含一个数据标志。要存取集的单个成员，可以用数据标志索引序号作参数使用 DataLabels方法。下面的例子为工作表1中嵌入图表1中的系列1的数据标志5设置数字格式。

Worksheets(1).ChartObjects(1).Chart _

.SeriesCollection(1).DataLabels(5).NumberFormat = "0.000"

DataLabel 属性返回单个数据点的数据标志。下面的例子打开名为“Chart1”的图表工作表中系列1中数据点2的数据标志，并将数据标志文本设置为“Saturday”。

With Charts("chart1")

    With .SeriesCollection(1).Points(2)

        .HasDataLabel = True

        .DataLabel.Text = "Saturday"

    End With

End With

对于趋势线，DataLabel 属性返回与趋势线一起显示的文本。这可能是方程式，R平方值或二者的组合(若二者都显示)。下面的例子将趋势线文本设置为只显示方程式，然后将数据标志文本放置在名为“Sheet1”的工作表中的A1单元格。

With Charts("chart1").SeriesCollection(1).Trendlines(1)

    .DisplayRSquared = False

    .DisplayEquation = True

    Worksheets("sheet1").Range("a1").Value = .DataLabel.Text

End With


DataLabels Collection 对象

指定系列的所有 DataLabel 对象的集合。每个 DataLabel 对象表示数据点或趋势线的数据标志，对于没有可定义数据点的系例(例如面积图系列)，DataLabel 集包含一个数据标志。

存取器

DataLabels 方法带参数使用时，可以存取集的单个成员，或者不带参数使用，可以一次存取整个集。下面的例子为系列1中的所有数据标志设置数字格式。

With Worksheets("sheet5").ChartObjects(1).Chart.SeriesCollection(1)

    .HasDataLabels = True

    .DataLabels.NumberFormat = "0.00"

End With


Dialog 对象

表示 Microsoft Excel 内部对话框。Dialog 对象的唯一用途是与 Show 方法一起使用来显示对话框。不要将 Dialog 对象与DialogSheet 对象(表示自定义对话框编辑工作表)或者 DialogFrame 对象(表示对话框编辑工作表中自定义对话框的边界)相混淆。

存取器

Dialog 对象是 Dialogs 集的成员。Dialogs 集包含所有 Microsoft Excel 内部对话框。您不能建立新的内部对话框或给集添加新的内部对话框。

要存取集中的单个成员，可以带参数使用 Dialogs 方法。下面的例子运行内部“打开文件”对话框，若 Microsoft Excel 成功地打开文件，则 Show 方法返回 True；否则，若用户取消对话框则为 False。

dlgAnswer = Application.Dialogs(xlDialogOpen).Show

Microsoft Excel Visual Basic 对象库包括很多内部对话框的内部常量。每个常量都是由“XIDialog”前缀后面加对话框的名称构成的。例如，“应用名称”对话框常量为 xlDialogApplyNames，“查找文件”对话框常量为 xlDialogFindFile。要用“对象浏览”查看可用常量列表，可选定 Excel 库中的“常量”模块，并向下滚动“方法/属性”列表，直到看到由“XIDialog”开头的常量。


DialogFrame 对象

表示对话框架。对话框架为用户自定义对话框提供背景。它没有格式化属性，只有位置，大小和功能标题。每个对话框编辑工作表中只存在一个对话框架，它不能被删除，也不能移动到任何其它图形对象的前面。工作表中不存在对话框架。

存取器

DialogFrame 属性返回对话框编辑工作表的对话框架，下面的例子在名为“Dialog1”的对话框编辑工作表中增加一个新复选框。新复选框相对定位于对话框架的左上角。

Dim df as DialogFrame

DialogSheets("dialog1").Activate

Set df = ActiveSheet.DialogFrame

ActiveSheet.CheckBoxes.Add df.Left + 10, df.Top + 10, 100, 10

注释

第一次显示对话框编辑工作表时，Microsoft Excel 为对话框架运行任何指定到 OnAction 属性的过程。

对话框架在对话框编辑工作表中的位置不影响自定义对话框出现在常见窗口中的位置。无法对正在运行的对话框架设置自定义位置。


Dialogs Collection 对象

Microsoft Excel 应用程序中所有 Dialog 对象的集合。每个Dialog 对象表示一个Microsoft Excel 内部对话框。Dialog 对象的唯一用途是与 Show 方法一起使用来显示对话框。不要将 Dialog 对象与 DialogSheet 对象(表示自定义对话框编辑工作表)或者DialogFrame 对象(表示对话框编辑工作表中自定义对话框的边界)相混淆。Dialogs 集包含所有 Microsoft Excel 内部对话框。您不能建立新的内部对话框或给集添加新的内部对话框。

存取器

Dialogs 方法带参数使用时可以存取集的单个成员，或者不带参数使用，可以一次存取整个集。Microsoft Excel Visual Basic 对象库包括很多内部对话框的内部常量。每个常量都是由“XIDialog”前缀后面加对话框的名称构成的。例如，“应用名称”对话框常量为 xlDialogApplyNames，“查找文件”对话框常量为 xlDialogFindFile。要用“对象浏览”查看可用常量列表，可选定Excel 库中的“常量”模块，并向下滚动“方法/属性”列表，直到看到由“XIDialog”开头的常量。

下面的例子运行内部“打开文件”对话框。若 Microsoft Excel 成功地打开文件，则 Show 方法返回 True；否则，若用户取消对话框，则返回 False。

dlgAnswer = Application.Dialogs(xlDialogOpen).Show


DialogSheet 对象

表示工作簿中的一个对话框编辑工作表，不要将对话框编辑工作表与 Dialog 对象或 DialogFrame 对象相混淆，Dialog 对象表示一个 Microsoft Excel 内部对话框，而 DialogFrame 对象表示对话框编辑工作表中自定义对话框的边框。

存取器

DialogSheet 对象是 DialogSheets 集的成员，DialogSheets 集包含一个工作簿中的所有 DialogSheet 对象。用 Add 方法可以建立新对话框编辑工作表并将它添加到集中。要存取集的单个成员，可以用对话框编辑工作表的索引序号或名称作参数使用 DialogSheets 方法。

对话框编辑工作表索引序号表示对话框编辑工作表在工作簿标签栏中的位置，Dialogsheets(1)是工作簿中的第一个(最左边)对话框编辑工作表；DialogSheets(DialogSheets.Count)是最后一个。所有对话框编辑工作表(包括隐藏的)都包括在索引总计中，下面的例子运行当前工作簿中的对话框编辑工作表1。

DialogSheets(1).Show

对话框编辑工作表名称显示在工作簿中该对话框编辑工作表的标签中，用 Name 属性可以设置或返回对话框编辑工作表名称。下面的例子运行名为“Test Dialog”的对话框编辑工作表。

DialogSheets("test dialog").Show

DialogSheet 对象又是 Sheets 集的成员。Sheets 集包含工作簿中的所有工作表(图表工作表，对话框编辑工作表，模块和工作表)。要存取集的单个成员，可以用工作表的索引序号或名称作参数使用 Sheets 方法。

加载宏中的DialogSheets

在加载宏中书写代码来显示包含在该加载宏中的对话框编辑工作表时，必须使用 ThisWorkbook 属性来返回对加载宏工作簿的引用。不能使用 ActiveWorkbook，并且不能使用 Workbooks (“workbook name”)。直到在您的工作簿中建立加载宏之前，所有这三种方法都可以使用。然而，一旦您的代码在加载宏中运行，就只能使用 ThisWorkbook (它返回代码正在其中运行的工作簿)来存取加载宏工作簿。

下面的例子显示正在运行的工作簿中名为“Add-In Dialog”的对话框编辑工作表。

ThisWorkbook.DialogSheets("add-in dialog").Show

使用 ActiveSheet

当对话框编辑工作表是当前工作表时，您可以使用 ActiveSheet 属性来引用它。下面的例子使用 Activate 方法，激活对话框编辑工作表1，然后运行该对话框编辑工作表。

DialogSheets(1).Activate

ActiveSheet.Show

注意：该例激活对话框编辑工作表之后，它使用 ActiveSheet 属性，而不是 ActiveDialog 属性来运行当前对话框编辑工作表。ActiveSheet 属性返回工作簿中的当前工作表，而 ActiveDialog 属性返回工作簿中最上面的正在运行的对话框编辑工作表。在本例中，对话框编辑工作表不在运行，因而不能用 ActiveDialog 属性对它进行存取。


Arc, Button, ChartObject, CheckBox, DialogFrame, Drawing, DrawingObjects, DropDown, EditBox, GroupBox, GroupObject, Label, Line, ListBox, OLEObject, OptionButton, Oval, PageSetup, Picture, Rectangle, ScrollBar, Spinner, TextBox


DialogSheets Collection 对象

指定工作簿或当前工作簿中所有 DialogSheet 对象的集合。不要将对话框编辑工作表与 Dialog 对象或 DialogFrame 对象相混淆，Dialog 对象表示 Microsoft Excel 内部对话框，DialogFrame 对象表示对话框编辑工作表中自定义对话框的边界。

存取器

用Add 方法可以建立新对话框编辑工作表并将它添加到集中，下列的例子在当前工作簿的工作表1之前添加一个新对话框编辑工作表。

DialogSheets.Add before:=Sheets(1)

DialogSheets 方法带参数使用时，可以存取集的单个成员，不带参数使用，可以一次存取整个集。下面的例子将当前工作簿中的所有对话框编辑工作表移动到工作簿的末尾。

DialogSheets.Move after:=Sheets(Sheets.Count)

Sheets 集对象包含工作簿中的所有工作表(图表工作表、对话框编辑工作表、模块表和工作表)。Sheets 方法带参数使用，可以存取集的单个成员，不带参数使用，可以一次存取整个集。


DownBars 对象

表示图表组中的跌线，跌线将图表组中系列1中的数据点与最后一个系列中的较低值相连(线条从系列1向下画)。至少包含两个系列的二维图才有跌线。没有单个的 DownBar 对象；您必须一次打开或关闭图表组中所有数据点的涨线和跌线。

存取器

DownBars 属性返回图表组的跌线。下面的例子为名为“Sheet5”的工作表中，嵌入式图表1内的图表组1设置涨线和跌线，然后该例将涨线颜色设置为蓝色，将跌线颜色设置为红色。

With Worksheets("sheet5").ChartObjects(1).Chart.ChartGroups(1)

    .HasUpDownBars = True

    .UpBars.Interior.Color = RGB(0, 0, 255)

    .DownBars.Interior.Color = RGB(255, 0, 0)

End With

注释

若 HasUpDownBars 属性为 False，DownBars 对象的大多数属性将被禁止。


Drawing 对象

表示由“手画线”，“手画多边形”或“实心手画多边形”按钮建立的图形对象。

存取器

Drawing 对象是 Drawings 集的成员。Drawings 集包含一个工作表中的所有 DrawingObject。不要将 Drawings 集与 DrawingObjects 集相混淆，后者包含一个工作表中的所有graphic objects 和 controls 。用 Add 方法可以建立新的图形并将它添加到集中。

要存取集的单个成员，可以用图形的索引序号或名称作参数使用Drawings 方法。

下面的例子为名为“Sheet1”的工作表中的图形1设置内部颜色。

Worksheets("sheet1").Drawings(1).Interior.Color = RGB(0, 0, 255)

当选定图形时，该图形名显示在 Name Box 中。用 Name 属性可以设置或返回图形名称。下面的例子将名为“Drawing1”的图形的左边缘与 C5 单元格的左边缘对齐。

Worksheets("sheet1").Drawings("drawing 1").Left = _

Worksheets("sheet1").Range("c5").Left


Graphic 对象

用“图形”工具栏中的按钮绘制的对象：

Arc, Button, Drawing, Line, Oval, Rectangle, TextBox


Controls

用“格式”工具栏中的按钮绘制的对象：

Button, CheckBox, DropDown, EditBox, GroupBox, GroupObject, Label, ListBox, OptionButton, ScrollBar, Spinner


DrawingObjects Collection 对象

DrawingObjects 集包含工作表中所有graphic objects，controls，ChartObject 对象，Picture 对象和 OLEObject 对象。没有单个 DrawingObject 对象；DrawingObjects 集的每个成员是一个特定类型的对象，如 CheckBox 对象，Arc 对象或 Picture 对象。

存取器

对特定的对象类型使用 Add 方法(例如，Arcs.Add，或 Ovals.Add)创建新的图形对象或控制，并将其加到 DrawingObjects 集中。DrawingObjects 集没有 Add 方法。

当Picture对象，ChartObject 对象和 OLEObject 对象都处于 DrawingObjects集中时，使用存取器方法存取特定对象可能会更容易。详情可查阅Pictures 方法，ChartObjects 方法和 OLEObjects 方法。

不带参数使用 DrawingObjects 方法可以一次存取整个集。下面的例子删除名为“Dialog1”的对话框编辑工作表中的所有 DrawingObjects 对象。

DialogSheets("dialog1").DrawingObjects.Delete

要存取集中的单个成员，可以用索引序号或对象名作参数使用 DrawingObjects 方法。

下面的例子删除名为“Sheet1”的工作表中的 DrawingObject 对象1。

Worksheets("sheet1").DrawingObjects(1).Delete

在选定对象时，该对象的名称即显示在 Name Box 中。使用 Name 属性可以设置或返回名称。下面的例子激活名为“Dialog1”的对话框编辑工作表，然后修改名为“Button2”和“Button3”按钮中的文本。

注意：本例使用 DrawingObjects 方法的地方也可以用 Buttons 方法。

With DialogSheets("dialog1")

    .DrawingObjects("button 2").Text = "On"

    .DrawingObjects("button 3").Text = "Off"

End With

因为 DrawingObjects 方法不管对象为何类型都返回集的所有成员，所以，用存取器方法存取特定对象类型可能会更便捷，例如，用 Ovals 方法返回工作表中的椭圆集合，或者，用 OptionButtons 方法返回选项按钮集合。详细内容可参阅相应对象的专题。


Border, Characters, Font, Interior


Drawings Collection 对象

指定图表工作表，对话框编辑工作表或工作表中所有 Drawing 对象(由“手画线”，“手画多边形”或“实心手画多边形”按钮建立的图形对象)的集合。

存取器

Drawings 方法带参数使用，可以存取集的单个成员，或者不带参数使用，可以一次存取整个集。下面的例子删除当前工作簿中工作表1中的所有图形。

Worksheets(1).Drawings.Delete

用 Add 方法可以建立新图形并将它添加到集中。您必须指定绘图的两个起始顶点。一旦图形建立完毕，则必须用 AddVertex 方法添加顶点。下面的例子建立一个新图形。

With Worksheets("sheet1").Drawings.Add(10, 10, 100, 100, False)

.AddVertex 150, 150

.AddVertex 200, 150

End With

您可以用宏记录器建立一个更复杂的图形例子。打开宏记录器(单击“工具”菜单中的“记录宏”)，并绘制一个复杂的不规则图形。然后关闭宏记录器，并检查记录的 Visual Basic 代码。


DropDown 对象

表示指定图表工作表、对话框编辑工作表或工作表中的下拉式列表框，或者指定对话框编辑工作表中的组合下拉式编辑框。用户可单击下拉列表框或组合下拉编辑框中的项，在组合下拉编辑框中，还可在编辑框中键入文本。

您可以通过指定包含列表项的单元格区域(用 ListFillRange 属性)，或者通过指定每一项(用 AddItem和 RemoveItem 方法或 List 属性)来填充下拉式列表。

存取器

DropDown 对象是 DropDowns 集的成员。DropDowns 集包含一个工作表中的所有 DropDown 对象，用 Add 方法可以建立新的下拉式列表框并将它添加到集中。将 editable 参数设置为 True，可以建立组合下拉编辑框(您只能在对话框编辑工作表中建立组合下拉编辑框)。

要存取集的单个成员，可以用下拉式列表框的索引序号或名称作参数使用 DropDowns 方法。

下面的例子设置对话框编辑工作表运行时出现在下拉式列表框中的项。

DialogSheets(1).DropDowns(1).List = _

    Array("cogs", "widgets", "gadgets", "sprockets")

当选定下拉式列表框时，该下拉式列表框的名称即显示在 Name Box 中。用 Name 属性可以设置或返回下拉式列表框名称。

下面的例子为名为“DropDown9”的下拉式列表框设置列表输入区域。当对话框编辑工作表运行时，名为“Sheet1”的工作表中 A1：A10 单元格的内容将出现在下拉式列表框中。

DialogSheets(1).DropDowns("drop down 9") _

.ListFillRange = "=sheet1!a1:a10"


DropDowns Collection 对象

指定图表工作表，对话框编辑工作表或工作表中所有 DropDown 对象的集合。每个 DropDown 对象表示一个下拉式列表框或组合下拉式编辑框。用户可单击下拉式列表框或组合下拉式编辑框中的项，在组合下拉编辑框中，还可在编辑框中键入文本。

存取器

使用 Add 方法可以建立新下拉式列表框并将它添加到集中。将 editable 变量设置为 True，可以建立组合下拉式编辑框(您只能在对话框编辑工作表中建立组合下拉式编辑框)。下面的例子给对话框编辑工作表1添加一个新下拉式列表框。新下拉式列表框相对定位于对话框架的左上角。

Dim df As DialogFrame

Set df = DialogSheets(1).DialogFrame

DialogSheets(1).DropDowns.Add df.Left + 10, df.Top + 20, 100, 10

DropDowns 方法带参数使用，可以存取集的单个成员，不带参数使用，可以一次存取整个集，下面的例子为对话框编辑工作表1中的所有下拉式列表框设置 Value 属性；下次对话框编辑工作表运行时，该工作表中的每个下拉式列表框将显示列表中的第一项。

DialogSheets(1).DropDowns.Value = 1


DropLines 对象

表示图表组中的垂直线。垂直线将图表中的数据点与X轴相连。只有折线图表组和面积图表组可以有垂直线。没有单个的 DropLine 对象；您必须一次打开或关闭一个图表组中所有数据点的垂直线。

存取器

DropLines 属性返回图表组的垂直线。下面的例子为名为“Sheet1”的工作表中的嵌入式图表1中的图表组1打开垂直线，然后设置垂直线颜色。

Worksheets("sheet1").ChartObjects(1).Activate

ActiveChart.ChartGroups(1).HasDropLines = True

ActiveChart.ChartGroups(1).DropLines.Border.ColorIndex = 3

注释

若 HasDropLines 属性为 False，DropLines 对象的大多数属性将被禁止。


EditBox 对象

表示对话框编辑工作表中的一个编辑框(编辑框不能用在工作表中)。用户可以在编辑框中输入文本或数字。与其它控制项不同，编辑框没有 Value 属性或 LinkedCell 属性。使用 LinkCombo 方法或“窗体”工具栏中的“组合列表编辑框”按钮，可以将对话框编辑工作表中的编辑框链接到列表框，形成组合列表编辑框。

存取器

EditBox 对象是 EditBoxes 集的成员。EditBoxes 集包含单个工作表中的所有 EditBox 对象。用 Add 方法可以建立新的编辑框并将它添加到集中。

要存取集的单个成员，可以用编辑框名或索引序号作参数使用 EditBoxes 方法。

下面的例子设置出现在名为“Dialog1”的对话框编辑工作表中编辑框1中的文本。

DialogSheets("dialog1").EditBoxes(1).Text = "widgets"

当选定编辑框时，该编辑框名即显示在 Name Box 中，用 Name 属性可以设置或返回编辑框名称。下面的例子为名为“Dialog1”的对话框编辑工作表中的名为“EditBox14”的编辑框设置允许的输入类型。

DialogSheets("dialog1").EditBoxes("edit box 14").InputType = xlInteger


EditBoxes Collection 对象

指定对话框编辑工作表(编辑框不能用在工作表中)中所有 EditBox 对象的集合。用户可以在编辑框中输入文本或数字。与其它控制不同，编辑框没有 Value 属性或 LinkedCell 属性。与列表框相链接而形成的组合列表编辑框的包括在 ListBoxes 集中。

存取器

使用 Add 方法可以建立新编辑框并将它添加到集中。下面的例子给名为“Dialog1”的对话框编辑工作表添加一个新编辑框。新编辑框相对定位于对话框架的左上角。

Dim df As DialogFrame

Set df = DialogSheets("dialog1").DialogFrame

DialogSheets("dialog1").EditBoxes.Add df.Left + 10, _

df.Top + 20, 100, 10

EditBoxes 方法带参数使用，可以存取集的单个成员，或者不带参数使用，可以一次存取整个集。下面的例子使名为“ Dialog1”的对话框编辑工作表中的所有编辑框变空。

DialogSheets("dialog1").EditBoxes.Text = ""


ErrorBars 对象

表示图表系列中的误差线，误差线表示的图表数据的不精确程度。只有二维图表中的面积图、条形图、柱形图、折线图组和散点图组中的系列才有误差线。只有散点图组中的系列才有X和Y误差线。没有单个的 ErrorBar 对象；必须一次打开或关闭一个系列中所有数据点的 X 误差线或 Y 误差线。

存取器

ErrorBars 属性返回图表系列的误差线。下面的例子为名为“Sheet1”的工作表中嵌入图表1中的系列1打开误差线，然后设置误差线的终止样式。

Worksheets("sheet1").ChartObjects(1).Activate

ActiveChart.SeriesCollection(1).HasErrorBars = True

ActiveChart.SeriesCollection(1).ErrorBars.EndStyle = xlNoCap

注释

ErrorBar 方法修改误差线格式和类型。


Floor 对象

表示三维图表的地板。

存取器

Floor 属性返回指定图表的基底。下面的例子为名为“Sheet1”的工作表中嵌入的图表1设置基底颜色，若该图表不是三维图表，本例即失效。

Worksheets("sheet1").ChartObjects(1).Activate

ActiveChart.Floor.Interior.Color = RGB(0, 255, 255)


Font 对象

包含对象的字体属性(字体名，字体大小等等)。

存取器

Font 属性返回 Font 对象。字体属性就是 Font 对象的属性。下面的例子使名为“Sheet1”的工作表中的 A1：C5 单元格成为粗体。

Worksheets("sheet1").Range("a1:c5").Font.Bold = True

如果您不希望一次对单元格或图形对象中包含的所有文本进行格式化，可以使用 Characters 方法返回文本的子集。


AxisTitle, Button, Buttons, Characters, ChartArea, ChartTitle, DataLabel, DataLabels, DrawingObjects, GroupObject, GroupObjects, Legend, LegendEntry, Range, Style, TextBox, TextBoxes, TickLabels


Gridlines 对象

表示图表坐标轴上的主网格线或次网格线。网格线对图表坐标轴上的刻度线进行扩展，以便更易于查看与数据标记相关联的值，没有单个的 Gridline 对象；您必须一次打开或关闭一个坐标系的所有网格线。

存取器

MajorGridlines 属性返回坐标轴的主网格线。MinorGridlines 属性返回次网格线。没有 Gridlines 属性或集；您必须分开存取主网格线和次网格线。

下面的例子为名为“Chart1”的图表工作表中的分类轴打开主网格线，然后将该网格格式化为蓝色虚线。

Charts("chart1").Axes(xlCategory).HasMajorGridlines = True

Charts("chart1").Axes(xlCategory).MajorGridlines.Border.Color = _

RGB(0, 0, 255)

Charts("chart1").Axes(xlCategory).MajorGridlines.Border.LineStyle = _

xlDash


GroupBox 对象

表示一个静态框架，该框架用于给图表工作表、对话框编辑工作表或工作表中的选项按钮(OptionButton 对象)集及其它控制项加标志并分组。分组框控制选项按钮选定和清除的方式。

所有的左上角包含在分组框边界之内的选项按钮都被看作是同一组的一部分，在给定的任何时刻只能打开组内的一个选项按钮。

分组框无字体或背景格式，但对话框编辑工作表中的分组框有一个加速器键。分组框的位置和大小可以设置。

不要将 GroupBox 对象与 GroupObject 对象相混淆，前者对对话框编辑工作表中的选项按钮分组，而后者将对象组合到一个逻辑集，但不影响对话框编辑工作表的工作状况。

存取器

GroupBox 对象是 GroupBoxes 集的成员。GroupBoxes 集包含一个工作表中的所有 GroupBox 对象，用 Add 方法可以建立新分组框并将它添加到集中。

要存取集的单个成员，可以用分组框的索引序号或名称作参数使用 GroupBoxes 方法。

下面的例子为名为“Dialog1”的对话框编辑工作表中的分组框1设置功能标题。

DialogSheets("dialog1").GroupBoxes(1).Caption = "Test Group"

当选定分组框时，该分组框的名称即显示在 Name Box 中。用 Name 属性可以设置或返回分组框名称。下面的例子隐藏对话框编辑工作表1中名为“GroupBox14”的分组框。

DialogSheets(1).GroupBoxes("group box 14").Visible = False


GroupBoxes Collection 对象

指定图表工作表，对话框编辑工作表或工作表中所有 GroupBox 对象的集合。每个 GroupBox 对象表示一个静态框架，该框架用于给选定按钮集(OptionButton 对象)及其控制项加标志并分组。分组框控制选项按钮选定和清除的方式。所有的左上角包含在分组框边界之内的选项按钮都被看作是同一组的一部分，在给定的任何时刻只能打开组内的一个选项按钮。

不要将 GroupBox 对象与 GroupObject 对象相混淆，前者对对话框编辑工作表的选项按钮分组，而后者将对象组合为一个逻辑集，但不影响对话框编辑工作表的工作状况。

存取器

用 Add 方法可以建立新分组框并将它添加到集中，下面的例子在对话框编辑工作表1中建立一个新分组框。

    DialogSheets(1).GroupBoxes.Add 77, 44, 82, 63

GroupBoxes 方法带参数使用，可以存取集的单个成员，不带参数使用，可以一次存取整个集。下面的例子删除名为“Sheet1”的工作表中的所有分组框。

Sheets("sheet1").GroupBoxes.Delete


GroupObject 对象

表示一组图形对象和控制项。组是用 Group 方法或“图形”工具栏中的“组对象”按钮建立的。

不要将 GroupObject 对象与 GroupBox 对象相混淆，前者将对象组合为一个逻辑集，但不影响对话框编辑工作表的工作状况，而后者对对话框编辑工作表中的选项按钮分组。

存取器

GroupObject 对象是 GroupObjects 集的成员。GroupObjects 集包含一个工作表中的所有 GroupObject 对象。用 Group 方法可以建立新组并将它添加到集中。下面的例子建立一个组，该组包含工作表1中的所有矩形，然后设置该组的位置。

Dim g As GroupObject

Set g = Worksheets(1).Rectangles.Group

g.Left = Worksheets(1).Range("c1").Left

g.Top = Worksheets(1).Range("c1").Top

要存取集的单个成员，可以用索引序号或组名作参数使用 GroupObjects 方法。

下面的例子为工作表1中组1内的所有对象设置内部颜色。

Worksheets(1).GroupObjects(1).Interior.Color = RGB(0, 255, 0)

当选定组时，该组名称即显示在 Name Box 中。用 Name 属性可以设置或返回组名。下面的例子为名为“Group24”的组内的所有对象设置边框样式。

Worksheets(1).GroupObjects("group 24").Border.LineStyle = xlDashDot


GroupObjects Collection 对象

指定图表工作表、对话框编辑工作表或工作表中所有 GroupObject 对象的集合。每个 GroupObject 表示一组图形对象和控制项。与其它集对象不同，GroupObjects 对象没有 Add 方法。组是用 Group 方法或“图形”工具栏中的“组对象”按钮建立并添加到集中的。

不要将 GroupObject 对象与 GroupBox 对象相混淆，前者将对象组合为一个逻辑集，但不影响对话框编辑工作表的工作状况，而后者对对话框编辑工作表中的选项按钮分组。

存取器

GroupObjects 方法带参数使用，可以存取集的单个成员，不带参数使用，可以一次存取整个集。下面的例子对名为“Sheet1”的工作表中的所有图形对象组取消组。

Worksheets("sheet1").GroupObjects.Ungroup


HiLoLines 对象

表示图表组中的高低点连线。高低点连线将图表组中每个分类的最高点与最低点相连。只有二维折线图组才有高低点连线。没有单个的 HiLoLine 对象；您必须一次打开或关闭一个图表组中所有数据点的高低点连线。

存取器

HiLoLines 属性返回图表组的高低点连线，下面的例子用AutoFormat 方法在嵌入的图表1(该图表必须包含三个系列)中建立一个 high-low-close 股票图表，然后该例将高低点连线变为蓝色。

Worksheets(1).ChartObjects(1).Activate

ActiveChart.AutoFormat gallery:=xlLine, format:=8

ActiveChart.ChartGroups(1).HiLoLines.Border.Color = RGB(0, 0, 255)

注释

若 HasHiLoLines 属性为 False，HiLoLines 对象的大多数属性将被禁止。


Interior 对象

表示对象的内部。单元格(Range 对象)和图形对象都使用 Interior 对象。

存取器

Interior 属性返回对象的内部。下面的例子为名为“Sheet1”的工作表中的所有椭圆设置内部颜色。

Worksheets("sheet1").Ovals.Interior.ColorIndex = 3


Arc, Arcs, AxisTitle, ChartArea, ChartObject, ChartObjects, ChartTitle, CheckBox, CheckBoxes, DataLabel, DataLabels, DownBars, Drawing, DrawingObjects, Drawings, Floor, GroupObject, GroupObjects, Legend, LegendKey, OLEObject, OLEObjects, OptionButton, OptionButtons, Oval, Ovals, Picture, Pictures, PlotArea, Point, Range, Rectangle, Rectangles, Series, Style, TextBox, TextBoxes, UpBars, Walls


Label 对象

表示在图表、对话框编辑表，或工作表上的一个静态文本对象。标记没有字体或背景格式，但在对话框编辑表上它有加速键。标记能定位和缩放。

存取器

标记对象是 Labels 集的一个成员。Labels 集包含单个工作表上所有的标记对象。可以使用 Add 方法创建一个新标记并将其添加到标记集中。

要存取集的单个成员，使用 Labels 方法，并将其索引值或标记名作为参数。

下例设置名为“Dialog1”的对话框编辑表中的标记的内容。

DialogSheets("dialog1").Labels(1).Text = "Options"

当标记被选定时，标记名显示在 Name Box 中。使用 Name 属性设置或返回标记名。下例隐藏名为"Dialog1"的对话框编辑表中的名为“Option Label”的标记。

DialogSheets("dialog1").Labels("option label").Visible = False


Labels 集对象

指定图表、对话框编辑表，或工作表上的所有 Label 对象的集。标记没有字体或背景格式，但在对话框编辑表上它有加速键。标记能定位和缩放。

存取器

可以使用 Add 方法创建一个新标记并将其添加到标记集中。下例在对话框编辑表中添加一个新标记。标记的左上角位于对话框边框的左边框向右10磅，下边框向上20磅。

Dim df As DialogFrame

Set df = DialogSheets(1).DialogFrame

DialogSheets(1).Labels.Add df.Left + 10, _

df.Top + df.Height - 20, 100, 10

带参数使用 Labels 方法可存取集的单个成员，不带参数同时存取整个集。下例删除名为“Dialog1”的对话框编辑表中的所有的标记。

DialogSheets("dialog1").Labels.Delete


Legend 对象

图表中的图例。图例对象包含一个或多个 LegendEntry 对象；每个 LegendEntry 对象 包含一个 LegendKey 对象。因为每个图表只能有一个图例，没有图例集对象。

存取器

Legend 属性返回图表的图例。下例在工作表中的嵌入图表上，设置图例的字体。

Worksheets(1).ChartObjects(1).Chart.Legend.Font.Bold = True

注释

只有当 HasLegend 属性为 True 时图表的图例才可见。如果此属性为 False，Legend 对象的属性和方法将失效。


LegendEntries 集对象

指定图例中的所有 LegendEntry 对象的集。每个图例项包含两部分：图例项的内容(与此图例对应的序列或趋势线的名称)，和图例的标识符(在图表中，将图例项与序列或趋势线可视化的联系起来)。图例标识符和其对应的序列或趋势线的格式化属性包含在 LegendKey 对象中。

存取器

带参数使用 LegendEntries 方法可存取集的单个成员，不带参数同时存取整个集。下例在整个图例项集上循环，改变其字体的颜色。

With Worksheets("sheet1").ChartObjects(1).Chart.Legend

    For i = 1 To .LegendEntries.Count

        .LegendEntries(i).Font.ColorIndex = 5

    Next

End With


LegendEntry 对象

图例中的一个图例项。

每个图例项包含两部分：图例项的内容(与此图例对应的序列或趋势线的名称)，和图例的标识符(在图表中，将图例项与序列或趋势线可视化的联系起来)。图例标识符和其对应的序列或趋势线的格式化属性包含在 LegendKey 对象中。

图例项的文本不能改变。LegendEntry 对象支持字体格式，也能删除它们。对图例项无图案格式支持。不能改变图例项的位置和大小。

存取器

图例项对象是 LegendEntries 集的成员。图例项集对象包含图例中的所有图例项对象。

要存取集中的单个成员，使用把图例项索引号作为参数的 LegendEntries 方法。不能用名字存取图例项。

索引号代表图例项在图例中的位置。LegendEntries(1)在图例的开头；LegendEntries(LegendEntries.Count) 在图例的末尾。下例改变在图例开头的图例项的字体(其通常为序列一的图例)。

Worksheets("sheet1").ChartObjects(1).Chart _

    .Legend.LegendEntries(1).Font.Italic = True

注释

没有存取对应于图例项的序列或趋势线的直接方法。

一旦图例项被删除，恢复的唯一方法是删除包含此图例项的图例，再将 HasLegend 属性由 False 设置为 True。


LegendKey 对象

在图表图例中的图例标识。每个图例标识为一个与图表中的序列或趋势线相关联的图形。图例标识与图表中的序列或趋势线相关联表现为，改变其中一个的格式，另一个也随之改变。

存取器

LegendKey 属性返回 LegendEntry 对象的图例标识。下例改变嵌入式图表的图例的起始图例项中标记的背景颜色。这同时也改变了与此图例项对应的序列中每点的格式。相关联的序列必须支持数据标记。

Worksheets("sheet1").ChartObjects(1).chart _

.Legend.LegendEntries(1).LegendKey.MarkerBackgroundColorIndex = 5


Line 对象

在图表、对话框编辑表或工作表上的直线图形对象。箭头是 ArrowHeadStyle 属性设为非 xlNone 值的直线。

存取器

Line 对象是 Lines 集的成员。Lines 集包括单个工作表上的所有 Line 对象。使用 Add 方法创建新直线并将其添加到集中。要存取集的单个成员，使用把直线名或直线索引号作为参数的 Lines 方法。

下例设置名为“Sheet1”的工作表上的直线1的颜色。

Worksheets("sheet1").Lines(1).Border.Color = RGB(0, 255, 0)

直线被选中时，直线名显示在 Name Box 中。使用 Name 属性设置或返回直线的名字。下例在名为“Line 1”的直线上添加开口箭头。

Worksheets("sheet1").Lines("line 1").ArrowHeadStyle = xlOpen


Lines 集对象

在图表、对话框编辑表或工作表上的所有 Line 对象的集。

存取器

使用 Add 方法创建新直线并将其添加到集中。下例在工作表1上创建新直线。新直线开始于 B10 单元格的左上角结束于 C20 单元格的左上角.

Dim rStart As Range, rEnd As Range

Set rStart = Worksheets(1).Range("b10")

Set rEnd = Worksheets(1).Range("c20")

Worksheets(1).Lines.Add rStart.Left, rStart.Top, _

    rEnd.Left, rEnd.Top

要存取集的单个成员，使用把直线名或直线索引号作为参数的 Lines 方法，要存取整个集，使用无参数的 Lines 方法。下例为当前工作簿上工作表1上的所有直线设置箭头样式。

Worksheets(1).Lines.ArrowHeadStyle = xlClosed


ListBox 对象

为图表、对话框编辑表或工作表上的可滚动的列表框。有三种列表框类型：单选，简单多选，扩展多选。列表框类型决定是否可从列表框中选择多项，多项如何选择。详细内容，参见 MultiSelect 属性。

您可以用指定的包含列表项的单元格区域填充列表(使用 ListFillRange 属性)或直接指定每项(使用AddItem 和 RemoveItem 方法或 List 属性)。

存取器

ListBox 对象是 ListBoxes 集的成员。ListBoxes 集包括单个工作表上的所有 ListBox 对象。使用 Add 方法创建新列表框并将其添加到集中。要存取集的单个成员，使用把列表框名或列表框索引号作为参数的 ListBoxes 方法。

下例当对话框编辑表运行时，设置名为“Sheet2”的工作表上的列表框2的输入区。名为“Sheet2”的工作表上的 D1:D15 单元格内容将出现在列表框中。

Worksheets("sheet2").ListBoxes(2).ListFillRange = "=sheet2!d1:d15"

列表框被选中时，列表框名显示在 Name Box 中。使用 Name 属性设置或返回列表框的名字。下例在名为“List Box 2”的列表框上添加新项。

Worksheets(1).ListBoxes("list box 2").AddItem "end"

注释

在对话框编辑表上，LinkCombo 方法可以将一个列表框和一个编辑框连接起来构成一个组合列表框。关于组合下拉列表框的详细内容，参见 DropDown 对象。


ListBoxes 集对象

为图表，对话框编辑表或工作表上的所有 ListBoxe 对象的集合。一个列表框和一个编辑框连接起来构成的组合列表框也包括在 ListBoxes 集中。

存取器

使用 Add 方法创建新列表框并将其添加到集中。下例在名为“Dialog1”的对话框编辑表中添加一个新列表框。新列表框相对于对话框的左上角放置。

Dim df As DialogFrame

Set df = DialogSheets("dialog1").DialogFrame

DialogSheets("dialog1").ListBoxes.Add df.Left + 10, _

df.Top + 20, 100, 100

要存取集的单个成员，使用把列表框名或列表框索引号作为参数的 ListBoxes 方法。要同时存取整个集，使用无参数的 ListBoxes 方法。下例在名为“Dialog1”的对话框编辑表中删除全部的列表框。

DialogSheets("dialog1").ListBoxes.Delete


Mailer 对象

用于工作簿的 PowerTalk 邮件。该对象只能用于已安装了 PowerTalk 系统的 Apple  Macintosh 机上。

存取器

当 HasMailer 属性为 True 时，Mailer 属性返回工作簿的邮件。下例设置附加到活动工作簿上的邮件的 Subject 属性。

ActiveWorkbook.HasMailer = True

ActiveWorkbook.Mailer.Subject = "Here is the workbook."


Menu 对象

为下拉菜单、快显菜单或层叠式菜单。关于菜单结构的详细内容，参见Menu Structure.

存取器

Menu 对象是 Menus 集的一个成员。Menus 集包括菜单栏上的所有菜单。使用 Add 方法创建一个新菜单并将其添加到指定的菜单栏。要存取集的单个成员，使用将菜单名或菜单索引号作为参数的 Menus 方法。

菜单索引号代表菜单在菜单栏上的位置。下例在工作表菜单栏上的文件菜单添加一个新的菜单项。

MenuBars("worksheet").Menus(1).MenuItems.Add "Search"

菜单名是出现在菜单栏上的文字。使用 Caption 属性设置或返回菜单名。下例改变 Visual Basic模块表菜单栏中帮助菜单的名称。

MenuBars(xlModule).Menus("help").Caption = "HELP!"

下例在工作表1上创建包括应用程序的所有菜单栏的所有菜单名的列表。列标题为菜单栏名，列项为对应菜单栏的菜单名。

Sub EnumerateMenuBars()

    Worksheets(1).Activate

    c = 1

    For Each mb In MenuBars

        Cells(1, c) = mb.Caption

        i = 2

        For Each mn In mb.Menus

            Cells(i, c) = mn.Caption

            i = i + 1

        Next

        c = c + 1

    Next

End Sub

当指定菜单项为子菜单时， MenuItems 方法返回 Menu 对象。下例设置在 mySubMenu 子菜单上的 mySubMenuItem 子菜单项的 Checked 属性。

MenuBars(xlModule).Menus("myMenu").MenuItems("mySubMenu") _

.MenuItems("mySubMenuItem").Checked = True

注释

您应该使用菜单名而不是其索引号，使得您的代码不依赖于当前的菜单布局。其他的 Visual Basic 过程可能改变菜单布局，而且菜单布局在以后的 Microsoft Excel 版本中也可能改变。使用 Menubars(xlWorksheet).Menus("File") ，与Menubars(xlWorksheet).Menus(1)（认为“文件”菜单处于菜单栏的第一位）相比更为安全。


MenuBar 对象

内部的或自定义菜单栏。关于菜单结构的详细内容，参见 Menu Structure.

存取器

MenuBar 对象是 MenuBars 集的成员。MenuBars 集包含可用于Microsoft Excel的所有菜单栏。使用 Add 方法创建一个新菜单栏并将其添加到集。使用 Activate 方法显示一个菜单栏。要存取集的单个成员，使用将菜单栏名或菜单栏索引号作为参数的 MenuBars 方法。

可用几个内部常量引用菜单栏索引号，如下表所示。

常量	说明

xlWorksheet	工作表，宏表和对话框编辑表

xlChart	图表

xlModule	Visual Basic 模块表

xlNoDocuments	无文件打开

xlInfo	信息窗口

xlWorksheetShort	短工作表菜单(用于与 Microsoft Excel version 3 兼容)

xlChartShort	短图表菜单 Short Chart menu (用于与 Microsoft Excel version 3 兼容)

xlWorksheet4	老式工作表菜单栏(用于与 Microsoft Excel version 4 兼容)

xlChart4	老式图表菜单栏(用于与 Microsoft Excel version 4 兼容)

Microsoft Excel 自动显示与活动工作表相匹配的内部菜单栏。随活动工作表改变，Microsoft Excel 改变菜单栏。如果使用 Visual Basic 代码创建并显示一个用户定义菜单栏，Microsoft Excel 停止自动显示与活动工作表相匹配的内部菜单栏，当工作表类型改变，要使用代码激活和取消菜单栏。

下例在 Visual Basic 模块表菜单栏的文件菜单的底部添加新菜单项。

MenuBars(xlModule).Menus("file").MenuItems.Add "S&earch"

下例在工作表1上创建包括应用程序的所有菜单栏的所有菜单名的列表。列标题为菜单栏名，列项为对应菜单栏的菜单名。

Sub EnumerateMenuBars()

    Worksheets(1).Activate

    c = 1

    For Each mb In MenuBars

        Cells(1, c) = mb.Caption

        i = 2

        For Each mn In mb.Menus

            Cells(i, c) = mn.Caption

            i = i + 1

        Next

        c = c + 1

    Next

End Sub


MenuBars 集对象

在 Microsoft Excel 应用程序中所有 MenuBar 对象的集。每个 MenuBar 对象代表一个内部或用户定义菜单栏。关于菜单结构的详细内容，参见Menu Structure。

存取器

使用 Add 方法添加一个新菜单栏到应用程序。下例添加一个新菜单栏并激活它。

With MenuBars.Add("Stock Chart")

    With .Menus.Add("File")

        .MenuItems.Add "Update", "UpdateProc"

        .MenuItems.Add "Print", "PrintProc"

    End With

End With

MenuBars("stock chart").Activate

在执行此例后，您可使用 MenuBars(xlModule).Activate 恢复 Visual Basic 模块表菜单。

使用带参数的 MenuBars 方法存取集中的单个成员，或使用不带参数的 MenuBars 方法同时存取整个集。


MenuItem 对象

代表菜单上的一项(一个命令或一个分隔条)。关于菜单结构的详细内容，参见 Menu Structure。

存取器

MenuItem 对象是 MenuItems 集的成员。MenuItems 集包含菜单上的所有菜单项(包括命令和分隔条)。使用 Add 方法创建新的菜单项并将其添加到菜单。使用 AddMenu 方法添加子菜单。要存取集的单个成员，使用把菜单项的索引号或名字作为参数的 MenuItems 方法。

菜单项的索引号表示其在菜单上的位置。MenuItems(1)为在菜单顶部的项；MenuItems(MenuItems.Count)在菜单底部。注意菜单项分隔条(菜单上的横线)也包括在菜单项集中。下例在 Visual Basic 模块表菜单栏的“帮助”菜单上，在第一个菜单项的左侧添加一个选中号。

MenuBars(xlModule).Menus("help").MenuItems(1).Checked = True

使用 Caption 属性设置或返回菜单项的名字。下例在Visual Basic模块表菜单栏的“帮助”菜单上添加一个新的菜单项，然后使其不可用。

MenuBars(xlModule).Menus("help").MenuItems.Add "More Help"

MenuBars(xlModule).Menus("help").MenuItems("More Help").Enabled = False

下例在工作表1上创建包括应用程序的所有菜单栏的所有菜单名的列表。列标题为菜单栏名，列项为对应菜单栏的菜单名。

Sub EnumerateMenuItems()

    Worksheets(1).Activate

    c = 1

    For Each mn In MenuBars(xlWorksheet).Menus

        r = 1

        Cells(r, c) = mn.Caption

        r = r + 1

        For Each mi In mn.MenuItems

            Cells(r, c) = mi.Caption

            r = r + 1

        Next

        c = c + 1

    Next

End Sub


MenuItems 集对象

在指定菜单上的所有 MenuItem 对象的集。关于菜单结构的详细内容，参见 Menu Structure。

存取器

使用 Add 方法创建新的菜单项，并将其添加到菜单。使用 AddMenu 方法添加子菜单。下例在Visual Basic模块表菜单栏的“帮助”菜单上添加一个新的菜单项。

MenuBars(xlModule).Menus("help").MenuItems.Add "More Help"

使用带参数的 MenuItems 方法存取集的单个成员，或在不带参数时同时存取整个集。下例在工作表1上创建包括 Visual Basic 模块菜单栏的文件菜单上的所有菜单名的列表。

Sub EnumerateFileMenu()

    Worksheets(1).Activate

    For r = 1 To MenuBars(xlModule).Menus("file").MenuItems.Count

        Worksheets(1).Cells(r, 1) = MenuBars(xlModule). _

            Menus("file").MenuItems(r).Caption

    Next

End Sub


Menus 集对象

指定菜单栏上所有 Menu 对象的集。每个 Menu 对象代表一个下拉菜单，短菜单，或子菜单。关于菜单结构的详细内容，参见 Menu Structure。

存取器

使用 Add 方法在菜单栏上创建新的菜单。下例在 Visual Basic 模块菜单栏上添加一个菜单。

MenuBars(xlModule).Menus.Add "&Debug"

使用带参数的 Menus 方法存取集的单个成员，或在不带参数时同时存取整个集。


Module 对象

工作簿中的 Visual Basic 模块表。

存取器

Module 对象是 Modules 集的一个成员。Modules 集包括一个工作簿上的所有 Module 对象。使用 Add 方法创建新的模块表并将其添加到集中。要存取集的单个成员，使用将模块表的名字或索引号作为参数的 Modules 方法。

模块表索引号代表其在工作簿的标签栏上的位置。Modules(1) 是工作簿的第一个(最左边)模块表；Modules(Modules.Count)是最后一个。所有的模块表都包括在索引中，无论其是否隐藏。

下例在活动工作簿中隐藏模块表二。

Modules(2).Visible = False

模块表名显示在工作簿上此模块表的标签上。使用 Name 属性设置或返回模块表名(然而，当 Visual Basic 代码运行时，您不能改名字)。下例保护在名为“Sample Code”的模块表上的 Visual Basic 代码。

Modules("sample code").Protect password:="drowssap", contents:=True

Module 对象也是 Sheets 集的成员。 Sheets 集包括工作簿上的所有表(图表，对话框编辑表，模块表和工作表)。要存取集的单个成员，使用将表名或其索引号作为参数的 Sheets 方法。

使用 ActiveSheet

当一个模块表是活动工作表时，您可使用 ActiveSheet 属性来引用它。下例使用 Activate 方法激活名为“Module1”的模块表并保护此模块表。

Modules("module1").Activate

ActiveSheet.Protect


Modules 集对象

在指定或活动工作簿上的所有 Module 对象的集。

存取器

使用 Add 方法创建新的模块表并将其添加到集中。下例在活动工作簿上的工作表1之前添加一个新的模块表。

Modules.Add before:=Sheets(1)

要存取集的单个成员，使用将模块表的名字或索引号作为参数的 Modules 方法，如不带参数，则同时对整个集存取。下例将活动工作簿的所有模块表移动到工作簿的末尾。

Modules.Move after:=Sheets(Sheets.Count)

Sheets 集包括工作簿上的所有表(图表，对话框编辑表，模块表和工作表)。要存取集的单个成员，使用将表名或其索引号作为参数的 Sheets 方法如不带参数，则同时对整个集存取。


Name 对象

定义名称。可以是内部的，如 Database，Print－Area，及 Auto－Open，也可以是自定义的名称。

应用程序，工作簿，和工作表对象

Name 对象是对于应用程序，工作簿，和工作表对象的 Names 集的成员。使用 Add 方法创建新的名称并将其添加到集中。要存取集的单个成员，使用将名称或名称索引号作为参数的 Names 方法。

索引号代表其在集中的位置。名称以字母顺序，从a到z排列，不区分大小写(这与名称定义和使用名称对话框中的顺序相同，通过使用“插入”菜单的“名称”命令来存取)。下例显示在应用程序集中，名称1的单元格引用。

MsgBox Names(1).RefersTo

使用 Name 对象的 Name 属性返回或设置其名称的文字内容。下例改变活动工作簿上第一个 Name 对象的名称。

Names(1).Name = "stock_values"

下例在活动工作簿中删除名为“mySortRange”的名称。

ActiveWorkbook.Names("mySortRange").Delete

区域对象

由于 Range 对象可以拥有不止一个名称， 所以 Range 对象没有 Names 集。Range 对象的 Name 属性返回赋给此区域的第一个名称(以字母顺序)。下例在工作表1上设置单元格 A1:B1 的第一个名称的 Visible 属性。

Worksheets(1).Range("a1:b1").Name.Visible = False


Names 集对象

指定活动工作簿上所有 Name 对象的集。每个 Name 对象代表指定给一个单元区的名称。名称可以是内部的，如 Database，Print－Area，及 Auto－Open，也可以是自定义的名称。

存取器

要存取集的单个成员，使用将名称或名称索引号作为参数的 Names 方法，如不带参数，则同时对整个集存取。

使用 Add 方法创建新的名称并将其添加到集中。在使用 A1 型标记法时，refersTo 参数必须指定，在适当位置使用美圆号($)。例如，如果在工作表1上的单元格 A10 被选中， 同时您使用 refersTo 参数“=sheet1!A1:B1”定义了一个名称，这个新名称实际指单元格 A10:B10 (由于您使用的是相对引用)。要使用绝对引用，使用“=sheet1!$A$1:$B$1”。

下例在名为“Sheet1”的工作表上创建对单元格 A1:C20 的新名称。

Names.Add "test", "=sheet1!$a$1:$c$20"


OLEObject 对象

代表在图表，对话框编辑表，或工作表上的嵌入或链接的 OLE 对象。您可使用“插入“ 菜单的“对象”命令或使用 Add 方法来添加 OLE 对象到表中。

存取器

OLEObject 对象是 OLEObjects 集的一个成员。 OLEObjects 集包括在单个表上的所有 OLE 对象。使用 Add 方法创建一个新的 OLE 对象并将其添加到集中。要存取集的单个成员，使用将OLE 对象名或其索引号作为参数的 OLEObjects 方法。

下例在名为"Sheet1."的工作表上删除OLE 对象。

Worksheets("sheet1").OLEObjects(1).Delete

当 OLE 对象被选中时对象名显示在 Name Box 中。使用 Name 属性设置或返回对象的名字。下例在名为“Sheet1”的工作表上，将名为“Picture 8”的 OLE 对象的左边界与 B 列的左边界对齐。

Worksheets("sheet1").OLEObjects("picture 8").Left = _

    Worksheets("sheet1").Columns("b").Left


OLEObjects 集对象

在指定的图表、对话框编辑表，或工作表上的所有 OLEObject 对象的集。

存取器

使用带参数的 OLEObjects 方法存取集的单个成员，或不使用参数对整个集同时存取。使用 Add 方法创建一个新的 OLE 对象并将其添加到集中。下例创建一个新的代表 ARCADE.BMP 位图的 OLE 对象并将其添加到工作表1。

Worksheets(1).OLEObjects.Add fileName:="arcade.bmp"


OptionButton 对象

选定项按钮允许用户选定选项列表中的一个选项。选定项按钮一般位于一个成组框控制中(GroupBox 对象)。您可以设置选定项按钮的位置和大小。在工作表或图表上，您可以格式化边界或背景。字体是固定的。

存取器

OptionButton 对象是 OptionButtons 集的成员。 OptionButtons 集包括单个表上的所有 OptionButton 对象。使用 Add 方法创建一个新的选定项按钮并将其添加到集中。

要存取集中的单个成员，使用将选定项按钮名或其索引号作为参数的 OptionButtons 方法。下例选中名为“Sheet2”的工作表上的选定项按钮1。

Worksheets("sheet2").OptionButtons(1).Value = xlOn

当选定项按钮被选中时选定项按钮对象名显示在 Name Box 中。使用Name 属性设置或返回选定项按钮对象的名字。下例使名为“Sheet2”的工作表上达到名为“Option Button 13”的选定项按钮无效。

Worksheets("sheet2").OptionButtons("option button 13").Enabled = False


OptionButtons 集对象

在指定的图表、对话框编辑表，或工作表上的所有 OptionButton 对象的集。选定项按钮允许用户选定选项列表中的一个选项。选定项按钮一般位于一个成组框控制中(GroupBox 对象)。您可以设置选定项按钮的位置和大小。在工作表或图表上，您可以格式化边界或背景。字体是固定的。

存取器

OptionButtons 集包括单个表上的所有 OptionButton 对象。使用 Add 方法创建一个新的选定项按钮并将其添加到集中。

下例在名为“Dialog1”的对话框编辑表添加四个选定项按钮。新的选定项按钮相对于对话框的左上角放置。

Dim df As DialogFrame

Set df = DialogSheets("dialog1").DialogFrame

With DialogSheets("dialog1").OptionButtons

    .Add df.Left + 10, df.Top + 20, 100, 10

    .Add df.Left + 10, df.Top + 40, 100, 10

    .Add df.Left + 10, df.Top + 60, 100, 10

    .Add df.Left + 10, df.Top + 80, 100, 10

End With

要存取集中的单个成员，使用将选定项按钮名或其索引号作为参数的 OptionButtons 方法，或不带参数，对整个集同时存取。下例在对话框编辑表上，在所有的选定项按钮外创建一个新的组框，首先使用 Group 方法对所有选定项按钮创建一个新的 GroupObject 对象，然后使用 GroupObject 对象的尺寸创建 GroupBox 对象

Dim op_btns As GroupObject

Set op_btns = DialogSheets(1).OptionButtons.Group

DialogSheets(1).GroupBoxes.Add op_btns.Left, _

    op_btns.Top - 10, op_btns.Width, op_btns.Height

op_btns.Ungroup


Outline 对象

工作表中的分级显示。

存取器

Outline 属性返回工作表的分级显示。下面的例子将名为“Sheet4”的工作表中的分级显示设置为只显示第一级。

Worksheets("sheet4").Outline.ShowLevels 1

使用下列属性和方法可以建立和控制分级显示。

ApplyOutlineStyles 方法

AutoOutline 方法

ClearOutline 方法

DisplayOutline 属性

Group 方法

OutlineLevel 属性

ShowDetail 属性

Ungroup 方法


Oval 对象

表示图表工作表，对话框编辑框编辑表或工作表中的椭圆图形对象。

存取器

Oval 对象是 Ovals 集合的一个元素。Ovals 集合包含单个工作表中的所有 Ovals 对象。使用 Add 方法(或单击“图形”工具栏中的“椭圆”或“填充椭圆”按钮)来建立新椭圆并将它添加到集合中。要存取集合的单个元素，可以用索引序号或椭圆名作参数，使用 Ovals 方法。

下面的例子为椭圆1设置边框颜色。

Worksheets("Sheet1").Activate

ActiveSheet.Ovals(1).Border.Color = RGB(0, 255, 255)

当选定椭圆时，该椭圆的名称即显示在name box 中。使用 Name 属性来设置和返回椭圆名称。

下面的例子选定当前工作表中名为“Oval1”的椭圆，然后设置椭圆的内部颜色。

Worksheets("sheet1").Activate

ActiveSheet.Ovals("oval 1").Select

Selection.Interior.Color = RGB(255, 0, 0)


Ovals Collection 对象

指定图表工作表，对话框编辑框编辑表或工作表中所有 Oval 对象的集合。

存取器

使用 Add 方法来建立新椭圆并将它添加到集合中。下面的例子在名为“Sheet1”的工作表中建立一个新椭圆，该椭圆与 C5 单元格的左边界对齐，新椭圆的宽度和高宽都是单元格的两倍，在椭圆内部有网格图案。

Set r = Worksheets("sheet1").Range("c5")

Set o = Worksheets("sheet1").Ovals.Add(r.Left, _

    r.Top, 2 * r.Width, 2 * r.Height)

o.Interior.Pattern = xlGrid

Ovals 方法带参数使用时，可以存取集合的单个元素，或者不带参数使用，可以一次存取整个集合。下面的例子为名为“Sheet1”的工作表中的所有椭圆设置内部颜色。

Worksheets("sheet1").Ovals.Interior.ColorIndex = 3


PageSetup 对象

页面设置描述。PageSetup 对象包含所有作为属性的页面设置属性(左边界，下边界，纸张大小等等)。

存取器

PageSetup 属性返回工作表或窗口的 PageSetup 对象。下面的例子为名为“Module1”的模块将打印方向设置为横向方式，然后打印该模块。

Modules("module1").PageSetup.Orientation = xlLandscape

Modules("module1").PrintOut

使用 With 语句可以更方便更迅速地一次设置几种属性。

下面的例子为工作表1设置所有页边距。

With Worksheets(1).PageSetup

    .LeftMargin = Application.InchesToPoints(0.5)

    .RightMargin = Application.InchesToPoints(0.75)

    .TopMargin = Application.InchesToPoints(1.5)

    .BottomMargin = Application.InchesToPoints(1)

    .HeaderMargin = Application.InchesToPoints(0.5)

    .FooterMargin = Application.InchesToPoints(0.5)

End With


Chart, DialogSheet, Module, Window, Worksheet


Pane 对象

表示窗口的窗格。Pane 对象只存在于工作表及 Excel 4.0 宏工作表中。

存取器

Pane 对象是 Panes 集合的一个元素。 Panes 集合包含一个 Window. 中显示的所有窗格。要存取集合的单个元素，可以用窗格索引序号作为参数，使用 Panes 方法。下面的例子对显示工作表1的窗口进行拆分，然后将左上角的窗格滚动到上面第五行。

Worksheets(1).Activate

ActiveWindow.Split = True

ActiveWindow.Panes(3).ScrollRow = 5


Panes Collection 对象

在指定 window中显示的所有 Pane 对象的集合。Pane 对象只存在于工作表和 Excel 4.0 宏工作表中。

存取器

Panes 方法带参数使用时，可存取集合的单个元素，或者不带参数使用，可以一次存取整个集合。

下面的例子滚动窗口的左上窗格，该窗口正在显示名为“Sheet1”的工作表。

Worksheets("sheet1").Activate

Windows(1).Panes(1).LargeScroll down:=1


Picture 对象

表示图形(由其它图形文件建立的位图，metafile或图象)或者附加到工作表的链接或嵌入 OLE 对象。

存取器

Picture 对象是 Pictures 集合的一个元素。Picture 集合包括工作表中的所有图形以及任何链接或嵌入 OLE 对象，使用 Insert 方法或者用“插入”菜单中的“图片”命令，可以将图形文件作为图形添加到工作表并将它添加到集合中。要存取集合的单个元素，可以用图形的索引序号或图形名称作为参数，使用 Pictures 方法。当 Pictures 集合含有 OLE 对象时，使用 OLEObjects 集合和 OLEObjects 方法存取OLE 对象就更方便。

下面的例子删除工作表1中的图形1。

Worksheets(1).Pictures(1).Delete

当选定图形时，该图形名即显示在name box 中。使用 Name 属性来设置或返回图形名称。下面的例子复制名为“Picture13”的图形并移动新图形，使该图形的左边线位于H的左边界，上边线位于第10行的顶部。

Set px = Worksheets(1).Pictures("picture 13").Duplicate

px.Left = Worksheets(1).Columns("H").Left

px.Top = Worksheets(1).Rows(10).Top


Pictures Collection 对象

指定图表工作表，对话框编辑框编辑表或工作表中所有 Picture 对象的集合。该集合包括图形(由其它图形文件建立的位图，metafiles或图象)和链接或嵌入 OLE 对象。

存取器

单击“插入”菜单中的“图片”命令或使用 Insert 方法，可以在工作表中添加图形。下面的例子将 ARCADE.BMP 文件作为新图形添加到工作表1中。新图形的左上角恰好位于当前单元格的左上角。

Worksheets(1).Pictures.Insert "arcade.bmp"

Pictures 方法带参数使用，可以存取集合的单个元素；或者不带参数使用，可以一次存取整个集合。下面的例子删除名为“Sheet1”的工作表中的所有图片。

Worksheets("sheet1").Pictures.Delete

当 Pictures 集合中含有 OLEObjects 对象时，使用 OLE 对象集合和 OLEObjects 方法存取 OLEObjects 对象就更方便。


PivotField 对象

表示数据透视表中的字段。

存取器

PivotField 对象是 PivotFields 集合的一个元素。PivotFields 集合包含一个数据透视表中的所有字段对象，包括隐藏字段。

要存取集合的单个元素，可以用数据透视表字段的索引序号或名称作为参数，使用 PivotFields 方法。

使用 Name 属性来设置或返回数据透视表字段名称。下面的例子使名为“year”的字段成为行字段。

Worksheets("sheet3").PivotTables(1) _

    .PivotFields("year").Orientation = xlRowField

在某些情况下，使用能够返回数据透视表字段的子集的方法可能会更方便，可供使用的存取器方法如下：

ColumnFields 方法

DataFields 方法

HiddenFields 方法

PageFields 方法

RowFields 方法

VisibleFields 方法


PivotFields Collection 对象

数据透视表中所有 PivotField 对象的集合。

存取器

PivotFields 方法带参数使用，可以存取集合的单个元素；或者不带参数使用，可以一次存取整个集合。下面的例子使用 PivotFields 集合的 Count 属性来建立一个循环，对数据透视表字段名进行数举。

With Worksheets("sheet3").PivotTables(1)

    For i = 1 To .PivotFields.Count

        MsgBox .PivotFields(i).Name

    Next

End With

在某些情况下，使用能够返回数据透视表字段的子集的方法可能会更方便，可供使用的存取器方法如下：

ColumnFields 方法

DataFields方法

HiddenFields方法

PageFields方法

RowFields方法

VisibleFields方法


PivotItem 对象

表示数据透视表字段的项。项是字段分类中的各个数据项。

存取器

PivotItem 对象是 PivotItems 集合的一个元素。PivotItems 集合包含 PivotField 对象中的所有项。

要存取集合的单个元素，可以用数据透视表字段项的索引序号或名称作为参数，使用 PivotItems 方法。

使用 Name 属性来设置或返回项名。下面的例子隐藏“year”字段中含有“1998”值的项。

Worksheets("sheet3").PivotTables(1) _

    .PivotFields("year").PivotItems("1998").Visible = False


PivotItems Collection 对象

数据透视表字段中所有 PivotItem 对象的集合。项字段分类中的各个数据项。

存取器

PivotItems 方法带参数使用，可以存取集合的单个元素；或者不带参数使用，可以一次存取整个集合。下面的例子为数据透视表字段名和这些字段中包含的项建立一个枚举序列，它在 PivotItems 集合中使用 Count 方法来建立项计数循环。

Worksheets("sheet4").Activate

With Worksheets("sheet3").PivotTables(1)

    c = 1

    For i = 1 To .PivotFields.Count

        r = 1

        Cells(r, c) = .PivotFields(i).Name

        r = r + 1

        For x = 1 To .PivotFields(i).PivotItems.Count

            Cells(r, c) = .PivotFields(i).PivotItems(x).Name

            r = r + 1

        Next

        c = c + 1

    Next

End With


PivotTable 对象

表示工作表中的数据透视表。

存取器

PivotTable对象是 PivotTables 集合的一个元素。PivotTable 集合包含单个工作表中的所有 PivotTable 对象。使用 PivotTableWizard 方法来建立新的数据透视表并将它添加到集合中。

要存取集合的单个元素，可以用数据透视表索引序号或名称作为参数，使用 PivotTables 方法。

下面的例子使名为“Sheet3”的工作表中数据透视表1中的名为“year”的字段成为行字段。

Worksheets("sheet3").PivotTables(1) _

    .PivotFields("year").Orientation = xlRowField

使用 Name 属性来设置或返回数据透视表名称。下面的例子移动名为“PivotTable2”的数据透视表中的名为“year”的字段。

Worksheets("sheet3").PivotTables("pivottable2") _

    .PivotFields("year").Position = 2

因为数据透视表编程可能很复杂，所以通过单击“工具”菜单中的“记录宏”命令来记录数据透视表的活动通常会更方便。


PivotTables Collection 对象

指定工作表中所有 PivotTable 对象的集合。

存取器

使用 PivotTableWizard 方法来建立新的数据透视表并将它添加到集合中。

PivotTables 方法带参数使用，可以存取集合的单个元素；或者不带参数使用，可以一次存取整个集合。下面的例子显示名为“Sheet3”的工作表中数据透视表的个数。

MsgBox Worksheets("sheet3").PivotTables.Count


PlotArea 对象

表示图表中的绘图区域。在该区域绘制您的图表数据。二维图表的绘图区域包含放置在该图表区域的数据标记，网格线，数据标志，趋势线和可选图表项。三维图表的绘图区域除包含上述的所有项之外，还包含图表中的墙，地板，坐标轴，坐标轴标题和刻度线标记。

绘图区域由图表区域包围。二维图表中的图表区域包含有坐标轴，图表标题，坐标轴标题和图例。三维图表中的图表区域包含图表标题和图例。关于格式化图表区域的详细内容，请参阅 ChartArea 对象。

存取器

PlotArea 属性返回指定图表的绘图区域。下面的例子激活名为“Chart1”的图表工作表，在当前图表的图表区域周围放置一虚边框，在绘图区域周围放置一点线边框。

Charts("Chart1").Activate

With ActiveChart

    .ChartArea.Border.LineStyle = xlDash

    .PlotArea.Border.LineStyle = xlDot

End With


Point 对象

表示图表中系列中的一个数据点。

存取器

Point 对象是 Points 集合的一个元素。Points 集合包含一个 series 中的所有数据点。要存取集合的单个元素，可以用数据点索引序号作为参数使用 Points 方法。系列上的点是从左至右进行编号的。

Points(1)是最左边的数据点；Points(Points,Count)是最右边的数据点。下面的例子为工作表1中嵌入图表1中的系列1上的数据点3设置标记样式。指定系列必须是二维折线图，散点图或雷达系列。

Worksheets(1).Chart对象s(1).Chart. _

    SeriesCollection(1).Points(3).MarkerStyle = xlDiamond


Points Collection 对象

图表中指定系列中所有 Point 对象的集合。

存取器

Points 方法带参数使用，可以存取集合的单个元素；或者不带参数使用，可以一次存取整个集合。下面的例子为系列1中的最后一个数据点添加数据标志。

Dim pts As Points

Set pts = Worksheets(1).Chart对象s(1).Chart. _

    SeriesCollection(1).Points

pts(pts.Count).ApplyDataLabels type:=xlShowValue


Range 对象

表示一个单元格，一行，一列，含有一个或多个连续单元格块的单元格选定区域，或一个三维区域。

存取器

下面几个例子示出如何使用 Range 对象的最重要的存取器属性和方法。

Range 方法

使用 Range 方法来返回单个单元格或单元格区域。下面的例子将单元格A1中的值放置在单元格Apple5中。

Worksheets("Sheet1").Range("A5").Value = _

    Worksheets("Sheet1").Range("A1").Value

下面的例子通过为区域中的每个单元格设置公式，来用随机数填充A1：H8区域。在不带对象标识(项数左边的一个对象)使用时，Range 方法返回当前工作表中的一个区域。如果当前的工作表(Sheet)不是工作表(Worksheet)该方法将失效。在不带显示对象标识，使用 Range 方法之前，必须用 Activate 方法激活工作表。

Worksheets("sheet1").Activate

Range("A1:H8").Formula = "=rand()"	'Range is on the active sheet

下面的例子清除名为“Criteria”区域中的内容。

Worksheets(1).Range("criteria").ClearContents

如果使用文本参数作为区域地址，必须用A1样式表示法(不能用R1C1样式表示法)指定地址。

Cells方法

使用 Cells 方法通过指定行和列来返回单个单元格。下面的例子将 A1 单元格的值设置为24。

Worksheets(1).Cells(1, 1).Value = 24

下面的例子为 Apple2 单元格设置公式。

ActiveSheet.Cells(2, 1).Formula = "=sum(b1:b5)"

尽管可以使用 Range(“A1”)来返回A1单元格，但有时可能用 Cells 方法更方便，因为可以用变量作为行或列。下面的例子在名为“Sheet1”的工作表中建立列标题和行标题。注意：一旦工作表已被激活，Cells 方法就可以使用，而无需显式工作表声明(它返回当前工作表中的一个单元格)。

Sub SetUpTable()

Worksheets("sheet1").Activate

For theYear = 1 To 5

Cells(1, theYear + 1).Value = 1990 + theYear

Next theYear

'

For theQuarter = 1 To 4

Cells(theQuarter + 1, 1).Value = "Q" & theQuarter

Next theQuarter

End Sub

尽管可以用 Visual Basic 串函数来代替 A1 样式引用，但使用 Cells(1,1)表示法更方便(并且更容易编程实现)。

Cells 和Range 方法

您还可以使用 Cells 方法，通过指定相对于区域左上角的行和列来返回该区域的一部分。下面的例子为 C5 单元格设置公式。

Worksheets(1).Range("c5:c10").cells(1,1).formula = "=rand()"

您还可以在 Range 方法内使用 Cells 方法来为区域指定开如单元格和结束单元格。下面的例子为 A1：J10 单元格设置边框线条样式。

With Worksheets(1)

    .Range(.Cells(1, 1), .Cells(10, 10)).Borders.LineStyle = xlThick

End With

注意：在 Cells 方法每次出现之前应加项数。项数是将前一级 With 语句的结果应用于 Cells 方法所必需的棗这种情况表明，单元格在工作表1中(若不带项数，Cells 方法将返回当前工作表中的单元格)。

Offset 方法

Offset 方法返回一个区域，该区域与另一个区域之间相距指定的编移值。下面的例子选定一单元格，该单元格位于当前选定区域的左上单元格之下三行，之右一列处。您不能选定不在当前工作表中的单元格，因此，必须首选激活工作表。

Worksheets("sheet1").Activate  'can't select unless the sheet is active

Selection.Offset(3, 1).Range("a1").Select

Union 方法

用 Union 方法和 Range 方法来返回多区域(由两个或多个连续单元格块构成的区域)。下面的例子建立名为 myMultiAreaRange 的对象，将要定义为 A1：B2 区域和 C3：D4 区域的联合，然后选定它。

Dim r1, r2, myMultiAreaRange As Range

Worksheets("sheet1").Activate

Set r1 = Range("A1:B2")

Set r2 = Range("C3:D4")

Set myMultiAreaRange = Union(r1, r2)

myMultiAreaRange.Select

如果使用包含多个区域的选定区域，Areas 方法很有用。它将多区域选定区域划分成独立的 Range 对象，然后按集合将它所返回。您可以用 Count 属性来检验返回的集合是一个包含多个区域的选定区域，如下例所示：

Sub NoMultiAreaSelection()

numberOfSelectedAreas = Selection.Areas.Count

If numberOfSelectedAreas > 1 Then

MsgBox "You cannot carry out this command " & _

"on multi-area selections"

End If

End Sub


Areas, Border, Characters, Font, Interior, Name, SoundNote, Style


Rectangle 对象

表示图表工作表，对话框编辑工作表或工作表中的矩形图形对象。

存取器

Rectangle 对象是 Rectangles 集合的一个元素。Rectangles 集合包含单个工作表中的所有 Rectangle 对象。使用 Add 方法来建立新矩形并将它添加到集合中。

要存取集合的单个元素，可以用索引序号或矩形名称作为参数使用 Rectangles 方法。

下面的例子为名为“Sheet1”的工作表中的矩形1设置内部

Worksheets("sheet1").Rectangles(1).Interior.ColorIndex = 5

当选定矩形时，该矩形的名称即显示在name box中。用 Name 属性来设置或返回矩形名称。下面的例子为名为“Rectangle3”的矩形设置边框线样式。

Worksheets("sheet1").Rectangles("rectangle 3"). _

    Border.LineStyle = xlDash


Rectangles Collection 对象

指定图表工作表，对话框编辑表或工作表中所有 Rectangle 对象的集合。

存取器

使用 Add 方法来建立新矩形并将它添加到集合中。下面的例子在名为“Sheet1”的工作表中添加一个新矩形。该新矩形的高度为200点，宽度为100点，它的左上角定位于 C5 单元格的左上角。

Set r = Worksheets("sheet1").Range("c5")

Worksheets("sheet1").Rectangles.Add r.Left, r.Top, 200, 100

Rectangles 方法带参数使用，可以存取集合的单个元素；或者不带参数使用，可以一存取整个集合。下面的例子删除名为“Sheet1”的工作表中的所有矩形。

Worksheets("sheet1").Rectangles.Delete


RoutingSlip 对象

表示工作簿的传递名单。传递名单用于通过电子邮件系统发送工作簿。

存取器

RoutingSlip 属性返回工作簿的传递名单。下面的例子为附加到当前工作簿的传递名单设置传递样式。详细实例，请参阅 RoutingSlip 属性。

ActiveWorkbook.HasRoutingSlip = True

ActiveWorkbook.RoutingSlip.Delivery = xlOneAfterAnother

注释

除非工作簿的 HasRoutingSlip 属性为 True，否则 RoutingSlip 对象不存在，也不能对它进行存取。


Scenario 对象

表示工作表中的方案。方案是一组经命名保存的输入值(称为更改单元格)。

存取器

Scenario 对象是 Scenarios 集合的一个元素。Scenarios 集合包含工作表的所有已定义方案。使用 Add 方法来建立新方案并将它添加到集合中。要存取集合的单个元素，可以用索引序号或方案名称作为参数使用 Scenarios 方法。

建立方案时可以为方案赋予名称。使用 Name 属性来设置或返回方案名称。下面的例子在名为“Options”的工作表中显示名为“Typical”的方案。

Worksheets("options").Scenarios("typical").Show

方案名称显示在“方案管理器”对话框中以及“工作组”工具栏中的“方案”框中。第一个建立的方案位于列表的顶部；最后一个位于列表的下部(方案未按字母顺序排序)。这也是方案索引序号使用的顺序。第一个建立的方案为。

Scenarios(1)；最后一个方案是 Scenarios(Scenarios.Count)。下面的例子为名为“Options”的工作表隐藏方案1。当工作表有保护时，该方案将不显示在“方案”框或“方案管理器”对话框编辑框中。

Worksheets("options").Scenarios(1).Hidden = True


Scenarios Collection 对象

指定工作表中所有 Scenario 对象的集合。方案是一组经命名和保存的输入值(称为更改单元格)。

存取器

使用 Add 方法来建立新方案并将它添加到集合中。下面的例子将名为“Typical”的新方案添加到名为“Options”的工作表中。

新方案有两个更改单元格，A2 和 A12，其值分别为55和60。

Worksheets("options").Scenarios.Add name:="Typical", _

    changingCells:=Worksheets("options").Range("A2,A12"), _

    values:=Array("55", "60")

Scenarios 方法带参数使用，可以存取集合的单个元素；或者不带参数使用，可以一次存取整个集合。下面的例子为名为“Options”的工作表中的方案建立汇总，用 J10 单元格和 J20 单元格作为计算结果单元格。

Worksheets("options").Scenarios.CreateSummary _

    resultCells:=Worksheets("options").Range("j10,j20")


ScrollBar 对象

表示图表,对话框编辑工作表或工作表中的滚动条控制。窗口滚动条不是 ScrollBar 对象。ScrollBar 对象不支持边框或图案格式。

存取器

ScrollBar 对象是 ScrollBars 集合的一个元素。ScrollBars 集合包含单个工作表中的所有 ScrollBar 对象。使用 Add 方法来建立新的滚动条并将它添加到集合中。将 Width 参数设置为大于 height 参数，可以建立水平滚动条。

要存取集合的单个元素，可以用滚动条索引序号或名称作为参数使用 ScrollBars 方法，下面的例子将名为“Dialog1”的对话框编辑工作表中的滚动条1设置到它所在区域的上部或左边。

DialogSheets("dialog1").ScrollBars(1).Value = 0

当选定滚动条时，该滚动条的名称即显示在 name box 中。使用 Name 属性来设置或返回滚动条名称。下面的例子为名为“ScrollBar6”的滚动条设置 OnAction 属性。只要滚动条有更改，就调用名为“ScrollProc”的 Visual Basic 过程。

DialogSheets(1).ScrollBars("scroll bar 6").OnAction = "ScrollProc"


ScrollBars Collection 对象

指定图表工作表，对话框编辑工作表或工作表中所有 ScrollBar 对象(不包括窗口滚动条)的集合。ScrollBar 对象不支持边框格式或图案格式。

存取器

使用 Add 方法来建立新滚动条并将它添加到集合中。将 Width 参数设置为大于 height 参数，可以建立水平滚动条。下面的例子将一个新滚动条添加到名为“Dialog1”的对话框编辑工作表中。新滚动条的相对位置定在对话框编辑框的左上角。

Dim df As DialogFrame

Set df = DialogSheets("dialog1").DialogFrame

DialogSheets("dialog1").ScrollBars.Add df.Left + 10, _

df.Top + 20, 10, 100

ScrollBars 方法带参数使用，可以存取集合的单个元素；或者不带参数使用，可以一次存取整个集合。下面的例子将名为“Sheet1”中的每个滚动条设置到它所在区域的上部或左边。

Worksheets("sheet1").ScrollBars.Value = 0


Series 对象

表示图表中的数据系列。

存取器

Series对象是 SeriesCollection 集合的一个元素，使用 Add 方法可以创建新的系列将并它添加到数据集合中。要访问集合中的某一元素，可以使用 SeriesCollection，并以系列的索引号或系列名做为它的名称。

系列索引号表示添加到图表中数据系列的次序，SeriesCollection(1)表示添加到图表中的第一个数据系列，SeriesCollectio(SeriesCollection.Count)是最后一个，下面的示例设置了名为“Sheet1”的工作表中，嵌入图表的数据系列的内部颜色。

Worksheets("sheet1").ChartObjects(1).Chart. _

    SeriesCollection(1).Interior.Color = RGB(255, 0, 0)

使用 Name 属性可以设置或返回系列名称，当创建数据系列时，默认的名称是“Seriesn”，这里的n表示序号，下面的示例设置了在工作表名为“Sheet2”的工作表中，嵌入图表中系列名为“Series2”的图表类型。

Worksheets("sheet1").ChartObjects(1).Chart. _

    SeriesCollection("series2").Type = xlLine


SeriesCollection 集合对象

在指定的图表或成组图表中，所有 Series 对象的集合。

存贮器

可使用 Add 方法建立新的数据系列，并将它添加到图表中，下面的示例将单元格A1到A19的数据做为新的数据系列添加到名为chart1的图表工作表中。

Charts("chart1").SeriesCollection.Add _

    source:=Worksheets("sheet1").Range("a1:a19")

使用 SeriesCollection 方法，有一个变量可访问集合中的一个元素，没有变量则访问整个集合，下面的示例将工作表中单元格为 C1 把到 C10 的数据，添加到嵌入图表的数据系列集合中。

Worksheets(1).ChartObjects(1).Chart. _

    SeriesCollection.Extend Worksheets(1).Range("c1:c10")


SeriesLines 对象

表示成组图表的系列线，系列线连接每个数据系列的数值，只有二维堆积条形图或柱形图组有系列线，没有单独的系列线，下面的示例将系列线添加到工作表的嵌入成组图表中(图表必须是二维堆积条形图或柱形图)。

With Worksheets(1).ChartObjects(1).Chart.ChartGroups(1)

    .HasSeriesLines = True

    .SeriesLines.Border.Color = RGB(0, 0, 255)

End With

注释：

如果 HasSeriesLines 属性是 False，则 SeriesLines 对象的许多属性都将无效。


Sheets 集合对象

在指定的，或活动工作簿中所有工作表的集合，Sheets 集合可以包含 Chart、DialogSheet、Module 或 Worksheet 对象。

在访问任意类型的工作表时，Sheets 集合非常有用，如果只需要对一种类型的工作表操作，可以查看此工作表类型的对象主题。

存取器

可使用 Sheets 方法，用工作表索引号或工作表名做变量，访问集合中一个元素，如果无变量，则访问整个集合。

索引号表示工作表在工作簿标签条的位置，Sheets(1)是工作簿中的第一个工作表(最左端)；Sheets(Sheets.Count)是最后一个工作表，所有工作表都包含在索引计数器中，包括隐藏工作表。

下面的示例隐藏活动工作簿的一个工作表。

Sheets(1).Visible = False

工作表名显示在工作簿的标签条中，使用 Name 属性可以设置或返回工作表名，(但是，如果正在运行 Visual Basic 宏，就不能更改工作表的名称)，下面的示例保护工作表名为“SampleCode”的 Visual Basic 宏。

Sheets("sample code").Protect password:="drowssap", contents:=True

也可以使用数组来选定多个工作表，下面的示例将工作表名为“Modual1”和“Sheet1”的工作表移动到工作簿标签条的起始位置。

Sheets(Array("module1", "sheet1")).Move before:=Sheets(1)

使用 Add 方法可以创建新一工作表，并将它添加到工作表集合中，下面的示例将两个对话框编辑表添加到活动工作簿中，并将它们放在工作表的标签后面。

Sheets.Add type:=xlDialogSheet, count:=2, after:=Sheets(2)


Chart, DialogSheet, Module, or Worksheet


SoundNote 对象

表示单元格的声音附注(单元格是 Range 对象)。计算机需要其它的硬件设备，来播放和记录声音附注。

存取器

SoundNote 属性返回单元格的声音附注，如果计算机可以录制声音，下面示例记录声音附注。

If Application.CanRecordSounds Then

    With Worksheets(1).Range("a1").SoundNote

        .Delete

        .Record

    End With

Else

    MsgBox "This machine cannot record sound notes."

End If


Spinner 对象

表示微调项，它经常与编辑框相连，使用户不用键入数值，直接选择即可，微调项与滚动条非常相似(ScrollBar 对象)，但是微调项没有 Largechange 属性。

在默认情况下，编辑框具有微调项，如果希望编辑框有微调项，必须建立单独的 Spinner 对象，然后添加 Visual Basic 程序，将微调项的值与编辑框连接起来，下面的示例将名为“spnTest”的微调项值与名为“edtTest”的编辑框的文本连接起来，当改变一个控制项的值时，其它的项也同时改变。

Sub spnTest_Change()

    ActiveDialog.EditBoxes("edtTest").Text = _

        ActiveDialog.Spinners("spnTest").Value

End Sub

Sub edtTest_Change()

    ActiveDialog.Spinners("spnTest").Value = _

        ActiveDialog.EditBoxes("edtTest").Text

End Sub

存取器

Spinner 对象是 Spinners 集合中的一个元素，Spinners 集合包含了一个单独工作表中的所有 Spinner 对象。使用 Add 方法可以创建一新的微调项，并将它添加到集合中。

要访问集合中的一个元素，可以使用 Spinners 方法，用索引号或微调项的名称做变量。

下面的示例设置名为“Sheet1”的工作表中的微调项 OnAction 属性，当用户单击此微调项时SpinnerProc Visual Basic 程序开始执行。

Worksheets("sheet1").Spinners(1).OnAction = "SpinnerProc"

当选定了微调项后，微调项的名称显示在 name box 中，使用 Name 属性可以设置或返回微调项的名称。下面的示例使工作表名为“Sheet1”中的微调项“Spinner5”无效。

Worksheets("sheet1").Spinners("spinner 5").Enabled = False


Spinners 集合对象

在指定的图表，对话框编辑表，或工作表中所有的 Spinner 对象的集合，微调项经常与编辑框相连，使用户不用键入数值，直接选择即可，微调项与滚动条非常相似(ScrollBar 对象)，但是微调项没有 LargeChange 属性。

存取器

使用 Add 方法可以创建新的微调项，并将它添加到集合中，下面的示例将新的微调项添加到名为“Sheet1”的工作表中，新的微调项是10磅值宽，位于单元格 C5 的左边框。

Dim r As Range

Set r = Worksheets("sheet1").Range("c5")

Worksheets("sheet1").Spinners.Add r.Left, r.Top, 10, r.Height

使用 Spinners 方法，可以用一个变量来访问集合中的一个元素，或者不用变量，访问整个集合，下面的示例删除名为“Sheet1”的工作表中的所有微调项。

Worksheets("sheet1").Spinners.Delete


Style 对象

表示某一区域的样式，Style 对象包含所有的样式属性(字体，数字样式，对齐公式等)，还有一些内部样式，如常规，贷币，和百分比，显示在“样式”对话框的“样式名”中(“格式”菜单)样式对象是一个快速有效的方法，可以同时更改多个单元格的格式属性。

存取器

对 Range 对象，Style 属性可以设置或返回该区域使用的样式，下面的示例对名为“Sheet1”的工作表中的单元格A1到A10使用“百分比”样式。

Worksheets("sheet1").Range("a1:a10").Style = "percent"

通过更改应用到单元格的样式属性，可以改变单元格的外观，但是，请记住，更改样式属性会影响用该样式格式的所有单元格。

对 Workbook 对象，Style 对象是 Styles 集合中的一个元素，Styles 集合包含工作簿中所有已定义的样式。使用 Add 方法可以创建新的样式，并将它添加到样式集合中，要访问集合中的一个元素，可以使用 Styles 方法，用索引号或样式名做变量。

样式按样式名的字母顺序排序，样式索引号表示在样式名排序列表中，指定样式的位置，Styles(1)是列表中的第一个样式，Styles(Styles.Count)是最后一个，下面的示例创建工作簿中某个工作表的样式名列表。

For i = 1 To ActiveWorkbook.Styles.Count

    Worksheets(1).Cells(i, 1) = ActiveWorkbook.Styles(i).Name

Next

当创建样式时，可以指定名称，使用 Name 属性可以返回样式名，下面的示例设置 Bold 属性，未更改“常规”样式。

ActiveWorkbook.Styles("Normal").Font.Bold = True

有关创建和修改样式的详细信息，请参阅 Styles 对象。


Range, Workbook


Styles 集合对象

在指定的或活动工作簿中所有 Style 对象的集合，每个 Style 对象表示有关某一区域的样式描述 Style 对象包含所有的样式属性(字体，数字格式，对齐方式等)还有一些内部样式，包括“常规”，“货币”和“百分比”样式，显示在“样式”对话框的“样式名”中(“格式”菜单)

存取器

使用 Add 方法可以创建新的样式，并将它添加到样式集合中，下面的示例根据“常规”样式，建立新样式，修改边框和字体，然后将它应用到单元格 A25:A30。

Dim newStyle as Style

Set newStyle = ActiveWorkbook.Styles.Add(name:="bookman top border")

newStyle.Borders(xlTop).LineStyle = xlDouble

newStyle.Font.Bold = True

newStyle.Font.Name = "bookman"

Worksheets(1).Range("a25:a30").Style = "bookman top border"

使用 Styles 方法，可以用一个变量访问集合中的一个元素，不用变量则访问整个集合。


TextBox 对象

表示文字框的图形对象(带有文字的矩形)，它在图表，对话框编辑表或工作表中。

存取器

TextBox 对象是 TextBoxes 集合的一个元素，TextBoxes 集合包含在某个工作表上的所有 TextBox 对象。使用 Add 方法可以建立新的文字框，并将它添加到集合中。

要访问集合中的一个元素，可以使用 TextBoxes 方法，用索引号或文字框的名称做变量。

下面的示例设置名为“Sheet1”的工作表的文字框公式，它将单元格 A10 连接到文字框。当单元格 A10 的内容变化时，新的内容会自动放置到该文字框。

Worksheets("sheet1").TextBoxes(1).Formula = "=a10"

当选定了文字框后，文字框的名称显示在 Name Box 中。使用 Name 属性可以设置或返回名称。下面的示例在名为“Sheet1”的工作表中的文字框“Text1”上，加上虚边框。

Worksheets("sheet1").TextBoxes("text 1").Border.LineStyle = xlDash


TextBoxes 集合对象

在指定的图表，对话框编辑表，或工作表中，所有 TextBox 对象的集合(带有文字的矩形)。

存取器

使用 Add 方法，可以建立新的文字框，并将它添加到集合中。下面的示例在名为“Sheet1”的工作表上建立新的文字框，新的文字框是单元格 C5 宽度的2倍，高度的3倍，它的左上角放在单元格 C5 的左上角处。

Dim r As Range

Set r = Worksheets("sheet1").Range("c5")

Worksheets("sheet1").TextBoxes.Add r.Left, r.Top, _

    2 * r.Width, 3 * r.Height

使用 TextBoxes 方法，用一个变量可以访问集合中的一个元素，不用变量则访问整个集合，下面的示例删除工作表“Sheet1”上的所有文字框。

Worksheets("sheet1").TextBoxes.Delete


TickLabels 对象

表示图表坐标轴的刻度线标志，没有单独的 TickLabel 对象；一般可以同时访问所有的刻度线标志分类。(x)轴的刻度线标志文本与图表分类(x)轴的名称有关，默认的分类(x)轴的刻度线标志文本是一些数字，表示各个分类的位置，要改变刻度线标志间的刻度值，必须更改分类(x)轴的 TickLabelSpacing 属性。

数值(y)轴的刻度线标志文本根据数值(y)轴的 MajorUnit, MinimumScale 和 MaximumScale 来计算，可以通过改变这些属性的值，来改变数值(y)轴的刻度线标志文本。

存取器

使用 TickLabels 属性可以返回坐标轴的刻度线标志，下面的示例在工作表“Sheet1”的嵌入图表中，设置数值(y)轴的刻度线标志的数字格式。

Worksheets("sheet1").ChartObjects(1).Chart _

    .Axes(xlValue).TickLabels.NumberFormat = "0.00"


Toolbar 对象

表示工具栏，可以是内部工具栏或者是自定义工具栏。

存取器

Toolbar 对象是 Toolbars 集合的一个元素，使用 Add 方法可以建立新的工具栏，并将它添加到集合中，要访问集合中的一个元素，可以使用 Toolbars 方法，用索引号或工具栏名做变量。

工具栏索引号表示工具栏名的位置，工具栏名是显示在工具栏对话框中的列表中(“工具栏”命令，“视图”菜单)Toolbars(1)显示在列表的顶端，Toolbars(Toolbars.Count)显示在列表的底端。首先显示内部工具栏，然后，依字母顺序，显示自定义工具栏。

下面示例将“常用”工具栏移到 Microsoft Excel 窗口的底端。

Toolbars(1).Position = xlBottom

Name 属性返回工具栏的名称(如“工具栏”对话框中显示的)。Name 属性是只读的，不能更改内部或自定义工具栏的名称，下面示例使“格式”工具栏可见。

Toolbars("forms").Visible = True

下面示例在活动工作簿中创建了工作表的一个表单，表单中包含了程序中所有 Toolbars 对象的 ToolbarButton 对象名称，列标题是 Toolbar 对象的名称，在每个标题下的列词条是该 Toolbar 对象的 ToolbarButton 对象名，表示间隔(按钮间距离)的 ToolbarButton 对象没有名字，其相应的单元格是空白的。

Sub EnumerateToolbars()

    Worksheets(1).Activate

    For col = 1 To Toolbars.Count

        Cells(1, col) = Toolbars(col).Name

        For rw = 2 To Toolbars(col).ToolbarButtons.Count + 1

            Cells(rw, col) = Toolbars(col).ToolbarButtons(rw - 1).Name

        Next

    Next

End Sub


ToolbarButton 对象

表示工具栏的按钮或它们的间隔(按钮间的空格)，不要将 ToolbarButton 和 Button 对象混淆，Button 对象是在图表工作表，对话框编辑表，或工作表中的自定义按钮图形对象。

存取器

ToolbarButton 对象是 ToolbarButtons 集合中的一个元素。ToolbarButtons 集合包含某个工具栏的所有 ToolbarButton 对象。使用Add 方法可以创建新的工具栏按钮，并将它添加到集合中有关可用的工具栏按钮的列表，请参见 工具栏按钮的 ID 值。

要访问集合中的一个元素，请使用 ToolbarButtons 方法，用工具栏按钮索引号做为变量索引号表示工具栏按钮在工具栏的位置，ToolbarButtons(1)是工具栏最左边的按钮；ToolbarButtons(ToolbarButtonsCount)是最右边的，下面示例删除“常用”工具栏最右边的按钮。

With Toolbars("standard")

    .ToolbarButtons(.ToolbarButtons.Count).Delete

End With

下面示例在活动工作簿的某个工作表中创建表单，表单包含所有 Toolbar 对象的 ToolbarButton 对象名，列标题是 Toolbar 对象名，列标题下的词条是该 Toolbar 对象的 ToolbarButton 对象名，表示按钮间隔的 ToolbarButton 对象没有名称，其相应的单元格是空白的。

Sub EnumerateToolbars()

    Worksheets(1).Activate

    For col = 1 To Toolbars.Count

        Cells(1, col) = Toolbars(col).Name

        For rw = 2 To Toolbars(col).ToolbarButtons.Count + 1

            Cells(rw, col) = Toolbars(col).ToolbarButtons(rw - 1).Name

        Next

    Next

End Sub

注释：

Name 属性设置或返回工具栏按钮的工具提示文本(当用户将鼠标指针放到工具栏按钮上时显示的文本)。


ToolbarButtons 集合对象

为指定工具栏上的所有 ToolbarButton 对象的集合，每个 ToolbarButton 对象表示工具栏上的按钮或间隔(按钮间的空格)，不要将 ToolbarButton 对象与 Button 对象混淆，Button 对象是图表工作表，对话框编辑表，或工作表上的自定义按钮图形对象。

存取器

使用 ToolbarButton 方法用单个变量访问集合中的一个元素，或者省略变量来访问整个集合。下面的示例将 cButtons变量设置为工具栏按钮的位置和在“常用”工具栏上的间隔。

cButtons = Toolbars("standard").ToolbarButtons.Count

使用 Add 方法可以将工具栏按钮添加到工具栏中，下面的示例将“插入模块表”按钮添加到“常用”工具栏的最右边。

Toolbars("standard").ToolbarButtons.Add button:=190

有关可用工具栏按钮列表，请参见 工具栏按钮的 ID 值。

要添加间隔来代替按钮，可以省略 Add 方法中的 button 变量。


Toolbars 集合对象

在Microsoft Excel 应用程序中，所有 Toolbar 对象的集合，每个 Toolbar 对象表示一个工具栏，可以是内部工具栏或自定义工具栏。

存取器

使用 Add 方法可以创建新的工具栏，并将它添加到集合中，下面的示例创建一个名为“SmallVBA”的新工具栏，并将“插入模块表”按钮(190)和“执行宏”按钮(100)添加到该工具栏，使该工具栏为可见的，并将它移动到 Microsoft Excel 窗口的顶部。

Dim tb As Toolbar

Set tb = Toolbars.Add("small VBA")

tb.ToolbarButtons.Add 190	'Insert Module button

tb.ToolbarButtons.Add 100	'Run Macro button

tb.Visible = True

tb.Position = xlTop

使用 Toolbars 方法，用单个变量可以访问集合中的一个元素，或省略变量访问整个集合，下面的示例显示在 Microsoft Excel 中当前可用的工具栏总数，和内部工具栏的数目。

cToolbars = Toolbars.Count

cBuiltIn = 0

For i = 1 To cToolbars

    If Toolbars(i).BuiltIn Then cBuiltin = cBuiltin + 1

Next

MsgBox cToolbars & " toolbars, " & cBuiltin & " built in."


Trendline 对象

表示图表中的趋势线，趋势线显示数据系列的趋势或方向。

存取器

TrendLine 对象是 Trendlines 集合的一个元素，TrendLines 集合包含某个数据系列的所有 TrendLines 对象，使用 Add 方法可以创建新的趋势线并将它添加到数据系列中。

要访问集合中的一个元素，可以使用 Trendlines 方法，用趋势线索引号做变量。

索引号表示添加到系列中的趋势线的顺序，TrendLines(1)是添加的第一个趋势线，TrendLines(TrendLines.Count)是最后一个，下面的示例，是在工作表的嵌入图表中，更改系列的趋势线类型。如果系列没有趋势线，该示例无效。

Worksheets(1).ChartObjects(1).Chart. _

    SeriesCollection(1).Trendlines(1).Type = xlMovingAvg


Trendlines 集合对象

是指定数据系列的所有 Trendline 对象的集合，每个 TrendLine 对象表示图表中的一个趋势线，趋势线显示数据系列的趋势或方向。

存取器

使用 Add 方法可以创建新的趋势线，并将它添加到系列中，下面示例，是在名为“Sheet1”的工作表的嵌入图表中，将线性趋势线添加到系列中。

Worksheets("sheet1").ChartObjects(1).Chart.SeriesCollection(1) _

    .Trendlines.Add type:=xlLinear, name:="Linear Trend"

使用 Trendlines 方法，用单个变量可以访问集合中的一个元素，或省略变量访问整个集合。


UpBars 对象

表示图表组中的涨柱线。涨柱线连接图表组中，一个数据系列的最大值到最后数据系列的最大值，只有二维直线组；包含两个以上的数据系列，才能有涨柱线，没有独立的涨柱线对象；应该同时打开图表组中的涨/跌柱线。

存取器

UpBars 属性返回图表组的涨柱线，下面的示例将打开图表组中所有点的涨/跌柱线。该示例将涨柱线的颜色设为兰色，将跌柱线的颜色设为红色。

With Worksheets("sheet5").ChartObjects(1).Chart.ChartGroups(1)

    .HasUpDownBars = True

    .UpBars.Interior.Color = RGB(0, 0, 255)

    .DownBars.Interior.Color = RGB(255, 0, 0)

End With

注释：

如果 HasUpDownBars 属性是 False，多数 Upbars 对象的属性将失效。


Walls 对象

表示三维图表的背景墙，没有独立的 Wall 对象；必须同时访问所有的背景墙。

存取器

Walls 属性返回指定图表的背景墙，下面的示例在名为“Sheet1”的工作表中的嵌入图表中，设置背景墙的图案，如果图表不是三维图表，该示例无效。

Worksheets("Sheet1").ChartObjects(1).Chart _

    .Walls.Interior.Pattern = xlGray75


Window 对象

(Info Window only)

表示窗口。许多工作表的特征，如滚动条和网格线，实际上是窗口的属性。

存取器

Window对象是 Windows 集合的一个元素，Application 对象的 Windows 集合包含应用程序的所有窗口，而 Workbook 对象的 Windows 集合只包含指定工作簿的窗口。使用 NewWindow 方法，可以创建新的窗口，并将它添加到集合中。

要访问集合中的单个元素，可使用 Windows 方法，用索引号或窗口标题做变量，使用忽略对象限定的 Windows 方法，将返回应用程序的窗口集合(等价于 Application.Windows )活动窗口是 Window(1)。下面的示例将活动窗口最大化。

Windows(1).WindowState = xlMaximized

窗口标题是在窗口没有最大化时，显示在窗口顶部标题条的文本，标题也显示在“窗口”菜单中所有打开文件的列表里，使用 Caption 属性可以设置或返回窗口标题。更改窗口标题不改变工作簿的名称，下面的示例关闭显示在 Book1.XLS1 窗口的工作表的网格线。

Windows("book1.xls:1").DisplayGridlines = False


Windows 集合对象

(Info Window only)

Microsoft Excel 应用程序中的所有 Window 对象的集合，Application 对象的 Windows 集合包含应用程序的所有窗口，而 Wookbook 对象的 Windows 集合只包含指定工作簿的窗口。

存取器

使用 NewWindow 方法可以创建新的窗口，并将它添加到集合中下面的示例创建活动工作簿的新窗口。

ActiveWorkbook.NewWindow

使用 Windows 方法，用一个变量可以访问集合中的一个元素，或者省略变量，访问整个集合，下面的示例层叠在 Microsoft Excel 显示的所有窗口。

Windows.Arrange arrangeStyle:=xlCascade


Workbook 对象

表示Microsoft Excel 工作簿。

存取器

Workbook 对象是 Workbooks 集合中的一个元素，Workbooks 集合包含当前在Microsoft Excel 打开的所有 Workbook 对象，使用 Open 方法可以打开一个文件，使用 Add 方法可以创建一个新的空白工作簿；并将它添加到集合中。

要访问集合中的一个元素，使用 Workbooks 方法，用索引号或工作簿的名称作变量索引号表示打开或创建工作簿的次序，Workbooks(1)是创建的第一个工作簿；Workbooks(Workbooks.Count)是最后一个，激活工作簿并不改变索引号，所有的工作簿包括在索引计数中，不论它们是否被隐藏，下面的示例激活某个工作簿。

Workbooks(1).Activate

Name 属性返回工作簿的名称，不能使用该属性设置名称，使用 SaveAs 方法可以用另一名称保存已更改的工作簿，下面的示例，在工作表“COGS.XLS”中，激活名为“sheet1 ”的工作表，(工作簿必须已经在 Microsoft Excel 中打开)

使用ActiveWorkbook

ActiveWorkbook 属性返回当前活动的工作簿，下面的示例设置活动工作簿中的作者名。

ActiveWorkbook.Author = "Jean Selva"

使用ThisWorkbook

ThisWorkbook 属性返回正在其中运行 Visual Basic 程序的工作簿。在多数情况下，与 ActiveWorkbook 一样，但是，如果 Visual Basic 程序是加载密宏的一部分，ThisWorkbook 属性将不返回活动工作簿。在这种情况下，活动工作簿就是调用加载宏的工作簿。ThisWorkbook 属性返回加载宏工作簿。

如果是从Visual Basic 程序创建的加载宏，应该使用 ThisWorkbook 属性来检验编译到加载宏工作簿的语句。


Chart, Dialogsheet, Mailer, Module, Name, PageSetup, RoutingSlip, Style, Window, Worksheet


Workbooks 集合对象

当前在Microsoft Excel 应用程序中打开的所有 Workbook 对象的集合。

存取器

使用 Open 方法可以打开一个文件，使用 Add 方法可以创建一个新的空白工作簿，并将它添加到集合中，下面的示例将新的空白工作簿添加到 Microsoft Excel 中，(等价于单击“文件”菜单的“新建”命令)。

Workbooks.Add

下面的示例打开文件 ARRAY.XLS 为只读工作簿。

Workbooks.Open fileName:="array.xls", readOnly:=True

使用 Workbooks 方法，用一个变量可以访问集合中的单个元素，或者省略变量访问整个集合，下面的示例关闭所有打开的工作簿。

Workbooks.Close


Worksheet 对象

表示工作表，Microsoft Excel 4.0 宏表，或 Microsoft Excel 4.0 国际通用宏表。

存取器

WorkSheet对象是 Worksheets 集合的一个元素。WorkSheets集合包含工作簿中的所有WorkSheet对象，使用 Add 方法可以创建新的工作表，并将它添加到集合中，要访问集合中的单个元素，可以使用 Worksheets 方法，用索引号或工作表名做变量。

工作表索引 表示在工作簿标签条中的工作表位置，WorkSheets(1)是工作簿中的第一个工作表(最左边)；WorkSheets(WorkSheets.Count)是最后一个，所有工作表都在索引计数中不论它们是否隐藏。

下面的示例隐藏在活动工作簿中的工作表。

Worksheets(1).Visible = False

工作表名显示在工作表的标签上，使用 Name 属性可以设置或返回工作表名，下面的示例保护名为“Sheet1”工作表中的方案。

Worksheets("sheet1").Protect password:="drowssap", scenarios:=True

WorkSheet对象也是Sheets集合中的一个元素，Sheets 集合包含工作簿中的所有工作表(图表，对话框编辑表，模块表，和工作表)，要访问集合中的一个元素，使用Sheets 方法，用索引号或工作表名作变量。

使用Active Sheet

当工作表活动时，可以使用ActiveSheet 属性来引用它，下面的示例使用Active方法激活名为“Sheet1”的工作表，设置页面方向，然后打印工作表。

Worksheets("sheet1").Activate

ActiveSheet.PageSetup.Orientation = xlLandscape

ActiveSheet.PrintOut


Arc, Button, ChartObject, CheckBox, Drawing, DrawingObjects, DropDown, GroupBox, GroupObject, Label, Line, ListBox, OLEObject, OptionButton, Outline, Oval, PageSetup, Picture, PivotTable, Range, Rectangle, Scenario, ScrollBar, Spinner, TextBox


Worksheets 集合对象

在指定或活动工作簿中，所有 Worksheet 对象的集合，每个Worksheet对象表示一个工作表，Microsoft Excel 4.0宏表，或Microsoft Excel 4.0国际通用宏表。

使用 Add 方法可以创建新的工作表，并将它添加到集合中，下面的示例在某个活动工作簿中工作表之前，添加两个新的工作表。

Worksheets.Add count:=2, before:=Sheets(1)

使用Worksheets 方法，用一个变量可以访问集合中的一个元素，或省略变量访问整个集合下面的示例将所有的工作表移动到工作簿的后面。

Worksheets.Move after:=Sheets(Sheets.Count)

Sheets 集合包含工作簿中的所有工作表(图表，对话框编辑表，模块表，和工作表)。使用 Sheets 方法用一个变量可以访问集合中的一个元素，或省略变量访问整个集合。


ForwardMailer 方法

通过创建一个新邮件建立一个用于传送的工作簿邮件，这个新邮件通过目前存在的邮件的主题和附件预先设置，仅当工作簿附有被接收的邮件时有效(用户可以仅传 送接收到的工作簿)。仅在 Apple Macintosh机上的Microsoft Excel 上，并配有 PowerTalk 邮件系统时有效。

语法

object.ForwardMailer

object

必选项，Workbook 对象。

注释

当用户使用该方法建立用于传送的工作簿邮件后，可以使用 Mailer 属性改变邮件设置(如果需要)然后用 SendMailer 方法传送该工作簿。

如果该方法在 Microsoft Windows 中使用，则会产生错误。


HasMailer 属性

如果工作簿含有一个邮件则为 True，仅在 Apple Macintosh 机上的 Microsoft Excel 上，并配有 PowerTalk 邮件系统时有效。可读写。


HasRoutingSlip 属性

如果工作薄含有一个 RoutingSlip 则为 True，可读写。

注释：

将该属性设置为 True则用默认值创建一个传递名单，将该属性设为 False， 则删除传递名单。


Reply 方法

通过创建工作簿的副本及预初始化该新工作簿的邮件以应答工作簿，将其传送给工作 簿的创始者，仅当工作簿附有被接收的邮件时有效(用户只可应答接收到的工作簿)。仅在 Apple Macintosh机的Microsoft Excel 上，并配有 PowerTalk 邮件系统时有效。

语法

object.Reply

object

必选项。Workbook 对象。

注释

为了应答工作簿，使用该方法建立邮件，使用Mailer属性调整邮件设置(如果需要)，然后使用 SendMailer 方法发送该应答。

若该方法用于 Microsoft Windows 则产生错误。


ReplyAll 方法

通过创建工作簿的副本及初始化该新工作簿的邮件以将其传送给工作簿的所有收件人来应答工作簿，仅当工作簿附有接收的邮件时有效(用户可以只应答接收到的工作簿)。在 Apple Macintosh 机的 Microsoft Excel 上，并配有 PowerTalk 邮件系统时有效。

语法

object.ReplyAll

object

必选项，Workbook 对象。

注释：

为了应答工作簿的所有收件人，使用该方法创建邮件，用 Mailer 属性调整邮件设置(如果需要)，然后使用 SendMailer 方法送该应答。

若该方法用于 Microsoft Windows 则产生错误。


Route 方法

使用工作簿的当前传递名单传送工作簿。

语法

object.Route

object

必选项，Workbook 对象。

注释

要传递一个工作簿时，设 Routed 属性为 True。


Routed 属性

如果工作簿已被传送给下一个收件人则为 True。如果该工作簿需要传送则为 False。 只读。

注释：

如果工作簿没有被传送给当前收件人，该属性总是 False(例如，如果该文档没有传递名单，或刚创建了一个传递名单)。


RoutingSlip 属性

为工作簿返回发送名单 RoutingSlip 对象，如果没有发送名单则读该属性将产生一个错误(首先检查 HasRoutingSlip 属性)。只读。


SendMail 方法

使用安装的邮件系统发送工作簿。

语法

object.SendMail(recipients, subject, returnReceipt)

object

必选项。Workbook 对象。

recipients

必选项。以文本形式指定收件人的名字，如果有多个收件人，则为文本字符串数组，

必需指定至少一名收件人，而且所有收件人均被加给＂收件人＂。

subject

可选项。指明消息的主题，如果省略，则使用文档名。

returnReceipt

可选项。若为 True，则要求返回收据。若为 False 或省略，不要求返回收据。

注释：

SendMail 方法用于 Microsoft Mail 电子邮件系统(用于 AppleMacintosh 的 MAPI或 Microsoft Mail)，将地址信息作为参数传送。

SendMailer 方法用于 AppleMscintosh 机上的 PowerTalk 电子邮件系统，该 Mailer 对象包含 PowerTalk 的地址信息。


DocumentProperty 对象 (Microsoft Excel)

每个工作簿都有一个内部文档属性集和一个自定义文档属性集。每个集都由一个 DocumentProperties 对象表示，并且每个集都包含独立的DocumentProperty对象。

使用 BuiltinDocumentProperties 属性来返回内部文档属性集，而使用 CustomDocumentProperties 属性来返回自定义文档属性集。使用 Item 方法来返回集中的单个成员。

下例设置名为“Title”的内部文档属性。

ActiveWorkbook.BuiltinDocumentProperties.Item("Title") _

.Value = "Year-End Sales Results"

要使用此对象，,您要使用“工具”菜单中的“引用位置”菜单项来建立对“Microsoft Office 95 对象库”的引用。


DocumentProperties Collection 对象 (Microsoft Excel)

每个工作簿都有一个内部文档属性集和一个自定义文档属性集。每个集都由一个 DocumentProperties 对象表示，并且每个集都包含独立的 DocumentProperty!AL(offobjDocumentProperty, JUMP) 对象。

使用 BuiltinDocumentPropertiesxlproBuiltinDocumentProperties>langref 属性来返回内部文档属性集，而使用 CustomDocumentPropertiesxlproCustomDocumentProperties>langref 属性来返回自定义文档属性集。

下例在工作表上创建当前工作簿的内部文档属性中的一个列表。

rw = 1

Worksheets(1).Activate

For Each p In ActiveWorkbook.BuiltinDocumentProperties

    Cells(rw, 1).Value = p.Name

    Cells(rw, 2).Value = p.Value

    rw = rw + 1

Next

要使用此对象，,您要使用“工具”菜单中的“引用位置”菜单项来建立对“Microsoft Office 95 对象库”的引用。


LinkSource 属性 (Microsoft Excel)

对于 Microsoft Excel，源为工作簿中的一个名字。


Add 方法 (Microsoft Excel)

对于 Microsoft Excel，linkSource 参数指定工作簿中的一个名字。


BuiltinDocumentProperties 属性

返回代表指定工作簿的内部文档属性集的 DocumentProperties 集对象。只读。

要使用此对象，,您要使用“工具”菜单中的“引用位置”菜单项来建立对“Microsoft Office 95 对象库”的引用。

注释

此属性返回内部文档属性的全集。使用 Item 方法时，指定属性名或属性集的索引号(为一个数值)，可返回文档属性集(DocumentProperty 对象)的一个成员。关于有效的内部文档属性名的列表，请参阅 Item 方法。

由于 Item 方法是 DocumentProperties 集对象的默认方法，如下语句等价：

BuiltinDocumentProperties.Item(1)

BuiltinDocumentProperties(1)

使用 CustomDocumentProperties 属性返回自定义文档属性集。


BuiltinDocumentProperties 属性实例

此例将内部文本属性名作为工作表1上的列表显示。

rw = 1

Worksheets(1).Activate

For Each p In ActiveWorkbook.BuiltinDocumentProperties

    Cells(rw, 1).Value = p.Name

    rw = rw + 1

Next


CustomDocumentProperties 属性

返回对应于指定工作簿自定义文档属性集的 DocumentProperties!AL(offobjDocumentProperties, JUMP) 集对象。只读。

要使用此对象，,您要使用“工具”菜单中的“引用位置”菜单项来建立对“Microsoft Office 95”对象库的引用。

注释

此属性返回自定义文档属性的全集。使用 Item 方法时，指定属性名或属性集的索引号(为一个数值)，可返回文档属性集(DocumentProperty 对象)的一个成员。

由于 Item 方法是 DocumentProperties 集对象的默认方法，如下语句等价：

CustomDocumentProperties.Item("Complete")

CustomDocumentProperties("Complete")

使用 BuiltinDocumentProperties 属性返回内部文档属性集。


CustomDocumentProperties 属性实例

此例将自定义文档属性名作为工作表1上的列表显示。

rw = 1

Worksheets(1).Activate

For Each p In ActiveWorkbook.CustomDocumentProperties

    Cells(rw, 1).Value = p.Name

    Cells(rw, 2).Value = p.Value

    rw = rw + 1

Next


Add 方法实例 (Microsoft Excel)

此实例添加名为“Complete”的自定义静态属性。

With ActiveWorkbook.CustomDocumentProperties

.Add name := "Complete", linkToContent := False, _

type := offPropertyTypeBoolean, value := False

End With

此实例添加链接到名为"Grand_Total."的属性。

With ActiveWorkbook.CustomDocumentProperties

.Add name := "Total Sales", linkToContent := True, _

linkSource := "Grand_Total"

End With


Count 属性实例(Microsoft Excel)

此实例显示活动工作簿中自定义文档属性的数目。

MsgBox ActiveWorkbook.CustomDocumentProperties.Count


Delete 方法实例(Microsoft Excel)

此实例删除“Total Sales”自定义文档属性。

ActiveWorkbook.CustomDocumentProperties("Total Sales").Delete


Item 方法实例(Microsoft Excel)

此实例创建包含活动工作簿中内部文档属性名的列表。

Set wk = Worksheets(1)

Set builtinProps = ActiveWorkbook.BuiltinDocumentProperties

For i = 1 To builtinProps.Count

wk.Cells(i, 1).Value = builtinProps.Item(i).Name

Next


LinkToContent 属性实例(Microsoft Excel)

此实例将每个自用户定义文档属性的链接状态显示为工作表1中的一个列表。

rw = 1

With Worksheets(1)

For Each pro In ActiveWorkbook.CustomDocumentProperties

.Cells(rw, 1) = pro.Name

.Cells(rw, 2) = pro.LinkToContent

If pro.LinkToContent Then

.Cells(rw, 3) = pro.LinkSource

End If

rw = rw + 1

Next

End With


LinkSource 属性实例 (Microsoft Excel)

此实例将名为“TotalSales”的自定义文档属性链接到活动工作簿的名为“SalesNumbers”的区域。

ActiveWorkbook.CustomDocumentProperties _

.Item("TotalSales").LinkSource = "SalesNumbers"


Name 属性实例 (Microsoft Excel)

此实例在活动工作簿中显示自定义文档属性1的名称。

MsgBox ActiveWorkbook.CustomDocumentProperties(1).Name


Type 属性实例 (Microsoft Excel)

此实例在活动工作簿中显示自定义文档属性1的类型。

MsgBox ActiveWorkbook.CustomDocumentProperties(1).Type


Value 属性实例(Microsoft Excel)

此实例在活动工作簿中显示自定义文档属性1的值。

MsgBox ActiveWorkbook.CustomDocumentProperties(1).Value


AutomaticStyles 属性

若分级显示使用自动设置样式，则为 True。可读写。


ShowLevels 方法

显示一个分级显示的行和(或)列层次的指定号码。

语法

object.ShowLevels (rowLevels, columnLevels)

object

必选项，分级显示对象(例如 ActiveSheet.Outline)。

rowLevels

可选项，指明要显示的分级显示的行层数，如果该分级显示含有的层比指定的要少， Microsoft Excel显示所有的层，如果省略为零，则在行上不进行任何操作。

columnLevels

可选项，指明要显示的一个分级显示的列层数，如果该分级显示含有的层比指定的要 少，则  Microsoft Excel显示所有的层，如果省略或为零，则在列上不进行任何操作。

注释：：

必须指定至少一个参数。


SummaryColumn 属性

返回或设置分级显示中的汇总列的位置，如下表所示，读写。

值	含义

xlLeft 	在分级显示中汇总列将位于明细列的左边。

xlRight 	在分级显示中汇总列将位于明细列的右边。


SummaryRow 属性

返回或设置分级显示中的汇总行的位置，如下表所示，可读写。

值	含义

xlAbove 	在分级显示中汇总要行将位于明细列之上。

xlBelow 	在分级显示中汇总行将位于明细列之下。

注释：

对于 Microsoft Word 样式的分级显示，将 SummaryRow 设为 xlAbove ，此处分类页眉在明细之上。对于会计样式的分级显示，将 SummaryRow 设为 xlBelow ，此处汇总处于详细信息之下


BottomMargin 属性

返回或设置页底边距尺寸，用磅值表示（1/72英寸）。可读写。

附注

用点数返回或设置页边距。使用 InchesToPoints 或 CentimetersToPoints 函数进行转换。


CenterFooter 属性

返回或设置页脚的中心部分。可读写。

附注

特殊的格式代码，可以用在页脚的文字中。


CenterHeader 属性

返回或设置页眉的中心部分。可读写。

附注

特殊的格式代码，可以用在页眉文字中。


CenterHorizontally 属性

如果表在页面上水平居中，则为 True。可读写。


CenterVertically 属性

如果表在页面上垂直居中，则为 True。可读写。


ChartSize 属性

当缩放一个图表以适应一页的变化时，返回或设置所使用的方法，如下表所示。可读写。

值	含义

xlScreenSize 	以显示在屏幕上的尺寸打印图表。

xlFitToPage	尽可能大地打印该图表，但保持显示在屏幕上的图表的高－宽比例。

xlFullPage 	打印一个与页相适合的图表，在需要时，可调整高宽比例。

附注

该属性仅用于图表（它不能与嵌入图表一起使用）。


FirstPageNumber 属性

返回或设置所要打印的表的第一页页号（默认值为xlAutomatic）。可读写。


FitToPagesTall 属性

当工作表被打印时，返回或设置工作表被缩放时使用的页高。Zoom属性必须为 False，或该属性被忽略。可读写。

附注

如果该属性为 False，Microsoft Excel 将根据 FitToPagesWide 属性缩放工作表。

该属性仅用于工作表。


FitToPagesWide 属性

当工作表被打印时，返回或设置工作表被缩放时所使用的页宽，Zoom属性必须为 False 或该属性被忽略。可读写。

附注

如果该属性为 False，则 Microsoft Excel 将根据 FitToPagesTall属性缩放该工作表。

该属性仅用于工作表。


LeftFooter 属性

返回或设置页脚的左边部分。可读写。

附注

特殊的格式代码，可用于页脚文字中。


LeftHeader 属性

返回或设置页眉的左边部分。可读写。

附注

特殊的格式代码，可用于页眉文字中。


LeftMargin 属性

返回或设置页左边距尺寸，以磅值（1／72英寸）为单位。可读写。

附注

用点数设置或返回页边距，可使用 InchesToPoint 或 CenTimetersToPoints 函数进行转换。


Order 属性

PageSetup 对象: 当打印一个大工作表时（xlDownThenOver或xlOverThenDown） 返回或设置 Microsoft Excel 用于页编号的序列。可读写。

Trendline 对象: 当趋势线 Type 为 xlPolynomial 时返回或设置趋势线次序（一个大于1的整数）。可读写。

附注

对于 PageSetup 对象，该属性仅用于工作表。


PaperSize 属性

仅用于Windows，返回或设置纸张的大小。可读写。

附注

该属性可以具有下列值之一。

值	含义

xlPaperLetter	书信 (8 1/2 x 11 in.)

xlPaperLetterSmall	书信 (8 1/2 x 11 in.)

xlPaperTabloid	小报 (11 x 17 in.)

xlPaperLedger	总帐 (17 x 11 in.)

xlPaperLegal	法律 (8 1/2 x 14 in.)

xlPaperStatement	声明(5 1/2 x 8 1/2 in.)

xlPaperExecutive	公文 (7 1/2 x 10 1/2 in.)

xlPaperA3	A3 (297 x 420 mm)

xlPaperA4	A4 (210 x 297 mm)

xlPaperA4Small	A4 Small (210 x 297 mm)

xlPaperA5	A5 (148 x 210 mm)

xlPaperB4	B4 (250 x 354 mm)

xlPaperB5	B5 (182 x 257 mm)

xlPaperFolio	对开纸 (8 1/2 x 13 in.)

xlPaperQuarto	四开 (215 x 275 mm)

xlPaper10x14	10 x 14 in.

xlPaper11x17	11 x 17 in.

xlPaperNote	便条 (8 1/2 x 11 in.)

xlPaperEnvelope9	信封 #9 (3 7/8 x 8 7/8 in.)

xlPaperEnvelope10	信封 #10 (4 1/8 x 9 1/2 in.)

xlPaperEnvelope11	信封 #11 (4 1/2 x 10 3/8 in.)

xlPaperEnvelope12	信封 #12 (4 1/2 x 11 in.)

xlPaperEnvelope14	信封 #14 (5 x 11 1/2 in.)

xlPaperCsheet	C 号纸

xlPaperDsheet	D 号纸

xlPaperEsheet	E 号纸

xlPaperEnvelopeDL	信封 DL (110 x 220 mm)

xlPaperEnvelopeC3	信封 C3 (324 x 458 mm)

xlPaperEnvelopeC4	信封 C4 (229 x 324 mm)

xlPaperEnvelopeC5	信封 C5 (162 x 229 mm)

xlPaperEnvelopeC6	信封 C6 (114 x 162 mm)

xlPaperEnvelopeC65	信封 C65 (114 x 229 mm)

xlPaperEnvelopeB4	信封 B4 (250 x 353 mm)

xlPaperEnvelopeB5	信封 B5 (176 x 250 mm)

xlPaperEnvelopeB6	信封 B6 (176 x 125 mm)

xlPaperEnvelopeItaly	信封 (110 x 230 mm)

xlPaperEnvelopeMonarch	信封 Monarch (3 7/8 x 7 1/2 in.)

xlPaperEnvelopePersonal	信封 (3 5/8 x 6 1/2 in.)

xlPaperFanfoldUS	美国标准扇折(14 7/8 x 11 in.)

xlPaperFanfoldStdGerman	德国标准扇折(8 1/2 x 12 in.)

xlPaperFanfoldLegalGerman	德国法律扇折(8 1/2 x 13 in.)

xlPaperUser	自定义

某些打印机可能只支持部分纸张大小设置。


PrintGridlines 属性

如果在页面上打印单元格网格线，则为 True。可读写。

附注

该属性仅用于工作表。


PrintHeadings 属性

如果行号列标与该页一起打印，则为 True。

附注

该属性仅用于工作表。

 DisplayHeadings 属性控制屏幕上行号列标的显示。


RightFooter 属性

返回或设置页脚的右边部分。可读写。

附注

特殊的格式代码，可以用在页脚的文字中。


 RightHeader 属性

返回或设置页眉的右边部分。可读写。

附注

特殊的格式代码，可被用在页眉文字中。


RightMargin 属性

返回或设置页右边距尺寸，以磅值（1/72英寸）为单位。可读写。

附注

用点数返回或设置页边距，使用 InchesToPoints 或 CentimetersToPoints 函数进行转换。


TopMargin 属性

返回或设置页顶边距的尺寸，以磅值（1/72英寸）为单位。可读写。

附注

用点数返回或设置页边距，使用 InchesToPoints 或 CentimetersToPoints 函数进行转换。


Zoom 属性

PageSetup 对象:

返回或设置一个百分数，缩放工作表以便于打印。在10%~400%之间，可读写。

如果该属性为False，则 FitToPagesWide 和 FitToPagesTall 属性将控制工作表如何 缩放。

Window 对象:

返回或设置窗口的显示尺寸，使用百分比（100即以正常尺寸显示；200即窗口是两 倍大的，等等。）。

该属性也可被设置为True，则将变化窗口大小来适应当前的选定区域。

附注

PageSetup 对象:

该属性仅用于工作表。

所有缩放均保持原文档的长宽比。

Window 对象:

该功能仅影响当前在窗口上是活动的表，如果将该属性用在其它表上，必须首先激活它们。


页眉和页脚的格式代码

如下的格式代码可以包括在页眉和页脚的属性中 (LeftHeader, CenterHeader, RightHeader, LeftFooter, CenterFooter, RightFooter)。

格式代码	描述

&L	将其后的字符左对齐

&C	将其后的字符置中

&R	将其后的字符右对齐

&E	打开或关闭双下划线打印

&X	打开或关闭上标打印

&Y	打开或关闭下标打印

&B	打开或关闭粗体打印

&I	打开或关闭斜体打印

&U	打开或关闭下划线打印

&S	打开或关闭删除线打印

&O	打开或关闭外框打印（仅用于 Macintosh 机）

&H	打开或关闭阴影打印（仅用于 Macintosh 机）

&D	打印当前日期

&T	打印当前时间

&F	打印文件名

&A	打印工作簿标签名

&P	打印页号

&P+number	打印页号加一个数字

&P-number	打印页号减一个数字

&&	打印一个�&敽�

& "fontname"	以指定的字体打印随后的字符，不要忘记双引号

&nn	以指定的字号打印随后的字符，用两位数指定字号的点数。

&N	打印文件的总页数。


AddCustomList 方法

为自定义自动填充和（或）自定义排序增加一个自定义列表。

语法

object.AddCustomList(listArray, byRow)

object

必选项。指定 Application 对象。

listArray

必选项。指定一字符串数组或 Range.。

byRow

可选项。仅用于 listArray 是一个区域时。如果为 True，Microsoft Excel 将按区域中每行创建一自定义列表；如果为 False，Microsoft Excel 按区域中每列创建一自定义列表。如果该参数省略并且区域中行数大于列数（或行、列数相等），则 Microsoft Excel将按区域的每列创建一自定义列表。如果该参数省略，并且区域中列数大于行数，则 Microsoft Excel 将按区域的每行创建一自定义列表。

附注

如果要增加的列表已存在，则该方法无效。


AlertBeforeOverwriting 属性

如果在拖曳和下拉编辑操作过程中，Microsoft Excel 在覆盖非空白单元格之前显示一则消息，则为 True。可读写。


ClipboardFormats 属性

以数值数组方式，返回剪贴板上的当前格式。将数组中每一元素与下表中相应常量比较， 判定特殊格式是否存在。只读。

附注

该属性在 Microsoft Windows 中和 Apple Macintosh 上有效。某些格式仅可用于 Apple Macintosh 上或仅用于 Microsoft Windows 中。

该属性返回一数值数组。将数组中每一元素与下表中相应常数比较，判定特殊剪贴板格式是否存在。

XlClipboardFormatBIFF xlClipboardFormatBIFF2 xlClipboardFormatBIFF3 xlClipboardFormatBIFF4 xlClipboardFormatBinary xlClipboardFormatBitmap xlClipboardFormatCGM xlClipboardFormatCSV xlClipboardFormatDIF xlClipboardFormatDspText xlClipboardFormatEmbeddedObject xlClipboardFormatEmbedSource xlClipboardFormatLink xlClipboardFormatLinkSource xlClipboardFormatLinkSourceDesc xlClipboardFormatMovie xlClipboardFormatNative	xlClipboardFormatObjectDesc xlClipboardFormatObjectLink xlClipboardFormatOwnerLink xlClipboardFormatPICT xlClipboardFormatPrintPICT xlClipboardFormatRTF xlClipboardFormatScreenPICT xlClipboardFormatStandardFont xlClipboardFormatStandardScale xlClipboardFormatSYLK xlClipboardFormatTable xlClipboardFormatText xlClipboardFormatToolFace xlClipboardFormatToolFacePICT xlClipboardFormatVALU xlClipboardFormatWK1


DeleteCustomList 方法

删除一自定义列表。

语法

object.DeleteCustomList(listNum)

object

必选项。指定Application 对象。

listNum

必选项。指定自定义列表数。该数须大于或等于５(Microsoft Excel 具有４个不可删除的内部自定义列表)。

附注

如果列表数小于５或一匹配的自定义列表不存在，该方法将产生一个错误。


EnableTipWizard 属性

如果操作向导是激活的，则为 True。可读写。


FileConverters 属性

以文字数组方式返回一个已安装的文件转换器列表。数组中每一行包含有关单个文件转换器的信息，如下表所示。如果不存在已安装的转换器，则返回Null。 只读。

列	内容

1	转换器长名字，包含 Microsoft Windows 中文件类型搜索字符串（如＂Lotus 1-2-3Files(*WK*)＂）。

2	转换 DLL 或代码源的路径名。

3	在 Microsoft Windows 中的文件扩展名搜索字符串或 Apple Macintosh 上的４字符文件类型。


GetCustomListContents 方法

返回指定列表编号的自定义列表（字符串数组）。

语法

object.GetCustomListContents(listNum)

object

必选项。指定 Application 类。

listNum

必选项。指定列表编号。


GetCustomListNum 方法

为字符串数组返回自定义列表编号。使用此方法，内部和自定义列表均可被匹配。

语法

object.GetCustomListNum(listArray)

object

必选项。指定 Application 类。

listArray

必选项。指定字符串数组。

附注

如果相应的列表不存在，该方法将产生错误。


EditDirectlyInCell 属性

如果 Microsoft Excel 允许在单元格中编辑，则为 True。可读写。


MailLogoff 方法

关闭已建立的 MAPI 邮递过程。

语法

object.MailLogoff

object

必选项。指定 Application 对象。

附注

此方法不能用于关闭或退出 Microsoft Mail.


MailLogon 方法

打开MAPI Mail 或 Microsoft Exchange 并建立一邮件过程。如果 Microsoft Mail 已经在运行，在邮件或用文档传递函数被使用前，应先使用此方法建立邮件过程。

语法

object.MailLogon(name, password, downloadNewMail)

object

必选项。指定 Application 对象。

name

可选项。指定邮件帐号名或 Microsoft Exchange 配置文件。如果省略，则使用默认的邮件帐号名。

password

可选项。指定邮件帐号口令。在 Microsoft Exchange 中此参数被忽略。

downloadNewMail

可选项。如为 True，立即下载新邮件。

附注

在试图建立一新邮件过程之前，关闭以前建立的邮件过程。

省略名字和口令参数，回到系统默认的邮件过程中。


MailSession 属性

如果存在当前邮递过程，以十六进制字符串形式返回 MAPI 邮件过程数，如果不存 在邮件过程，则返回 Null。只读。

附注

该属性仅用于 Microsoft Excel 创建的邮件过程(它不为 Microsoft Mail 返回邮件过程号).

该属性不用于 PowerTalk 邮件系统。


MailSystem 属性

返回安装在主机上的邮件系统(为 xlNoMailSystem, xlMAPI,xlPowerTalk 之一)。只读。


NextLetter 方法

从 In Tray 中打开最早未读的 Microsoft Excel 信件。仅在装有 PowerTalk 邮件扩展系统的 Apple Macintosh 的 Microsoft Excel 中有效。

语法

object.NextLetter

object

必选项。指定 Application 对象。.

附注

该方法为最新打开的工作簿返回工作簿对象。如果没有工作簿打开，则返回 Null。

该方法用于 Microsoft Windows 时，将产生错误。


OnCalculate 属性

返回或设置当重新计算工作表时所运行的宏名。可读写。

附注

为工作表设置该属性将优先于任何应用程序的宏。

若设置该属性为空文本（＂＂）， 则清除宏。

由 OnCalculate 属性设置运行的宏，在其他宏作用下不运行。例如，如果有宏调用Calculate 方法，由 OnCalculate 设置的宏不运行。但是如果在表中改变数据，设置为自动重算或选择 Calc Now 按钮，该宏将运行。


PromptForSummaryInfo 属性

当文件第一次保存时，如果 Microsoft Excel 询问摘要信息，则为 True。可读写。


SheetsInNewWorkbook 属性

返回或设置 Microsoft Excel 自动插入在新工作簿中的表数。可读写。


StandardFont 属性

以字符串形式返回或设置标准字体名。可读写。

附注

如果使用该属性来改变标准字体，此更改只有当重新启动 Microsoft Excel 时才有效。


StandardFontSize 属性

用磅值（１／７２英寸）返回或设置标准字体大小。可读写。

附注

如果使用该属性来改变标准字体，此更改只有当重新启动 Microsoft Excel 时才有效。


AutoFilter 方法

语法 1: 显示或隐藏“自动筛选”下拉箭头。

语法 2: 通过“自动筛选”处理数据清单。

语法 1

object.AutoFilter

语法 2

object.AutoFilter(field, criteria1, operator, criteria2)

object

必选。Range 对象。

field

必选。相对于作为筛选基础字段（从左侧开始）的偏移量。

criteria1

可选 。为条件 (如实例 "101"中的字符串)。使用 "=" 查找空白字段，"<>" 查找非空白字段。若省略，条件为 All。如果 operator 为 xlTop10Items， criteria1 定义项数  实例 "10").

operator

可选项，与 criterial 和 criteria2 一起用于构造复合准则。  可为 xlAnd 或 xlOr 之一。如果省略，则为 xlAnd。可指定 xlTop10Items 来使用开始 10 项自动筛选器。

criteria2

可选项。指定第二筛选标准 (字符串)。与 criterial1 和 operator 一起用于构造复合标准。


DisplayHorizontalScrollBar 属性

如果显示水平滚动条，则为 True。可读写。


DisplayVerticalScrollBar 属性

如果显示垂直滚动条，则为 True。可读写。


DisplayWorkbookTabs 属性

如果显示工作表选项卡，则为 True。可读写。


Draft 属性

如果需打印的表上没有图形，则为 True。可读写。

注释

设置该属性为 True，可使打印速度加快(以不打印图形为代价)。


FilterMode 属性

如果工作表处于筛选方式，则为 True。只读。

注释

如果工作表包含筛选过的数据列表，数据列表中有隐藏行，则该属性为 True。.


FontStyle 属性

以字符串形式。返回或设置字体样式。可读写。

注释

改变该属性将影响其余的 Font 属性(如 Bold 、Italic)。


FooterMargin 属性

以磅值(1/72英寸)返回或设置页底端至页脚之间的距离。可读写。


HeaderMargin 属性

以磅值(1/72英寸)返回或设置页顶端至页眉之间的距离。可读写。


PrintNotes 属性

如果单元格附注随同表一起打印，则为 True。可读写。

注释

该属性仅用于工作表页面。


PrintQuality 属性

以含有二个元素的数组返回或设置打印品质，该数组包含水平和垂直品质。某些打印机不支持垂直打印品质。可读写。

注释

即使打印机不支持垂直打印品质，该属性仍返回含有二个元素的数组。


ScrollColumn 属性

返回或设置显示在分割区域或窗口的左边的列数。可读写。

注释

如果窗口是分割的，则 Window.ScrollColumn 与左边顶端分割区域有关。如果分割区域被冻结，Window.ScrollColumn 将不包括冻结区域。.


ScrollRow 属性

返回或设置显示在分割区域或窗口的左边的行数。可读写。

注释

如果窗口是分割的，则 Window.ScrollRow 与左边顶端分割区域有关。如果分割区域被冻结，Window.ScrollRow 将不包括冻结区域。


ScrollWorkbookTabs 方法

滚动窗口底端的工作簿选项卡，不影响工作簿中的活动表。

语法

object.ScrollWorkbookTabs(sheets, position)

object

必选项。指定 Window 对象。

sheets

可选项。指定滚动表数。正表示向前滚动，负表示向后滚动，零表示不滚动。如果不指定 Position， 则必须指定 sheets。

position

可选项。xlFirst 为滚动第一张表，xlLast 为滚动最后一张表。如果不指定 sheets，则必须指定 Position。


Shadow 属性

如果字体是阴影字体或图形对象有阴影，则为 True。可读写。

注释

对于字体对象，该属性在 Microsoft Windows 中不起作用，但其值被保留(可设置和返回)。


Subscript 属性

如果字体加了下标，则为 True。可读写。

注释

该属性缺省为 False。


Superscript 属性

如果字体加了上标，则为 True。可读写。

注释

该属性缺省为 False。


TabRatio 属性

返回或设置窗口工作簿选项卡宽度与窗口水平滚动条宽度比例。为 0~1 之间的数，缺省值为 0.75。可读写。

注释

当 DisplayWorkbookTabs 设置为 False时，该属性不生效。其数值保留，但对显示无效。


Charts 方法

存取器。返回工作簿中代表单一图表( Chart 对象， 语法 1) 或图表集 ( Charts 对象， 语法 2) 的对象。

语法 1

object.Charts(index)

语法 2

object.Charts

object

对 Application 为可选，对 Workbook 为必选。本方法施用的对象。

index

在语法 1 中为必选。图表的名称或数字 (可使用数组定义多个)。

注释

在使用本方法时如不带对象限定词，其作用与 ActiveWorkbook.Charts 相同。


ClearArrows 方法

清除工作表中的追踪箭头，并可用审核功能添加追踪箭头。

语法

object.ClearArrows

object

必选。  Worksheet 对象。


Copy 方法

语法 1: 将控制或绘图对象复制到剪切板。将数据点或系列的图片复制到剪切板。

语法 2: 将 Range 复制到指定区域或剪切板。

语法 3: 将工作表复制到工作簿的其它位置。

语法 4: 将工具栏按钮复制到其它位置。可以在同一工具栏或其它工具栏。

语法 1

object.Copy

语法 2

object.Copy(destination)

语法 3

object.Copy(before, after)

语法 4

object.Copy(toolbar, before)

object

必选。 本方法施用的对象。使用语法 3 复制 Chart 对象， 并复制整张图表工作表。若要只复制图表区，使用语法 1 和 ChartArea 对象。

destination

可选。定义用来接收复制区域的新区域。或省略， Microsoft Excel 将区域复制到剪切板。

before

语法 3: 可选。在此工作表之前复制当前工作表。在使用after 后不能使用 before。

语法 4: 必选。 以现有按钮编号加一，定义新按钮位置。按钮间距也参与计数。右侧按钮右移（或下移）以容纳新按钮。

after

可选。在此工作表后复制当前工作表。在使用before之后不能用 after 。

toolbar

在语法 4 中为必选。定义按钮所要复制到的工具栏对象。

注释

如果没有定义 before 或 after， Microsoft Excel 会自动创建包含复制工作表的新工作簿。

要复制按钮并在其前方插入空隙，先使用ToolbarButtons Add 在目标处插入空隙，然后在其后复制按钮。


DrawingObjects 方法

存取器。在图表、工作表、对话框编辑表上返回单个图形对象(语法 1)，或返回图形对象集合(语法 2)。 可返回所有图形对象，包括图表对象，图片，内嵌对象和图表。

语法 1

object.DrawingObjects(index)

语法 2

object.DrawingObjects

object

必选项。指定 Chart, DialogSheet,或 Worksheet 对象。

index

对于语法1为必选项。指定图形对象名或图形对象编号。可用数组返回多个图形对象。


GroupObjects 方法

存取器。在图表、工作表或对话表上返回单个组( GroupObjects 对象，语法 1)，或返回组集合( GroupObject 对象，语法 2)。

语法 1

object.GroupObjects(index)

语法

object.GroupObjects

object

必选项。指定 Chart, DialogSheet, 或 Worksheet 对象。

index

对于语法 1 为必选项。指定组名或组号，可用数组指定多个组。


Move 方法

语法1：移动表至工作簿中另一位置。

语法2：移动工具栏按钮至另一位置，可在相同或不同工具栏上进行。

语法 1

object.Move(before, after)

语法 2

object.Move(toolbar, before)

object

必选项。指定该方法所施加的对象。

before

语法1：可选项。移动表至该表之前。before、after 不可同时指定。

语法2：必选项。用数字指定新按钮位置，该数字从1至现有按钮数+1。间隔计为一个位置。该位置右边的按钮向右(或下)移动，为移动的按钮腾出空间。

after

可选项。移动表至该表之后。after、befor 不可同时指定。

toolbar

对于语法2为必选项。指定要移动按钮的工具栏对象。

附注

如果 before、after 均未指定，Microsoft Excel 将创建新的工作簿来包含移动的工作表。


OnDoubleClick 属性

返回或设置宏的名字。在图表或表中任何位置双击时，该宏将运行。可读写。

附注

设置该属性对模块表没有影响。

为工作表设置该属性，可优先于任何设置于应用程序的宏。

在对话框编辑表上，需双击选定图形对象或控制的边框来调用此属性指定的宏。

该属性优先于 Microsoft Excel 的普通双击行为，例如在单元格中编辑数据或显示设置格式对话框。

若清除该宏，可设置该属性为空文本(“  ”)。


PrintOut 方法

打印对象。

语法

object.PrintOut(from, to, copies, preview, activePrinter, printToFile, collate)

object

必选项。指定要打印的对象。.

from

可选项。指定打印的起始页号。如省略，打印将从头开始。

to

可选项。指定打印的终止页号。如省略，将打印至最后一页。

copies

可选项。指定打印的复件数。如省略，将打印一个复件。

preview

可选项。如为 True，Microsoft Excel 在打印对象前，先生成打印预览。如为 False(或省略)，则立即打印对象。

activePrinter

可选项。设置当前打印机。

printToFile

可选项。若为 True, 则打印到文件。Microsoft Excel 将提示用户输入文件名。在 Visual Basic 中无法指定文件名。

collate

可选项。若为 True,多个复件将被归类。

附注

在 from 和 to 的描述中，“Pages” 指定打印的页数，不代表表中或当前工作簿中总页数。该方法用于 Window 对象时，Window 对象只能是信息窗口。


PrintPreview 方法

显示要打印对象的预览。

语法

object.PrintPreview

object

必选项。指定要预览的对象。


Protect 方法

保护图表、对话表、Visual Basic 模块表、工作表(语法 1)或工作簿(语法 2)不被修改。

语法 1

object.Protect(password, drawingObjects, contents, scenarios, userInterfaceOnly)

语法 2

object.Protect(password, structure, windows)

object

必选项。指定 Chart, DialogSheet, Module, 或 Worksheet 对象(语法 1)或 Workbook 对象(语法 2)。

password

可选项。用字符串为表或工作簿指定区别大小写的口令。如果省略，则不保护工作表或工作簿；如果指定，则必须为解除保护的表或工作簿设置口令。如果忘记口令，表或工作簿将不能解除保护。建议妥善保存一个与文档名字相对应的口令列表。

drawingObjects

可选项。若保护表上图形对象，则为 True。对于对话框编辑表，将保护控制项布局。 如果该参数省略，则不保护图形对象。对于 Visual Basic 模块表，图形对象可忽略。

contents

可选项。如果保护对象内容，则为 True (或省略)。对于 Visual Basic 模块表，保护的是源代码。对于图表，保护的是整个图表。对于对话框编辑表，保护的是对话框布局和对话框控制项文字。对于工作表，保护的是单元格。

scenarios

可选项。如果保护方案，则为 True (或省略)。该参数仅对工作表有效。

structure

可选项。如果保护工作簿结构(表的相对位置)，则为 True。如果该参数省略，则结构不被保护。

userInterfaceOnly

可选项。当保护用户界面而不保护宏时为 True。如果该参数省略，保护用户界面和宏。

windows

可选项。如果保护表或工作簿窗口，则为 True。如果省略，则窗口不被保护。

附注

如果工作簿已保护，用 Protect 方法将产生错误。


ProtectContents 属性

如果表的内容被保护，则为 True。对于 Visual Basic 模块，保护的是源代码。对于图表，保护的是整个图表。对于对话框编辑表，保护的是对话布局和对话控框控制项文字。对于工作表，保护的是单元格。只读。


ProtectDrawingObjects 属性

如果表的图表形对象被保护，则为 True。在对话框编辑表上，保护的是控制项布局。只读。


Scenarios 方法

存取器。在工作表上返回单个方案( Scenario 对象，语法 1)或方案集合( Scenarios 对象，语法 2)。

语法 1

object.Scenarios(index)

语法 2

object.Scenarios

object

必选项。指定 Worksheet 对象。

index

必选项，对于语法 1。指定方案名或方案编号，可用数组指定多个方案。


Unprotect 方法

从表或工作簿中删除保护。如果表或工作簿未保护，该方法无效。

语法

object.Unprotect(password)

object

必选项。指定该方法所施加的对象。

password

可选项。使用区别大小写的字符串口令来解除保护表或工作簿。如果表或工作簿没有用口令保护，该参数可忽略。如果该参数省略，但工作表有口令，则出现口令提示。如果该参数省略，但工作簿有口令，则该方法失效。

附注

如果忘记口令，则不能为表或工作簿解除保护。建议妥善保存与文档名相对应的口令列表。


AskToUpdateLinks 属性

当打开具有链接的文件时，如果 Microsoft Excel 请求用户更新链接，则为 True；如果链接被自动更新，则为 False。可读写。


AutoUpdate 属性

当源改变时，如果 OLE 对象自动更新，则为 True。仅对链接对象有效(其 OLEType 属性应为 xlOLELink )。只读。


Backward 属性

返回或设置趋势线向后扩展的周期(或散点图单位)数。可读写。


BlackAndWhite 属性

如果文档元素按单色打印，则为 True。可读写。

注释

该属性仅用于工作表页面。


Category 属性

如果名字引用自定义函数或命令，该属性以字符串形式为该名字设置或返回分类，该字符串转换成宏语言。可读写。


ChangeFileAccess 方法

改变工作簿访问权，此方法可能要求从磁盘装入更新的版本。

语法

object.ChangeFileAccess(mode, writePassword, notify)

object

必选项. 指定 Workbook 对象。

mode

必选项。指定新的访问方式(为 xlReadWrite 或 xlReadOnly 之一)。

writePassword

可选项。如果文件是写保护的且 mode 为 xlReadWrite，指定写保护口令。如果文件没有口令或 mode 为 xlReadOnly，则可忽略。

notify

可选项，如果想获知文件是否可即时访问，则为 True。如果省略，则假定为 True。

注释

如果文件用只读方式打开，则没有写的权限。如果将文件从只读改为可读写，Microsoft Excel 需装入新的文件复本，保证以只读方式打开文件时不发生变化。


ChartGroups 方法

存取器。返回图表中单个图表组( ChartGroup 对象，语法1)或图表组集合( ChartGroups 对象，语法2)。每个组类型包含在返回的集合中。

语法 1

object.ChartGroups(index)

语法 2

object.ChartGroups

object

必选项。指定 Chart 对象。

index

对语法 1 为必选项。指定图表组编号。


Checked 属性

如果菜单项是选择的，则为 True。可读写。


CopyObjectsWithCells 属性

如果图形对象与单元格一起剪切、复制、抽取、排序，则为True。可读写。


Count 属性

返回集合里的项数。只读。

关于 Visual Basic 中的有关 Count 工作表函数的详细帮助信息，参见 Visual Basic 中的在 Visual Basic 中使用工作表函数.。


CustomListCount 属性

返回已定义的自定义列表数（包括内部列表）。只读。


DefaultFilePath 属性

返回或设置 Microsoft Excel 用于打开文件的默认路径。可读写。


Dialogs 方法

存取器。返回单个内部对话框（Dialog对象，语法 1）或内部对话框集合（Dialogs对象，语法2）。只读。

语法 1

object.Dialogs(index)

语法 2

object.Dialogs

object

必选项。指定 Application 对象。

index

对语法1为必选项。指定内部常量。详细信息参见下面解释部分。

附注

采用 Dialogs 和 Show 方法，可显示约200个内部对话框。每个对话框都有一常量指定给它，这些常量均以xlDialog开头。

关于可用的常量与其对应的参数表的列表，参见 内置对话框参数列表

可用“对象浏览”命令去浏览对话框常量列表。在 “视窗” 菜单中，选择“对象浏览”，在对象浏览器中，选定 Microsoft Excel 库，然后选定 Constants 对象。在“方法／属性”框中滚动列表，直到发现以 xlDialog 开头的常量。常量与对话框名相对应，例如：Find File 对话框常量为 xlDialongFindFile。

如果用不正确的上下文显示对话框，Dialogs 方法将失败。例如用VisualBasic表达式Application.Dialogs （xlDialogDataLabel）.Show显示[设置数据标记格式]对话框编辑表框时，当前表必须是图表， 否则该方法失败。


DisplayBlanksAs 属性

返回或设置在图表上绘制空白单元格的方式（为 xlNotPlotted, xlInterpolated,或 xlZero之 一）。 可读写。


DisplayEquation 属性

如果趋势线方程式在图表上显示（与 R 平方值在相同的数据标记上），则为 True。设置该属性为 True， 则自动打开数据标记。可读写。


DisplayFullScreen 属性

如果 Microsoft Excel 处于全屏幕方式，则为 True。可读写。

附注

全屏幕方式是最大化应用程序窗口，覆盖整个屏幕并隐藏应用程序标题栏（在 Microsoft Windows 中）。在全屏幕和普通方式中，对工具栏，状态栏及编辑栏都具有相互独立的设置。


DisplayExcel4Menus 属性

如果 Microsoft Excel 显示 Excel 4.0 菜单栏，则为 True；


DisplayRecentFiles 属性

如果最近用过的文件（MRU）列表显示在文件菜单中，则为 True。可读写。


DisplayRSquared 属性

如果趋势线的 R 平方值在图表上显示（与方程式在相同的数据标记上）。设置该属性为 True，用以自动打开数据标记。可读写。


Duplicate 方法

复制对象并返回新复本地址。

语法

object.Duplicate

object

必选项。指定该方法所施加的对象。


Edit 方法

为指定的工具栏按钮启动按钮编辑器。

语法

object.Edit

object

必选项。指定 ToolbarButton 对象。

附注

此方法不能处理作为间隔的工具栏按钮，或具有颜色表和列表的工具栏按钮（如“字体”或“样式”按钮）。


FindFile 方法

显示“打开文件”对话框。

语法

object.FindFile

object

必选项。指定 Application 对象。

附注

此方法显示“打开文件”对话框，并允许用户打开一个文件。如果一个新文件被成功地打开，此方法将返回 True。如果用户取消了对话框， 此方法将返回 False。


Forward 属性

返回或设置趋势线向前扩展的周期数（或散点图上的单位数）。可读写。


HasTitle 属性

如果坐标轴或图表有可见标题，则为 True。可读写。

附注

坐标轴标题为 AxisTitle对象。

图表标题为 ChartTitle 对象。


InsertFile 方法

在模块表后端添加某文件的文本。

语法

object.InsertFile(fileName, merge)

object

必选项。指定 Module 对象。

fileName

必选项。指定要插入的含有文本的文件名。

merge

可选项。如果为 True，则归并新文件，以便使所有声明位于模块表顶端，所有过程位于声明下面。如果为 False 或省略，新文件将在插入点插入。

附注

不能在正运行的代码模块表中插入文本。该方法除用于运行过程以外还用于运行含有代码的模块表，该代码入栈等待，直到当前过程返回。


Intercept 属性

返回或设置趋势线与数值轴的交叉点位置。可读写。

有关 Visual Basic 中 Intercept 工作表函数的用法，请参见 在 Visual Basic 中使用工作表函数。

附注

设置该属性将使 InterceptIsAuto属性设置为 False。


InterceptIsAuto 属性

如果趋势线与数值轴的交点是由回归法自动确定的，则为 True。可读写。

附注

设置 Intercept属性将使本属性的设置为 False。


LargeButtons 属性

如果 Microsoft Excel 使用大工具栏按钮，则为 True。如果 Microsoft Excel 使用一般工具栏按钮，则为 False。可读写。


MacroType 属性

返回或设置名字的引用内容，如下表所示。可读写。

值	含义

xlCommand	名字是用户定义的宏。

xlFunction	名字是用户定义的函数。

xlNone	名字既不是函数也不是宏。


MenuItems 方法

存取器。在菜单上返回单个菜单项（MenuItem对象或Menu对象，语法1），或返回菜单项集合 （MenuItems 对象，语法2）。只读。

此方法当菜单项是一个命令或分隔号栏时，将返回 MenuItem 对象；当菜单项是一个子菜单名时，将返回 Menu 对象。

语法 1

object.MenuItems(index)

语法 2

object.MenuItems

object

必选项。指定 Menu 对象。

index

对语法1为必选项。指定菜单项名或编号。

附注

若要返回子菜单上的菜单项，请使用 MenuItems 方法两次。下例为 mySubMenu 子菜单的 mySubMenuItem 子菜单项设置 Checked 属性。

MenuBars(xlModule).Menus("myMenu").MenuItems("mySubMenu") _

.MenuItems("mySubMenuItem").Checked = True


Menus 方法

存取器。在菜单栏上返回单个菜单（Menu对象，语法1），或返回菜单集合 （Menus对象，语法2）。只读。

语法 1

object.Menus(index)

语法 2

object.Menus

object

必选项。指定 MenuBar 对象。

index

对语法1为必选项。指定字符串型的菜单名或菜单编号。例如，在“工作表”菜单栏，使用 Menus(“帮助”)或 Menus(8) 返回帮助菜单。


NameIsAuto 属性

如果 Microsoft Excel 自动确定趋势线名字，则为 True。可读写。


Object 属性

返回与 OLE 对象相关联的 OLE 自动化对象。只读。


OLEObjects 方法

存取器。在图表或工作表上返回单个 OLE 对象( OLEObject，语法 1)或 OLE 对象集合( OLEObjects 集合，语法 2)。只读。

语法 1

object.OLEObjects(index)

语法 2

object.OLEObjects

object

必选项。指定 Chart, DialogSheet, 或 Worksheet 表对象。

index

对语法1为必选项。指定 OLE 对象名或编号。


OLEType 属性

如果对象是链接的(存在于文件外)，则返回 xlOlELink。如果对象是嵌入的(完全包含在文件内)，则返回 xlOLEEmbed。只读。


Pattern 属性

返回或设置内部图案。可读写。

注释

该属性可具有下列值之一。


Period 属性

返回或设置趋势线周期(仅用于移动平均趋势线;其 Type 属性应为 xlMovingAvg )。可读写。


PlotVisibleOnly 属性

如果仅绘制可见单元格，则为 True。(如果可见和隐藏的单元格均绘制，则为 False。)可读写。


PrintArea 属性

以字符串形式设置或返回打印区域，该字符串为宏语言中的 A1 式样引用。可读写。

注释

当打印区域为整个表时，该属性设置为 False 或空字符串("")。该属性仅用于工作表页面。


PrintTitleColumns 属性

用宏语言中有 A1式样注释的字符串，返回或设置列，此列含有每页左边需重复的单元格。可读写。

注释

如果仅指定列或列集合的一部分，Microsoft Excel 将其扩展至全部列。

要关闭标题列，请设置该属性为 False 或为空字符串("")。

该属性仅用于工作表页面。


PrintTitleRows 属性

用宏语言中有A1式样注释的字符串，返回或设置行，此行含有在每页顶端重复的单元格。可读写。

注释

如果仅指定行或行集合的一部分，Microsoft Excel 将其扩展至全部行。

要关闭标题行，请设置该属性为 False 或为空字符串("")。

该属性仅用于工作表页面。


VisibleRange 属性

存取器。返回窗口或分割区域中可见的单元格 Range，如果行或列部分可见，则其包含在区域内。只读。


RefersTo 属性

返回或设置含有引用公式的字符串。此字符串要以A1式样注释，以宏语言编辑器中的语言编写，以等号开头。可读写。


ShowDetail 属性

如果为指定的区域扩展分级显示(显示列或行的详细信息)，则为 True。指定区域应是分级显示中单个摘要列或行。可读写。

对于 PivotItem 对象(或是数据透视表中的 Range 对象)，如果数据透视项正显示明细数据，则该属性为 True。

注释

如果指定的区域不在数据透视表中，则下列说明有效：

区域应在单个摘要行(列)中。

如果任意子行(列)隐藏，该属性将返回 False。

设置该属性为 True，等价于取消隐藏摘要行(列)上的所有子行(列)。

设置该属性为 False，等价于隐藏摘要行(列)上的所有子行(列)。

如果指定的区域在数据透视表中，且区域邻接，则一次可为多个单元格设置该属性。返回该属性时，区域应为单个单元格。


TransitionMenuKeyAction 属性

当替换菜单键按下时( xlExcelMenus 或 XILotusHelp)，返回或设置该操作。可读写。此属性在 Apple Macintosh 机上不能设为 xlLotusHelp 可读写。


Update 方法

更新链接。

语法

object.Update

object

必选项。指定 OLE 对象。


Verb 方法

发送动词给指定的 OLE 对象服务器

语法

object.Verb(verb)

object

必选项。指定 OLE 对象。

verb

可选项。OLE 对象的服务器应作用于其上的动词。如果该参数省略，则发送默认动词。有效的动词由对象的源应用程序确定。OLE 对象的典型动词是 Open 和 Primary(分别用常量 xlOpen 和 Primary 表示)。


WallsAndGridlines2D 属性

如果在三维图上以二维方式绘制网格线，则为 True。可读写。


AddMenu 方法

在菜单中添加新的子菜单。也可通过设置参数 restore 为 True，恢复删除的内部子菜单。

语法

object.AddMenu(caption, before, restore)

object

必选项。对象 MenuItems 。

caption

必选项。新子菜单的标题。在存取键字母前加入“&”可建立新的存取键。

before

可选项。如果该参数是现存的，指定菜单项，在其前插入子菜单。可以是包含菜单项标题的字符串〈不含“＆”〉，或者是编号，指示菜单项位置或者菜单项引用。

restore

可选项。如果参数为 True，caption 恢复 Microsoft Excel命名的被删除子菜单。如果为 False 或省略，Microsoft Excel 添加新的子菜单。除非使用 before 指定位置，被恢复子菜单将置于菜单末尾。


AdvancedFilter 方法

基于条件区域序列的筛选结果或副本。如果初始选定为单选单元格，则使用当前区域。

语法

object.AdvancedFilter(action, criteriaRange, copyToRange, unique)

object

必选项。对象 Range。

action

必选项。指定操作〈 xlFilterInPlace 或者 xlFilterCopy 〉。

criteriaRange

可选项。条件区域。如果忽略，则无条件。

copyToRange

如果 action 是 xlFilterCopy ，为必选项。否则忽略。复制行目标区域。

unique

可选项。True 表示唯一记录，False 表示所有记录满足条件。如果省略，假定为 False。


Caller属性

返回有关调用 Visual Basic 的信息〈参阅注释〉。只读。

注释

返回有关调用 Visual Basic 的信息，如下表所示。

调用者	返回值
输入单个单元格的自定义函数	指定单元格的 Range
单元格序列数组公式中的自定义函数	指定单元格序列的 Range
Auto_Open, Auto_Close, Auto_Activate, 或 Auto_Deactivate 宏	以文本形式返回的文档名
菜单命令	三个元素的数组，指定命令位置号，菜单号及菜单栏号
图形对象	以字符串形式返回指定对象的标识符
工具栏按钮	二个元素的字符串数组，指定工具位置号及工具栏号
OnDoubleClick 或者 OnEntry 属性设置的宏	宏使用的图表对象标志符名字或单元格引用名
宏对话框〈工具菜单〉，或以上未描述的调用	#REF! 错误值
该属性返回有关调用Visual Basic 方式的信息，而不是调用当前过程方式的信息。例如，如果用户单击调用宏１的按钮４，而宏１又调用宏２，宏２使用属性 Caller，则该属性返回“按钮４”。


CheckSpelling 方法

语法１：对象拼写检查。无返回值； Microsoft Excel 显示拼写检查对话框。

语法２：单个单词拼写检查。如果字典中存在，返回 True，否则，返回 False。

语法 1

object.CheckSpelling(customDictionary, ignoreUppercase, alwaysSuggest)

语法 2

object.CheckSpelling(word, customDictionary, ignoreUppercase)

object

必选项。方法应用的对象。用Application对象检查单个单词〈语法２〉。

customDictionary

可选项。如果主字典中无此单词，字符串指明检查的自定义字典文件名。如果省略，则使用当前指定字典。

ignoreUppercase

可选项。如果为 True，Microsoft Excel省略大写单词。如果为 False，检查所有大写单词。如果省略，则使用当前设置。

alwaysSuggest

可选项。如果为 True，当发现错误拼写，Microsoft Excel显示一列可供选择拼写。如果为 False，Microsoft Excel 等待输入正确拼写。如果省略，使用当前设置。

word

必选项〈仅与 Application 对象共用〉。待检查单词。

注释

使用Worksheet.CheckSpelling检查页眉、页脚及对象。

使用 Worksheet.Cells.CheckSpelling仅检查单元格及附注。


Colors 属性

在调色板中为工作簿返回或设置颜色数组〈1-56〉。可读写。


DisplayRightToLeft 属性

如果窗口从右至左而不是从左至右显示，则为 True。可读写。

注释

仅有阿拉伯语及希伯莱语Microsoft Excel提供此属性。


FillAcrossSheets 方法

将区域复制到其它工作簿的相同区域。

语法

object.FillAcrossSheets(range, type)

object

必选项。对象Sheets 或 Worksheets。

range

必选项。指定填充本组工作簿的区域。必须是来自工作簿集的区域。

type

可选项。指定复制区域方式〈 xlAll, xlContents,或者 xlFormulas 之一〉。如果忽略，默认值为 xlAll 。


Name 属性

返回或设置对象名称。参阅注释。

注释

如下所示，属性含义取决于对象。Range 对象名为对象 Name 。对于其它对象，名字为字符串。

对象	名称
AddIn	加载宏的文件名称，不包含磁盘路径。只读。
Application	应用程序名称。只读。
Chart	如果图表是工作簿一页，则为工作表选项卡所示的页名。如果图表为嵌入对象，则为对象名称。可读写。
控制项或图形对象	宏语言写的控制项或图形对象名称。可读写。
DataLabel	数据标志名称。只读。
DialogSheet, Module, Worksheet	工作表选项卡所示的工作表名称。可读写。
Font	字体名称。
Legend	图例名称。只读。
Name	自身名称。如果为内部名称，则译为宏语言。可读写。
OLEObject	对象名称。可读写。
PivotField	数据透视表字段名。可读写。
PivotItem	数据透视表字段项目名称。可读写。
PivotTable	数据透视表名称。可读写。
Range	区域名称〈Name 对象〉。对此属性赋值可定义名称。如果区域有若干名称，返回第一个。可读写。
Scenario	方案名。可读写。
Series	系列名称。可读写。
Style	样式名称。如果是内部样式，用宏语言返回样式名。只读。
Toolbar	工具栏名称，以字符串表示。如果是内部工具栏，用用户语言返回名称。只读。
ToolbarButton	按钮名称，以字符串表示。可读写。
Trendline	图例中的趋势线名称。可读写。
Workbook	不包含磁盘路径的工作簿名称。只读。


NameLocal 属性

用用户语言返回或设置对象名称。对于 Name 可读写，对于 Style 只读。

注释

如果是内部样式，该属性用当前语言环境返回样式名称。


Range 方法

存取器。返回代表单元格或单元格区域的 Range 对象。

语法 1

object.Range(cell1)

语法 2

object.Range(cell1, cell2)

object

对 Range 和 Worksheet 为必选项，对 Application 为可选项。此方法应用的对象。

cell1

对语法1必选项。区域名称。必须为宏语言写成的A1样式引用。可包含区域操作符运算符‘‘ (空格)及联合运算符‘，’(逗号)及可忽略的美元符。区域的任意部分可使用局部定义的名称。如果使用名称，该名称假定以宏语言表示。

cell1, cell2

语法２必选项。区域左上角和右下角的单元格。每个单元格可为 Range，仅包含单个单元格〈或者一整行，一整列)，或者是宏定义的单个单元格名称。

注释

当没有对象限制时，此方法是ActiveSheet.Range快捷键〈从当前工作表返回区域；如果当前工作表不是工作簿时，该方法失效〉。

用于 Range 对象时，此方法与 Range 对象相关。例如，如果选项是单元格C3,Selection.Range("B1")返回单元格D3，因为其与 Selection 属性返回的 Range 对象相关。此外，代码 ActiveSheet.Range("B1")总返回单元格B1。


RecordMacro 方法

如果宏记录器打开，记录代码。

语法

object.RecordMacro(basicCode, xlmCode)

object

必选项。Application 对象。

basicCode

可选项。如果宏记录器正记录 Visual Basic  模块表，指定被记录 Visual Basic 代码的字符串。字符串记录于一行中。如果字符串包含回车〈ASCII 码字符１０，或代码Chr$(10)〉。该字符串记录于多行上。

xlmCode

可选项。如果宏记录器正在记录4.0版Microsoft Excel 的宏表，指定被记录公式的字符串。该字符串记录入单个单元格。如果字符串不以等号起头，则记录备注。

注释

RecordMacro 方法不能记录入当前模块〈 RecordMacro 方法所在的模块〉。

如果省略 RecordMacro ，并且应用程序正记录入Visual Basic, Microsoft Excel 记录 Application.Run 语句。

如果省略 xlmCode，并且应用程序正记录入 4.0版 Microsoft Excel， Microsoft Excel记录 RUN 宏函数。

为防止记录〈例如，用户取消对话框〉，使用两个空字符串调用此函数。


Show 方法

DialogSheet 对象(语法１〉：运行对话框。该方法直到关闭或隐藏对话框后才返回调用过程，但是，当调用过程暂停时，指定到对话框控制项的事件过程仍将运行。

Range 对象〈语法１〉：滚动当前窗口，将区域移动到视图范围。范围必须包含单元格，该单元格作为当前文档一部分。

Scenario 对象(语法１〉：通过在工作簿插入方案变量值的方法显示方案。方案中的受影响单元格为可变单元格。

Dialog 对象(语法２〉：显示对话框并等待输入数据。

语法 1

object.Show

语法 2

object.Show(arg1, arg2, ..., arg30)

object

必选项。对于语法１，DialogSheet, Range, 或 Scenario对象。对于语法２，Dialog 对象。

arg1, arg2, ..., arg30

可选项。内部对话框专用，提供命令初始化参数。

注释

对于内部对话框，用户点击〔确定〕时返回 True，点击〔取消〕时返回 False。

单个对话框能同时改变许多属性。例如，Format Cells 单元格格式对话框能改变FontxlobjFont>langref 对象的所有属性。

对于一些内部对话框〈例如，打开〉，可用arg1, arg2, ..., arg30设置初始化值。为查找设置参数，参阅 内置对话框参数列表 。 例如，查找常数 xlDialogOpen 参阅打开对话框。查阅内部对话框详细信息，参阅 Dialogs。


ShowAllData 方法

显示当前筛选过的所有数据清单。如果使用自动筛选，此方法更改箭头为"All"。

语法

object.ShowAllData

object

必选项。Worksheet 对象。


Value 属性

Value属性应用的对象决定了它的意义，如下表所示。

Object	Value

Application	总返回"Microsoft Excel".只读。

Borders	Borders.LineStyle 的同意词。

CheckBox	指示选择框状态〈xlOn, xlOff, 或xlMixed〉。

DropDown, ListBox	指示列表被可选项〈其值介于１和可选项数目之间〉。禁止用于多项选择列表框；亦可使用 Selected 方法。

Name	包含公式的字符串，用于定义名称。使用以等号起头的A1式样表示的宏语言。

OptionButton	指示按钮状态〈 xlOn 或 xlOff )。

PivotField	数据透视表字段名称。

PivotItem	数据透视表字段选项名称。

PivotTable	数据透视表名称。

Range	单元格值。如果单元格空，返回 Empty。可使用 IsEmpty!AL(vafctIsEmpty, JUMP, xlmscALERRORVA) 函数测试。如果 Range 对象包含多个单元格，返回数组。使用函数 IsArray!AL(vafctIsArray, JUMP, xlmscALERRORVA) 测试该状态。

ScrollBar	滚动框位置。

Spinner	区域最大最小限之间的数值。

Style	类型名称。


Accelerator 属性

为控制项返回或设置键盘加速键字符。可读写。

注释

当对话正在运行时，用户可使用控制项的加速键字符与ALT键的组合激活控制项。

与第一个加速键文本字符匹配的控制项第一个文本字符将加下划线。下划线比较区分大小写，但是当键按下时，不考虑大小写。

在 Apple Macintosh上时，当 CommandUnderlines 属性为 True时，仅在加速键字符下加下划线。如果属性为 False,则保留字符，但不加下划线。

如果加速键字符不和任何控制项文本匹配，加速键为非功能键。


ActiveChart 属性

存取器。返回代表当前图表〈嵌入式图表或图表工作表〉的 Chart 对象。选择或激活嵌入式图表后，可认为它是当前图表。如果无当前图表，属性返回 Nothing，只读。

注释

如果不指定对象限定词，属性在当前工作簿中返回当前图表。


ActiveDialog 属性

存取器。返回最顶端当前运行的 DialogSheet 对象。如果无运行对话工作表，属性返回 Nothing。注意，活动对话工作表不是必需的。只读。


AddChartAutoFormat 方法

在可用图表自动套用格式序列中，加入自定义图表自动套用格式。

语法

object.AddChartAutoFormat(chart, name, description)

object

必选项。Application 对象。

chart

必选项。当使用新的图表自动套用格式时，包含此格式的 Chart 对象将被应用。

name

必选项。代表自动套用格式的字符串。

description

可选项。描述自定义自动套用格式的字符串。


AddFields 方法

在数据透视表中添加行。列和页。

语法

object.AddFields(rowFields, columnFields, pageFields, addToTable)

object

必选项。PivotTable对象。

rowFields

可选项。指定数据透视表字段名称〈或字段名称数组〉作为行添加。

columnFields

可选项。指定数据透视表字段名称〈或字段名称数组〉作为列添加。

pageFields

可选项。指定数据透视表字段名称〈或字段名称数组〉作为页添加。

addToTable

可选项。如果为 True,在数据透视表中添加字段(不替代已有字段)。如果为 False，新字段替换已存在字段。如果不指定参数，默认值为 False。

注释

必须指定一个字段参数。


AddItem 方法

添加项到列表框或下拉式列表框中。

语法

object.AddItem(text, index)

object

必选项。方法应用的对象。

text

必选项。指定要添加的字符串。

index

可选项。指定要添加的新输入项位置。如果列表的输入项少于指定的索引，从序列末尾添加空白项到指定位置。如果省略此参数，此项添加在以已存在序列末尾。

注释

此方法消除 ListFillRange 属性指定的任何区域。


AutoFilterMode 属性

如果自动筛选的下拉箭头当前显示在工作表中，则为 True 。此属性与 FilterMode 属性独立。可读写。

注释

如果当前显示下拉箭头，则属性为 True。可通过将属性设置为 False以取消箭头，但禁止设置为 True。可使用 AutoFilter 方法筛选序列表并显示下拉箭头。


AutoOutline 方法

自动为指定区域建立分级显示。如果区域是单个单元格，Microsoft Excel 为整个工作表建立分级显示。新分级替换所有已存在的分级显示。

语法

object.AutoOutline

object

必选项。Range 对象。


BorderAround 方法

给区域添加边框并为新边框设置 Color, LineStyle, 和Weight 属性。

语法

object.BorderAround(lineStyle, weight, colorIndex, color)

object

必选项。Range 对象。

lineStyle

可选项。指定边框线类型。为xlContinuous, xlDash, xlDot, xlDouble之一。

weight

可选项。指定边框粗细。可为xlHairline, xlThin, xlMedium, xlThick之一。如果省略，假定为xlThin。

colorIndex

可选项。将边框颜色作为颜色索引指定到当前调色板。可为1至56中的一个数，或者使用窗口文本颜色的特殊常数 xlAutomatic。

color

可选项。指定边框颜色为 RGB 值。

注释

可指定 colorIndex 或者 color 之一，但不能同时指定。如果不指定任何参数，Microsoft Excel 使用颜色索引 xlAutomatic。

同样，可指定 lineStyle 或者 weight 之一，但不能同时指定。如果不指定任何参数，Microsoft Excel 建立默认边框。

此方法分级显示整个区域但不填充。为设置所有单元格边框，必须为 Borders 集设置 Color, LineStyle, 和 Weight 属性。为消除边框，必须为区域所有单元格设置将 LineStyle 属性设置到 xlNone 。


CancelButton 属性

仅用于用户定义的对话框按钮。当按下 ESCAPE 键或选择系统菜单关闭对话框及菜单项，如果自动选择按钮，则为 True。当按下 ESCAPE 键，Cancel 按钮被选，Microsoft Excel 运行按钮OnAction 属性确定的宏。

注释

如果即使使用 ESCAPE 键或系统菜单取消对话框，也希望运行一些代码，则为一按钮设置此属性。

任何情况下，对话框中仅能有一个按钮的 CancelButton 属性设置为 True。设置一个将重新设置对话框工作表所有按钮属性。


ChangeLink 方法

从一文档更改链接到另一文档。

语法

object.ChangeLink(name, newName, type)

object

必选项。Workbook 对象。

name

必选项.指定 Microsoft Excel 或 DDE/OLE 要更改的链接名称,与 LinkSources 方法返回值相同。

newName

必选项。链接的新名称。

type

可选项。指定链接类型〈xlExcelLinks 或者 xlOLELinks)。如果省略，默认值为 xlOLELinks。DDE 及OLE 链接都使用 xlOLELinks。


ChartWizard 方法

更改给定图表属性。无需设置所有单个属性而快速格式化图表。此方法为非相互作用，仅更改指定属性。

语法

object.ChartWizard(source, gallery, format, plotBy, categoryLabels, seriesLabels, hasLegend, title, categoryTitle, valueTitle, extraTitle)

object

必选项。Chart 对象。

source

建立图表时为必选项；包含图表源数据的区域；如果编辑已存在图表，为选择项；编辑当前图表工作表或当前工作表。

gallery

 可选项。指定图表类型( xlArea, xlBar, xlColumn, xlLine, xlPie, xlRadar, xlXYScatter, xlCombination, xl3DArea, xl3DBar, xl3DColumn, xl3DLine, xl3DPie, xl3DSurface, 或 xlDoughnut 之一).

format

可选项。为内部自动套用格式指定选项号。可从1至10之一，取决于图表库类型。如果省略此参数，Microsoft Excel根据图表库类型及数据资源选择默认值。

plotBy

可选项。指定每一系列的数据在行或在列中〈xlRows 或者 xlColumns)。

categoryLabels

可选项。整数，它指定包含分类标志的源区域中行或列编号。有效值在0到一小于相应分类或系列的最大值之间。

seriesLabels

可选项。整数，在包含系列标志的源区域内指定行或列数。合法值为０至一小于相应分类或系列最大值。

hasLegend

可选项。包含图例则为 True 。

title

可选项。图表标题文本。

categoryTitle

可选项。分类轴标题文本。

valueTitle

可选项。数值轴标题文本。

extraTitle

可选项。3维图表的系列轴标题，或2维图表次数值轴。

注释

如果省略 source 并且或者选定区域不是当前工作表的嵌入图表或者当前工作表不存在，方法失败并出现错误。


CheckBoxes 方法

存取器。返回对象，表示单个复选框〈语法１中 CheckBox 对象〉或者工作表中的一组复选框〈语法２中 CheckBoxes 对象〉。

语法 1

object.CheckBoxes(index)

语法 1

object.CheckBoxes

object

必选项。 Chart、 DialogSheet、 或 Worksheet 对象.

index

对语法1为必选项。指定复选框名称或编号〈可数组指定多个〉。


ClearOutline 方法

消除指定区域的分级显示。

语法

object.ClearOutline

object

必选项。 Range 对象.


ConsolidationFunction 属性

返回当前合并计算所用函数代码 ( xlAverage、xlCount、xlCountNums、xlMax、xlMin、xlProduct、xlStDev、xlStDevP、xlSum、xlVar、或 xlVarP之一〉。只读.


ConsolidationOptions 属性

返回合并计算选项 3 元素数组，如下表所示。元素为 True 表示此选项设置了。只读。

元素	含义

1	最高行标志。

2	最左列标志。

3	建立数据链接。


ConsolidationSources 属性

返回字符串数组，该数组为工作表当前合并计算的源工作表命名。如果工作表无合并计算，返回 Empty。


DefaultButton 属性

对于 Button 对象，如果是用户自定义对话框默认按钮，属性为 True。如果用户按下回车键，则选择默认按钮，并且，Microsoft Excel 运行按钮 OnAction 属性识别的宏。仅用于对话编辑表按钮。可读写。

对于 DialogSheet 对象，当对话框正在运行时，属性为默认按钮名称。可读写。

注释

不显示对话框时，此属性可与 Button 对象一起，用于返回或设置初始化默认按钮〈最初显示的对话框默认按钮〉。对话框中仅有一个可为默认按钮。设置此属性将重新设置对话框其它按钮。

如果对话框正在运行，在事件过程使用此属性返回或设置当前默认按钮。在此情况下，属性作为字符串是按钮 ID，并且应用于 DialogSheet 对象中。当对话框正在运行时，Button 对象禁止使用此属性。


DeleteChartAutoFormat 方法

取消可用图表自动套用格式系列的隐含图表自动套用格式。

语法

object.DeleteChartAutoFormat(name)

object

必选项。Application 对象.

name

必选项。指定待取消隐含自动套用格式名。


DialogFrame 属性

存取器。返回代表指定对话框编辑表的对话框边框的 DialogFrame 对象。只读。


DismissButton 属性

当单击按钮时，如果按钮自动关闭用户自定义对话框，则为 True。对话框编辑表上任意多个按钮可将 DismissButton 属性设置为 True。可读写。

注释

单击按钮，设置 DismissButton 属性为 True后，将进行以下三步：

1.	运行按钮 OnAction 过程。如果想验证任何自定义数据，则在此过程中执行。如果验证失败，可将 DismissButton 属性设置为 False，此时，对话框仍可见。切记，验证通过后需将 DismissButton 属性重新设置为 True。

2.	如果 OnAction 过程结束，并且对话框中的编辑框自动验证以确保它们包含 InputType 属性指定的数据类型。如果自动验证失败，Microsoft Excel显示警告，错误的编辑框变为焦点，但对话框仍保持可见。

3.	如果自动验证通过，对话框关闭，并且，Show 方法调用对话框编辑表返回 True。

如果对话框中所有按钮的 DismissButton 属性都没有设置为 True，必须显式调用 Hide 方法或者取消对话框。


DisplayClipboardWindow 属性

仅适用于 Apple Macintosh 机。如果剪贴板窗口可见，为 True。将属性设置为 True 以显示剪贴板窗口。可读写。

注释

在 Microsoft Windows 中,此属性保留其原值，但不起任何作用。


DisplayInfoWindow 属性

如果信息窗口可见则为 True。可将此属性设置为 True 以显示信息窗口。可读写。


DropDownLines 属性

返回或设置下拉式列表框显示的下拉式部分的列表线编号。可读写。

注释

Apple Macintosh 忽略此属性。


DropDowns 方法

存取器。返回对象，代表单个下拉式列表框控制项〈语法１中的 DropDown 对象〉或者工作表中下拉式列表框控制项集〈语法２中的 DropDowns 对象〉。

语法 1

object.DropDowns(index)

语法 2

object.DropDowns

object

必选项。 Chart, DialogSheet, 或 Worksheet 对象.

index

对语法1为必选项。指定下拉式列表框控制项名称或编号〈可用数组指定多项〉。


EditBoxes 方法

存取器。返回代表工作表中单个编辑框控制项〈语法１中的EditBox 对象〉或者编辑框控制项集〈语法２中的EditBoxes 对象〉。

语法 1

object.EditBoxes(index)

语法 2

object.EditBoxes

object

必选项。DialogSheet 对象.

index

对语法1为必选项。指定编辑框名称或编号〈可用数组指定多项〉。


EditionOptions 方法

为出版者或订购者在工作簿中设置选项。仅适用于运行系统７的 Apple Macintosh。

语法

object.EditionOptions(type, option, name, reference, appearance, chartSize, formats)

object

必选项。 Workbook 对象.

type

必选项。指定待改变的编辑类型(xlPublisher 或者xlSubscriber).

option

必选项。指定编辑设置信息类型。如果 type 是xlPublisher, option 可为xlCancel, xlSendPublisher, xlSelect, xlAutomaticUpdate, xlManualUpdate或者 xlChangeAttributes 之一。如果type 是 xlSubscriber, option 可为 xlCancel, xlUpdateSubscriber, xlOpenSource, xlAutomaticUpdate 或者xlManualUpdate　之一。

name

可选项。作为 LinkSources 方法的返回项，指定编辑名称。如果省略 name，必须指定 reference。

reference

选择项〈如果不指定 name，则为必选项〉。在 R1C1 类型中指定为编辑引用。如果在工作簿中，多个出版者或订购者使用相同的编辑名称，或者省略参数 name,此参数为必选项。

appearance

可选项。如果 option 是 xlChangeAttributes,指定编辑内容显示在屏幕上(xlScreen)或者显示在打印机上(xlPrinter)。

chartSize

可选项。如果 option 是 xlChangeAttributes 并且被出版对象是图表，指定编辑对象大小〈xlScreen或者 xlPrinter〉。如果编辑对象不是图表，省略此参数。

formats

可选项。如果 option 是 xlChangeAttributes, 指定出版对象格式。可为 xlPICT, xlBIFF, xlRTF 或者 xlVALU 的任意组合。


Extend 方法

添加新数据点到已存在系列集中。

语法

object.Extend(source, rowcol, categoryLabels)

object

必选项。 SeriesCollection 对象.

source

必选项。指定作为 Range 或者数据点数组加到 SeriesCollection 对象中的新数据。

rowcol

可选项。指定新数值是在给定区域源的行〈xlRows〉还是在列〈xlColumns〉中。如果省略，Microsoft Excel 通过选定的区域或数组的维数或方向确定数值位置。如果源数据在数组中，忽略此参数。

categoryLabels

可选项。如果source是数组，忽略。如果第一行或第一列包含分类标题名称，为 True。如果第一行或第一列包含系列的第一个数据点，为 False。如果省略参数，Microsoft Excel 试图凭第一行或第一列的内容决定分类标题位置。


Focus 属性

返回或设置运行对话框的动态焦点，作为包含 ID 的字符串给具有焦点的控制项。具有焦点的控制项接受键盘输入，并且，由控制项中围绕控制项选定项的虚线矩形，可视地指明焦点。可读写。

注释

对话框没运行而读取或设置此属性时将导致错误。对话框运行时，设置此属性将焦点更改到指定控制项。仅有部分控制项接受焦点，并且，对话框管理器在特定条件下将拒绝移动焦点。读取此属性将返回使用焦点 控制项的 ID 。


GroupBoxes 方法

存取器。返回工作表中的代表单个组框控制项的对象〈语法１中的 GroupBox 对象〉或组框控制项集〈语法２中的 GroupBoxes 对象〉。

语法 1

object.GroupBoxes(index)

语法 2

object.GroupBoxes

object

必选项。hart, DialogSheet 或 Worksheet 对象.

index

对语法1为必选项。指定组框名称或编号〈可用数组指定多项〉。


HelpButton 属性

仅应用于用户自定义对话框按钮。如果为 True,按下帮助键将运行按钮 OnAction 属性标识的宏。如果为 False,按下帮助键无意义。帮助键在 Windows 下是 F1 ，在 Macintosh 中是 COMMAND+? 。可读写。

注释

任何时候，对话框中只有一个按钮的 HelpButton 属性能设置为 True；设置属性将重新设置对话框的其它按钮。

如果用户敲击无 Help 按钮对话框的帮助键，无效。


Hide 方法

隐藏对话框。如果对话框非当前显示，则出错误。

语法

object.Hide(cancel)

object

必选项。 DialogSheet 对象.

cancel

可选项。如果为 True，不验证编辑框内容便取消对话框。如果为 False 或省略，在返回前验证编辑框内容。任何情况下，不运行任何指定到 Cancel 或者 OK 按钮的宏。

注释

如果 cancel 是 False, 并且对话框中编辑区域不能被验证，返回 False，并且，对话框不能存在。否则，返回 True。


InnerDetail 属性

对于最内部行或列字段，当 ShowDetail 属性为 True 时，返回或者设置字段名称。可读写。


InputType 属性

返回或者设置应用于编辑框内容的输入有效权限类型〈xlFormula, xlInteger, xlNumber, xlReference, xlText之一〉。可读写。


Labels 方法

存取器。返回对象，代表工作表中单个标题〈语法１中的 Label 对象〉或者标题集〈语法２中的 Labels 对象〉。

语法 1

object.Labels(index)

语法 2

object.Labels

object

必选项。 Chart, DialogSheet or Worksheet 对象.

index

对语法1为必选项。指定标题名称或者编号〈可用数组指定多项〉。


LargeChange 属性

返回或者设置页滚动的滚动框增量或减量〈当用户单击滚动条区域〉。可读写。


LegendEntries 方法

存取器。返回代表单个图例输入项〈语法１中的LegendEntry 对象)或图例输入项集〈语法２中的 LegendEntries 对象〉。

语法 1

object.LegendEntries(index)

语法 2

object.LegendEntries

object

必选项。Legend 对象.

index

对语法1为必选项。指定图例输入项编号。


LegendKey 属性

存取器。返回 LegendKey 对象，代表与输入项相关的图例快捷键。


LinkedCell 属性

返回或者设置与控制项值链接的单元格或单元格组〈作为字符串引用〉。

注释

不可用于多重选择列表框。


LinkedObject 属性

返回与编辑框，列表框或下拉式控制项链接的对象名称。对于 DropDown 对象，如果可编辑，返回下拉式控制项名称，否则，返回 False。只读。


LinkInfo 方法

返回链接日期及更新状态信息。

语法

object.LinkInfo(name, linkInfo, type, editionRef)

object

必选项。 Workbook 对象.

name

必选项。指定链接名称，如同 LinkSources 方法返回值。

linkInfo

必选项。指定返回链接信息类型〈xlUpdateState或者xlEditionDate〉。xlEditionDate 只适用于编辑。对于 xlUpdateState,果自动更新链接，方法返回１，如果手动更新，返回２。

type

可选项。指定返回链接类型。可为 xlOLELinks(处理 DDE 链接)，xlPublishers 及 xlSubscribers之一。

editionRef

可选项。如果链接为版本，此参数将版本引用指定为 R1C1 类型形式。如果工作簿中多个出版者或订购者同名，本参数为必选项。


LinkSources 方法

在工作簿中返回链接数组。数组中的名称为被链接文档名称、版本、DDE  或者 OLE 服务器名称。如果无链接，返回 Empty 。

语法

object.LinkSources(type)

object

必选项。Workbook 对象.

type

可选项。指定返回链接类型。可为 xlExcelLinks, xlOLELinks (也处理 DDE 链接), xlPublishers, 或者 xlSubscribers.

注释

除出版者和订购者之外，数组格式是所有类型的一维数组。返回的字符串包含相应于链接类型注释的链接源名称。例如，DDE 链接使用语法"Server|Document!Item" 。

对于出版者或订购者链接，返回二维数组。数组第一列包含版本名称，第二列包含文本形式的版本引用。


List 属性

在列表框或下拉式列表框中, 将文本输入项返回或设置成字符串数组( 语 法１)。如果列表框无输入项，返回错误值。可读写。

语法 1

object.List

语法 2

object.List(index)

注释

设置此属性将消除 ListFillRange 属性指定的所有区域。


ListBoxes 方法

存取器。返回对象，代表工作簿单个列表框控制项(ListBox 对象 ，语法 1)或者列表框控制项集( ListBoxes 对象，语法 2)。

语法 1

object.ListBoxes(index)

语法 2

object.ListBoxes

object

必选项。 Chart, DialogSheet, 或Worksheet 对象.

index

对语法1为必选项。指定列表框名称或数目(可用数组指定多项)。


ListCount 属性

在列表框或下拉式列表框中返回输入项的数目。如果列表框中没有输入项，返回零。只读。


ListFillRange 属性

将用于填充列表框的工作簿区域返回或设置成字符串。该设置，将破坏列表框中所有列表。可读写。

注释

Microsoft Excel读取区域所有单元格内容并将其输入列表框。该列表将追踪区域单元格的更改。

如果是AddItem 方法 建立的列表框，属性返回空字符串("")。


ListIndex 属性

返回或设置列表框或下拉式列表框的当前可选项索引。可读写。

注释

对多重选择列表框不能使用此属性，而应使用 Selected 属性。


Max 属性

返回或设置滚动条或旋转器区域的最大值。滚动条或旋转器的值应不大于最大值。可读写。

需要有关使用 Max 工作簿的说明，参阅 在 Visual Basic 中使用工作表函数。

注释

Max 属性的值必须大于 Min 属性的值。


Merge 方法

语法 1：将一个工作簿的方案合并到另一方案组。

语法 2：将另一个工作簿的类型合并到类型组。

语法 1

object.Merge(source)

语法 2

object.Merge(workbook)

object

必选项。 Scenarios 或 Styles对象、

source

对语法1为必选项。Worksheet 对象或包含待合并方案的工作表名称。

workbook

对语法2为必选项。包含待合并类型的 Workbook 对象。


Min 属性

返回或设置滚动条或旋转器区域的最小值。其取值不小于该最小值。可读写。

关于使用 Min 的 Visual Basic 工作表函数使用信息，参阅 在 Visual Basic 中使用工作表函数。

注释

Min 属性的值必须小于 Max 属性的值。


MultiLine 属性

如果工作框多行编辑功能有效，为 True 。可读写。


OpenLinks 方法

打开单个或多个链接的支持文档。

语法

object.OpenLinks(name, readOnly, type)

object

必选项。Workbook 对象。

name

必选项。 LinkSources 方法返回时(可用数组指定多项)，指定 Microsoft Excel 或 DDE/OLE 链接名称。

readOnly

可选项。如果文档打开为只读，为True 。如果省略，为False 。

type

可选项。指定链接类型。如果省略，可为 xlExcelLinks, xlOLELinks (也处理 DDE 链接), xlPublishers, 或 xlSubscribers. xlExcelLinks 之一。


OptionButtons 方法

存取器。返回对象，代表工作表中单个选项按钮控制项(OptionButton 对象，语法 1)或选择按钮控制项组 ( OptionButtons 对象, 语法2) 。

语法 1

object.OptionButtons(index)

语法 2

object.OptionButtons

object

必选项。 Chart, DialogSheet, 或 Worksheet 对象。

index

对语法1为必选项。指定选项按钮名称或数目(可用数组指定多项)。


ProtectScenarios 属性

如果保护工作表的方案，则为“True”，只读。


RemoveAllItems 方法

从列表框或一拉式列表框中删除所有项。

语法

object.RemoveAllItems

object

必选项，方法使用的对象。


RemoveItem 方法

从列表框或下拉式列表框中删除单个或多个项。

语法

object.RemoveItem(index, count)

object

必选项，方法使用的对象。

index

必选项，指定要删除的第一项的序号，有效值是从1到列表中的项数(ListCount 属性返回)

count

可选项，指定要删除的项数，在项 index 表示开始值，如果省略该变量，则只删除一项，如果 inedx+Count 超出了列表中项的总数，从 index 到列表底部的所有项将被删除，而没有错误。

注释

如果已定义了 ListFillRange 对象，该方法失败。


ScrollBars 方法

存取器，返回工作表中表示单个滚动条控制项的对象(ScrollBar 对象，语法1)或滚动条对控制 的集合(ScrollBars 对象，语法2)

语法 1

object.ScrollBars(index)

语法 2

object.ScrollBars

object

必选项，Chart,DialogSheet,Worksheet 对象。

index

对语法 1 必选，指定滚动条的名称或数目。(用数组可以指定多个)。


SetInfoDisplay 方法

设置将在信息窗口显示的信息(指定的窗口对象必须是信息窗口)。

语法

object.SetInfoDisplay(cell, formula, value, format, protection, names, precedents, dependents, note)

object

必选项。Window 对象。

cell

可选项，要显示单元格的引用文本则为“True”。

formula

可选项。为 True 则显示单元公式。

value

可选项。为 True 则显示单元值。

format

可选项。为 True 则显示单元格式化信息。

protection

可选项。为 True 则显示单元保护信息。

names

可选项。为 True 则显示单元命名信息。

precedents

可选项。设置是否显示引用单元格( xlNone, xlDirect, 或xlAll 之一).

dependents

可选项。设置是否显示从属单元格( xlNone, xlDirect, 或xlAll 之一).

note

可选项。为 True 则显示注释。

注释

如果该方法在其它窗口而不是信息窗口中使用，会显示出错信息 。


SetLinkOnData 方法

设置运行的宏或程序的名称，而不论是否更新链接。

语法

object.SetLinkOnData(name, procedure)

object

必选项。Workbook 对象。

name

必选项。指定从 LinkSources 方法返回的 Microsoft Excel 或 DDE/OLE 链接的名称。

procedure

可选项。 指定更新链接时，运行程序的名称程序可以是 Microsoft Excel 4.0 宏或者是 Visual Basic 程序，如果设置该变量为空链，表示更新链接时，没有运行程序。

注释

使用该方法可以设置指定链接的。如果当更新链接时，希望得到通知，可以使用 OnData 属性。


ShortcutKey 属性

返回或在自定义 Microsoft Excel 4.0 宏程序中定义名称的快捷键。


ShowToolTips 属性

若工具条显示则为 True。可读写。


SizeWithWindow 属性

如果将图表放大到图表工作表窗口的大小，则为“True”。如果图表大小没有放大到窗口的大小，则为“False”。只用在工作簿中的图表工作表上，而不是嵌入图表中读写。


SmallChange 属性

返回或设置滚动条的数目，或线性滚动微调项的增或减量，(当用户单击箭头时)读写。


Spinners 方法

存取器，返回工作表中表示单个微调控制项的对象(Spinner 对象，语法1)或微调控制项的集合(Spinners 对象，语法2)

语法 1

object.Spinners(index)

语法 2

object.Spinners

object

必选项。Chart, DialogSheet, 或 Worksheet 对象。

index

对语法1为必选，指定微调项的名称(如为数组，可指定多个)。


TextToColumns 方法

将包含多列文本的单元格分为多列。

语法

object.TextToColumns(destination, dataType, textQualifier, consecutiveDelimiter, tab, semicolon, comma, space, other, otherChar, fieldInfo)

object

必选项。Range 对象。

destination

可选项。指定 Microsoft Excel 放置结果的区域，如果区域多于一个单元格，则使用区域左上角单元格。

dataType

可选项。 指定拆分到各列的文本格式。可以是 xlDelimited 或 xlFixedWidth。默认是 xlDelimited。

textQualifier

可选项。 指定文本的标识符。可以是 xlDoubleQuote，xlSingleQuote，或 xlNone。默认的是 xlDoubleQuote。

consecutiveDelimiter

可选项。如果连续的分隔认为是单个分隔符，则为“True”。默认值为“false”。默认是 False。

tab

可选项。 如果 dataType 是 xlDelimited 且 tab 字符作为一个分隔符，则为“True”。默认值为“false”。默认是 False。

semicolon

可选项。如果 dataType 是 xlDelimited 且分号作为一个分隔符，则为“True”。默认值为“false”。默认是 False。

comma

可选项。如果 dataType 是 xlDelimited 且逗号作为一个分隔符，则为“True”。默认值为“false”。默认是 False。

space

可选项。如果 dataType 是 xlDelimited 且空格作为一个分隔符，则为“True”。默认值为“false”。默认是 False。

other

可选项。如果 dataType 是 xlDelimited 且 otherchar 为一个分隔符，则为“True”。默认值为“false”。默认是 False。

otherChar

可选项。(如果 other 为“True”，则必选)当 Other 是“True”时，指定分隔符，如果指定多个分隔符，只使用字符串的第一个字符，其它字符将忽略。

fieldInfo

可选项。 包含各个列数据的分列信息的数组，根据 dataType 的值来解释。

当分列数据时，变量是两元素数组的数组，每两个元素组指定某列的转换选项，第一个元素是列号，另一个是指定如何分列。

1	普通

2	文本

3	MDY 日期

4	DMY 日期

5	YMD 日期

6	MYD 日期

7	DYM 日期

8	YDM 日期

9	跳过此列

指定的列可能按任何次序，如果指定的列不表示输入数据的特定列，可以使用“常用选项”来分列，下面的例子表示跳过第三列，第一列做为文本分别，其余的列用“常用选项”设置来分列

Array(Array(3, 9), Array(1, 2))

如果数据源有固定宽度，每两个元素数组的第一个元素，表示数据在某列中的起始位置，(如果是整数，零表示第一个字符)数组中的第二个元素指定列中的分列选项，列可以是1到9，如上面所示。

下面的例子将固定宽度的文件分列为两列，第一列是从行的起始处到10个字符的宽度，第二列从第15个字符到一行的结尾，如果不包含第10个到第15个字符则添加一省略到词条。

Array(Array(0, 1), Array(10, 9), Array(15, 1))


UpdateLink 方法

更新一个 Microsoft Excel， DDE，或 OLE 连接(或多个连接)。

语法

object.UpdateLink(name, type)

object

必选项。 Workbook 对象。

name

必选项。 指定要更新的 Microsoft Excel 或 DDE/OLE 链接的名称，与从 LinkSources 方法中返回的相同。

type

可选项。指定连接类型。可以是 xlExcelLinks 或 xlOLELinks (也用于 DDE 连接)。默认是 xlExcelLinks 。


Paste 方法

对象	描述

Chart 	将剪贴板中的图表数据粘贴到指定的图表。

Pictures	将剪贴板中的图片粘贴到工作表或图表，新图片的位置即为当前选定的位置。

Point or Series	将剪贴板中的图片做为标记粘贴到选定的数据点或数据系列，该方法可用在形图，饼图，折线图，或雷达图。它设置MarkerStyle 为 xlPicture。

SeriesCollection	将剪贴板中的数据粘贴到指定的系列集合。

DialogSheet 或 Worksheet	将剪贴板中的内容粘贴到工作表。


Paste 方法 (Chart 对象)

将图表数据从剪贴板粘贴到指定的图表。

语法

object.Paste(type)

object

必选项。Chart 对象。

type

可选项，如果剪贴板还有其它的图表，可指定要粘贴的图表信息(xlFormats，xlFormulas 或 xlAll之一)。默认值是 XLALL。如果剪贴板中还有不属于图表的数据，不能使用该参数。

注释

该方法改变当前的选项。


Paste 方法 (Pictures 对象)

将剪贴板中的图片粘贴到工作表或图表中，新图片的位置由当前选定的位置所决定。

语法

object.Paste(link)

object

必选项。Pictures 对象。

link

可选项，如果在粘贴图片和数据源之间建立了链接，则为“True”。默认值是“False”。


Paste 方法 (Point 或 Series 对象)

将剪贴板中的图片做为标记粘贴到选定的数据点或数据系列，该方法可用在柱形图，饼 图，折线图，或雷达图。它设置 MarkerStyle 为 xlPicture。

语法

object.Paste

object

必选项。Point 或 Series 对象。


Paste 方法 (SeriesCollection 对象)

将剪贴板中的数据粘贴到指定的系列集合。

语法

object.Paste(rowcol, seriesLabels, categoryLabels, replace, newSeries)

object

必选项。SeriesCollection 对象。

rowcol

可选项，指定相应于某个数据系列的数值是位于行或列，默认值是 XLColumns。

seriesLabels

可选项，如果 Microsoft Excel 用每行中的第一列单元格内容做为该行的数据系列名称，则为“True”。如果 Microsoft Excel 用每行中第一列单元格内容做为该行数据系列的第一个数据点，则为“False”。

categoryLabels

可选项，如果 Microsoft Excel 用选定区域第一行(或列)的内容做为图表的分类，则为“True”。如果 Microsoft Excel 用第一行(或列)的内容做为图表的第一个数据系列，则为“False”(或省略)。

replace

可选项，如果 Microsoft Excel 用复制的单元格区域的内容替换已有的分类，并使用该分类，则为“True”如果 Microsoft Excel 插入新的分类，而不替换已有的，则为“False”。

newSeries

可选项，指定要粘贴的数据是新的系列(True)或者是已有系列的新的数据点(False)默认值是“True”。


Paste 方法 (DialogSheet 或 Worksheet 对象)

将剪贴板的内容粘贴到工作表。

语法

object.Paste(destination, link)

object

必选项。The DialogSheet or Worksheet object.

destination

可选项，Range 指定剪贴板内容粘贴的位置，如果省略，使用当前选定的位置，如果剪贴板内容要粘贴到该区域，必须指定该变量，不能在绘图对象中使用，如果指定该变量，Link 变量不能使用。

link

可选项。如果链接是指到粘贴的数据源，则为“True”如果指定该变量，就不能使用 destination 变量。

注释

如果没有指定 destination 变量，必须在使用该方法前选定目标区域。

该方法根据剪贴板的内容修改选定的工作表，例如，粘贴的绘图对象已选定。


PasteSpecial 方法

Range:	将剪贴板的 Range 粘贴到指定的区域

DialogSheet 或 Worksheet: 	用指定的格式，粘贴剪贴板的内容到工作表，使用该方法可以用特点的格式粘贴数据或粘贴其它应用程序的数据 。


PasteSpecial 方法 (Range 对象)

从剪裁板粘贴 Range 对象到一指定范围。

语法

object.PasteSpecial(paste, operation, skipBlanks, transpose)

object

必选项。Range 对象。

paste

可选项，指定要粘贴的部分区域(xlAll，xlFormulas，xlValues，xlFormats，xlNotes，或 xlAllExceptBorders 之一)。如果省略，默认值为 XLAU。

operation

可选项，指定粘贴选项(xlNone，xlAdd，xlSubtract，xlMultiply,或 xlDivide 之一)，如果省略，默认值为 XLNone。

skipBlanks

可选项，如果为“True”，则剪贴板 Range 中的空白单元格就不粘贴到目标区域，如果省略，默认值为“False”。

transpose

可选项，如果为“True”，当粘贴 Range 时，将行与列转置，如果省略，默认值为“False”。


PasteSpecial 方法 (DialogSheet 或 Worksheet 对象)

使用指定的格式从剪裁板粘贴内容。可使用此方法从其它程序粘贴数据或以指定格式粘贴。

语法

object.PasteSpecial(format, link, displayAsIcon, iconFileName, iconIndex, iconLabel)

object

必选项。DialogSheet 或 Worksheet 对象。

format

必选项。 指定要粘贴的剪贴板上数据格式(为文本)。

link

可选项，如果为“True”建立要粘贴数据源的链接，如果数据源不适合链接或源应用程序不支持链接，将忽略该参数，默认值是“False”。

displayAsIcon

可选项，如果为“True”将粘贴数据显示为图标，默认值为“False”。

iconFileName

可选项，如果 displayAslcon 为“True”，将使用包含图标的文件名。

iconIndex

可选项，在图标文件中的图标索引号。

iconLabel

可选项，图标的文本标志。

注释

在使用该方法前，必须选定目标区域。

该方法根据剪贴板的内容修改选定的工作表，例如，粘贴的该绘图对象保持选定。


ApplyDataLabels 方法

将数据标志应用到点、系列或图表上的所有系列中。

语法

object.ApplyDataLabels(type, legendKey)

object

必选项。即 Chart, Point或 Series 对象。

type

可选项。即数据标志类型，如下表中所示

数值	含义

xlNone	无数据标志

xlShowValue	点的数值(假定这个参数没有被指定)

xlShowPercent	总和的百分数。只对于饼图或圆环图表才能使用

 xlShowLabel	点的分类

xlShowLabelAndPercent	总和的百分数以及点的分类。只对于饼图或圆环图表才能使用。

legendKey

可选项。如果为 True, Microsoft Excel 在点的一侧显示图例。


DataLabel 属性

存取器。返回一个 DataLabel 对象，它代表与点或趋势线相关联的数据标志。该属性只读。


HasDataLabel 属性

如果点具有数据标志，则为 True 该属性可读写。


MarkerStyle 属性

为折线图表，散点图表，或雷达图上的一个点或系列返回或设置标记样式。该属性可读写。

注释

这个属性可以具有下列数值中的一个数值

数值	含义

xlNone	没有标记

xlAutomatic	自动标记

xlSquare	四方标记

xlDiamond	菱形标记

xlTriangle	三角标记

xlX	带有X的四方标记

xlStar	带有一个星号的四方标记

xlDot	短线标记

xlDash	长线标记

xlCircle	圆标记

xlPlus	带有一个十号的四方标记

xlPicture	图形标记


PictureType 属性

返回或设置图形如何在一个列或条形图片图表上显示，如下图所示。只用在列或条形图片图表上。该属性可读写。

数值	含义

xlStretch	伸展图片以达到必要值

xlStack 	层叠图片以达到必要值

xlScale 	层叠图片，但使用 PictureUnit 属性来确定每一个图片代表多少单位。


PictureUnit 属性

如果 PictureType 属性设置为 xlScale (反之，此属性被忽略)时，返回或设置每一个在列或条形图片图表上的图片的单位。该属性可读写。


BaseField 属性

为自定义计算返回或设置基本字段。只对数据字段有效。可读写。


BaseItem 属性

为自定义计算返回或设置基本字段中的项。只对数据字段有效，可读写。


Calculation 属性

为 Application 对象返回或设置计算模式，如下表所示。可读写。

数值	含义
xlAutomatic	自动重新计算
xlManual	仅对用户要求重新计算
xlSemiautomatic	除数据表之外，自动重新计算

为 PivotField 对象返回或设置由特定数据透视字段完成的计算类型。（xlDifferenceFrom, xlIndex, xlNormal, xlPercentDifferenceFrom, xlPercentOf, xlPercentOfColumn, xlPercentOfRow, xlPercentOfTotal, 或 xlRunningTotal 之一）。只对数据字段有效。可读写。


ChildField 属性

存取器。返回一个 PivotField对象，此对象代表特定字段的子数据透视字段（如果该特定字段成组并且有子字段），只读。

注意：

如果特定字段没有子字段，此属性将产生一个错误。


ChildItems 方法

存取器。返回代表一个数据透视表项（一个 PivotItem 对象，语法1）或者一个特定字段或项的所有组子项数据透视表项集合（一个 PivotItem 对象，语法2），只读，。

语法1

object.ChildItems(index)

语法2

object.ChildItems

object

必选项，指定 PivotField 或 PivotItem 对象

index

在语法1中为必选项。指定要返回的数据透视表项的号码或名称。（可以是指定多个数据透视表项的数组）。


CurrentPage 属性

返回或设置页字段显示的当前页（只对页字段有效）。可读写。

注意：

一般按页名设置此属性。若设置为“全部”则将显示全部页。


DataRange 属性

存取器。返回一个 Range对象。如下表中所示。只读。

对象	数据区域
Data field	字段中包含的数据
Row, Column, or Page field	字段中的项
Item	项所验证的数据


DataType 属性

返回一个描述数据透视字段中数据类型的常量。可以是 xlText, xlNumber, 或 xlDate 之一。只读。


Group 方法

语法1：在一个分级显示中降级一个区域（换句话说，增加了它的分级显示级别）。这个区域应该是一个整行或整列，或由行或列组成的区域。

在一个数据透视表中成组一个不连续的区域。

成组多个控制或图形对象；返回一个新的 GroupObject 对象。

语法2：在一个数据透视字段中完成数字或日期的成组。

语法1

object.Group

语法2

object.Group(start, end, by, periods)

object

必选项。指定应用成组方法的对象。对于语法2，Range 对象必须是数据透视字段的数据区域中的一个单元格。如果试图在多个单元格上应用此方法，此方法将失败（不显示任何错误信息）。有关以这种方式应用此方法的详细信息，请参阅第二个示例。

start

可选项。指定第一个成组值。如果省略或为 True，则将使用字段的第一个值。

end

可选项。指定最后一个成组值。如果省略或为 True，则将使用字段中最后一个值。

by

可选项。如果字段是数值型的，此参数将指定每一分组的大小。

如果字段是日期型并且 periods 数组的第四个元素为 True，此参数将指定每一分组的天数。否则 by 参数被忽略。

如果这个参数被省略，则将自动选择分组的默认大小。

periods

可选项。以　Boolean　数组的形式为分组指定时间间隔，如下表所示。

数组元素	时间间隔
1	秒
2	分
3	小时
4	天
5	月
6	季度
7	年

如果数组中的一个元素为 True，则将创建一个相应时间的分组。如果元素为 False，将不建立分组。

如果这个字段不是一个日期型字段，这个参数将被忽略。


GroupLevel 属性

返回特定字段在一组字段中的位置（如果特定字段是一个成组字段集合中的一个成员时）。只读。

注意：

最高级的父字段（最左面的父字段）是成组级别1，它的子字段是成组级别2，以此类推。


HiddenItems  方法

存取器。返回一个代表隐藏的数据透视表项对象（一个 PivotItem，语法1）；或者返回一个特定字段中所有隐藏项（一个 PivotItems 对象，语法2）的集合。，只读。

语法1

object.HiddenItems(index)

语法2

object.HiddenItems

object

object

必选项。指定 PivotField 对象。

index

在语法1中为必选项。指定要返回的数据透视表项的号码或名称（可以是指定多个数据透视表项的数组）。


LabelRange 属性

存取器。PivotField：返回含有字段标志的单元格（或多个单元格）的 Range 对象。PivotItem：返回含有项的所有数据透视表单元格的 Range 对象。只读。


Orientation 属性

返回或设置对象的方向，如下表中所示。

对象	方向
PageSetup	纵向或横向打印模式。
PivotField	字段在数据透视表中的位置。可为lHidden, xlRowField, xlColumnField, xlPageField, 或 xlDataField 之一。
AxisTitle, Button, ChartTitle, DataLabel, DrawingObjects, GroupObject, RadarAxisLabels, Range, Style, TextBox, TickLabels	文本方向。可为 xlHorizontal, xlVertical, xlUpward, 或 xlDownward之一。对于TickLabels 对象也可以是 xlAutomatic。


ParentField 属性

存取器。返回一个 PivotField对象，它代表对象组源的数据透视字段。

此字段必须已被成组并且具有一个父字段。只读。


ParentItems 方法

存取器。返回代表一个数据透视表项（PivotItem对象，语法1）的对象；或返回一个特定字段所有组源的数据透视表项（PivotItems，语法2）集合。这个特定字段必须是另一字段的一个组源。只读。

语法1

object.ParentItems(index)

语法2

object.ParentItems

object

必选项。指定 PivotField 对象。

Index

在语法1中为必选项。指定要返回的数据透视表的号码或名称（可以是指定多个数据透视表的数组）。


PivotItems 方法

存取器。返回一个对象，它代表一个独立的数据透视表项（PivotItem 对象，语法1）或指定字段内所有可见和隐藏的数据透视表项集合（PivotItems 对象，语法2）。只读。

语法1

object.PivotItems(index)

语法2

object.PivotItems

object

必选项。指定 PivotField 对象。

index

在语法1中为必选项。指定要返回的数据透视表的号码或名称（可以是指定多个数据透视表的数组）。


Position 属性

返回或设置指定对象的位置，如下表所示。可读写。

对象	位置
Legend	图表上图例的位置，可以是 xlBottom, xlCorner, xlTop, xlRight, 或 xlLeft　之一。
PivotField	某字段在所有字段某方向（行，列，页，数据）上的位置（第一，第二，第三，等等）。
PivotItem	如果项当前正在显示，则为项在字段中的位置
工具栏	工具栏位置。可以是 xlTop, xlLeft, xlRight, xlBottom,或　xlFloating　之一。


Subtotals 属性

返回或设置与指定字段一起显示的分类汇总的相应布尔值数组。该属性只对非数据字段有效。可读写。

注意：此属性返回布尔值数组，如下表所示。

数组元素	意义
1	自动
2	求和
3	计算
4	平均
5	最大值
6	最小值
7	乘方
8	计数
9	标准偏差
10	标准方差
11	变数
12	？varp
如果某元素值为　True，则此字段显示分类汇总。如果元素1（自动）为　True， 则其它所有值都为 False。


TotalLevels 属性

返回当前字段组中的字段总数，如果字段没有成组，则　TotaILevels返回数值1。只读。

注意：

字段组集合的所有字段都具有相同的　TotaILevels　值。


Ungroup 方法

Range对象：在分级显示中提高区域等级（换句话说，降低分级显示级别），指定的区域必须是行，列，或行和列组成的区域，如果区域是在数据透视表中，则要取消区域中项的分组。

GroupObject：取消一个图形对象组。返回组中对象的DrawingObjects 集合。

语法

object.Ungroup

object

必选项。指定此方法应用的对象。

注意：

如果当前活动单元格是在父字段的字段标题中，则取消字段中的所有分组，并且从数据透视表中取消这个字段。当在父字段中取消最后一个分组时，数据透视表上的整个字段全部被取消。


VisibleItems Method
VisibleItems 方法

存取器。返回一个对象，它代表指定字段的一个可见数据透视项（PivotItem 对象，语法1）或指定字段的所有可见数据透视表项的集合（PivotItems 对象，语法2）只读

语法1

object.VisibleItems(index)

语法2

object.VisibleItems

object

必选项。指定 PivotField 对象。

index

在语法1中为必选项。指定要返回的数据透视表的号码或名称（可以是指定多个数据透视表的数组）。


ParentItem 属性

存取器。返回一个PivotItem 对象，它代表父PivotField（字段必须成组，使它们有一个父字段）的父数据透视表项。只读。


ParentShowDetail 属性

如果由于所指定项的父项正在显示？明细数据而显示指定项，则该属性为　True，如果由于所指定项的父项正在隐藏？明细数据而不显示指定项，则该属性为　False。此属性只有当项成组时才有效。只读。


SourceName 属性

返回一个对象名称（一个字符串），与数据透视表初始源数据中的相同。如果用户在建立数据透视表后给项更名，那么此属性可能会与当前的项名称不同。


LocationInTable 属性

返回一个描述PivotTable 部分的常量，这个数据透视表含有指定区域的左上角。

这个常量可以是xlRowHeader, xlColumnHeader, xlPageHeader, xlDataHeader, xlRowItem, xlColumnItem, xlPageItem, xlDataItem, 或 xlTableBody 其中之一。                                只读。


PivotField 属性

存取器。返回一个PivotField 对象，它代表含有指定区域左上角的那一个数据透视表。只读。


PivotItem 属性

存取器。返回一个PivotItem 对象，它代表含有指定区域左上角的那一个数据透视表项。只读。


PivotTable 属性

存取器。返回一个PivotTable对象，它代表含有指定区域左上角的那一个数据透视表。只读。


ColumnFields 方法

{ewc HLP95EN.DLL, DYNALINK,

存取器。返回一个对象，它代表一个数据透视字段（PivotField 对象，语法1）或者一个当前所显示的列字段的数据透视表字段集合（PivotFields 对象，语法2）。只读。

语法1

object.ColumnFields(index)

语法2

object Column

object

必选项，指定 PivotTable 对象。

index

在语法1中是必选项。指定要返回的数据透视表字段的号码或名称（可以是指定多个数据透视字段的数组）。


ColumnGrand 属性

在数据透视表显示列求和值时此属性为 True, 可读写。


ColumnRange 属性

存取器。返回一个 Range 对象,它代表包含数据透视表列的那个区域。只读。


DataBodyRange 属性

存取器。返回一个 Range对象，它代表包含数据透视表数据区的那个区域，只读。


DataFields 方法

存取器，返回一个对象，它代表一个数据透视表字段（PivotField 对象，语法1）或者一个当前以数据字段显示的数据透视表字段集合（PivotFields 对象，语法2）。只读。

语法1

object,DataFields (index)

语法2

object DataFields

object

必选项，指定 PivotTable　对象。

index

在语法1中为必选项。指定要返回的数据透视表字段的号码或名称（可以是指定多个数据透视字段的数组）。


DataLabelRange 属性

存取器。返回一个 Range 对象。它代表包含有数据透视表数据字段标志的那个区域。只读。


HasAutoFormat 属性

当数据透视表被更新或当字段被移动时，如果数据透视表能自动调整格式，则该属性为 True。可读写。


HiddenFields 方法

存取器。返回一个对象，它代表一个数据透视表字段（PivotField 对象，语法1）或者代表一个数据透视表字段集合（PivotFields 对象，语法2），这些数据透视表字段当前没有以行，列，页或数据段的形式显示。只读。

语法1

object HiddenFields(index)

语法2

object HiddenFields

object

必选项。指定 PivotTable 对象。

index

在语法1中为必选项。指定要返回的数据透视表字段的号码或名称（可以是指定多个数据透视字段的数组）。


PageFields 方法

存取器。返回一个对象，它代表一个数据透视表字段（PivotField 对象，语法1）或一个当前以页字段显示的数据透视表字段集合（PivotFields对象，语法2），只读。

语法1

object PageFields(index)

语法2

object PageFields

index

在语法1中为必选项。指定要返回的数据透视表字段的号码或名称（可以是指定多个数据透视字段的数组）。


PageRange 属性

存取器。返回一个 Range 对象，它代表含有数据透视表页的那个区域。只读。


PivotFields 方法

存取器。返回一个对象。它代表一个数据透视表字段（PivotField 对象，语法1）或一个在数据透视表上可见和隐藏的数据透视表字段的集合（ PivotFields对象，语法２）。只读。

语法1

object.PivotFields(index)

语法2

object,PivotFields

object

必选项。指定 PivotTable 对象。

index

在语法1中为必选项。指定要返回的数据透视表字段的号码或名称（可以是指定多个数据透视字段的数组）。


RefreshDate 属性

返回数据透视表最后一次被更新时的日期，只读。


RefreshName 属性

返回最后一次更新数据透视表数据的用户名。只读。


RefreshTable 方法

以源数据来更新数据透视表，如果成功则返回 True。

语法

object.RefreshTable

object

必选项。指定 PivotTable 对象。


RowFields 方法

存取器。返回一个对象，它代表一个数据透视表字段（PivotField对象，语法1）或一个当前以行字段显示数据透视表字段的集合（PivotFields对象，语法1）。只读。

语法1

object.RowFields(index)

语法2

object.RowFields

object

必选项。指定 PivotTable 对象。

index

在语法1中为必选项。指定要返回的数据透视表字段的号码或名称（可以是指定多个数据透视字段的数组）。


RowGrand 属性

如果数据透视表显示行求和数值，则该属性为 True，可读写。


RowRange 属性

存取器。返回一个 Range 对象，它代表含有数据透视表行的那个区域。只读。


SaveData 属性

如果数据透视表的数据与工作簿一起被保存，则该属性为 True；如果只保存数据透视表目标文件，则该属性为 False。可读写。


ShowPages 方法

为页字段的每一项建立一个新的数据透视表。每一个新的数据透视表建立在一个工作表上。

语法

object.showpages(pageField)

object

必选项。指定 PivotTable 对象。

index

必选项。指定数据透视表中的一个页字段名称的字符串。


TableRange1 属性

存取器。返回一个 Range 对象，它代表一个含有整个数据透视表但不包括页字段的区域。只读。

注意：

TableRange2属性包括页字段。


TableRange2 属性

存取器。返回一个 Range 对象，它代表一个包含整个数据透视表和其页字段的区域。只读。

注意：

TableRange1属性不包括页字段。


VisibleFields 方法

存取器。返回一个对象，它代表一个数据透视表字段（PivotField 对象，语法1）或一个可见数据透视表字段的集合（ PivotFields 对象，语法2），可见数据透视表字段显示成行，列，页或数据段。只读。

语法1

object.Visible Fields(index)

语法2

object.VisibleFields

object

必选项。指定 PivotTable 对象。

index

在语法1中为必选项。指定要返回的数据透视表字段的号码或名称（可以是指定多个数据透视字段的数组）。


PivotTables 方法

存取器。返回一个对象，它代表工作表中的单个数据透视表（PivotTable 对象，语法1）或者所有数据透视表的集合（PivotTables对象，语法2）。只读。

语法1

object.PivotTables(index)

语法2

object.PivotTables

object

必选项，指定 Worksheet 对象。

index

在语法1中是必选项。指定数据透视表的号码或名称（可以是指定多个数据透视表的数组）。


PivotTableWizard 方法

创建一个 PivotTable，此方法不显示数据透视表向导。

语法

object.PivotTableWizard(sourceType, sourceData, tableDestination, tableName, rowGrand, columnGrand, saveData, hasAutoFormat, autoPage)

object

必选项。指定 Worksheet 对象。

sourceType

可选项。描述数据透视表的数据来源，如下表所示。如果指定了此参数，则必须也指定sourceData。

参数值	含义
xlconsolidation	几个区域的合并区域
xlDatabase	Microsoft Excel 的列表或数据库
xlExternal	另一个应用文件中的数据
xlPivotTable	与另一个数据透视表具有相同的源数据

如果没有指定 sourceType 和 sourceData，Microsoft Excel 就会认为源数据类型为数据库，源数据则来源于已命名的区域数据库。如果命名区域不存在，但当前所选定区域有10个以上单元格含有数据，则 Microsoft Excel 就会使用当前区域。否则，此方法失败。

sourceData

可选项。指定新数据透视表的数据。它可以是一个 Range，一个区域数组，或者一个代表另一个数据透视表名字的文本。对于一个外部数据库，此参数是一个有两个元素的数组，第一个元素是为数据指定 ODBC 来源的连接字符串。如果指定了此参数则必须同时指定 sourceType。如果当前活动单元格是在 sourceData 指定的区域内，则必须同时 tableDestination。

tableDestination

可选项。指定透视数据表在工作表中位置的一个区域。

如果省略这个参数，数据透视表将被放置在当前单元格。

tableName

可选项。指定要创建的数据透视表名，以字符串形式给出。

rowGrand

可选项。如果此参数为True, 则新的数据透视表将显示行求和。若此参数为　False,　则省略行求和。

columnGrand

可选项。如果此参数为 True，则新的数据透视表将显示列求和。若此参数为　False，则省略列求和。

saveData

可选项。如果此参数值为 True，则数据与表一起被保存，若此参数为　False，则只保存表定义。

hasAutoFormat

可选项。如果此参数值为True，则当数据透视表被更新或字段被移动时，Microsoft Excel　将自动格式化这个数据透视表。

autoPage

可选项。只有当 sourceType 为 xlConsolidation 时才有效。如果此参数值为 True，Microsoft Excel 将为合并区域创建一个页字段。若此参数为　False，则用户必须自己创建一个或多个页字段。


Address 方法

以宏语言字符串返回区域引用。

语法

object.Address(rowAbsolute, columnAbsolute, referenceStyle, external, relativeTo)

object

必选项。 返回对此区域的引用。

rowAbsolute

可选项。 若为 True 或省略，引用的行部分以绝对引用的形式返回。

columnAbsolute

可选项。 若为 True 或省略，引用的列部分以绝对引用的形式返回。

referenceStyle

可选项。 若为 xlA1 或省略，本方法返回A1样式的引用。若为 xlR1C1，本方法返回 R1C1 样式的引用。

external

可选项。 若为True，本方法返回外部引用。若为 False，本方法返回局部引用。默认为 False。

relativeTo

可选项。如果rowAbsolute和columnAbsolute 为 False，且 referenceStyle 为 xlR1C1，必须包含相对引用的起始点。本参数为定义起始点的 Range 对象。

注释

如果引用包含多个单元格，rowAbsolute 和 columnAbsolute 适用于所有的行和列。


ApplyNames 方法

将名称赋予区域中的单元格。

语法

object.ApplyNames(names, ignoreRelativeAbsolute, useRowColumnNames, omitColumn, omitRow, order, appendLast)

object

必选项。 将被赋予名称的区域。

names

可选项。 包含名称的数组。 若省略，工作表上的所有名称都将赋予该区域。

ignoreRelativeAbsolute

可选项。 若为True或省略，不管名称或引用的引用类型是什么，都用名称取代引用。 若为False, 仅用绝对名称取代绝对引用，相对名称取代相对引用，混合名称取代混合引用。

useRowColumnNames

可选项。 若为True或省略，如果找不到指定区域的名称，Microsoft Excel 将使用包含该区域的行或列区域的名称。 若为False，则忽略omitColumn 和omitRow 参数。

omitColumn

可选项。 若为True或省略，如果被引用单元格与公式处于同一列，且处于行方向命名的区域内，Microsoft Excel 用行方向名称取代引用，而不用列方向名称。

omitRow

可选项。 若为True或省略，如果被引用单元格与公式处于同一行，且处于列方向命名的区域内，Microsoft Excel 用列方向名称取代引用，而不用行方向名称。

order

可选项。用行或列方向区域名称(xlRowThenColumn或xlColumnThenRow)取代单元格引用时，本参数决定哪个区域名称首先列出。

appendLast

可选项。 若为True, Microsoft Excel 既取代names 中的名称定义，也取代最近定义的名称。 如果appendLast 为False 或省略，Microsoft Excel 仅取代names 中的名称定义。

注释

可用Array 函数为names 参数创建名称列表。

如果希望对整个工作表赋予名称，可使用Cells.ApplyNames。

不能“撤消赋予”名称；若要删除名称，可用Delete 方法。


ApplyOutlineStyles 方法

对区域赋予分级显示样式。

语法

object.ApplyOutlineStyles

object

必选项。 将被赋予分级显示样式的区域。


Areas 方法

存取器。返回代表多重选定区域中单个区域(Range 对象，语法 1)或所有区域的集合(Areas 对象，语法 2)的对象。

语法 1

object.Areas(index)

语法 2

object.Areas

object

必选项。 多重选定区域。

index

对语法 1为必选项。多重选定区域中区域的序号。

注释

对于单个选定，Areas 方法返回包含一个对象的集合，即原始Range 对象本身。对多重选定区域，Areas 方法返回包含与每个选定区域一一对应的对象的集合。


AutoFill 方法

对区域中的单元格进行自动填充。

语法

object.AutoFill(destination, type)

object

必选项。 源区域。

destination

必选项。 代表将被填充的单元格的Range 对象。该对象必须包括源区域。

type

可选项。 可为xlFillDefault、xlFillSeries、xlFillCopy、xlFillFormats、xlFillValues、xlFillDays、xlFillWeekdays、xlFillMonths、xlFillYears、xlLinearTrend、xlGrowthTrend之一。 若为xlFillDefault 或省略，本方法根据源区域选择最合适的填充类型。


AutoFormat 方法 (Range 对象)

使用预定义格式自动格式化区域中的单元格。

语法

object.AutoFormat(format, number, font, alignment, border, pattern, width)

object

必选项。 将被格式化的区域。

format

可选项。 将赋予的格式的名称或数字(xlClassic1, xlClassic2, xlClassic3, xlAccounting1, xlAccounting2, xlAccounting3, xlAccounting4, xlColor1, xlColor2, xlColor3, xlList1, xlList2, xlList3, xl3DEffects1, xl3DEffects2, xlSimple或xlNone之一)。 如果省略此参数，默认值为xlClassic1。

number

可选项。 相应于“自动套用格式”对话框中的“数字”复选框。可为True 或False (若省略，则为True )。

font

可选项。 相应于“自动套用格式”对话框中的“字体”复选框。可为True 或False (若省略，则为True )。

alignment

可选项。 相应于“自动套用格式”对话框中的“对齐”复选框。可为True 或False (若省略，则为True )。

border

可选项。 相应于“自动套用格式”对话框中的“边框”复选框。可为True 或False (若省略，则为True )。

pattern

可选项。 相应于“自动套用格式”对话框中的“图案”复选框。可为True 或False (若省略，则为True )。

width

可选项。 相应于“自动套用格式”对话框中的“列宽/行高”复选框。可为True 或False (若省略，则为True )。

注释

如果区域为单个单元格，本方法也格式化该单元格周围的当前范围。换句话说，AutoFormat 方法将对该单元格执行CurrentRegion.AutoFormat 。

在日文版Microsoft Excel中，可用下列附加的格式：xlLocalFormat1 和xlLocalFormat2。


AutoFit 方法

将区域中的列宽和行高修改为最合适的值。

语法

object.AutoFit

object

必选项。 将被修改列宽和行高的区域。必须为行或行区域，或者列或列区域。否则本方法将引起错误。

注释

列宽的单位等于“常规”风格的字符宽度。


ClearNotes 方法

清除区域中所有单元格的附注和声音附注。

语法

object.ClearNotes

object

必选项。 清除此Range 中的附注和声音附注。


Column 属性

以数字形式返回区域的第一部分的第一列，只读。

注释

A列返回1，B列返回2，以此类推。

若要返回区域中最后一列的列号，使用下例。

myRange.Columns(myRange.Columns.Count).Column


ColumnDifferences 方法

存取器。返回代表与每列中的比较单元格内容不同的所有单元格的Range 对象。比较单元格是与comparison 处于同一行的单元格。

语法

object.ColumnDifferences(comparison)

object

必选项。 包含将被比较的单元格的区域。

comparison

必选项。 比较行中的某一单元格。


ColumnWidth 属性

返回或设置区域中所有列的列宽。可读写。

注释

列宽的单位等于“常规”风格的字符宽度。对于均衡字体，使用字符0 (零)的宽度。

可用Width 属性返回以磅值为单位的列宽。

如果区域中所有列的列宽相等，ColumnWidth 属性返回该列宽。 如果区域中的列宽不等，该属性返回Null。


Consolidate 方法

将多个工作表上的多个区域中的数据合并计算到单个工作表上的单个区域。

语法

object.Consolidate(sources, function, topRow, leftColumn, createLinks)

object

必选项。 目标区域。

sources

可选项。 指定合并计算源的数组，该数组包含R1C1样式引用的文本串。该引用必须包含合并计算工作表的完整路径。

function

可选项。 合并计算函数(xlAverage, xlCount, xlCountNums, xlMax, xlMin, xlProduct, xlStDev, xlStDevP, xlSum, xlVar或xlVarP之一)。

topRow

可选项。 若为True，数据的合并计算基于合并计算区域的顶行中的列标题。 若为False 或省略，数据按位置进行合并计算。

leftColumn

可选项。 若为True, 数据的合并计算基于合并计算区域的最左边列中的行标题。 若为False 或省略，数据按位置进行合并计算。

createLinks

可选项。 若为True, 合并计算使用工作表连接。 若为False, 合并计算复制数据。


CreateNames 方法

根据工作表中的文本标志在给定区域中指定名称。

语法

object.CreateNames(top, left, bottom, right)

object

必选项。 在此区域中指定名称。

top

可选项。 相应于“指定名称”对话框中的“首行”复选框。可为True或False。

left

可选项。 相应于“指定名称”对话框中的“最左列”复选框。可为True或False。

bottom

可选项。 相应于“指定名称”对话框中的“尾行”复选框。可为True或False。

right

可选项。 相应于“指定名称”对话框中的“最右列”复选框。可为True或False。

注释

如果未指定top, left, bottom,或right之一，Microsoft Excel 根据指定区域的形状猜测文本标志的位置。


CurrentArray 属性

存取器。 如果指定的单元格是数组的一部分，返回代表整个数组的Range 对象。只读。


CurrentRegion 属性

存取器。返回代表当前范围的Range 对象。当前范围指以任意组合的空白行或空白列为边界的区域。只读。

注释

对于将选定范围自动扩展到包含整个当前范围的操作，本属性很有用，例如AutoFormat 方法。


DataSeries 方法

在区域中创建数据系列。

语法

object.DataSeries(rowcol, type, date, step, stop, trend)

object

必选项。 将创建数据系列的区域。

rowcol

可选项。 可为xlRows或xlColumns以分别输入行或列中的数据系列。 若省略，使用区域的大小和形状。

type

可选项。 可为xlLinear, xlGrowth, xlChronological或xlAutoFill。 若省略，为xlLinear。

date

可选项。 如果type参数为xlChronological，本参数表示步进的日期单位，可为xlDay, xlWeekday, xlMonth或xlYear。 若省略，为xlDay。

step

可选项。 系列的步进值。 若省略，假定为1。

stop

可选项。 系列的终止值。 若省略，本方法填充到区域的结尾。

trend

可选项。 若为True, 本方法创建线性或指数类型的趋势线。 若为False 或省略，本方法创建标准数据系列。


Dependents 属性

存取器。返回一个 Range 对象，它代表包含某单元格所有从属单元格的区域。如果有多个从属单元格，则此参数可能是多个选定区域（Range对象的集合）。只读。


DialogBox 方法

显示一个对话框，这个对话框是由 Microsoft Excel 4.0宏工作表上的对话框定义表定义的。返回所选控制的号码，如果用户选择“取消”按钮，则返回值为 False。

语法

object.DialogBox

object

必选项。指定 Microsoft Excel 宏工作表上的一个区域。这个宏工作表上必须包含对话框定义表。

注意：

此方法与 Microsoft Excel 4.0 版的宏语言向上兼容。


DirectDependents 属性

存取器。返回一个 Range 对象，它代表包含某单元格所有从属单元格的区域。如果有多个从属单元格，则此参数可能是多个选定区域（Range对象的集合）。只读。


DirectPrecedents 属性

存取器。返回一个 Range 对象，它代表包含某单元格所有从属单元格的区域。如果有多个从属单元格，则此参数可能是多个选定区域（Range对象的集合）。只读。


End 方法

返回一个 Range 对象，它代表包含源区域的区域末端单元格。此方法与按“↑”“↓”“←”或“→”键等效。

语法

object.End(direction)

object

必选项。指定区域内的一个单元格。

direction

必选项。指定移动方向。可以为xlToleft,xlToRight xlUp或 xlDowN 之一。


EntireColumn 属性

存取器。返回一个 Range 对象，它代表包含指定区域的一列（或几列）。只读。


EntireRow 属性

存取器。返回一个 Range对象。它代表包含指定区域的一行（或几行），只读。


FillDown 方法

从区域顶端的一个或多个单元格开始向下填充至区域的底端。将区域首行单元格的内容和格式复制到区域中的其余各行上。

语法

object.FillDown

object

必选项。指定要填充的区域。


FillLeft 方法

从区域最右端的一个或多个单元格开始向左填充至区域的最左端，将区域右列单元格的内容和格式复制到区域的其余各列上。

语法

object.FillLeft

object

必选项。指定要填充的区域。


FillRight 方法

从区域最左端的一个或多个单元格开始向右填充至区域的最右端。将区域左列单元格的内容和格式复制到区域的其余各列上。

语法

object FillRight

object

必选项。指定要填充的区域。


FillUp 方法

从区域底端的一个或多个单元格开始向上填充至区域的顶端，把区域最末一行单元格的内容和格式复制到区域中的其余各行上。

语法

object.Fillup

object

必选项，指定要填充的区域。


Find 方法

在区域内查找指定的信息，然后返回一个 Range 对象。此对象代表信息所在的第一个单元格。如果没有找到有关信息，则返回 Nothing。查找信息不会影响选定区域或当前单元格。

有关在 Visual Basic 上使用 Find 工作表函数的帮助，请参阅在 Visual Basic中使用工作表函数.

语法

object.Find(what, after, lookIn, lookAt, searchOrder, searchDirection, matchCase, matchByte)

object

必选项。指定搜索区域。

what

必选项。指定被搜索的内容，可以是字符串或任何一种 Microsoft Excel 数据类型。

after

可选项。指定一个单元格，在其后将开始搜索。在用户界面内完成搜索操作时，此参数相当于当前单元格的位置。要注意的是 after 必须是区域内的一个单元格。如果省略此参数，则区域左上角单元格被当作搜索的开始点。请记住搜索将从指定单元格的后面开始，不搜索指定单元格，除非搜索到头再回转到这个单元格。

lookIn

可选项。可以是 xlFormalas,xlvalulas 或 xlNotes 之一。

lookAt

可选项。可以是 xlwhole 或 xlpart。

searchOrder

可选项。可以是 xlByRows（行优先搜索）或 xlByColumns（列优先搜索）。

searchDirection

可选项。可以是 xlNext 或xlPrevions。如果省略此参数，则将自动置为 xlNext。

MatchCase

可选项。如果此参数为 True，则在搜索时区分大小写。

MatchByte

可选项。仅在远东 Microsoft Excel 中使用。如果此参数为 True，则双字节字符只能与双字符相匹配。如果参数值为 False，则双字节字符能够与和它等效的单字节字符相匹配。

注意：

在使用此方法时，　lookIn, lookAt, searchOrder, matchCase, 和 matchByte 每次的设置都将被保存。如果在下一次使用此方法而没有为其指定参数时，系统会自动使用保存值。设置这些参数值将改变“查找”对话框中的设置，而改变“查找”对话框中的设置将改变当省略这些参数时所使用的保存值。为避免出问题，建议在每次使用Find方法时都明确设置这些参数。

FindNext 和 FindPrevious 两种方法可以用来进行重复搜索。

当搜索进行到指定搜索区域的末端，它就会翻转回区域的始端。出现这种情况时要停止搜索，首先保存第一个匹配的单元格地址，然后用保存的地址测试以后找到的每一个单元格地址。

若要查找的单元格需匹配复杂模式，请使用带有 like 运算符的 ForFach。例如，下列代码搜索 A1：C5区域内所有以“Cour”字符开头的单元格。如果找到一个匹配的字符串，就将其地址改为 Times New Roman ：

For Each C In[A1:A5]

If C.Font.Name Like�Cour*�Then

  C.Font.Name= �Times New Roman�

End If�

Next


FindNext 方法

如果已经开始了 Find 方法，可以用 FindNext 方法继续进行搜索来找到符合同样条件的下一个单元格。然后返回一个代表那个单元格的 Range对象。进行这些操作并不影响选定区域或当前单元格。

语法

objet.FindNext(after)

object

必选项。指定要搜索的区域。

after

可选项。指定一个单元格，在其后将开始搜索。在用户界面内完成搜索操作时，此参数相当于当前单元格的位置。要注意的是 after 必须是区域内的一个单元格。如果省略此参数，则区域左上角单元格被当作搜索的开始点。请记住搜索将从指定单元格的后面开始，不搜索指定单元格，除非搜索到头再回转到这个单元格。

注意：

当搜索进行到指定搜索区域的末端，它就会翻转回区域的始端。出现这种情况时要停止搜索，首先保存第一个匹配的单元格地址，然后用保存的地址测试以后找到的每一个单元格地址。


FindPrevious 方法

如果已经开始了 Find 方法，可以用 FindPrevious 方法继续进行搜索来找到符合同样条件的上一个单元格。然后返回一个代表那个单元格的 Range对象。进行这些操作并不影响选定区域或当前单元格。

语法

object.Findprevious(after)

object

必选项。指定要搜索的区域

after

可选项。指定一个单元格，在其前将开始搜索。在用户界面内完成搜索操作时，此参数相当于当前单元格的位置。要注意的是 after 必须是区域内的一个单元格。如果省略此参数，则区域左上角单元格被当作搜索的开始点。请记住搜索将从指定单元格的前面开始，不搜索指定单元格，除非搜索到头再回转到这个单元格。

注意：

当搜索进行到指定搜索区域的始端，它就会翻转回区域的末端。出现这种情况时要停止搜索，首先保存第一个匹配的单元格地址，然后用保存的地址测试以后找到的每一个单元格地址。


FormulaArray 属性

返回或设置以数组形式输入的区域公式。返回（或被设置为）单个公式或一个 Visual Basic 数组。如果指定区域不以数组输入，则属性返回 NULL。可读写。

注意：如果用这个属性以数组形式输入一个公式，那么此公式必须使用 R1C1 引用样式，而不能是 A1 引用样式。请看第二个例子。


FormulaHidden 属性

如果在工作簿或工作表被保护时隐藏公式，则此属性为 True。可读写。

注意：

不要把此属性与 Hidden 属性相混淆。


GoalSeek 方法

为得到特定解计算所需要的值。如果这个解是由公式返回的一个值，此方法则计算一个值，当它被加到公式中时能够使公式返回所需要的值。

如果单变量求解成功，则返回True。

语法

object,GoalSeek(goal,changingCell)

object

必选项。指定的区域必须是单个单元格。

Goal

必选项。此单元格应返回的值。

changingCell

必选项。指定一个 Range 对象，它表明需要更改哪一个单元格来得到目标值。


Goto 方法

选择任一工作簿上的任一区域或 Visual Basic 过程。如果工作簿不是当前工作簿，就激活它。

语法

object.Goto(reference,scroll)

object

必选项。指定Application对象

reference

可选项。指定目标单元格，可以是一个 Range 对象，或一个包含 R1C1 符号单元格引用的字符串，或者一个包含 Visual Basic 过程名的字符串。如果省略此参数，目标单元格是使用 Goto 方法所选择的最后一个区域。

Scroll

可选。如果此参数为 True，Microsoft Excel 将滚动窗口以使区域的左上角出现在窗口的左上角，如果此参数 False 或被省略，Microsoft Excel 将不滚动窗口。

注意：

此方法与下面的Select 不同。这个参数可以允许用户滚动目标单元格。

这个参数可以允许用户滚动目标单元格。

如果使用 Goto 方法，上一个选定区域（此 Goto 方法运行以前）将被加到上一个选定区域数组中（有关这方面的详细信息，请参阅 PreviousSelections 属性）。可以利用 Goto 方法的这种特征在最多不超过四个选定区域间快速跳转。

Select 方法有一 replace 参数， 而 Goto 方法没有此参数。


HasArray 属性

如果指定的单元格是数组的一部分，则为 True。该属性只读。


HasFormula 属性

如果区域内的所有单元格都含有公式，则为 TRUE；如果区域内的所有单元格都不含有公式，则为 FALSE；否则，为 NULL。该属性只读。


Hidden 属性

Range 对象：若行或列被隐藏，则属性为 TRUE，指定的区域必须包含完整的列或行。该属性可读写。

Scenario 对象：若方案被隐藏，则属性为 TRUE。缺省值为 FALSE，该属性可读写。

注释

不要把这个属性与 FormulaHidden 属性相混淆。


Justify 方法

重新安排区域内的文本，使文本在区域内均匀分布。

语法

object.Justify

object

必选项。需要进行对齐的区域。

注释

如果区域不够大，Microsoft Excel 就会显示文本将要扩展到区域下面这一信息。如果选择了“确定”按钮，两端对齐文本就会替换扩展到选定区域外的单元格中的内容。若要不显示这种信息，可以将 DisplayAlert 属性设置为 False，这时文本就会替换选定区域下面的单元格中的内容。


ListNames 方法

在工作表上粘贴从区域的第一个单元格开始的所有未隐藏名字的清单。

语法

object.ListNames

object

必选项。即指出要列出名字的工作表，以及包含列出名字的区域开始位置。

注释

使用 Names 方法返回包含工作表上所有名字的一个集合。


Next 属性

存取器。返回到代表下一个工作表或单元格的 Chart，DialogSheet，Module，Range 或 Worksheet对象。该属性只读。

注释

如果对象是一个区域，尽管这个属性返回的是下一个没有选定的单元格，它将模拟“TAB”键。

在已保护工作表上，这个属性返回下一个未锁定单元格。在没有保护的工作表上，这个属性总是返回指定单元格右侧的单元格。


NoteText 方法

返回或设置和这个区域左上角单元格相关联的注释。该属性可读写。

语法

object.NoteText(text, start, length)

object

必选项。它是指属性应用的区域。

text

可选项。若指定该属性，则包含加到注释上的文本（最多255个字符）。文本在指定的 start 点开始插入，替换已存在注释中的给定 length 的字符，如果省略此参数就会在指定的 start 点返回给定 length 的当前注释文本。

start

可选项。指定设置文本或返回文本的开始点位置，若省略此参数，这种方法就从第一个字符的位置开始，若不存在注释，则省略这个参数，若要把文本附加在注释上，就要指定一个比已存在注释的字符数大的数字。

length

可选项。指定要设置或返回的字符数，若省略此参数，Microsoft Excel 就会以注释的开始到结尾（最多255个字符）的字符作为设置或返回的长度，如果注释从 start 到尾超过255个字符，则只返回255个字符。

注释

若要添加一个含有255个字符以上的注释，请使用这种方法一次指定前255个字符，然后再一次增补注释255个字符剩余的部分。


NumberFormatLocal 属性

用用户语言（而不是宏语言）返回或设置一个对象格式代码的字符串。该属性可读写。

注释

Format 函数使用与 NumberFormat 和 NumberFormatLocal 属性不同的格式代码字符串。


Offset 方法

存取器。返回一个 Range 对象，这个对象代表与指定区域相差给定偏移量的区域。

语法

object.Offset(rowOffset, columnOffset)

object

必选项。即返回这个对象的偏移量。

rowOffset

可选项。通过行的数目(可以为正、负或零)来偏移区域，如果省略此参数，则偏移量为零。

columnOffset

可选。通过列的数目来偏移区域，如果省略此参数，则偏移量为零。


OutlineLevel 属性

返回或设置指定行（或列）的当前分级显示等级，该属性可读写。

注释

第一级是最外面的汇总等级。


PageBreak 属性

返回或设置分页符(xlNone、xlManual 或 xlAutomatic之一)的位置，该属性可读写。

注释

这个属性既能够返回自动分页符的位置，也能返回手动分页符的位置，但是它只能设置手动分页符的位置。(它可以设置为 xlManual 或 xlNone)。

若要取消工作表上的所有手动分页符，就要把 Cell.PageBreak 设置为 xlNone。


Parse 方法

把数字区域分列成多个单元格，把区域的内容分别填充几个相连的单元格，但区域宽度不得超过列宽。

语法

object.Parse(parseLine, destination)

object

必选项。即要分列的区域。

parseLine

可选项。分列线是一个字符串。这个字符串包括左括号和右括号来指定被分开的单元格内容的位置，例如“[xxx][xxx]”就会把前三个字符放在目标单元格的第一列，后三个字符放在目标单元格的第二列，如果省略此参数，Microsoft Excel 就会推测分开列的位置是按照区域左上角单元格的空格来确定，如果想用另一个区域来推测分列线就要用 Range 作为 parseLine 参数。这个区域必须是一个要被分列的单元格。parseLine参数不能多于255个字符，其中包括括号和空格。

destination

可选项。是一个区域，它指定目标单元格左上角为分列数据位置，如果省略此参数，Microsoft Excel 就会在相应位置分列。


Precedents 属性

存取器。返回一个 Range 对象，它代表一个单元格的所有引用单元格。如果存在一个以上的引用单元格，则可以有多个选定区域（Range 对象的集合）。该属性只读。


PrefixCharacter 属性

返回单元格词条的首字符，该属性只读。

注释

如果“TransitionNavigKeys”属性为 FALSE，这个字符“＇”是一个文本标志或是空格，如果“TransitionNavigKeys”属性为 TRUE，这个字符为“＇”是一个左对齐标志），“＂”是一个右标志，“^”是一个中心对齐标志，“\”是一个重复标志或是空格。


Previous 属性

存取器。 返回代表前一个工作表或单元格的 Chart, DialogSheet, Module, Range 或 Worksheet 对象。只读。

注释

如果对象是区域，该属性模拟SHIFT+TAB组合键，尽管该属性返回上一单元格而不用选定它。

在保护的表上，该属性返回上一个解除锁定的单元格，在解除保护的表上， 总返回指定单元格左边的单元格。


Replace 方法

查找和替换区域内单元格中的字符。不改变选定区域和活动单元格。

为进一步获取 Visual Basic 中关于使用 Replace 工作表函数的帮助，参见在 Visual Basic 中使用工作表函数。

语法

object.Replace(what, replacement, lookAt, searchOrder, matchCase, matchByte)

object

必选项。替换字符或区域中的单元格。

what

必选项。指定要搜索内容的字符串。

replacement

必选项。指定要替换What文字的字符串。

lookAt

可选项。如果是 xlWhole，what 必须匹配单元格的整个内容。如果是 xlPart 或省略，What 必须包含单元格内容的一部分。

searchOrder

可选项。指定按行(xlByRows)还是按列(xlByColumns)搜索。默认为 xlByRows。

matchCase

可选项。如果为 True，搜索是区分大小写的。

matchByte

可选项。仅用于远东 Microsoft Excel。如果为 True，双字节的字符只与双字节的字符相匹配。如果为 False，双字节字符可与其相对应的单字节字符相匹配。

注释

lookAt, searchOrder, matchCase, 和 matchByte 的设置在每次使用此方法时保存。在您下一次使用此方法时，如果您没有指定这些参数的值，保存的值将被使用。设置这些参数将改变“查找“对话框中的设置，而改变“查找“对话框中的设置将改变保存的设置值，此值将在忽略参数时被使用。要避免这一问题，在每次使用此方法时明确设置各参数。

如果 What 参数的内容在表中某个单元格内找到，该方法返回 True。


Resize 方法

调整区域大小。

语法

object.Resize(rowSize, columnSize)

object

必选项。要调整大小的 Range 对象。

rowSize

可选项。新区域中行数。如果省略，区域将保持相同行数。

columnSize

可选项。新区域中列数，如果省略，区域将保持相同列数。


Row 属性

返回区域的第一行的编号。只读。


RowDifferences 方法

存取器。返回包含其内容与每行中比较单元格不同的所有单元格区域的 Range 对象。比较单元格是比较列中等于 comparison 参数的单元格。

语法

object.RowDifferences(comparison)

object

必选项。该方法施加的对象。

comparison

必选项。比较列中的单元格，如果查找活动单元格的列与区域中所有列间的差异，使用 ActiveCell 属性。


RowHeight 属性

返回以磅值(1/72英寸)为单位的指定区域中所有行的高度。可读写。

注释

对单个行， Height 属性的值等于 RowHeight 的值。然而，也可用 Height 属性返回单元格区域的总高度。

RowHeight 和 Height 之间的其它差异为：

Height 为只读。

如果返回多行的 RowHeight ，可获得每行的行高(若行高相同)，或如果它们不同则为 Null。如果返回多行的 Height 属性，将获得所有行的总高度。


Select 方法

选定对象。

语法

object.Select(replace)

object

必选项。被选定的对象。

replace

可选项(仅用于图形对象和表)。如果为 True 或省略，当前的选定内容被包含指定对象的新选定内容替换 。如果为 False，当前选定区域扩展到包括任何以前选定的对象和指定的对象。

注释

要选定单元格或单元格区域，使用 Select 方法，为使单个单元格为当前单元格，使用Activate 方法。


SoundNote 属性

存取器。 返回与区域对象内左上单元格相关的声音附注的SoundNote 对象 。只读。

注释

您的计算机可能需要可选的硬件用以记录和演奏声音附注。


Style 属性

存取器。返回或设置代表指定区域的 Style 对象，只读。


SubscribeTo 方法

仅用于 Apple Macintosh(运行于 System7 或更高版本)。订购已出版的版本。

语法

object.SubscribeTo(edition, format)

object

必选项。区域对象。

edition

必选项。用字符串形式表示的要订购版本的名字。

format

可选项。xlPicture 订购图片，xlText 订购文本。


Summary 属性

如果区域是分级显示的汇总行或列，则为 True。区域必须是一行或一列。只读。


Table 方法

基于工作表上定义的输入值和公式创建模拟运算表。

语法

object.Table(rowInput, columnInput)

object

必选项。该属性施加的对象。

rowInput

可选项。模拟运算表中用做按行输入的单一单元格。

columnInput

可选项。模拟运算表中用做按列输入的单一单元格。

注释

使用模拟运算表通过改变工作表上某一常量值进行假设分析，观察其他单元格的值如何被影响。


UseStandardHeight 属性

如果 Range 对象的行高等于表的标准行高为 True。可读写。


UseStandardWidth 属性

如果 Range 对象的列宽等于表的标准宽度为 True。可读写。


VerticalAlignment 属性

返回或设置对象的垂直对齐方式(可为 xlBottom， xlCenter， xlDistributed， xlJustify或 xlTop 之一)。可读写。

注释

xlDistributed 对齐样式仅在 Microsoft Excel 远东版中起作用。


Worksheet 属性

存取器。返回包含指定区域的 Worksheet 对象。只读


WrapText 属性

如果 Microsoft Excel 对处于对象中的文字自动换行，则为 True。可读写。

注释

如果有必要，为了显示区域中的文字，Microsoft Excel 会改变区域的行高。


Borders 方法

存取器。返回代表单个边框（ Border 对象，语法1）或边框（Borders 对象，语法2）集合的对象，该属性可读写。

语法1

object.Borders(index)

语法2

object.Borders

object

必选项。即Range 或Style 对象。

index

对语法1为必选项。它指定边框 (为 xlTop, xlBottom, xlLeft, 或 xlRight之一) 。


CopyPicture 方法

将对象作为 Picture 复制到剪贴板。对于“图表”对象使用语法2。对于所有其它对象使用语法1。

语法1

object.CopyPicture(appearance, format)

语法2

object.CopyPicture(appearance, format, size)

object

必选项。即所要复制的对象，

appearance

可选项。它指定图片应如何复制。若是 xlScreen 省略此参数，则将尽可能模拟在屏幕上的图片来复制图片。若是 xlPrinter 图片则按其打印的效果复制。

format

可选项。指定图片的格式 (为 xlPicture 或 xlBitmap 之一) ，若省略此参数，则使用图片格式。

size

可选项。当对象是在图表工作表上（而不是嵌入在工作表上）的图表时，指定被复制图片的尺寸。若是 xlPrinter 或省略此参数，则尽可能与打印尺寸相似地复制图片。若是 xlScreen ，则尽可能与屏幕上显示的尺寸相似地复制图片。

注释

该法在剪贴板上建立一“图片”对象，而不考虑被复制的对象。

若欲复制一区域，该区域必须由相邻单元格组成。


Cut 方法

将对象剪切至剪贴板或指定目标。

语法

object.Cut(destination)

object

必选项，即需要剪切的对象。

destination

可选项（只用于 range 对象）。它指定对象所要粘贴的区域。若省略此参数，对象被剪切至剪贴板。目标区域应是所要剪切的单个单元格或是扩大了的多重区域。

注释

剪切区域应由相邻单元格组成。

只有嵌入图表才能被剪切。


Formula 属性

在“A1”样式注释和宏语言中，返回或设置对象的公式。该属性可读写。

注释

若单元格含有常数，该属性返回常数。若单元格是空的，该属性返回空字符串。若单元格含有公式，该属性按照在公式栏（包括等号）中的格式，以字符串形式返回公式。

若将单元格或公式的值设置为日期，Microsoft Excel 会检查单元格是否已经以日期或时间格式格式化。若没有，则更改数字格式为缺省日期数字格式。

若区域是一维或二维区域，则可设置公式为相同维数的 Visual Basic 数组。类似地，可将公式放入 Visual Basic 数组中。

设置多个单元格区域的公式，从而以公式填充了区域中的全部单元格。

当和 picture 对象一起使用时，公式应使用绝对“A1”样式注释。


FunctionWizard 方法

对于区域的左上方单元格激活函数向导。

语法

object.FunctionWizard

object

必选项。即 range 对象。


HorizontalAlignment 属性

对于对象返回或设置水平对齐。对于所有对象，它可以是 xlCenter，xlDistributed， xlJustify，xlLeft，或 xlRight 之一。此外，range 或 style 对象可设置为 xlCenterAcrossSelection， xlFill 或 xlGeneral 。该属性可读写。

注释

xlDistributed 对齐样式只可在 Microsoft Excel 远东版中使用。


Interior 属性

存取器。返回或设置代表指定对象内部的 Interior 对象。该属性只读。


Locked 属性

当工作表被保护时，若对象可以被修改，则为False。该属性可读写。


 NumberFormat 属性

对于对象（以字符串形式）返回或设置格式代码。该属性可读写。

注释

对于PivotField 对象，只可对数据字段设置NumberFormat 属性。

格式代码是与“格式单元格”对话框中的“格式代码”选项相同的字符串。和umberFormat 及NumberFormatLocal 属性相比，Format 函数使用的是不同的格式代码字符串。


RemoveSubtotal 方法

从表中取消分类汇总。

语法

object.RemoveSubtotal

object

必选项，即 Range 对象。


ShowDependents 方法

移动追踪箭头至区域的从属单元格。

语法

object.ShowDependents(remove)

object

必选项，即 Range 对象。必须是单个单元格。

remove

可选项。若为True则取消至直接从属单元格的一级追踪箭头。若为 False 或者省略，则扩展一级追踪箭头。


ShowErrors 方法

通过引用单元格树，移动追踪箭头至单元格（该单元格是误差源），并返回含有误差源的区域。

语法

object.ShowErrors

object

必选项，即 Range 对象。


ShowPrecedents 方法

移动追踪箭头至区域的直接从属单元格。

语法

object.ShowPrecedents(remove)

object

必选项，即 Range 对象，必须是单个单元格。

remove

可选项，若为 True则取消至直接引用单元格的一级追踪箭头。若为 False 或省略，则扩展一级追踪箭头。


Sort 方法

语法1: 给区域排序，若区域只含有一个单元格，则给当前区域排序。

语法2: 给数据透视表排序，若需更多信息请参阅参量表。

语法1

object.Sort(key1, order1, key2, order2, key3, order3, header, orderCustom, matchCase, orientation)

语法2

object.Sort(key1, order1, type, orderCustom, orientation)

object

必选项，即 Range 对象。

key1

可选项。第一个排序字段，作为文本（数据透视字段或区域名称）或range对象（例如，“Dept”或单元格（1，1））。

order1

可选项。若是 xlAscending 或被省略，key1 参数以递增次序排序。若是XlDescending，key1 参数以递减次序排序。

key2

可选项。第二个排序字段，作为文本（数据透视字段或区域名称）或 range 对象，若省略此参数，则没有第二个排序字段。当给“数据透视表”排序时不要使用此参数。

type

可选项。只在给“数据透视表”分类时使用。指定给哪一个元素排序，它是 xlsortvalues或 xlSortLabels 之一。

order2

可选项。给“key2”参数 (xlAscending 或 xlDescending) 排序；若省略此参数，则假定为 xlAscending 。当给“数据透视表”排序时不要使用此参数。

key3

可选项。第三个排序字段，作为文本（区域名称）或 range 对象。若省略此参数，则没有第三个排序字段。当给“数据透视表”排序时不要使用此参数。

order3

可选项。给“key3”参数 (xlAscending 或 xlDescending) 排序；若省略此参数，则假定为 xlAscending 。当给“数据透视表”排序时不要使用此参数。

header

可选项。若是xlYes，则第一行含有页眉（没有排序）。若是 xlNo 或省略此参数，则无页眉存在（全部区域被排序）。若是 xlGuess，Microsoft Excel 会推测是否有页眉，若有页眉推测它在何处。当给“数据透视表”排序时不要使用此参数。

orderCustom

可选项。在自定义排序表中使用以1为基数的整数偏移值。若省略此参数，则使用（“普通”）

matchCase

可选项。若为 True，排序是区分大小写的。若为 False 排序是不区分大小写的。当给“数据透视表”排序时不要使用此参数。

orientation

可选项。若是 xlTopToBottom 或省略此参数，排序是从顶端至底端完成的（给行排序）。若是xlLeftToRight，排序是从左侧至右侧完成的（给列排序）。


Subtotal 方法

对于区域（或若区域是单个单元格，则为当前区域）建立分类汇总。

关于在 Visual Basic 中使用分类汇总工作表函数的帮助，请参阅“在 Visual Basic 中使用工作表函数”。

语法

object.Subtotal(groupBy, function, totalList, replace, pageBreaks, summaryBelowData)

object

必选项。即 Range 对象。

groupBy

必选项。即为字段按以 1 为基的整数偏移来成组。关于更详尽的信息，请参阅例子。

function

必选项。分类汇总功能。可以是 xlAverage, xlCount, xlCountNums, xlMax, xlMin, xlProduct, xlStDev, xlStDevP, xlSum, xlVar, 或 xlVarP之一。

totalList

必选项。以 1 为基数的字段偏移值的数组，指明分类汇总要添加到的字段。关于更详尽的信息，请参阅例子。

replace

可选项。若为 True, 现存的分类汇总将被替换。若为 False 或省略此参数，现存的分类汇总则不被替换。

pageBreaks

可选项。若为 True ，则在每组后建立分页，若为 False 或省略此参数，则不建立分页。

summaryBelowData

可选项。若是 xlBelow 或省略此参数，则汇总信息置于明细数据下方。若是 xlAbove 则汇总信息置于明细数据上方。


Delivery 属性

返回或设置在传递时使用的传送方法（xlOneAfterAnother 或 xlAllAtOnce二者之一），在传递前可读写，一旦开始传递则为只读。


Message 属性

返回或设置传递名单的信息文本，该文本被用作邮件的主文本体，邮件被用来确定工作簿的路线，可读写。


Recipients 属性

返回或设置传递名单上的收件人（以字符串形式），可读写。

注意：

若传送选项是xlOneAfterAnother，则收件人列表次序定义传送次序。若已开始传递名单，则只返回或设置那些还没收到文档或没确定文档路径的收件人。


Reset 方法

恢复内部菜单栏或工具栏为初始的缺省配置。重新设置工具栏工具按钮为初始形象。

重新设置传递名单，这样新的传递可使用相同的名单（使用相同的收件人列表和传送信息）来初始化。使用该法前必须完成传递。在其它时间使用该方法会导致错误。

语法

object.Reset

object

必选项。指定该方法应用的对象。

注意：

当重新设置菜单栏或工具栏时要小心棗其它的宏可能已添加了菜单项或工具按钮，而重新设置菜单栏或工具栏会删除它们。若要避免与其余宏冲突，请删除您的宏所添加的菜单项或工具按钮而不重新设置菜单栏或工具栏。

当工具栏按钮是间距或者含有调色板或列表时，不可使用该方法（例如“字体”或“样式”铵钮）。


ReturnWhenDone 属性

当传递完成时，若工作簿被返回到发件人则此属性为 True。在传递开始前可读写；一旦开始传递则为只读。


Status 属性

指出传递名单的状态（ xlNotYetRouted, xlRoutingInProgress, 或 xlRoutingComplete 其中之一）。只读。


TrackStatus 属性

若传递名单的状态追踪被启用，则此属性为 True，在传递开始前可读写；一旦开始传递则为只读。


ChangeScenario 方法

更改方案以得到新的更改单元格集合和（可选择）方案值。

语法

object.ChangeScenario(changingCells, values)

object

必选项。指定Scenario对象。

changingCells

必选项，指定一个 Range 对象，该对象指定了方案新的更改单元格集合。更改了的单元格应与方案在同一个工作表上。

values

可选项。为更改单元格指定含有新的方案值数组。若此参数被省略，方案值被假定为更改单元格的当前值。

注意：

若指定 values ，则数组应为 changingCells 区域的每个单元格准备一个元素，否则 Microsoft Excel 会产生错误。


ChangingCells 属性

存取器。指定一个 Range 对象，该对象指定了方案新的更改单元格。只读。


Comment 属性

返回或设置与方案相关的备注，备注文本不可超过255个字符。可读写。


CreateSummary 方法

在指定的工作表上，为方案建立一个新的含有总结报告的工作表。

语法

object.CreateSummary(reportType, resultCells)

object

必选项。指定Scenarios集合对象。

reportType

可选项。指定报告类型（xlStandardSummary 或 xlPivotTable之一）。若省略该参数，则创建一标准报告。

resultCells

可选项。在指定工作表上含有结果单元格的区域。通常，该区域指的是一个或多个含有公式的单元格，这些公式取决于更改的单元格。

模型值棗即显示特定方案结果的单元格。若该参数被省略，则在报告中不包括结果单元格。


ErrorBar 方法

将误差线用于系列。

语法

object.ErrorBar(direction, include, type, amount, minusValues)

object

必选项。指定Series对象。

direction

可选项。指定误差线方向（可以是 xlX 或 xl；X 只可用于散点图表）。若此参数被省略，则误差线用于Y方向。

include

可选项。指定所包含的误差线部分（xlPlusValues, xlMinusValues, xlNone, 或 xlBoth 其中之一）。若此参数被省略，则两条误差线都将被包含在内。

Type

可选项。指定误差线类型（xlFixedValue, xlPercent, xlStDev, xlStError, 或xlCustom 其中之一）。

amount

可选项。指定误差量。当 type = xlCustom 时，此参数只用于正的误差量。

minusValues

可选项。当type = xlCustom.时指定负误差量。


ErrorBars 属性

 存取器。返回代表系列误差线的 ErrorBars 对象。只读。


HasErrorBars 属性

若系列具有误差线，则此属性为 True。 该属性不可用在三维图表上。可读写。


InvertIfNegative 属性

当图案对应于负数时，若 Microsoft Excel 将项中的图案颜色取反，则此属性为 True。可读写。


PlotOrder 属性

在图表组中返回或设置系列的绘制次序。可读写。

注意：

绘制次序只可在一个图表组中被设置（若有多个图表类型，不可设置全部图表的绘制次序）。一个图表组是具有相同图表类型及子类型的系列的集合。

更改一个系列的绘制次序会导致图表组上其它系列的绘制次序作必要的调整。


Points 方法

存取器。返回代表系列中单个点的对象（Point 对象，语法1）或所有点的集合（ Points 对象，语法2）。只读。

语法1

object.Points(index)

语法2

object.Points

object

在语法1中为必选项，指定Series对象。

index

在语法1中为必选项，指定点的名称或数目。


Smooth 属性

若线条或散点图表具有平滑曲线，则此参数为 True 。只适用于线条和散点图表。可读写。


Trendlines 方法

存取器，返回代表系列单个趋势线的对象（Trendline 对象，语法1）或所有趋势线的集合（Trendlines 对象，语法2）。

语法1

object.Trendlines(index)

语法2

object.Trendlines

object

在语法1中为必选项，指定Series 对象。

index

在语法1中为必选项，指定点的名称或数目。


Values 属性

Scenario对象：返回含有方案所修改的单元格当前值的数组。只读。

Series对象：返回或设置系列中全部数值的集合。可以是工作表上的一个区域或一个常数数组（但不是二者的组合）。有关详细信息，请参见例子。可读写。


内部对话框参数表

对话常数	参数表
xlDialogActivate	window_text, pane_num
xlDialogActiveCellFont	font, font_style, size, strikethrough, superscript, subscript, outline, shadow, underline, color, normal, background, start_char, char_count
xlDialogAddChartAutoformat	name_text, desc_text
xlDialogAddinManager	operation_num, addinname_text, copy_logical
xlDialogAlignment	horiz_align, wrap, vert_align, orientation, add_indent
xlDialogApplyNames	name_array, ignore, use_rowcol, omit_col, omit_row, order_num, append_last
xlDialogApplyStyle	style_text
xlDialogAppMove	x_num, y_num
xlDialogAppSize	x_num, y_num
xlDialogArrangeAll	arrange_num, active_doc, sync_horiz, sync_vert
xlDialogAssignToObject	macro_ref
xlDialogAssignToTool	bar_id, position, macro_ref
xlDialogAttachText	attach_to_num, series_num, point_num
xlDialogAttachToolbars
xlDialogAutoCorrect	correct_initial_caps, capitalize_days
xlDialogAxes	x_primary, y_primary, x_secondary, y_secondary
xlDialogAxes	x_primary, y_primary, z_primary
xlDialogBorder	outline, left, right, top, bottom, shade, outline_color, left_color, right_color, top_color, bottom_color
xlDialogCalculation	type_num, iter, max_num, max_change, update, precision, date_1904, calc_save, save_values, alt_exp, alt_form
xlDialogCellProtection	locked, hidden
xlDialogChangeLink	old_text, new_text, type_of_link
xlDialogChartAddData	ref, rowcol, titles, categories, replace, series
xlDialogChartTrend	type, ord_per, forecast, backcast, intercept, equation, r_squared, name
xlDialogChartWizard	long, ref, gallery_num, type_num, plot_by, categories, ser_titles, legend, title, x_title, y_title, z_title, number_cats, number_titles
xlDialogCheckboxProperties	value, link, accel_text, accel2_text, 3d_shading
xlDialogClear	type_num
xlDialogColorPalette	file_text
xlDialogColumnWidth	width_num, reference, standard, type_num, standard_num
xlDialogCombination	type_num
xlDialogConsolidate	source_refs, function_num, top_row, left_col, create_links
xlDialogCopyChart	size_num
xlDialogCopyPicture	appearance_num, size_num, type_num
xlDialogCreateNames	top, left, bottom, right
xlDialogCreatePublisher	file_text, appearance, size, formats
xlDialogCustomizeToolbar	category
xlDialogDataDelete
xlDialogDataLabel	show_option, auto_text, show_key
xlDialogDataSeries	rowcol, type_num, date_num, step_value, stop_value, trend
xlDialogDefineName	name_text, refers_to, macro_type, shortcut_text, hidden, category, local
xlDialogDefineStyle	style_text, number, font, alignment, border, pattern, protection
xlDialogDefineStyle	style_text, attribute_num, additional_def_args, ...
xlDialogDeleteFormat	format_text
xlDialogDeleteName	name_text
xlDialogDemote	row_col
xlDialogDisplay	formulas, gridlines, headings, zeros, color_num, reserved, outline, page_breaks, object_num
xlDialogDisplay	cell, formula, value, format, protection, names, precedents, dependents, note
xlDialogEditboxProperties	validation_num, multiline_logical, vscroll_logical, password_logical
xlDialogEditColor	color_num, red_value, green_value, blue_value
xlDialogEditDelete	shift_num
xlDialogEditionOptions	edition_type, edition_name, reference, option, appearance, size, formats
xlDialogEditSeries	series_num, name_ref, x_ref, y_ref, z_ref, plot_order
xlDialogErrorbarX	include, type, amount, minus
xlDialogErrorbarY	include, type, amount, minus
xlDialogExtract	unique
xlDialogFileDelete	file_text
xlDialogFillGroup	type_num
xlDialogFillWorkgroup	type_num
xlDialogFilterAdvanced	operation, list_ref, criteria_ref, copy_ref, unique
xlDialogFindFile
xlDialogFont	name_text, size_num
xlDialogFontProperties	font, font_style, size, strikethrough, superscript, subscript, outline, shadow, underline, color, normal, background, start_char, char_count
xlDialogFormatAuto	format_num, number, font, alignment, border, pattern, width
xlDialogFormatChart	layer_num, view, overlap, angle, gap_width, gap_depth, chart_depth, doughnut_size, axis_num, drop, hilo, up_down, series_line, labels, vary
xlDialogFormatCharttype	apply_to, group_num, dimension, type_num
xlDialogFormatFont	color, backgd, apply, name_text, size_num, bold, italic, underline, strike, outline, shadow, object_id, start_num, char_num
xlDialogFormatFont	name_text, size_num, bold, italic, underline, strike, color, outline, shadow
xlDialogFormatFont	name_text, size_num, bold, italic, underline, strike, color, outline, shadow, object_id_text, start_num, char_num
xlDialogFormatLegend	position_num
xlDialogFormatMain	type_num, view, overlap, gap_width, vary, drop, hilo, angle, gap_depth, chart_depth, up_down, series_line, labels, doughnut_size
xlDialogFormatMove	x_offset, y_offset, reference
xlDialogFormatMove	x_pos, y_pos
xlDialogFormatMove	explosion_num
xlDialogFormatNumber	format_text
xlDialogFormatOverlay	type_num, view, overlap, gap_width, vary, drop, hilo, angle, series_dist, series_num, up_down, series_line, labels, doughnut_size
xlDialogFormatSize	width, height
xlDialogFormatSize	x_off, y_off, reference
xlDialogFormatText	x_align, y_align, orient_num, auto_text, auto_size, show_key, show_value, add_indent
xlDialogFormulaFind	text, in_num, at_num, by_num, dir_num, match_case, match_byte
xlDialogFormulaGoto	reference, corner
xlDialogFormulaReplace	find_text, replace_text, look_at, look_by, active_cell, match_case, match_byte
xlDialogFunctionWizard
xlDialogGallery3dArea	type_num
xlDialogGallery3dBar	type_num
xlDialogGallery3dColumn	type_num
xlDialogGallery3dLine	type_num
xlDialogGallery3dPie	type_num
xlDialogGallery3dSurface	type_num
xlDialogGalleryArea	type_num, delete_overlay
xlDialogGalleryBar	type_num, delete_overlay
xlDialogGalleryColumn	type_num, delete_overlay
xlDialogGalleryCustom	name_text
xlDialogGalleryDoughnut	type_num, delete_overlay
xlDialogGalleryLine	type_num, delete_overlay
xlDialogGalleryPie	type_num, delete_overlay
xlDialogGalleryRadar	type_num, delete_overlay
xlDialogGalleryScatter	type_num, delete_overlay
xlDialogGoalSeek	target_cell, target_value, variable_cell
xlDialogGridlines	x_major, x_minor, y_major, y_minor, z_major, z_minor, 2D_effect
xlDialogInsert	shift_num
xlDialogInsertObject	object_class, file_name, link_logical, display_icon_logical, icon_file, icon_number, icon_label
xlDialogInsertPicture	file_name, filter_number
xlDialogInsertTitle	chart, y_primary, x_primary, y_secondary, x_secondary
xlDialogLabelProperties	accel_text, accel2_text, 3d_shading
xlDialogListboxProperties	range, link, drop_size, multi_select, 3d_shading
xlDialogMacroOptions	macro_name, description, menu_on, menu_text, shortcut_on, shortcut_key, function_category, status_bar_text, help_id, help_file
xlDialogMailEditMailer	to_recipients, cc_recipients, bcc_recipients, subject, enclosures, which_address
xlDialogMailLogon	name_text, password_text, download_logical
xlDialogMailNextLetter
xlDialogMainChart	type_num, stack, 100, vary, overlap, drop, hilo, overlap%, cluster, angle
xlDialogMainChartType	type_num
xlDialogMenuEditor
xlDialogMove	x_pos, y_pos, window_text
xlDialogNew	type_num, xy_series, add_logical
xlDialogNote	add_text, cell_ref, start_char, num_chars
xlDialogObjectProperties	placement_type, print_object
xlDialogObjectProtection	locked, lock_text
xlDialogOpen	file_text, update_links, read_only, format, prot_pwd, write_res_pwd, ignore_rorec, file_origin, custom_delimit, add_logical, editable, file_access, notify_logical, converter
xlDialogOpenLinks	document_text1, document_text2, ..., read_only, type_of_link
xlDialogOpenMail	subject, comments
xlDialogOpenText	file_name, file_origin, start_row, file_type, text_qualifier, consecutive_delim, tab, semicolon, comma, space, other, other_char, field_info
xlDialogOptionsCalculation	type_num, iter, max_num, max_change, update, precision, date_1904, calc_save, save_values
xlDialogOptionsChart	display_blanks, plot_visible, size_with_window
xlDialogOptionsEdit	incell_edit, drag_drop, alert, entermove, fixed, decimals, copy_objects, update_links, move_direction, autocomplete, animations
xlDialogOptionsGeneral	R1C1_mode, dde_on, sum_info, tips, recent_files, old_menus, user_info, font_name, font_size, default_location, alternate_location, sheet_num, enable_under
xlDialogOptionsListsAdd	string_array
xlDialogOptionsListsAdd	import_ref, by_row
xlDialogOptionsTransition	menu_key, menu_key_action, nav_keys, trans_eval, trans_entry
xlDialogOptionsView	formula, status, notes, show_info, object_num, page_breaks, formulas, gridlines, color_num, headers, outline, zeros, hor_scroll, vert_scroll, sheet_tabs
xlDialogOutline	auto_styles, row_dir, col_dir, create_apply
xlDialogOverlay	type_num, stack, 100, vary, overlap, drop, hilo, overlap%, cluster, angle, series_num, auto
xlDialogOverlayChartType	type_num
xlDialogPageSetup	head, foot, left, right, top, bot, hdng, grid, h_cntr, v_cntr, orient, paper_size, scale, pg_num, pg_order, bw_cells, quality, head_margin, foot_margin, notes, draft
xlDialogPageSetup	head, foot, left, right, top, bot, size, h_cntr, v_cntr, orient, paper_size, scale, pg_num, bw_chart, quality, head_margin, foot_margin, draft
xlDialogPageSetup	head, foot, left, right, top, bot, orient, paper_size, scale, quality, head_margin, foot_margin, pg_num
xlDialogParse	parse_text, destination_ref
xlDialogPasteSpecial	paste_num, operation_num, skip_blanks, transpose
xlDialogPasteSpecial	rowcol, titles, categories, replace, series
xlDialogPasteSpecial	paste_num
xlDialogPasteSpecial	format_text, pastelink_logical, display_icon_logical, icon_file, icon_number, icon_label
xlDialogPatterns	apattern, afore, aback, newui
xlDialogPatterns	lauto, lstyle, lcolor, lwt, hwidth, hlength, htype
xlDialogPatterns	bauto, bstyle, bcolor, bwt, shadow, aauto, apattern, afore, aback, rounded, newui
xlDialogPatterns	bauto, bstyle, bcolor, bwt, shadow, aauto, apattern, afore, aback, invert, apply, newfill
xlDialogPatterns	lauto, lstyle, lcolor, lwt, tmajor, tminor, tlabel
xlDialogPatterns	lauto, lstyle, lcolor, lwt, apply, smooth
xlDialogPatterns	lauto, lstyle, lcolor, lwt, mauto, mstyle, mfore, mback, apply, smooth
xlDialogPatterns	type, picture_units, apply
xlDialogPivotFieldGroup	start, end, by, periods
xlDialogPivotFieldProperties	name, pivot_field_name, new_name, orientation, function, formats
xlDialogPivotFieldUngroup
xlDialogPivotShowPages	name, page_field
xlDialogPivotTableWizard	type, source, destination, name, row_grand, col_grand, save_data, apply_auto_format, auto_page, reserved
xlDialogPlacement	placement_type
xlDialogPrint	range_num, from, to, copies, draft, preview, print_what, color, feed, quality, y_resolution, selection, printer_text, print_to_file, collate
xlDialogPrinterSetup	printer_text
xlDialogPrintPreview
xlDialogPromote	rowcol
xlDialogProperties	title, subject, author, keywords, comments
xlDialogProtectDocument	contents, windows, password, objects, scenarios
xlDialogPushbuttonProperties	default_logical, cancel_logical, dismiss_logical, help_logical, accel_text, accel_text2
xlDialogReplaceFont	font_num, name_text, size_num, bold, italic, underline, strike, color, outline, shadow
xlDialogRoutingSlip	recipients, subject, message, route_num, return_logical, status_logical
xlDialogRowHeight	height_num, reference, standard_height, type_num
xlDialogRun	reference, step
xlDialogSaveAs	document_text, type_num, prot_pwd, backup, write_res_pwd, read_only_rec
xlDialogSaveCopyAs	document_text
xlDialogSaveNewObject
xlDialogSaveWorkbook	document_text, type_num, prot_pwd, backup, write_res_pwd, read_only_rec
xlDialogSaveWorkspace	name_text
xlDialogScale	cross, cat_labels, cat_marks, between, max, reverse
xlDialogScale	min_num, max_num, major, minor, cross, logarithmic, reverse, max
xlDialogScale	cat_labels, cat_marks, reverse, between
xlDialogScale	series_labels, series_marks, reverse
xlDialogScale	min_num, max_num, major, minor, cross, logarithmic, reverse, min
xlDialogScenarioAdd	scen_name, value_array, changing_ref, scen_comment, locked, hidden
xlDialogScenarioCells	changing_ref
xlDialogScenarioEdit	scen_name, new_scenname, value_array, changing_ref, scen_comment, locked, hidden
xlDialogScenarioMerge	source_file
xlDialogScenarioSummary	result_ref, report_type
xlDialogScrollbarProperties	value, min, max, inc, page, link, 3d_shading
xlDialogSelectSpecial	type_num, value_type, levels
xlDialogSendMail	recipients, subject, return_receipt
xlDialogSeriesAxes	axis_num
xlDialogSeriesOrder	chart_num, old_series_num, new_series_num
xlDialogSeriesX	x_ref
xlDialogSeriesY	name_ref, y_ref
xlDialogSetControlValue	value
xlDialogSetPrintTitles	titles_for_cols_ref, titles_for_rows_ref
xlDialogSetUpdateStatus	link_text, status, type_of_link
xlDialogShowDetail	rowcol, rowcol_num, expand, show_field
xlDialogShowToolbar	bar_id, visible, dock, x_pos, y_pos, width, protect, tool_tips, large_buttons, color_buttons
xlDialogSize	width, height, window_text
xlDialogSort	orientation, key1, order1, key2, order2, key3, order3, header, custom, case
xlDialogSort	orientation, key1, order1, type, custom
xlDialogSortSpecial	sort_by, method, key1, order1, key2, order2, key3, order3, header, order, case
xlDialogSplit	col_split, row_split
xlDialogStandardFont	name_text, size_num, bold, italic, underline, strike, color, outline, shadow
xlDialogStandardWidth	standard_num
xlDialogStyle	bold, italic
xlDialogSubscribeTo	file_text, format_num
xlDialogSubtotalCreate	at_change_in, function_num, total, replace, pagebreaks, summary_below
xlDialogSummaryInfo	title, subject, author, keywords, comments
xlDialogTable	row_ref, column_ref
xlDialogTabOrder
xlDialogTextToColumns	destination_ref, data_type, text_delim, consecutive_delim, tab, semicolon, comma, space, other, other_char, field_info
xlDialogUnhide	window_text
xlDialogUpdateLink	link_text, type_of_link
xlDialogVbaInsertFile	filename_text
xlDialogVbaMakeAddin	filename_text
xlDialogVbaProcedureDefinition
xlDialogView3d	elevation, perspective, rotation, axes, height%, autoscale
xlDialogWindowMove	x_pos, y_pos, window_text
xlDialogWindowSize	width, height, window_text
xlDialogWorkbookAdd	name_array, dest_book, position_num
xlDialogWorkbookCopy	name_array, dest_book, position_num
xlDialogWorkbookInsert	type_num
xlDialogWorkbookMove	name_array, dest_book, position_num
xlDialogWorkbookName	oldname_text, newname_text
xlDialogWorkbookNew
xlDialogWorkbookOptions	sheet_name, bound_logical, new_name
xlDialogWorkbookProtect	structure, windows, password
xlDialogWorkbookTabSplit	ratio_num
xlDialogWorkbookUnhide	sheet_text
xlDialogWorkgroup	name_array
xlDialogWorkspace	fixed, decimals, r1c1, scroll, status, formula, menu_key, remote, entermove, underlines, tools, notes, nav_keys, menu_key_action, drag_drop, show_info
xlDialogZoom	magnification


SolverAdd 函数

将一个约束条件加入到当前问题中。等价于在“工具”菜单中单击“规划求解”命令，然后在“规划求解参数”对话框中单击“添加”命令。

在使用此函数之前，必须建立一个“规划求解”加载宏的引用。在一个 Visual Basic 模块表活动时，在“工具”菜单上单击“引用位置”命令，然后在“现有引用”框中选择“Solver.XLA”复选框。如果在“现有引用”复选框里不存在“Solver.xla”，请单击“浏览”命令，再单击“\Excel \Libraty\Solver”文件夹中的“Solver”，然后单击“确定”命令。

语法

SolverAdd(cellRef,relation,formulaText)

cellRef

必选项。指定一个单元格或一个构成约束条件左边界的单元格区域的引用。

Relation

必选项。指定约束条件左右两边的算术关系。如果选4，则cellRef参数必须包含一个整数，并且不应该指定 formulaText 参数。

关系	算术关系
1	<=
2	=
3	>=
4	被 cellRef 参数引用的单元格必须包含整数。
FormulaText

可选项。约束条件的右边界。

注意：

添加约束条件后，可以使用SolverChange 和 SolverDelete 函数使用它们。


SolverChange 函数

更改一个现有的约束条件。等价于先在“工具”菜单上单击“规划求解”命令然后在“规划求解参数”对话框中单击“更改”命令。

在使用此函数之前，必须建立一个“规划求解”加载宏的引用。在一个 Visual Basic 模块表活动时，在“工具”菜单上单击“引用位置”命令，然后在“现有引用”框中选择“Solver.XLA”复选框。如果在“现有引用”复选框里不存在“Solver.xla”，请单击“浏览”命令，再单击“\Excel \Libraty\Solver”文件夹中的“Solver”，然后单击“确定”命令。

语法

SolverChange(cellRef,relation,formulaText)

cellRef

必选项。指定一个单元格或一个构成约束条件左边界的单元格区域的引用。

Relation

必选项。指定约束条件左右边界的算数关系。如果选4，则 cellRef 必须包含一个整数，并且不能被指定 formulaText 参数。

关系	算术关系
1	<=
2	=
3	>=
4	被 cellRef 参数引用的单元格必须包含整数。

FormulaText

可选项。约束条件的右边界。

注意：

如果 cellRef 和relation 与现有的约束条件不匹配，则必须使用SolverDelete 和 SolverAdd 函数来更改约束条件。


SolverDelete 函数

删除一个现有的约束条件。等价于先在“工具”菜单上单击“规划求解”命令，然后在“规划求解参数”对话框中单击“删除”命令。

在使用此函数之前，必须建立一个“规划求解”加载宏的引用。在一个 Visual Basic 模块表活动时，在“工具”菜单上单击“引用位置”命令，然后在“现有引用”框中选择“Solver.XLA”复选框。如果在“现有引用”复选框里不存在“Solver.xla”，请单击“浏览”命令，再单击“\Excel \Libraty\Solver”文件夹中的“Solver”，然后单击“确定”命令。

语法

SolverDelete(cellRef,relation,formulaText)

cellRef

必选项。指定一个单元格或一个构成约束条件左边界的单元格区域的引用。

Relation

必选项。指定约束条件左右边界的算数关系。如果选4，则 cellRef 必须包含一个整数，并且不能被指定 formulaText 参数。

关系	算术关系
1	<=
2	=
3	>=
4	被 cellRef 参数引用的单元格必须包含整数。

FormulaText

可选项。约束条件的右边界。


SolverFinish 函数

指示 Microsoft Excel 如何处理结果，以及当求解过程完成时创建何种类型的报告。

在使用此函数之前，必须建立一个“规划求解”加载宏的引用。在一个 Visual Basic 模块表活动时，在“工具”菜单上单击“引用位置”命令，然后在“现有引用”框中选择“Solver.XLA”复选框。如果在“现有引用”复选框里不存在“Solver.xla”，请单击“浏览”命令，再单击“\Excel \Libraty\Solver”文件夹中的“Solver”，然后单击“确定”命令。

语法

SolverFinish(keepFinal,reportArray)

keepFinal

可选项。可以是数字1或2。如果 keepFinal 参数是1或者省略，则最终结果将保存在更改的单元格中并代替原值。如果 keepFinal 是2，则最终结果值将被废弃，并且恢复原值。

reportArray

可选项。指定当“规划求解”命令完成时 Microsoft Excel 将建立何种类型的报告：1创建一个答案报告。2 建立一个灵敏度报告。3创建一个极限报告。请使用Array 函数来指定所要显示的报告。例如：

ReportArray=Array(1,3)。


SolverFinishDialog 函数

指示 Microsoft Excel 如何处理结果，以及当求解过程完成时创建何种类型的报告。

求解一个问题后显示“规划求解结果”对话框。基本等价于 SolverFinish 函数，只是求解完一个问题后显示“规划求解结果”对话框。

在使用此函数之前，必须建立一个“规划求解”加载宏的引用。在一个 Visual Basic 模块表活动时，在“工具”菜单上单击“引用位置”命令，然后在“现有引用”框中选择“Solver.XLA”复选框。如果在“现有引用”复选框里不存在“Solver.xla”，请单击“浏览”命令，再单击“\Excel \Libraty\Solver”文件夹中的“Solver”，然后单击“确定”命令。

语法

SolverFinish(keepFinal,reportArray)

keepFinal

可选项。可以是数字1或2。如果 keepFinal 参数是1或者省略，则最终结果将保存在更改的单元格中并代替原值。如果 keepFinal 是2，则最终结果值将被废弃，并且恢复原值。

reportArray

可选项。指定当“规划求解”命令完成时 Microsoft Excel 将建立何种类型的报告：1创建一个答案报告。2 建立一个灵敏度报告，3创建一个极限报告。请使用Array 函数来指定所要显示的报告。例如：

ReportArray=Array(1,3).


SolverGet 函数

返回当前“规划求解”设置的信息。这些设置在“规划求解参数”和“规划求解选项”框中被指定。

在使用此函数之前，必须建立一个“规划求解”加载宏的引用。在一个 Visual Basic 模块表活动时，在“工具”菜单上单击“引用位置”命令，然后在“现有引用”框中选择“Solver.XLA”复选框。如果在“现有引用”复选框里不存在“Solver.xla”，请单击“浏览”命令，再单击“\Excel \Libraty\Solver”文件夹中的“Solver”，然后单击“确定”命令。

语法

SolverGet(typeNum,sheetName)

typeNum

必选项。指定一个数字，表明所要的信息类型。下列设置在“规划求解参数”对话框中被指定。

类型号	返回信息

1	返回“设置目标单元格”框中的引用。如果“规划求解”没有在当前活动工作表上使用，则返回 #N/A 错误值。
2	返回对应于“等于”选项的一个数字：1代表最大值，2 代表最小值，3代表目标值。
3	返回“目标值”框中的数值。
4	返回“可变单元格”框中的引用(如果有必要，则返回多重引用)
5	返回约束条件的个数
6	返回文本表单中约束条件左边界数组。
7	返回对应于约束条件左右边界关系的数字数组：1代表<=，2代表=，3代表>=，4代表积分。
8	返回文本表单中约束条件右边界数组

下列设置在“规划求解选项”对话框中被指定

9	返回最大的计算时间。
10	返回循环的最多次数
11	返回精度。
12	返回整型公差值
13	如果“采用线性模型”复选框被选定，则为 True；如果被清除则为 False。
14	如果“显示循环结果”复选框被选定则为 True；如果被清除则为 False。
15	如果“使用自动缩放”复选框被选定则为 True；如果被清除则为 False。
16	返回一个对应于估计类型的数字：1代表“正切”，2代表“正方”。
17	返回一个对应于导数类型的数字：1代表“前”，2代表“中点”。
18	返回一个对应于搜索类型的数字：1代表“Quasi-Newton”。2 代表“共轭斜率”。

SheetName

可选项。指定工作表名称，其中包含所需信息的方案。如果 SheetName 参数被省略，则默认为活动工作表。


SolverLoad 函数

为一个现有的“规划求解”模型装载保存在工作表中的参数。

在使用此函数之前，必须建立一个“规划求解”加载宏的引用。在一个 Visual Basic 模块表活动时，在“工具”菜单上单击“引用位置”命令，然后在“现有引用”框中选择“Solver.XLA”复选框。如果在“现有引用”复选框里不存在“Solver.xla”，请单击“浏览”命令，再单击“\Excel \Libraty\Solver”文件夹中的“Solver”，然后单击“确定”命令。

语法

SolverLoad(loadArea)

loadArea

必选项。指定在活动工作表上的一个单元格区域引用，将从此单元格区域装载一个完整的问题规则，在 LoadArea 第一个单元格中包含一个为“规划求解参数”对话框中“设置目标单元格”框所准备的公式，第二个单元格包含为“可变单元格”框所准备的公式。下面的单元格包含逻辑公式表中的约束条件。最后一个单元格可包含一个“规划求解”选项值数组。有关的详细的信息，请参阅SolverOptions。参数 LoadArea 代表的区域可以在任何工作表上，但是如果它不是活动工作表，则必须指定工作表。例如，

Solverload(�skeet2!A1:A3�)从Sheet2装载了一个模型，即使它不是一个活动工作表。


SolverOk 函数

定义了一个基本的“规划求解”模型。等价于先在“工具”菜单上单击“规划求解”命令，然后在“规划求解参数”对话框中指定选项。

在使用此函数之前，必须建立一个“规划求解”加载宏的引用。在一个 Visual Basic 模块表活动时，在“工具”菜单上单击“引用位置”命令，然后在“现有引用”框中选择“Solver.XLA”复选框。如果在“现有引用”复选框里不存在“Solver.xla”，请单击“浏览”命令，再单击“\Excel \Libraty\Solver”文件夹中的“Solver”，然后单击“确定”命令。

语法

 Solverok(setCell,maxMinVal,valueOf,byChange)

setCell

可选项。在活动工作表引用一个单元格，相当于“规划求解参数”对话框中的“设置目标单元格”框。

maxMinVal

可选项。相当于“规划求解参数”对话框中的“最大值”，“最小值”和“指定值”选项。

maxMinval	指定信息
1	最大
2	最小
3	匹配指定值
valueOf

可选项。如果 maxMinVal 参数值为3，则必须指定与目标单元格匹配的数值。

Bychange

必选项。为了在目标单元格获取期望值，指定将要更改的单元格或单元格区域。相当于“规划求解参数”框中的“可变单元格”框。


SolverOkDialog 函数

与 SolverOK 函数基本相同，只是显示“规划求解”对话框。

在使用此函数之前，必须建立一个“规划求解”加载宏的引用。在一个 Visual Basic 模块表活动时，在“工具”菜单上单击“引用位置”命令，然后在“现有引用”框中选择“Solver.XLA”复选框。如果在“现有引用”复选框里不存在“Solver.xla”，请单击“浏览”命令，再单击“\Excel \Libraty\Solver”文件夹中的“Solver”，然后单击“确定”命令。

语法

 SolverokDialog(setCell,maxMinVal,valueOf,byChange)

setCell

可选项。在活动工作表引用一个单元格，相当于“规划求解参数”对话框中的“设置目标单元格”框。

maxMinVal

可选项。相当于“规划求解参数”对话框中的“最大值”，“最小值”和“指定值”选项。

maxMinval	指定信息
1	最大
2	最小
3	匹配指定值
valueOf

可选项。如果 maxMinVal 参数值为3，则必须指定与目标单元格匹配的数值。

Bychange

必选项。为了在目标单元格获取期望值，指定将要更改的单元格或单元格区域。相当于“规划求解参数”框中的“可变单元格”框。


SolverOptions 函数

允许给“规划求解”模型指定高级选项。这个函数和它的参数相当于“规划求解选项”对话框中的选项。

在使用此函数之前，必须建立一个“规划求解”加载宏的引用。在一个 Visual Basic 模块表活动时，在“工具”菜单上单击“引用位置”命令，然后在“现有引用”框中选择“Solver.XLA”复选框。如果在“现有引用”复选框里不存在“Solver.xla”，请单击“浏览”命令，再单击“\Excel \Libraty\Solver”文件夹中的“Solver”，然后单击“确定”命令。

语法

SolverOptions(maxTime,iterations,precision,assumeLinear,stepThru,estimates,derivatives,search,intTolerance,scaling)

maxTime

可选项。Microsoft Excel 求解问题将耗费的最大时间(以秒计)，这个数值必须是一个正整数。默认值100对于大多数小问题是足够的，但是可以输入一个高达32，767的值。

iterations

可选项。Microsoft Excel 将用于求解问题的最多循环次数。这个数值必须是一个正整数，默认值 100 对于大多数小问题是足够的，但是可以输入一个高达32，767的值。

precision

可选项。一个在0-1之间，指定用于求解问题精度程度的数字。默认缺省值为0.000001。较少的小数点位置将表明精确度较低。例如：0.0001。总之，指定的精度愈高(一个更小 的数字)，“规划求解”得出结果所耗费的时间愈长。

assumeLinear

可选项。如果为True，“规划求解”假定基本模型是线性。这就加快了求解过程，但是它只能用于模型中的所有关系均是线性的情况。False为缺省值。

stepThru

可选项。如果为True，“规划求解”在每一个近似解处暂停。您可以通过使用 SolverSolve 函数中的 showRef 参数在每一个暂停处通过“规划求解”命令运行一个宏。如果为False，“规划求解”将不在每一近似解处暂停。False为缺省值。

estimates

可选项。在每一个一维搜索里，指定用来获得基本变量初始估计的方法；1代表“正切”估计，2代表“正方”估计。“正切”估计使用来自一个正切向量的线性外推。“正方”估计使用正方外推；这些均可以改善高非线性问题的结果。“正切”估计为缺省值。

derivatives

可选项。指定目标函数和约束条件函数的部分导数估计的前求差或中心求差；1代表前求差，2代表中心求差。中心求差需求更多的工作表重算，但是它可以帮助求解问题产生一个信息，指明“规划求解”命令不能改善求解结果。若代表函数的图形不是光滑且连续，则应该使用“中心”求差选项。“前求差”为缺省值。

search

可选项。可使用 Sesrch 参数选项来指定在每一循环时将使用何种搜索算法，并决定在哪一个方向上搜索；1代码牛顿搜索方法，2代表共轭搜索法。牛顿法使用 puasi-Newton 原理，是缺省的搜索方法，这个方法通常要比共轭搜索方法需要更多的内存，但是它需要较少的循环。共轭斜率搜索和牛顿搜索法相比需要较少的内存，但是它通常需要较多的循环来达到一定的精确度。如果有一个大的问题需要求解，但内存较少，您可以尝试这种方法。如果跳过循环将在相继试验点处显示缓慢进展时，共轭搜索特别有用。

intTolerance

可选项。一个0-1之间的小数，它指定整型公差。这个参数只有在整型约束条件已经定义的前提下才能使用。可以调整“公差”数字，它代表一个在最优解范围内允许的误差百分率，这时一个整型约束方程可用在任何问题的元素上。一个较高的公差(可允许的误差百分率)倾向于加速求解过程。

scaling

可选项。如果为 True，并且两个或更多的约束条件相差几个数量级，“规划求解”在计算过程中将缩放约束方法为近似的数量级。当输入(在“规划求解参数”对话框中的“可变单元格”框里)和输出(在“规划求解”参数对话框中的“设置目标单元格”和“服从约束方程”框里)在数量级上有很大不同时，例如，百万美元投资基础上的最大百分收益。如果为 False，“规划求解”将不缩放约束条件进行计算。False 为缺省值。


SolverSave 函数

在工作表上保存“规划求解”问题规则。

在使用此函数之前，必须建立一个“规划求解”加载宏的引用。在一个 Visual Basic 模块表活动时，在“工具”菜单上单击“引用位置”命令，然后在“现有引用”框中选择“Solver.XLA”复选框。如果在“现有引用”复选框里不存在“Solver.xla”，请单击“浏览”命令，再单击“\Excel \Libraty\Solver”文件夹中的“Solver”，然后单击“确定”命令。

语法

SolverSave(saveArea)

saveArea

必选项。保存“规划求解”模型的单元格区域。 saveArea 参数代表的区域可以在任何工作表上，但是如果它不是活动工作表，则必须要指定这个工作表。例如SolverSave(�sheet2!A1:A3�)  即使 sheet2 不是活动工作表，也可以在其上保存模型。


SolverSolve 函数

开始运行一个“规划求解”的求解过程。等价于在“规划求解参数”对话框中单击“规划求解”命令。

在使用此函数之前，必须建立一个“规划求解”加载宏的引用。在一个 Visual Basic 模块表活动时，在“工具”菜单上单击“引用位置”命令，然后在“现有引用”框中选择“Solver.XLA”复选框。如果在“现有引用”复选框里不存在“Solver.xla”，请单击“浏览”命令，再单击“\Excel \Libraty\Solver”文件夹中的“Solver”，然后单击“确定”命令。

语法

SolverSolve(userFinish,showRef)

userFinish

可选项。如果为 True，则不显示“规划求解结果”对话框就返回结果。如果为False或省略，返回结果并显示“规划求解结果”对话框。

showRef

可选项。只有在 solverOptions 函数中的 stepThru 参数为 True 的前提下才能使用。可以通过一个宏的名称(一个字符串)作为 showRef 参数值。只要“规划求解”返回一个中间结果时就引用此宏。


SolverReset 函数

在“规划求解参数”对话框中重新设置所有单元格，以及在“规划求解选项”对话框中恢复所有设置为它们的默认值。等价于在“规划求解参数”对话框中单击“全部重设”命令。在调用 SolverLoad 函数时将自动调用 SolverReset 函数。

在使用此函数之前，必须建立一个“规划求解”加载宏的引用。在一个 Visual Basic 模块表活动时，在“工具”菜单上单击“引用位置”命令，然后在“现有引用”框中选择“Solver.XLA”复选框。如果在“现有引用”复选框里不存在“Solver.xla”，请单击“浏览”命令，再单击“\Excel \Libraty\Solver”文件夹中的“Solver”，然后单击“确定”命令。

语法

SolverReset()


Import 方法

从一个文件夹导入一个声音附注。

语法

object.Import(file, resource)

object

　必选项。指定 SoundNote 对象。

file

　必选项。指定含有声音的文件名称。

resource

对 Apple Macintosh 为必选项(不与 Microsoft Windows 一起使用)。指定文件中导入声源的名称或序号。


Play 方法

　播放声音附注。

语法

object.Play

object

　　必选项。指定 SoundNote 对象。

附注：

　若要播放声音，必须在计算机中安装声音硬件。


Record 方法

　显示录音对话框以便记录下一个声音附注。

语法

object.Record

object

必选项，指定 SoundNote 对象。

附注：

若要录音，必须在计算机中安装声音硬件。不能在一个已经具有声音附注的单元格上记录一个声音附注，必须在记录一个声音附注前删除已有的声音附注。


InputBox函数 (Microsoft Excel)

在Microsoft Excel 中， prompt 字符串包含的字符不能多于256个。


MsgBox 函数 (Microsoft Excel)

在“Microsoft Excel”中，“prompt”字符串包含的字符不能多于256 个。


工具按钮 ID 值

下表显示可用的工具栏和工具栏按钮值。


Visual Basic 常量 (Microsoft Excel)

Microsoft Excel 包含有同方法和属性一起使用的内部常量。这些常量均以字母“xl”开始，有关文档在使用它们的方法或属性。

您可以使用“对象浏览”命令来浏览内部常量表。在“视图”菜单上，单击“对象浏览”命令，再单击“Microsoft Excel 库”，然后单击“常量”对象。在“方法/属性”框中滚动常量表来查看整个表的常量。


可捕获错误(Microsoft Excel )

Microsoft Excel 除了Visual Basic 使用的错误以外，还使用下面的可捕获错误。在 Visual Basic 中也可以处理Microsoft Excel 单元格错误值。关于详细信息，请看单元格错误值。

代码	信息
1000	'[Object]' 没有 '[property name]' 属性 此对象不存在此属性，有关详细信息，请查找有关对象名称的“帮助”命令。
1001	'[Object]' 没有 '[method name]' 方法 此对象不存在此方法。有关详细信息，请查找有关对象名称的“帮助”命令。
1002	缺少需要的变量 '[argument]' 此方法需要一个未被指定的参数。将参数添加到代码上。有关所需参数列表，请查找有关对象名称的“帮助”命令。
1003	变量数无效 此方法指定了错误的参数个数。这通常出现在以位置指定参数而不是以名称指定参数，并且使用了过多参数。有关某方法的有效参数，请查找有关对象名称的“帮助”命令。
1004	'[Method name]' 方法 '[object]' 无效 此方法不能用于该对象，可能的原因如下： 一个参数包含一个无效的数值。这个问题一般是由于试图选取一个不存在的对象而产生的(例如，当只有三个工作簿打开时，试图使用 Workbooks(5)。此方法不能用于特定情况下。例如某些 Range 对象方法要求区域包含数据；如果区域不含有数据，那么此方法失效。 一个外部错误的引入， 例如从一个文件读或写失败。有关详细信息，请查找有关对象名称的“帮助”命令。
1005	不能设置 '[property name]' 属性 '[object]' 级 即此属性不能更改。可能的原因如下： 提供给属性的值无效。(例如，设置属性为一字符串，但是此属性需要一个Boolean值) 此属性为只读。 有关属性的详细信息，请查找有关属性名称的“帮助”命令。
1006	不能得到 '[property name]' 属性 '[object]' 级 此属性不能被读取。一个可能的原因就是此属性不能用于特定情况。例如，如下代码 Activechart.Legend.Font.Color=RGB(255,0,0) 如果活动图表不包含一个图例时，将引起此类错误。 有关属性的详细信息，请查找有关属性名称的“帮助”命令。


SQLBind 函数

请参阅	示例

在 Windows 95 版的 Microsoft Excel 中，XLODBC.XLA 加载宏不使用 SQL Bind 和其它 ODBC 函数，而使用数据访问对象库中的对象，方法和属性。关于数据访问对象更详细的信息，请看 Data Access 浏览。

当使用 SQLRetrieve 函数或 SQLRetrieveToFile 函数检索结果时，SQLBind 函数指定结果的位置。可使用 SQLBind 函数来更改一个查询结果集合的列次序，或者在非相邻工作表列中放置结果集合列。

这个函数包含在 XLODBC.XLA 加载宏（Macintosh 上的 ODBC 加载宏）里。使用函数前，必须使用“引用”命令（“工具”菜单）建立一个加载宏引用。

语法

SQLBind(connectionNum,column,reference)

connectionNum

必选项。指定数据源的唯一连接标志，它由 SQLOpen 函数返回的结果赋值。

column

可选项。指定所要连接的结果集合的列数。结果集合中的列次序为从左向右，起始数为1。如果省略此参数，所有connectionNum的连接将被取消。

第0列包含结果集合的行数。可以通过连接第0列来返回行数。

reference

可选项。指定需要连接结果的工作表某一单元格位置。

返回值

此函数返回一个数组，此数组按列号列出当前连接的连接列。

如果 SQLBind 函数不能在指定的引用将列连接至单元格，它将返回“错误2042”。

如果 connectionNum 参数无效或者连接一个不能使用的单元格，SQLBind 函数将返回“错误2015”。

如果 reference 参数引用多个单元格，SQLBind 函数将返回“错误2023”。

如果 SQLRetrieve 函数没有一个目标参数，则 SQLBind 函数将在引用所指示的位置放置结果集合。

注意：使用SQLRetrieve函数查询时，SQLBind 函数在通知“ODBC 控制面板管理器”结果的位置。这些结果放在引用单元格或引用单元格下面的单元格里。

如果想把来自不同列的结果放在相互分离的工作表位置中，请使用 SQLBind 函数。

请在结果集合的每一列中使用 SQLBind 函数。只要 connectionNum 参数指定的连接打开，连接就一直保持有效。

请在引用 SQLBind 和 SQLExecQuery 函数之后，但在引用 SQLRetrleve 或 SQLRetrieveToFile 函数之前引用 SQLBind 函数。引用 SQLBind 函数不影响已检索的结果。


SQLClose 函数

请参阅	实例

在 Windows 95 版的 Microsoft Excel 中，XLODBC.XLA 加载宏不使用 SQLClose 和其它 ODBC 函数，而使用数据访问对象库中的对象，方法和属性。关于数据访问对象更详细的信息，请看 Data Access 浏览

SQLClose 函数关闭与一个外部数据源的连接。

这个函数包含在 XLODBC.XLA 加载宏（Macintosh 上的 ODBC 加载宏）中。在使用此函数之前，必须使用“引用”命令建立一个加载宏引用。

语法

SQLClose（connectionNum）

connectionNum

必选项。指定所要取消连接的数据源的唯一连接标志。

返回值

如果连接被成功地关闭，这个函数返回0并且连接标志不再有效。

如果 connectionNum 参数无效，这个函数将返回“错误2015”

如果 SQLClose 函数不能取消与数据源的连接，它将返回“错误2042”。


SQLError 函数

请参阅	示例

在 Windows 95 版的 Microsoft Excel 中，XLODBC.XLA 加载宏不使用 SQLError 和其它 ODBC 函数，而使用数据访问对象库中的对象，方法和属性。关于数据访问对象更详细的信息，请看 Data Access 浏览

SQLError 函数在其它 ODBC 函数的某一个失败后将返回详细错误信息。如果 SQLError 函数自己失败，则不能返回错误信息。

不论一个 ODBC 函数在何时失效，错误信息均被定义并保存在内存里。若要使用错误信息，请调用 SQLError 函数。

SQLError 函数只提供某个 ODBC 函数失败时的错误信息。它不提供 Microsoft Excel 的错误信息。

这个函数包含在 XLODBC.XLA 加载宏（Macintosh 上的 ODBC 加载宏）中。在使用此函数前，必须使用“引用”命令建立一个加载宏引用。

语法

SQLError（）

返回值

如果有错误，SQLError 函数以一个二维数组的形式返回详细的错误信息，数组的每一行描述一个错误。

每一行有关于错误信息的三个字段，这些信息是通过在 ODBC 中调用 SQLError 函数获得的。

 显示 ODBC 错误类别和子类别的一个字符串。

 显示数据源原来错误代码的一个数值。

 描述错误的一个文本信息。

如果一个函数引用产生多个错误，SQLError 函数将为每一错误建立一行。

如果在上一个 ODBC 函数调用中没有错误，则这个函数将只返回“错误2042”。


SQLExecQuery 函数

请参阅	示例

在Windows 95版的Microsoft Excel 中，XLODBC.XLA加载宏不使用SQLExecQuery和其它ODBC函数，而使用数据访问对象库中的对象，方法和属性。关于数据访问对象更详细的信息，请看Data Access 浏览.SQLExecQuery函数对一个已用SQLopen函数建立了连接的数据源执行查询。

SQLExecQuery函数只执行查询。请使用SQLRetrieve或SQLRetrieveToFile函数来取得结果。

这个函数包含在XLODBC.XLA加载宏（在Macintosh 上的ODBC加载宏）中。在使用此函数之前，必须使用引用命令（“工具”菜单）来建立一个加载宏引用。

语法

SQLExecQuery（connectionNum,QueryText）

connectionNum

必选项。指定由SQLOpen函数返回的唯一连接标志，标志所要查询的数据源。

QueryText

必选项。指定要在数据源上执行的查询。查询必须遵循指定驱动器的SQL语法规则。

返回值

SQLExecQuery函数的返回值取决于执行的SQL语句类型，如下表所示：

执行的SQL语句	返回值
SELECT	结果集合的列数
UPDATE，INSERT或DELETE	语句影响到的行数
其它有效的SQL语句	0

如果SQLExecQuery不能在指定的数据源上实现查询，它将返回“错误2042”。

如果connectionNum参数无效，SQLExecQuery函数将返回“错误2015”。

注意：

引用SQLExecQuery函数之前，必须使用SQLOpen函数建立一个数据源连接。SQLExecQuery函数使用SQLOpen函数返回的唯一连接标志把查询送到数据源。

如果使用上一次使用过的连接标志调用SQLExecQuery函数，在连接上的任何待定的结果均被新结果代替。


SQLGetSchema 函数

请参阅	示例

在Windows 95版的Microsoft Excel 中，XLODBC.XLA加载宏不使用SQLGetSchema和其它ODBC函数，而使用数据访问对象库中的对象，方法和属性。关于数据访问对象更详细的信息，请看Data Access 浏览.

SQLGetSchema函数返回特定连接上数据源结构的信息。

这个函数包含在XLODBC.XLA加载宏（在Macintosh 上的ODBC加载宏）中。在使用此函数之前，必须使用“引用”命令（“工具”菜单）建立一个引用。

语法

SQLGetSchema（connectionNum,typeNum,qualifierText）

connectionNum

必选项。使用SQLOpen函数建立的与数据源相连的唯一连接标志，并由此获得详细信息。

typeNum

必选项。指定所要返回信息的类型。如下表所示。

数值	含义
1	当前可用数据源列单
2	当前连接上的数据库列表
3	当前连接上的数据库？主人列表
4	当前连接上给定主人和数据库的表列表
5	二维数组中特定表中的列和它们的ODBC SQL数据类型的列表。 第一个字段包含列名；第二字段是列的ODBC SQL数据类型。
6	当前用户的用户标志
7	当前数据库名称
8	使用设置过程或“ODBC控制面板管理器”定义的数据源的名称。
9	数据源使用的DBMS名称，例如，ORACLE或SQL服务器。
10	关于数据源的服务器名称。
11	数据源引用主人所使用的术语，例如“主人”，“授权标志”或“概要”等
12	数据源引用表格所使用的术语，例如，“表格”或“文件”等。
13	数据源引用？考核员源所使用的术语，例如“数据库”或“目录”等。
14	数据源引用一个过程所使用的术语，例如“数据库过程”，“存贮过程”或“过程”等。

qualifierText

可选项。只有当typeNum的值为3，4和5时才包含此参数。此参数为考核查找的一个字符串，如下表所示。

数组类型	考核员文本
3	当前数据源里数据库的名称。SQLGet Schema函数返回数据库中表主人的名称。
4	包括数据库名和主人名。语法为数据库名后加主人名，并用一个句点将二者分开。例如“ DatabaseName.OwnerName ”。这个函数返回一个表名数组，这些表位于给定数据库且被给定主人所拥有。
5	一个表名。SQLGetSchema返回表中列的信息。

返回值

从一个SQLGetSchema函数成功调用的返回值取决于所需信息类型。

如果SQLGetSchema函数不能找到所需信息，将返回“错误2042”。

如果connectionNum参数无效，这个函数返回“错误2015”。

注意：

SQLGetSchema函数使用ODBC API函数SQLGetInfo和SQLT找到所需信息。


SQLOpen 函数

请参阅	示例

在Windows 95版的Microsoft Excel 中，XLODBC.XLA加载宏不使用SQLOpen和其它ODBC函数，而使用数据访问对象库中的对象，方法和属性。关于数据访问对象更详细的信息，请看Data Access 浏览。

SQLOpen函数建立一个数据源的连接。

这个函数包含在XLODBC.XLA加载宏（在“Macintosh ”上为加载宏）中。在使用此函数之前，必须使用“引用”命令（“工具”菜单）建立一个加载宏引用。

语法

SQLopen(connectionStr,outputRef,driverprompt)

connectionStr

必选项。提供连接数据源驱动器所需要的信息，并且必须遵守驱动器格式。

connectionStr参数提供数据源的名称和其它信息，象用户标志和密码，这些均是驱动器连接时所要求的。

在试图与数据源连接之前，必须定义在connectionStr参数中所用的数据源名称（DSN）。

outputRef

可选项。指定一个区域对象，包含完整连接字符串的一个单元格。

若要SQLOpen函数将完整的连接字符串返回到一个工作表上时，请使用outputRef参数。

driverPrompt

可选项。指定何时显示驱动器对话框以及在驱动器对话框中可用的选项。

请使用下表所描述的数字中的一个。如果driverPrompt参数被省略，SQLOpen函数将使用2为缺省值。

数值	含义
1	无条件显示驱动器对话框。
2	只有当连接字符串以及数据源指定所提供的信息不足以完成连接时，驱动器对话框才显示。所有对话框选项均可使用。
3	除了不需要的对话框选项是低亮度的且不能使用之外，其它与2基本相同。
4	不显示驱动器对话框。如果连接不成功，SQLOpen函数将返回一个错误。

返回值

如果成功，SQLOpen函数将返回一个唯一连接标志号。需和其它ODBC函数一起使用连接标志号。

如果SQLOpen函数不能用所提供的信息实现连接，将返回“错误2042”。

其它错误信息被放在内存以便SQLError函数使用。


SQLRequest 函数

请参阅	示例

在Windows 95版的Microsoft Excel 中，XLODBC.XLA加载宏不使用SQLOpen和其它ODBC函数，而使用数据访问对象库中的对象，方法和属性。关于数据访问对象更详细的信息，请看Data Access 浏览.

SQLRequest函数连接一外部数据源，从一个工作表上执行查询，然后以数组形式返回结果。

这个函数包含在XLODBC.XLA加载宏（在Macintosh 上为ODBC加载宏）中。在使用这个函数之前，必须使用“引用”命令（“工具”菜单）建立一个加载宏的引用。

语法

SQLRequest（connectionStr,queryText,outputRef,driverprompt,colNamesLogical）

connectionStr

必选项。提供例如数据源名称，用户标志和密码这类信息，此参数为连接数据源的驱动器所需要，并且必须遵守驱动器格式。

如果SQLRequest函数不能使用connectionStr参数选取数据源，它将返回“错误2042”。

queryText

必选项。指定在数据源上所要执行的SQL语句。

如果SQLRequest函数在指定的数据源上不能执行queryText，它将返回“错误2042”。

outputRef

可选项。作为一个区域对象，指定放置完整连接字符串的单个工作表单元格。

driverPrompt

可选项。指定何时显示驱动器对话框以及在驱动器对话框中可用的选项。

请使用下表所描述的数字中的一个。如果driverPrompt参数被省略，SQLRequest函数将使用2作为缺省值。

数值	含义
1	无条件显示驱动器对话框。
2	只有当连接字符串以及数据源指定所提供的信息不足以完成连接时，驱动器对话框才显示。所有对话框选项均可使用。
3	除了不需要的对话框选项是低亮度的且不能使用之外，其它与2基本相同。
4	不显示驱动器对话框。如果连接不成功，SQLOpen函数将返回一个错误。

colNamesLogical

可选项。如果想让列名作为返回结果的第一行，则将其指定为True，如果不想让列名返回，则指定为False。

如果colNamesLogical参数被省略，缺省值为False。

注意：

SQLRequest函数参数的顺序与SQL.REQUEST 宏函数不同。

返回值

如果函数完成所有操作，它将返回一个查询结果数组或查询所影响的行数。

如果SQLRequest函数不能完成所有操作，它将返回一个错误值，并且把错误放在内存以便SQLError函数引用。

如果SQLRequest函数不能使用connectionStr参数选取数据源，它将返回“错误2042”。


SQLRetrieve 函数

请参阅	示例

在 Windows 95 版的 Microsoft Excel 中，XLODBC.XLA 加载宏不使用 SQLRetrieve 和其它 ODBC 函数，而使用数据访问对象库中的对象，方法和属性。关于数据访问对象更详细的信息，请看 Data Access浏览

SQLRetrieve函数检索上一次查询得到的所有或部分结果。

在使用SQLRetrieve函数之前，必须建立一个和 SQLOpen 函数的连接，使用 SQLExecQvery 函数执行一个查询，并且具有待定的结果。

这个函数包含在 XLODBC.XLA 加载宏（在“Macintosh”上为“ODBC”加载宏）中。在使用此函数之前，必须使用“引用”命令（“工具”菜单），建立一个加载宏引用。

语法

SQLRetrieve(connectionNum,destinationRef,maxColumns,maxRows,colNamesLogical,rowNumsLogical,namedRngLogical,fetchFirstLogical)

connectionNum

必选项。由 SQLOpen 函数返回的唯一连接标志，它具有 SQLExecQuery 函数产生的待定查询结果。

如果 connectionNum 失效，SQLExecQuery 将返回“错误2015”。

destinationRef

可选项。一个Range对象，指定结果放置位置。这个函数可以不加确认就改写单元格上的任意数值。

如果destinationRef参数引用单个单元格，SQLRetrieve 函数将返回此单元格以及此单元格右方和下方单元格内所有的未定结果。

如果destinationRef参数被省略，上次引用SQLBind函数建立的连接将作为返回值，如果对于当前连接没有连接存在，SQLRetrieve 函数将返回“错误2023”。

如果一个特定结果列未被连接，并且 destinationRef 函数被省略，则这些结果作废。

maxColumns

可选项。指定返回到工作表上的列的最大数目，从 destinationRef 开始计数。

如果 maxColumns 参数指定的列数大于结果列数，SQLRetrieve 函数将把数据放在可用列上并清除多余的列。

如果 maxColumns 参数指定的列数少于结果中的可用列数，SQLRetrieve 函数将废弃结果的最右几列直到结果适合指定尺寸。

数据源返回的列顺序决定了列的位置。

如果 maxColumns 参数被省略，将返回所有结果。

maxRows

可选项。返回工作表上行的最大数目，从 destinationRef 开始计。

如果 maxRows 参数指定的行数大于结果行数，SQLRetrieve 函数将把数据放在可用行

上并清除多余的行。

如果 maxRows 指定的行数少于结果中的可用行数，SQLRetrieve 函数将把数据放在选定的行中但并不废弃多余的行。额外的行可通过再次使用 SQLRetrieve 函数以及设置 fetchFirstLogical 参数为 False 来检索。

如果 maxRows 参数被省略，结果中的所有行均被返回。

colNamesLogical

可选项。如果想让列名作为返回结果的第一行，则将其指定为 True，如果不想让列名返回，则指定为False。

rowNumsLogical

可选项。只有当函数调用包含 destinationRef 时才使用此参数。如果rowNumsLogical为True，则结果集合的第一列将包括行数。如果 destinationRef 参数为 False 或 被省略，则不返回行数。也可以通过使用 SQLBind 函数连接第0列来检索行数。

namedRngLogical

可选项。如果想把结果的每一列均声明为工作表上的命名区域，则指定此参数为 True。每个区域的名称就是结果列的名称。命名区域只包含 SQLRetrieve 函数返回的列。此参数缺省值为False。

fetchFirstLogical

可选项。允许从结果集合的起始处请求结果。如果fetchFirstLogical为 False，则可以重复调用SQLRetrieve函数来返回下一个行集合直到所有的结果行被返回为止。当结果集合里没有行时，SQLRequest 函数将返回0。如果想从结果集合的起始处检索结果，请将 fetchFirstLogical 设置为 True，若要从结果集合里检索其它行，请在下面调用里设置 fetchFirstLogical 为 False。此参数缺省值为 False。

返回值

SQLRetrieve 函数返回结果集合的行数。

如果 SQLRetrieve 函数不能在指定的数据源上检索结果，或者没有待定的结果，它将返回“错误2042”。如果没有发现数据，它将返回0。

注意：

调用 SQLRetrieve 函数之前，必须执行以下操作：

1 使用 SQLOpen 函数建立一个数据源连接。

2 使用 SQLOpen 函数里返回的连接标志并使用 SQLExecQuery 函数来发送一个检索。


SQLRetrieveToFile 函数

请参阅	示例

在 Windows 95 版的 Microsoft Excel 中，XLODBC.XLA 加载宏不使用 SQLRetrieveToFile 和其它 ODBC 函数，而使用？数据访问对象库中的对象，方法和属性。关于数据访问对象更详细的信息，请看 Data Access 浏览.

SQLRetrieveToFile 检索上次查询所得的所有结果，并把它们放在一个文件中。

若要使用此函数，必须先使用 SQLOpen 函数建立一个与数据源的连接，再使用SQLExecQuery函数完成了一个查询并且具有待定的查询结果。

这个函数包含在 XLODBC.XLA 加载宏（在“Macintosh ”上为ODBC加载宏）中。在使用此函数之前，必须使用“引用”命令（“工具”菜单）建立一个加载宏的连接。

语法

SQLRetrieveToFile（connectionNum,destination,colNamesLogical,columnDelimiter）

connectionNum

必选项。由SQLOpen函数返回的唯一连接标志，它具有SQLExecQuery函数产生的待定查询结果。

如果connectionNum无效，SQLExecQuery将返回“错误2015”。

destination

必选项。指定放置结果的文件名称和路径的字符串。如果这个文件已存在，SQLRetrieve To File函数将文件内容用查询结果覆盖。如果这个文件不存在，SQLRetrieve To File函数将创建并打开这个文件，然后用结果填充。

文件中数据的格式必须符合Microsoft Excel CSV（逗号分隔值）文件格式。

列被由columnDelimiter参数指定的字符分离，并且单独的行被一个回车字符分开。

如果不能打开destination参数指定的文件，SQLRetrieveToFile将返回“错误2042”

colNamesLogical

可选项。如果想让列名作为返回结果的第一行，则将其指定为True，如果不想让列名返回，则指定为False。

columnDelimiter

可选项。指定一字符串，其中的字符用来分隔每行中元素。例如，使用“，”指定一个逗号分隔符或“；”指定一个分号分隔符。如果省略columnDelimiter参数，则将使用表分隔字符。

返回值

如果成功，SQLRetrieveToFile函数将返回查询结果，并将其写到一个文件上，然后返回写到文件上的行数。

如果SQLRetrieveToFile函数不能检索结果，它将返回“错误2042”，并不写到文件上。

如果连接上无待定结果，SQLRetrieveToFile函数返回“错误2042”。

注意：

调用SQLRetrieveToFile函数前，必须执行以下操作：

1 使用SQLOpen函数建立一个数据源连接。

2 使用SQLOpen函数里返回的连接标志并使用SQLExecQuery函数来发送一个检索。


IncludeAlignment 属性

如果样式包括 AddIndent, HorizontalAlignment, VerticalAlignment, WrapText, 和Orientation 属性即为True。可读写。


IncludeBorder 属性

如果样式包括 Borders 属性即为 True，可读写。


IncludeFont 属性

如果样式包括 Font 属性即为True。可读写。


IncludeNumber 属性

如果样式包括 NumberFormat 属性即为True。可读写。


IncludePatterns 属性

如果样式包括 Interior 属性即为True。可读写。


IncludeProtection 属性

如果样式包括 FormulaHidden 和 Locked 属性即为True。可读写。


在 Visual Basic 中可使用的工作表函数

A

Acos

Acosh

And

Asin

Asinh

Atan2

Atanh

AveDev

Average

B

BetaDist

BetaInv

BinomDist

C

Ceiling

ChiDist

ChiInv

ChiTest

Choose

Clean

Combin

Confidence

Correl

Cosh

Count

CountA

CountBlank

CountIf

Covar

CritBinom

D

DAverage

Days360

Db

DCount

DCountA

Ddb

Degrees

DevSq

DGet

DMax

DMin

Dollar

DProduct

DStDev

DStDevP

DSum

DVar

DVarP

E

Even

ExponDist

F

Fact

FDist

Find

FindB

FInv

Fisher

FisherInv

Fixed

Floor

Forecast

Frequency

FTest

Fv

G

GammaDist

GammaInv

GammaLn

GeoMean

Growth

H

HarMean

HLookup

HypGeomDist

I

Index

Intercept

Ipmt

Irr

IsErr

IsError

IsLogical

IsNA

IsNonText

IsNumber

Ispmt

IsText

J

K

Kurt

L

Large

LinEst

Ln

Log

Log10

LogEst

LogInv

LogNormDist

Lookup

M

Match

Max

MDeterm

Median

Min

MInverse

MIrr

MMult

Mode

N

NegBinomDist

NormDist

NormInv

NormSDist

NormSInv

NPer

Npv

O

Odd

Or

P

Pearson

Percentile

PercentRank

Permut

Pi

Pmt

Poisson

Power

Ppmt

Prob

Product

Proper

Pv

Q

Quartile

R

Radians

Rank

Rate

Replace

ReplaceB

Rept

Roman

Round

RoundDown

RoundUp

RSq

S

Search

SearchB

Sinh

Skew

Sln

Slope

Small

Standardize

StDev

StDevP

StEyx

Substitute

Subtotal

Sum

SumIf

SumProduct

SumSq

SumX2MY2

SumX2PY2

SumXMY2

Syd

T

Tanh

TDist

Text

TInv

Transpose

Trend

Trim

TrimMean

TTest

U

USDollar

V

Var

VarP

Vdb

VLookup

W

Weekday

Weibull

X

Y

Z

ZTest


这是在远东版Microsoft Excel中使用的部分工作表函数。


单元格错误值

可插入单元格错误值到单元格中，或使用CVErr 函数测试单元格的错误值。单元格错误值的常量如下表所示。

常量	错误号	单元格错误值

xlErrDiv0	2007	#DIV/0!

xlErrNA	2042	#N/A

xlErrName	2029	#NAME?

xlErrNull	2000	#NULL!

xlErrNum	2036	#NUM!

xlErrRef	2023	#REF!

xlErrValue	2015	#VALUE!


QueryGetData 函数

建立一个新查询。

此函数包含在 Microsoft Query 加载宏中。在使用此函数之前，您要使用“工具”菜单中的 斠�用位置斆�令来对加载宏建立引用。

语法

QueryGetData(connectionStr, queryText, keepQueryDef, fieldNames, rowNumbers, festination, execute)

connectionStr

必选项。是一个包含数据库链接信息的字符串，例如数据源名、用户标识号、口令、及要与外部数据源进行 SQL 链接的必要信息。例如，"DSN=Myserver; Server=server1; UID=dbayer; PWD=buyer1; Database=nwind"。

queryText

必选项。是一个包含在数据源中运行 SQL 查询语言的字符串。

keepQueryDef

可选项．如为 Ture 或省略，则保留查询定义。如为 False ，查询定义将丢失，来自查询的数据将不再是一个数据区。

fieldNames

可选项。如为 True 或省略，将从 Microsoft Query 中得到的字段名放入数据区的第一行。如为 False ， 字段名将被省略。

rowNumbers

可选项。如为 True ，将从Microsoft Query 中得到的行号放入数据区的第一列。如为 False ，行号将被省略。

destination

可选项。返回数据的目标位置，是一个 Range 对象。如果 destination 为一个数据区，则此数据区将会改变以反映新的 SQL 查询。默认的目标位置为活动单元格或单元格区域。

execute

可选项。如为 True 或省略，查询将立刻执行。如为 False ，查询命令将被放入缓冲区，直到以后 QueryGetData 函数被调用并且 execute 值被设为 True 时，才会运行。在这种情况下，Microsoft Query 将执行缓冲区中的所有查询命令。


QueryGetDataDialog 函数

建立一个新查询。等价于“数据”菜单中的“获取外部数据”命令。

在使用此函数之前，您要使用“工具”菜单中的斠�用位置“命令来对加载宏建立引用。

语法

QueryGetDataDialog(connectionStr, queryText, keepQueryDef, fieldNames, rowNumbers, destination, execute)

connectionStr

必选项。是一个包含数据库链接信息的字符串，例如数据源名、用户号码、口令、及要与外部数据源进行SQL 链接的必要信息。例如，"DSN=Myserver; Server=server1; UID=dbayer; PWD=buyer1; Database=nwind"。

queryText

必选项。是一个包含在数据源中运行 SQL 查询语言的字符串。

keepQueryDef

可选项．如为 Ture 或省略，则保留查询定义。如为False，查询定义将丢失，来自查询的数据将不再是一个数据区。

fieldNames

可选项。如为True 或省略，将从 Microsoft Query 中得到的字段名放入数据区的第一行。如为 False，字段名将被省略。

rowNumbers

可选项。如为True，将从Microsoft Query 中得到的行号放入数据区的第一列。如为 False， 行号将被省略。

destination

可选项。返回数据的目标位置，是一个 Range 对象。如果 destination 为一个数据区，则此数据区将会改变以反映新的 SQL 查询。默认的目标位置为活动单元格或单元格区域。

execute

可选项。如为 True 或省略，查询将立刻执行。如为 False ，查询命令将被放入缓冲区，直到以后 QueryGetData 函数被调用并且 execute 的值被设为 True 时，才会运行。在这种情况下， Microsoft Query 将执行缓冲区中的所有查询命令。


QueryRefresh 函数

刷新数据区中由 Microsoft Query 返回的数据。

此函数包含在 Microsoft Query 加载宏中。在使用此函数之前，您要使用“工具”菜单中的“引用位置”命令来对加载宏建立引用。

语法

QueryRefresh(ref)

ref

可选项。在一个数据区中的单个单元格被作为一个 Range 对象。如 ref 不在一个数据区中，则此函数返回 #REF! 错误值。


MacroOptions 方法

对应于“宏选项＂对话框中的各选项。

语法

object.MacroOptions(macro, description, hasMenu, menuText, hasShortcutKey, shortcutKey, category, statusBar, helpContextID, helpFile)

object

必选项。Application 对象。

macro

必选项。要设置选项的宏的名称。字符串型。

description

可选项。宏的描述。字符串型。

hasMenu

可选项。为 True 时，此宏对应的菜单项将自动加到 “工具”菜单中。如为 True ， menuText  也需要指定。为 False 或省略时，此宏对应的菜单项将不会加到“工具”菜单中。如果此宏对应的菜单项已在菜单中，将此参数设为 False 将移去此菜单项。

menuText

当 hasMenu 为 True 时为必选项。其他情况忽略。它是菜单项的文字，字符串型。

HasShortcutKey

可选项。为 True 时，将为此宏指定一个快捷键。为 True 时， shortcutKey 也需被指定。为 False 或省略时，此宏没有对应的快捷键。如果此宏已有对应的快捷键，将此参数设为 False 将移去此快捷键。

shortcutKey

当 hasShortcutKey 为 True 时为必选项。其他情况忽略。它是快捷键的文字(仅为第一个字母)，字符串型。

category

可选项。宏的函数类型(财务，日期和时间，用户定义，等等)为整数型。

statusBar

可选项。此宏对应的状态行文字。

helpContextId

可选项。指定给此宏的帮助主题索引号，为整数型。这个索引号也用于与此宏对应的菜单项和/或工具栏按钮。

helpFile

可选项。是一个包含 helpContextId 定义的帮助主题的帮助文件名，它是字符串型。


HelpContextID 属性

返回或设定对应于菜单项或工具栏按钮的帮助主题索引号。改属性可读写。它只用于 Microsoft Windows 中。

注释

使用此属性时，必须设置 HelpFile 属性。


HelpFile 属性

返回或设定对应于菜单项或工具栏按钮的帮助主题的帮助文件名。它是字符串型．可读写。只用于  Microsoft Windows 。

注释

使用此属性时，必须设置 HelpContextID 属性。


ActivePane 属性

存取器。返回窗口中代表当前分割区域的 Pane 对象。该属性只读。

注释

该属性仅用于工作表和宏表。

该属性返回一个分割区域对象。必须使用 Index 属性获得当前分割区域的索引。


Arrange 方法

重排屏幕上的窗口。

语法

object.Arrange(arrangeStyle, activeWorkbook, syncHorizontal, syncVertical)

object

必选项。它是指窗口对象。

arrangeStyle

可选项。用该式样重排窗口，可用下列值之一：

值	含义

xlTiled 	平铺窗口(默认值。当 arrangeStyle 省略时使用)。

xlCascade	层叠窗口。

xlHorizontal	水平重排窗口。

xlVertical	垂直重排窗口。

xlIcons	重排图标(在 Apple Macintosh 机上不可用)。

activeWorkbook

可选项。如果为 True ，仅重排当前工作簿的可见窗口，而不是 Microsoft Excel 中所有窗口，如果为 False 或省略，重排所有窗口。

syncHorizontal

可选项。当 active Workbook 为 False 或省略时忽略。如果为 True ，当前工作簿的窗口在水平滚动时是同步的。如果为 False 或省略，窗口是不同步的。

syncVertical

可选项。当 active Workbook 为 False 或省略时忽略。如果为 True ，当前工作簿的窗口在垂直滚动时是同步的。如果为 False 或省略，窗口不同步。


Display Automatic PageBreaks 属性

True 如果显示工作表的自动分页符，则为 True。该属性可读写。


DisplayFormulas 属性

True 如果窗口显示公式，则为 True 。如果窗口显示值，则为 False 。该属性可读写。

注释

该属性仅用于工作簿和宏表。


DisplayGridlines 属性

True 如果显示网格线，则为 True 。该属性可读写。

注释

该属性仅用于工作表和宏表。

该属性仅影响显示的网格线，使用 PrintGridlines 属性控制网格线的打印。


DisplayHeadings 属性

True 如果行号列标均被显示，则为 True。如果不显示行号列标，则为 False。该属性可读写。

注释

该属性仅用于工作表和宏表。

该属性仅影响行号列标的显示。使用 PrintHeadings 属性控制行号列标的打印。


DisplayOutline 属性

True 如果显示边框线，则为 True。该属性可读写。

注释

该属性仅用于工作表和宏表。


DisplayZeros 属性

True 如果显示零值，则为 True。该属性可读写。

注释

该属性仅用于工作表和宏表。


FreezePanes 属性

True 如果分割区域被冻结，则为 True 。该属性可读写。

注释

FreezePanes 为 True 而 Split 为 False 时是可能的，反之亦然。

该属性仅用于工作表和宏表。


GridlineColor 属性

返回或设置网格线颜色为 RGB 值，该属性可读写。


 Panes 方法

存取器。返回代表窗口中的单一分割区域(Pane 对象，语法 1)或所有分割区域集 (Panes 对象，语法 2)的对象。该方法只读。

语法１

object.Panes(index)

语法２

object.Panes

object

必选项。窗口对象。

index

对于语法１来说是必选项，它是分割区域的名字或编号。

注释

该方法仅可用于 Split 属性被设为 True 的窗口中。


SelectedSheets 方法

存取器。返回指定窗口中所有选定的表集(Sheets 集)。

语法

object.SelectedSheets

object

必选项。它是 Window 对象。


Split 属性

True 如果窗口被分割，则为 True。该属性可读写。

注释

FreezePanes 为 True 而 Split 为 False 时是可用的，相反亦然。

该属性仅用于工作表和宏表。


SplitColumn 属性

返回或设置窗口被分割为分割区域处的列号(分割线左边的列号)。该属性可读写。


SplitHorizontal 属性

返回或设置水平窗口分割的位置，用磅值(1/72英寸)来度量。该属性可读写。


SplitRow 属性

返回或设置窗口被分割为分割区域处的行号(分割线上面的行)。该属性可读写。


SplitVertical 属性

返回或设置垂直窗口分割的位置，用磅值(1/72英寸)来度量。该属性可读写。


CreateBackup 属性

True 保存文件时如果同时创建备份，则为 True。该属性只读。


DialogSheets 方法

存取器。返回工作簿中单个对话框工作表（DialogSheet 对象，语法1）或所有对话框工作表集（DialogSheets 对象，语法2）。该属性只读。

语法1

object.DialogSheets(index)

语法2

object.DialogSheets

object

对 Application 来说是可选项，对 Workbook 来说是必选项。它包含对话框工作表。

index

对语法1来说是必选项。它是返回的对话框工作表的名字或编号。

注释

使用该方法而不限定对象是调用 ActiveWorkbook.Diablonsheets 的捷径。


Excel4IntlMacroSheets 方法

存取器。返回工作簿中Microsoft Excel 4.0 国际通用宏表（Worksheet 对象，语法1）或所有Microsoft Excel 4.0 国际通用宏表集（Worksheets 对象，语法2）。只读。

语法1

object.Excel4IntlMacroSheets(index)

语法2

object.Excel4IntlMacroSheets

object

对 Application 为可选项，对 Workbook 为必选项。它是包含 Microsoft Excel 4.0 国际宏表的对象。

index

对语法1为必选项。它是返回的 Microsoft Excel 4.0 国际宏表的名字或编号。

注释

使用该方法而不限定对象是调用 ActiveWorkbook. Excel4IntlMacroSheets 的捷径。


Excel4MacroSheets 方法

返回工作簿中 Microsoft Excel  4. 0 宏表 (Worksheet 对象， 语法 1 )或所有 Microsoft Excel 4.0 宏表集 (Worksheets 对象，语法 2)。它是只读的。

语法1

object.Excel4MacroSheets(index)

语法2

object.Excel4MacroSheets

object

对 Application 为可选项，对 Workbook 为必选项。它是包含 Micorosoft Excel 4.0 宏表的对象。

index

对语法1为必选项。它是返回的 Microsoft Excel 4.0 宏表的名字和编号。

注释

使用该方法而不限定对象是调用 ActiveWorkbook. Excel4MacroSheets 的捷径。


FileFormat 属性

返回文件格式和/或工作簿类型，如下表所示。该属性只读。

xlAddIn xlCSV xlCSVMac xlCSVMSDOS xlCSVWindows xlDBF2 xlDBF3 xlDBF4 xlDIF xlExcel2	xlExcel3 xlExcel4 xlExcel4Workbook xlIntlAddIn xlIntlMacro xlNormal xlSYLK xlTemplate xlText xlTextMac	xlTextMSDOS xlTextWindows xlTextPrinter xlWK1 xlWK3 xlWKS xlWQ1 xlWK3FM3 xlWK1FMT xlWK1ALL
注释

下列附加格式只在远东版 Microsoft Excel 中有效：xlWJ2WD1, xlExcel2FarEast 和 xlWorks2FarEast。


HasPassword 属性

True 如果工作簿含有保护口令，则为 True，该属性只读。

注释

可用 SaveAs 方法给工作簿指定保护口令。


Modules 方法

存取器。返回工作簿中模块（Module 对象，语法1）或所有模块集（Modules 对象，语法2）。该属性只读。

语法1

object.Modules(index)

语法2

object.Modules

object

必选项。它是工作簿对象。

index

对语法1为必选项。它是返回的模块表名字或编号。


NewWindow 方法

为工作簿创建新窗口或创建指定窗口的副本。

语法

object.NewWindow

object

必选项。它是窗口或工作簿对象。


Open 方法

打开工作簿。

语法

object.Open(fileName, updateLinks, readOnly, format, password, writeResPassword, ignoreReadOnlyRecommended, origin, delimiter, editable, notify, converter)

object

必选项。它是 Workbooks 对象。

fileName

必选项。它指定要打开的工作簿的文件名。

updateLinks

可选项。指定文件中的链接如何更新，如果省略该参数，将提示用户决定如何更新链接。否则，该参数是下列所示的值之一：

值	含义

0	不更新。

1	只更新外部的但不更新远程的引用。

2	只更新远程的但不更新外部的引用。

3	远程和外部引用都更新。

如果Microsoft Excel 用 WKS、WK1 或 WK3 格式打开文件，而且 UpdateLinks 参数为2，Microsoft Excel 从隶属该文件的图形上产生图表。如果该参数为0，则不创建图表。

readOnly

可选项。如果为 True，工作簿用只读方式打开。

format

可选项。如果 Microsoft Excel 打开文本文件，该参数指定分隔符，如下表所示。如果省略该参数，则使用当前分隔符。

值	分隔符号

1	制表符

2	逗号

3	空格

4	分号

5	无

6	自定义字符，请参阅 delimiter 参数

password

可选项。它是包含打开保护的工作簿所需口令的字符串，如果省略且该工作簿需要口令，将提示用户输入口令。

writeResPassword

可选项。它是包含写入写保护的工作簿所需口令的字符串，如果省略且该工作簿需要口令，将提示用户输入口令。

ignoreReadOnlyRecommended

可选项。如果为其值为 True，且工作簿用推荐的“只读”选项保存，Microsoft Excel 不显示推荐的只读方式消息。

origin

可选项。如果文件是文本文件，它指明文件起源于何处（因此代码页和 CR/LF 可被正确映象）。其值可为 xeMacintogh.xlwindows 或 xlMSDOS 之一。如果省略该参数，则使用当前操作系统。

delimiter

可选项。如果文件是文本文件且 format 参数为6，它是指定用作分隔符号的字符串。例如，chr(9) 为制表符，","为逗号，";" 为分号或自定义字符，仅使用字符串的第一个字符。

editable

可选项。如果文件是 Microsoft Excel 4.0 加载宏，使用 True 打开加载宏， 使之为可见窗口，如果为 False 或省略，则加载宏隐藏。该选项不适用于 Microsoft Excel 5.0 及以上版本中的加载宏。如果文件不是加载宏，指定为 True 可以防止任一 Auto-Open 宏运行。

notify

可选项。如果文件不能用可读写的方式打开，指定为 True 则将文件加到文件通知清单中。Microsoft Excel将打开只读文件，得到文件通知清单，当文件有效时，将通知用户。如果该参数为 False 或省略，无通知被请求，且试图打开无效文件将失败。

converter

可选项。打开文件时，指定先尝试的第一个文件转换器。指定的文件转换器先试，如果指定的转换器不能识别该文件，再试其余转换器。转换器索引是 FileConverters 属性返回的转换器行号。

注释

如果打开的工作簿具有任一 Auto-Open 宏，当从 VisualBasic 打开文件时，它们不运行。如果想运行 Auto-Open 宏，必须使用 RunAutoMacros 方法。


ProtectStructure 属性

True 如果工作簿中表的次序被保护则为 True。该属性只读。


ProtectWindows 属性

True 如果工作簿的窗口被保护则为 True。该属性只读。


ReadOnly 属性

True 如果工作簿按只读方式打开则为True。该属性只读。


ReadOnlyRecommended 属性

True 如果工作簿用推荐的只读方式保存则为 True。该属性只读。

注释

当打开用推荐的只读方式保存的文档时，Microsoft Excel 显示推荐的用只读方式打开文档的消息。

使用 SaveAs 方法改变该属性。


 RunAutoMacros 方法

运行隶属于工作簿的 Auto-Open，Auto-Close，Auto-Activate 或 Auto-Deactivate 宏。

当工作簿由 Visual Basic 程序打开或关闭时（且当工作表是激活的或关闭的时），这四个自动宏并不运行。使用下述方法可运行自动宏。

语法

object.RunAutoMacros(which)

object

必选项，它是工作簿对象。

which

必选项，指定运行哪个宏，如下表所示。

值	含义

xlAutoOpen	Auto_Open 宏

xlAutoClose	Auto_Close 宏

xlAutoActivate	Auto_Activate 宏

xlAutoDeactivate	Auto_Deactivate 宏

注释

包括 Auto-Activate 和 Auto-Deactive 宏是为了与 Microsoft Excel 4.0 宏语言向后兼容，当用 Visual Basic 编程时，使用 OnSheetActivate 和 OnSheetDeactivate 属性。


SaveAs 方法

用不同的文件保存改变的工作表或工作簿。

语法

object.SaveAs(filename, fileFormat, password, writeResPassword, readOnlyRecommended, createBackup, accessMode, conflictResolution)

object

必选项。该方法应用的对象。

filename

可选项。它是要保存的文件名的字符串。可以包括全路径；如果不包括，Microsoft Excel 将文件保存到当前目录中。

fileFormat

可选项。保存文件时使用的文件格式。可参阅 FileFormat 属性得到可用的选择项。

password

可选项。它是文件保护口令的字符串，字符要区别大小写。不可多于 15 个字符。

writeResPassword

可选项。它是该文件写保护口令的字符串。如果文件用口令保存且当文件打开时未提供口令，文件以只读方式打开。

readOnlyRecommended

可选项。当文件打开时，如果为 True，Microsoft Excel 显示消息，提示文件以只读方式打开。

createBackup

可选项。如果为 True，Microsoft Excel 创建备份文件，如果为 False，不创建备份文件。如果省略，状态不改变。

accessMode

可选项。指定工作簿的存取模式。可选 xlShared (共享表)，xlExclusive（独占模式），或 xlNoChange（不改变存取模式）三种模式之一。如忽略此参数，存取模式不改变。如果您不改变文件名就将此文件存为共享，此参数将被忽略。要改变存取模式，使用 ExclusiveAccess 方法。

conflictResolution

可选项。指定如果工作簿为共享时，如何解决共享冲突。可选 xlUserResolution (显示冲突解决对话框)， xlLocalSessionChanges（自动接受本地用户的修改）或 xlOtherSessionChanges（自动接受其他用户而不是本地用户的修改）三者之一。如忽略此参数，将显示解决冲突对话框。


Saved 属性

False 如果上一次保存的工作簿已发生变化则为 False。该属性可读写。

注释

如果一个工作簿从未保存过，其 Path 将返回空字符串 (" ")。

如果想关闭修改的工作簿而不保存或系统提示保存工作簿，可将该属性设置为 True。


Sheets 方法

存取器。返回工作簿中单个工作表(语法1 )或工作表集(语法 2 )。它是只读的，工作表可以是 Chart 对象，DialogSheet 对象, Module 对象，或 Worksheet 对象。

语法1

object.Sheets(index)

语法2

object.Sheets

object

对 Application 为可选项，对 Workbook 为必选项，它是该方法应用的对象。

index

对语法1为必选项。它是返回的工作表的名字或编号。

注释

使用该方法而无对象限制等价于 Activeworkbook.sheets。


Styles 方法

存取器。返回工作簿中单个样式 ( Style 对象，语法 1) 或所有样式集( Styles 对象，语法2 )。它是只读的。

语法1

object.Styles(index)

语法2

object.Styles

object

必选项。它是工作簿对象。

index

对语法 1 为必选项。它是返回的样式的名字或编号。


Worksheets 方法

存取器。返回工作簿中单个工作表 ( Worksheet 对象，语法1)或所有工作表集( Worksheets 对象，语法2)。它是只读的。

语法1

object.Worksheets(index)

语法2

object.Worksheets

object

对 Application 为可选项，对 Workbook 为必选项，它包含工作表的对象。

index

对语法1为必选项。它是返回的工作表的名字或编号。

注释

该方法用 Type 属性返回工作表等价于 xlworksheet，而不是 xlexcel4macrosheet 或 xlexcel4intlmecrosheet。使用 Excel4MacroSheets 方法或 Excel4IntlMacroSheets 方法才能返回那些类型。

使用该方法而不指定对象是使用 Activeworkbook.worksheets 的快捷方法。


WriteReserved 属性

True 如果工作簿是写保护的则为 True，该属性只读。

注释

使用 SaveAs 方法设置该属性。


WriteReservedBy 属性

返回对当前工作簿具有写权限的用户的名称字符串。该属性只读。


TransitionExpEval 属性

True  如果 Microsoft Excel 对此工作表使用 Lotus 1-2-3 表达式计算法则即为真。可读写。


TransitionFormEntry 属性

True 如果 Microsoft Excel 对此工作表使用 Lotus 1-2-3 表达式计算法则即为真。可读写。

注释

该属性在 AppleMacintosh 上无效。


Date1904 属性

True 如果工作簿使用1904日期系统为True。该属性可读写。


DeleteNumberFormat 方法

从工作簿上删除自定义的数字格式。

语法

object.DeleteNumberFormat(numberFormat)

object

必选项。它是 Workbook 对象。

numberFormat

必选项。要删除的命名数字格式的字符串。


DisplayDrawingObjects 属性

返回或设置如何显示图形对象，如下表所示。该属性可读写。

值	含义

xlAll 	显示所有图形对象。

xlPlaceholders 	仅显示预留位置。

xlHide 	隐藏所有图形对象。


Drawings 方法

存取器。在工作表中返回单一图形对象( Drawing 对象，语法1)或图形集( Drawings 对象，语法2)。图形由图形工具栏上的“手划多边形”、“手画线”和“实心手划多边形”按钮来创建。

语法1

object.Drawings(index)

语法2

object.Drawings

object

必选项。图表、对话表或工作表对象。

index

对语法1来说为必选项。返回图形的名字或编号，可指定多个索引。


PrecisionAsDisplayed 属性

True 如果工作簿上的计算仅用其显示的数字精度来进行则为 True。该属性可读写。


SaveLinkValues 属性

True 如果 Microsoft Excel 保存该工作簿外部链接值则为 True。该属性可读写。


ShowDataForm 方法

显示与工作表相关的数据记录单。

语法

object.ShowDataForm

object

必选项。它是工作表对象。

注释

当使用数据记录单时，宏暂停。当用户关闭数据记录单时，宏将从 ShowDataForm 方法后的行重新开始运行。

如果存在,该方法运行自定义数据记录单。


SpecialCells 方法

存取器。返回与指定的类型和值相匹配的所有单元格的 Range 对象。

语法

object.SpecialCells(type, value)

object

必选项。它是区域对象。

type

必选项。包括的单元格类型,如下表所示:

值	含义

xlNotes	包含附注的单元格。

xlConstants	包含常量的单元格。

xlFormulas	包含公式的单元格。

xlBlanks	空单元格。

xlLastCell	使用区域的最后单元格。

xlVisible	所有可见单元格。

value

可选项。如 type 是 xlConstants 或 xlFormulas 型,Value 参数用于确定结果中包含的是哪种单元格类型，这些值可以加在一起，返回多种类型。无论是何种类型都默认为选定所有常量或公式。

值	含义

xlNumbers	数字

xlTextValues	文字

xlLogical	逻辑值

xlErrors	错误值


StandardHeight 属性

返回工作表中所有行的标准(默认)高度。高度用磅值度量(1/72 英寸)。该属性只读。


StandardWidth 属性

返回或设置工作表中所有列的标准(默认)宽度。用一般字体的字度量，该属性可读写。

注释

如果一般字体是常规字体，该属性返回用一般字体中零(0)字符度量的列宽。


UpdateRemoteReferences 属性

True 在工作簿中如果远程引用被更新则为 True 。该属性可读写。


UsedRange 属性

存取器。返回指定工作表中使用区域的 Range 对象。该属性只读。


Microsoft Excel 对象


 Microsoft Excel 对象 (工作表)


 Microsoft Excel 对象 (图表)


 Microsoft Excel 对象 (对话框编辑表)


关于Microsoft Excel 对象的说明

集合与对象

具有深蓝色阴影的对象包括在集合中。要返回集合中的单个对象，使用存取器方法或属性-- 例如，使用 Workbooks("BUDGET94.XLS") 来返回代表 Budget94 工作簿的 Workbook 对象。

有些表现为集合的 Microsoft Excel 对象实际上是单个对象。例如，有一种 TickLabels 对象，但没有 TickLabel 对象。设置一个 TickLabels 对象的属性将影响沿一个坐标轴的所有文字标志。要改变其中的一个文字标志是不可能的。图表上的此种对象称为“单个对象”，它具有浅蓝色阴影。

异类集合

异类集合可以包含一种以上的对象。DrawingObjects 对象集合就是一个异类集合。在任何给定的表上，此异类集合包括此工作表上的所有的图形对象 (如 Rectangle 对象, Oval 对象, 等等) 和所有的控制(如 Button 对象, EditBox 对象, 等等)。

通用对象

图表上的很多对象包含 Border, Font, 和 Interior 对象的组合。要使此图表看起来简单，可以不显示通用对象。


宏函数和命令的 Visual Basic 等价形式

A

A1.R1C1(logical)	Application.ReferenceStyle = logical
ABSREF(ref_text, reference)	Range("reference").Offset(ref_text)
无直接的等价函数。使用 offset 方法并将引用文字参数分解为数字参数。

ACTIVATE("BOOK1.XLS")	Windows("BOOK1.XLS").Activate ' or Workbooks("BOOK1.XLS").Activate
要激活特定工作簿的第一个窗口，使用Workbooks 形式。

ACTIVATE("BOOK1.XLS:1")	Windows("BOOK1.XLS:1").Activate ' or Workbooks("BOOK1.XLS").Windows(1).Activate
要激活特定窗口，使用Workbooks形式的窗口编号。

ACTIVATE("BOOK1.XLS:1", pane_num)	Windows("BOOK1.XLS:1").Panes(pane_num).Activate
ACTIVATE(, pane_num)	ActiveWindow.Panes(pane_num).Activate
ACTIVATE.NEXT( )	ActiveWindow.ActivateNext
ACTIVATE.NEXT(workbook_text)	ActiveSheet.Next.Activate
ACTIVATE.PREV( )	ActiveWindow.ActivatePrevious
ACTIVATE.PREV(workbook_text)	ActiveSheet.Previous.Activate
ACTIVE.CELL( )	ActiveCell
ACTIVE.CELL.FONT(font, font style, size, strikethrough, superscript, subscript, outline, shadow, underline, color, normal, background, start_char, char_count)	With ActiveCell.Characters(start_char, char_count).Font .Name = font .FontStyle = font_style .Size = size .Strikethrough = strikethrough .Superscript = superscript .Subscript = subscript .OutlineFont = outline .Shadow = shadow .Underline = underline .ColorIndex = color .Background = background End With
一般参数没有直接等价参数。可以通过复制“普通”样式font 对象的设置和使用 ActiveWorkbook.style(“普通”).Font 来设置“普通”样式的字体。

ADD.ARROW( )	With ActiveChart.Lines.Add(0, 0, 72, 72) .ArrowHeadStyle = xlClosed End With
没有直接的等价函数，在默认的坐标系下，使用Lines 对象的 Add 方法添加一条直线，然后为新增直线添加箭头。

ADD.BAR( )	Menubars.Add
ADD.BAR(bar_num)	Menubars(bar_num).Reset
ADD.CHART.AUTOFORMAT(name_text, desc_text)	Application.AddChartAutoFormat chart := ActiveChart, _ name := name_text, description := desc_text
ADD.COMMAND(bar_num, menu, command_ref, position1)	Menubars(bar_num).Menus(menu).MenuItems.Add _ caption := caption, onAction := macro, _ shortcutKey := key, before := position1
在菜单上添加命令，command_ref 的引用区域包括有关 caption、onAction 和shortcutKey 等参数的信息，给命令状态栏指定的文字和帮助主题，由指定给 onAction 宏的帮助主题和状态栏文字来决定，用“工具”菜单上“宏”命令的“选项”按钮，可完成宏选项的设置。

ADD.COMMAND(bar_num, menu, command_ref, position1, position2)	Menubars(bar_num).Menus(menu). _ MenuItems(position1).MenuItems.Add _ caption := caption, onAction := macro, _ shortcutKey := key, before := position2
在子菜单上添加命令。

ADD.COMMAND(bar_num, menu, command_ref, "Menu To Restore")	Menubars(bar_num).Menus(Menu ).MenuItems.Add _ caption := "Menu To Restore", restore := True
恢复被删除的菜单命令。

ADD.COMMAND(bar_num, menu, command_ref, position1, position2)	ShortcutMenus(shortcut_menu).MenuItems.Add _ caption := caption, onAction := macro, _ shortcutKey := key, before := position1
在快捷菜单上添加命令，在 Visual Basic 中，可利用带有适当常数的 ShortcutMenus 方法使用快捷菜单。

ADD.LIST.ITEM(text, index_num)	Selection.AddItem(text := text, index := index_num)
ADD.MENU(bar_num, menu_ref, position1)	Menubars(bar_num).Menus.Add caption := caption, _ before := position1
添加菜单，menu_ref 引用区域包括有关菜单及其内容的信息，在 Visual Basic 中，使用MenuItems 对象的 Add 和 AddMenu 方法明确说明菜单的内容。

ADD.MENU(bar_num, menu_ref, position1, position2)	Menubars(bar_num).Menus(position1).MenuItems. _ AddMenu caption := caption, before := position2
在已有的菜单上添加子菜单。

ADD.MENU(bar_num, "Menu To Restore")	Menubars(bar_num).Menus.Add caption := caption, _ restore := True
恢复已删除的菜单。

ADD.OVERLAY( )
无直接的等价函数，当不同的图表类型添加到一个系列上时，自动生成第二图表组(覆盖)，请参阅 Series和ChartGroup对象的Type 属性。

ADD.TOOL(bar_id, position, tool_ref)	Toolbars(bar_id).ToolbarButtons.Add button := button, _ before := position, onAction := macro, _ pushed := pushed, enabled := enabled
添加一个用户自定义工具栏上的按钮， tool_ref 的引用区域包含有关button、onAction、pushed和 enabled 等参数的信息。指定给按钮的状态栏文字和帮助主题，由指定给 OnAction  宏的状态栏文字和帮助主题来决定。使用“工具”菜单上“宏”命令中的“选项”按钮，可设置宏选项。“工具”菜单上的“附加工具栏”命令把静态工具栏同一个文档联系起来。

ADD.TOOL(bar_id, position, button)	Toolbars(bar_id).ToolbarButtons.Add button := button, _ before := position
添加一个内部工具栏按钮。

ADD.TOOLBAR(bar_name, tool_ref)	With Toolbars.Add(bar_name := bar_name) .ToolbarButtons.Add button := tool_ref End With
添加一个工具栏，tool_ref  区域包括有关工具栏及其按钮的信息，在 Visual Basic 中，利用ToolbarButtons 对象的 Add 方法将按钮添加到新的工具栏上，本例实现添加一个新的工具栏，并且添加一个内部按钮(在此语法中 tool-ref 是数字而不是引用)。

ADDIN.MANAGER(1, addinname_text)	AddIns(addinname_text).Installed = True
ADDIN.MANAGER(2, addinname_text)	AddIns(addinname_text).Installed = False
ADDIN.MANAGER(3, addinname_text, copy_logical)	AddIns.Add filename := addinname_text, _ copyFile := copy_logical
ALERT(message_text, type_num, help_ref)	MsgBox prompt := message_text, buttons := type_num, _ helpfile := help_ref, context := help_ref
在 Visual Basic中，帮助文件名和帮助上下文标识必须定义成 ALERT 的“HELPTILE! ID”格式中的字符串和数字。

ALIGNMENT(horiz_align, wrap, vert_align, orientation)	With Selection .HorizontalAlignment = horiz_align .WrapText = wrap .VerticalAlignment = vert_align .Orientation = orientation End With
APP.ACTIVATE.MICROSOFT(app_id)	Application.ActivateMicrosoftApp index := app_id
APP.ACTIVATE(title_text, wait_logical)	AppActivate title := title_text, wait := wait_logical
在 Visual Basic 中，任何窗口名以 titlt-text 开始的窗口均被激活，而并不要求完全相符。

APP.MAXIMIZE( )	Application.WindowState = xlMaximized
APP.MINIMIZE( )	Application.WindowState = xlMinimized
APP.MOVE(x_num, y_num)	With Application .Left = x_num .Top = y_num End With
APP.RESTORE( )	Application.WindowState = xlNormal
APP.SIZE(x_num, y_num)	With Application .Width = x_num .Height = y_num End With
APP.TITLE(text)	Application.Caption = text
APPLY.NAMES( )	Range.ApplyNames
APPLY.STYLE(style_text)	Selection.Style = ActiveWorkbook.Styles(style_text)
ARGUMENT( )
无直接的等价函数，Visual Basic 过程的参数是过程说明和过程头部的一部分。

ARRANGE.ALL(arrange_num, active_doc, sync_horiz, sync_vert)	Windows.Arrange arrangeStyle := arrange_num, _ activeWorkbook := active_doc, _ syncHorizontal := sync_horiz, _ syncVertical := sync_vert
ASSIGN.TO.OBJECT(macro_ref)	Selection.OnAction := macro_ref
Macro_ref 必须定义成文字形式的宏名，而不是一个引用。

ASSIGN.TO.TOOL(bar_id, position, macro_ref)	Toolbars(bar_id).ToolbarButtons(position). _ OnAction = macro_ref
Macro_ref 必须定义成文字形式的宏名，而不是一个引用。

ATTACH.TEXT(1)	ActiveChart.HasTitle = True
ATTACH.TEXT(2)	ActiveChart.Axes(xlValue).HasTitle = True
ATTACH.TEXT(3)	ActiveChart.Axes(xlCategory).HasTitle = True
将文字加到二维图表的主分类坐标轴上。

ATTACH.TEXT(3)	ActiveChart.Axes(xlSeries).HasTitle = True
将文字加到一个三维图表的系列坐标轴上。

ATTACH.TEXT(4, series_num, point_num)	ActiveChart.Series(series_num).Points(point_num). _ HasDataLabel = True
将文字加到特定的系列和数据点，若第一个参数为 5，则也可应用于三维图表类型。

ATTACH.TEXT(4)	ActiveChart.Axes(xlCategory).HasTitle = True
将文字加到三维图表的分类轴上。

ATTACH.TEXT(5)	ActiveChart.Axes(xlValue, xlSecondary).HasTitle = True
将文字加到二维图表的次数值坐标轴。

ATTACH.TEXT(6)	ActiveChart.Axes(xlCategory, xlSecondary).HasTitle = True
将文字加到二维图表的次分类坐标轴。

ATTACH.TOOLBARS( )	Application.Dialogs(xlDialogAttachToolbars).Show
AUTO.OUTLINE( )	Selection.AutoOutline
AXES(x_primary, y_primary, x_secondary, y_secondary)	With ActiveChart .HasAxis(xlCategory, 1) = x_primary .HasAxis(xlValue, 1) = y_primary .HasAxis(xlCategory, 2) = x_secondary .HasAxis(xlValue, 2) = y_secondary End With
切换二维图表类型坐标轴的显示与否。

AXES(x_primary, y_primary, z_primary)	With ActiveChart .HasAxis(xlCategory) = x_primary .HasAxis(xlSeries) = y_primary .HasAxis(xlValue) = z_primary End With
切换三维图类型坐标轴的显示与否。

B

BEEP( )	Beep
BORDER(outline, , , , , , outline_color)	Selection.BorderAround lineStyle := outline_color, _ colorIndex := outline_color
生成围绕选定单元格的外框。在 Visual Baslc 中，对于 BorderAround 方法，使用 Linestyle 还是 Weight 参数取决于所要求的边框线类型。

BORDER(, left, , , , , , left_color, right_color)	With Selection.Borders(xlLeft) .Weight = left_color .ColorIndex = left_color End With
为选中单元格设置左边框(其他边不修改)。在 Visual Basic中，在 Border 方法中利用合适的常数来选择要修改的边框线，使用 Linestyle 还是 Weight 属性取决于所要求的边框线类型。

BREAK( )	Exit For ' or Exit Do statement
要跳转出For...Next 或 For Each...Next 循环，可使用 Exit For 语句。要跳出 Do...Loop 循环，请使用 Exit Do 语句。

BRING.TO.FRONT( )	Selection.BringToFront

C

CALCULATE.DOCUMENT( )	ActiveSheet.Calculate
CALCULATE.NOW( )	Application.Calculate
CALCULATION(type_num, iter, max_num, max_change, update, precision, date_1904, calc_save, save_values, alt_exp, alt_form)	With Application .Calculation = type_num .Iteration = iter .MaxIterations = max_num .MaxChange = max_change .CalculateBeforeSave = calc_save End With With ActiveWorkbook .UpdateRemoteReferences = update .PrecisionAsDisplayed = precision .Date1904 = date_1904 .SaveLinkValues = save_values End With With ActiveSheet .TransitionExpEval = alt_exp .TransitionFormEntry = alt_form End With
CALL(register_id, argument1, ...)	Application.Run macro := register_id, argument1, ...
使用 REGISTER 函数调用一个注册在工作表上的 DLL 的函数。在 Visual Basic 中，如果 DLL 函数不用在工作表上，则利用 Declare 语句来注册 DLL 函数。

CALL("SAMPLE.DLL", "MyFunction", "AIC", argument1, argument2, ...)	Declare Function MyFunction Lib "SAMPLE.DLL" _ (ByVal a As Integer, ByVal s As String) As Boolean ' Call the function using regular Visual Basic syntax MyFunction argument1, argument2
在 DLL 或源代码中调用函数。在 Visual Basic 中， Declare  语句注册 DLL 或源代码函数。此实例显示如何在 SAMPLE.DLL 中说明和调用一个简单函数，返回一个布尔值，并带有一个整数和一个字符串参数。

CALLER( )	Application.Caller
CANCEL.COPY(render_logical)	Application.CutCopyMode = render_logical
CANCEL.KEY(FALSE)	Application.EnableCancelKey = xlDisabled
CANCEL.KEY(TRUE)	Application.EnableCancelKey = xlInterrupt
CANCEL.KEY(TRUE, macro_ref)	Application.EnableCancelKey = xlErrorHandler
在 Visual Basic 中，利用标准的 Visual Basic 运行期间的错误捕获系统来捕获取消键，而不是用特定的过程来实现。一个被捕获的取消键产生一个代码为 18 的运行错误。

CELL.PROTECTION(locked, hidden)	With Selection .Locked = locked .FormulaHidden = hidden End With
CHANGE.LINK(old_text, new_text, type_of_link)	ActiveWorkbook.ChangeLink name := old_text, _ newName := new_text, type := type_of_link
CHART.ADD.DATA(ref, rowcol, titles, categories, replace, 1)	ActiveChart.SeriesCollection.Add source := ref, _ rowcol := rowcol, seriesLabels := titles, _ categoryLabels := categories, replace := replace
CHART.ADD.DATA(ref, rowcol, , categories, , 2)	ActiveChart.SeriesCollection.Extend source := ref, _ rowcol := rowcol, categoryLabels := categories
CHART.WIZARD(long, ref, gallery_num, type_num, plot_by, categories, ser_titles, legend, title, x_title, y_title, z_title, number_cats, number_titles)	ActiveChart.ChartWizard source := ref, _ gallery := gallery_num, type := type_num, _ plotBy := plot_by, categoryLabels := number_cats, _ seriesLabels := number_titles, _ hasLegend := legend, title := titles, _ categoryTitle := x_title, valueTitle := y_title, _ extraTitle := z_title
在 Miorosoft Excel 5.0及以上的版本中不使用分类和系列标题参数，Visual Basic 只提供categoryLable 和serieslabel 参数。由于 Visual Basic 方法不是交互式的，所以 long 参数没有等价的参数。

CHECKBOX.PROPERTIES(value, link, accel_text, accel2_text, 3d_shading)	With Selection .Value = value .LinkedCell = link .Display3DShading = 3d_shading .Accelerator = accel_text .PhoneticAccelerator = accel2_text End With
CHECK.COMMAND(bar_num, menu, command, check)	Menubars(bar_num).Menus(menu). _ MenuItems(command).Checked = check
选择或取消选择菜单上的一条命令。

CHECK.COMMAND(bar_num, menu, command, check, position)	Menubars(bar_num).Menus(menu). _ MenuItems(submenu). _ MenuItems(position).Checked = check
选择或取消选择子菜单上的一条命令。

CHECK.COMMAND(bar_num, menu, command, check)	ShortcutMenus(shortcut_menu). _ MenuItems(command).Checked = check
选择或取消选择快捷菜单上的一条命令，在 Visual Basie 中，快捷菜单的使用是通过利用带有合适常数的 ShortcutMenus 方法来完成。

CLEAR(1)	Selection.Clear
完全清除工作表区域或图表区，参数1可以省略。

CLEAR( )	Selection.Delete
完全清除(删除)所选定的图表点、系列、误差线和趋势线。

CLEAR( )	Selection.ClearFormats
清除选定图表的背景墙、基底和绘图区的格式。

CLEAR(2)	Selection.ClearFormats
清除工作表区域或选定的图表项(不是整幅图)的格式。

CLEAR(3)	Selection.ClearContents
清除工作表区域内的内容。

CLEAR(3)	ActiveChart.ChartArea.ClearContents
从整幅无任何选定区域的图表上清除所有的数据系列。

CLEAR(4)	Selection.ClearNotes
从工作表区域内清除附注。

CLEAR.OUTLINE( )	Selection.ClearOutline
CLEAR.ROUTING.SLIP(FALSE)	ActiveWorkbook.HasRoutingSlip = False
CLEAR.ROUTING.SLIP(TRUE)	ActiveWorkbook.RoutingSlip.Reset
CLOSE(save_logical, route_logical)	ActiveWindow.Close saveChanges := save_logical, _ routeWorkbook := route_logical
在忽略已打开窗口数的情况下关闭工作簿，请使用 Workbook 对象的 Close 方法。Close 方法也包括一个文件名参数，用来指定如果 save_logical 为 TRUE 时保存工作簿所起的名字。

CLOSE.ALL( )	Workbooks.Close
COLOR.PALETTE(file_text)	ActiveWorkbook.Colors = Workbooks(file_text).Colors
COLUMN.WIDTH(, reference, , 1)	Columns(reference).Hidden = True
隐藏列。如果隐藏所选定对象，请使用 Selection. EntireColumm 方法，而不是Columns 方法。

COLUMN.WIDTH(, reference, , 2)	Columns(reference).Hidden = False
取消隐藏列。

COLUMN.WIDTH(, reference, , 3)	Columns(reference).AutoFit
按照每列中最长项的宽度来设定列宽。

COLUMN.WIDTH(width_num, reference)	Columns(reference).ColumnWidth = width_num
按指定的数值设定列宽。

COLUMN.WIDTH(, reference, TRUE)	Columns(reference).ColumnWidth = _ ActiveSheet.StandardWidth
按标准列宽值设定列宽。

COLUMN.WIDTH(, , , , standard_num)	ActiveSheet.StandardWidth = standard_num
把工作表上所有列设定为标准列宽。

COMBINATION(type_num)	ActiveChart.AutoFormat gallery := xlCombination, _ format := type_num
CONSOLIDATE(source_refs, function_num, top_row, left_col, create_links)	Selection.Consolidate sources := source_refs, function := function_num, topRow := top_row, _ leftColumn := left_col, createLinks := create_links
CONSTRAIN.NUMERIC(numeric_only)	Application.ConstrainNumeric = numeric_only
COPY( )	Selection.Copy
复制选定的对象，包括区域、图表项和图形对象。

COPY(from_reference, to_reference)	Range(from_reference).Copy to_reference
把工作表区域从一个位置复制到另一位置。如果省略 from_reference，请使用 Selection 属性而不是 Range 方法。

COPY.CHART(size_num)	ActiveChart.CopyPicture size := size_num
COPY.PICTURE(appearance_num, size_num, type_num)	Selection.CopyPicture _ appearance := appearance_num, _ format := type_num
适用于除图表外的所有文档。

COPY.PICTURE(appearance_num, size_num, type_num)	ActiveChart.CopyPicture _ appearance := appearance_num, _ size := size_num, format := type_num
用于图表。

COPY.TOOL(bar_id, position)	Toolbars(bar_id).ToolbarButtons(position).CopyFace
CREATE.NAMES( )	Selection.CreateNames
CREATE.OBJECT(2, ref1, x_offset1, y_offset1, ref2, x_offset2, y_offset2)	With Range(ref1) left = .Left + x_offset1 top = .Top + y_offset1 End With With Range(ref2) width = (.Left + x_offset2) - left height = (.Top + y_offset2) - top End With ActiveSheet.Rectangles.Add left, top, width, height
生成一个未填充的矩形对象，其他对象类似。如果要求生成一个特定图形对象，可使用宏记录来决定 Visual Basic 方法的精确形式。请注意 Visual Basic 使用相对于工作表左上方的绝对坐标，而不是用 Microsoft Excel 4.0版中“宏语言”的单元格和偏移位置，下述实例显示如何将单元格和偏移坐标转换为绝对坐标。

CREATE.PUBLISHER(file_text, appearance, , formats)	If formats >= 8 Then hasValu = True formats = formats - 8 Else hasValu = False End If If formats >= 4 Then hasRtf = True formats = formats - 4 Else hasRtf = False End If If formats >= 2 Then hasBiff = True formats = formats - 2 Else hasBiff = False End If If formats >= 1 Then hasPict = True Else hasPict = False End If Selection.CreatePublisher edition := file_text, _ appearance := appearance, _ containsVALU := hasValu, containsRTF := hasRtf, _ containsBIFF := hasBiff, containsPICT := hasPict
设置区域版式。在 Visual Basic 中格式参数被分割成 containsBIFF, containsPICT, containsRTF, 和 containsVALU  等参数。

CREATE.PUBLISHER(file_text, appearance, size)	ActiveChart.CreatePublisher edition := file_text, _ appearance := appearance, size := size
设置图表版式。

CUSTOM.REPEAT(macro_text, repeat_text)	Application.OnRepeat text := repeat_text, _ procedure := macro_text
对用户自定义命令设置重复菜单命令。

CUSTOM.REPEAT(, , record_text)	Application.RecordMacro xlmCode := record_text
从用户命令中记录任意的文字。Visual Basic具有用于记录Visual Basic 代码的 basicCode 参数。

CUSTOM.UNDO(macro_text, undo_text)	Application.OnUndo text := undo_text, _ procedure := macro_text
CUT( )	Selection.Cut
将所选定对象剪切到剪贴板上，包括区域、图表项和图形对象。

CUT(from_reference, to_reference)	Range(from_reference).Cut to_reference
从一个位置剪切某个工作表区域并且粘贴到另一位置。如果省略 from_reference 参数,请使用 Selection 属性而不是 Range 方法。


宏函数和宏命令的Visual Basic等价形式

D

DATA.DELETE( )
无直接等价形式

DATA.FIND(logical)
无直接等价形式

DATA.FIND.NEXT( )
无直接等价形式

DATA.FIND.PREV( )
无直接等价形式

DATA.FORM( )	ActiveSheet.ShowDataForm
DATA.LABEL(show_option, , show_key)	Selection.ApplyDataLabels type := show_option, _ legendKey := show_key
对选定的数据点或系列插入数据标志。如果要对整个图表进行插入，应使用ActiveChart 属性而非Selection 属性。

DATA.LABEL(show_option, auto_text, show_key)	With Selection .Type = show_option .AutoText = auto_text .ShowLegendKey = show_key End With
设置选定的数据标志或数据标志集的属性。

DATA.SERIES(rowcol, type_num, date_num, step_value, stop_value, trend)	Selection.DataSeries rowcol := rowcol, _ type := type_num, date := date_num, _ step := step_value, stop := stop_value, _ trend := trend
DEFINE.NAME(name_text, refers_to, macro_type, shortcut_text, hidden, category, TRUE)	Names.Add name := ActiveSheet.Name & "!" &name_text, _ refersTo := refers_to, category := category, _ visible := Not hidden, macroType := macro_type, _ shortcutKey := shortcut_text
为特定表格定义名称。用 Visual Basic 的Add 方法定义局部名称时，参数 Name 以表格名加惊叹号打头(例如，"Sheet1!SampleName")。本例为活动表格定义名称，该表格必须为工作表或模块表。

DEFINE.NAME(name_text, refers_to, macro_type, shortcut_text, hidden, category, FALSE)	Names.Add name := name_text, refersTo := refers_to, _ category := category, visible := Not hidden, _ macroType := macro_type, _ shortcutKey := shortcut_text
为工作簿中所有表格定义名称。用 Visual Basic 的 Add 方法定义全局名称时，参数  Name 不包括表格名和惊叹号(例如，"SampleName")。

DEFINE.STYLE(style_text, number, font, alignment, border, pattern, protection)	With ActiveWorkbook.Styles.Add(name := style_text, _ basedOn := ActiveCell) .IncludeNumber = number .IncludeFont = font .IncludeAlignment = alignment .IncludeBorder = border .IncludePatterns = pattern .IncludeProtection = protection End With
语法 1: 定义活动单元格的样式属性。

DEFINE.STYLE(style_text, 2, format_text)	With ActiveWorkbook.Styles(style_text) .NumberFormat = format_text End With
语法 2: 修改某现存样式的数字格式。要在 Visual Basic 中增加新样式，使用 Styles 对象的 Add 方法。请参阅语法1的实例。

DEFINE.STYLE(style_text, 3, name_text, size_num, bold, italic, underline, strike, color, outline, shadow, superscript, subscript)	With ActiveWorkbook.Styles(style_text).Font .Name = name_text .Size =  size_num .Bold = bold, .Italic = italic .Underline = underline .Strikethrough = strike .ColorIndex = color .OutlineFont = outline .Shadow = shadow .Superscript = superscript .Subscript = subscript End With
语法 3: 修改某现存样式的字体设定。要在 Visual Basic 中增加新样式，使用 Styles 对象的 Add 方法。请参阅语法1的实例。

DEFINE.STYLE(style_text, 4, horiz_align, wrap, vert_align, orientation)	With ActiveWorkbook.Styles(style_text) .HorizontalAlignment = horiz_align .WrapText = wrap .VerticalAlignment = vert_align .Orientation = orientation End With
语法 4: 修改某现存样式的对齐方式。要在 Visual Basic 中增加新样式，使用 Styles 对象的 Add 方法。请参阅语法1的实例。

DEFINE.STYLE(style_text, 5, left, right, top, bottom, left_color, right_color, top_color, bottom_color)	With ActiveWorkbook.Styles(style_text).Borders With .Item(xlLeft) .LineStyle = left  .ColorIndex = left_color End With With .Item(xlRight) .Weight = right  .ColorIndex = right_color End With With .Item(xlTop) .LineStyle = top  .ColorIndex = top_color End With With .Item(xlBottom) .Weight = bottom .ColorIndex = bottom_color End With End With
语法 5: 修改某现存样式的边框设定。要在 Visual Basic 中增加新样式，使用 Styles 对象的 Add 方法。请参阅语法1的实例。根据所要的边框类型，可使用 LineStyle 或 Weight 属性之一。

DEFINE.STYLE(style_text, 6, apattern, afore, aback)	With ActiveWorkbook.Styles(style_text).Interior .ColorIndex = afore .Pattern = apattern .PatternColorIndex = aback End With
语法 6: 修改某现存样式的图案设定。要在 Visual Basic中增加新样式，使用 Styles 对象的 Add 方法。请参阅语法1的实例。

DEFINE.STYLE(style_text, 7, locked, hidden)	With ActiveWorkbook.Styles(style_text) .Locked = locked .FormulaHidden = hidden End With
语法 7: 修改某现存样式的保护设定。要在 Visual Basic 中增加新样式，使用 Styles 对象的 Add 方法。请参阅语法1的实例。

DELETE.ARROW( )	Selection.Delete
从活动图表中删除选定的箭头对象。

DELETE.BAR(bar_num)	MenuBars(bar_num).Delete
DELETE.CHART.AUTOFORMAT( name_text)	Application.DeleteChartAutoFormat name := name_text
DELETE.COMMAND(bar_num, menu, command, subcommand)	MenuBars(bar_num).Menus(menu). _ MenuItems(command).Delete
从菜单中删除某一命令。

DELETE.COMMAND(bar_num, menu, command, subcommand)	MenuBars(bar_num).Menus(menu). _ MenuItems(command). _ MenuItems(subcommand).Delete
从子菜单中删除某一命令。

DELETE.COMMAND(bar_num, menu, command)	ShortcutMenus(shortcut_menu). _ MenuItems(command).Delete
从快捷菜单中删除某一命令。在 Visual Basic 中，使用 ShortcutMenus 方法及适当常量可访问快捷菜单。

DELETE.FORMAT(format_text)	ActiveWorkbook.DeleteNumberFormat format_text
DELETE.MENU(bar_num, menu)	MenuBars(bar_num).Menus(menu).Delete
删除菜单。

DELETE.MENU(bar_num, menu, submenu)	MenuBars(bar_num).Menus(submenu). _ MenuItems(submenu).Delete
删除子菜单。

DELETE.NAME(name_text)	Names(name_text).Delete
在 Name 前加工作表名和惊叹号，可访问仅为活动工作表定义的名称(例如, "Sheet1!SampleName")。

DELETE.OVERLAY( )	ActiveChart.ChartGroups(2).Type = _ ActiveChart.ChartGroups(1).Type
从当前图表中删除覆盖。Microsoft Excel 5.0 或 5.0 以上的版本使用图表组，而非覆盖，所以没有直接的 Visual Basic 等价形式。此处给出的实例将第二个图表组(或者说“覆盖”)与第一个图表组融合。仅当图表覆盖由Microsoft Excel 4.0的宏创建，或从 Microsoft Excel 4.0文件中读取时，本例才起作用。

DELETE.STYLE(style_text)	ActiveWorkbook.Styles(style_text).Delete
DELETE.TOOL(bar_id, position)	Toolbars(bar_id).ToolbarButtons(position).Delete
DELETE.TOOLBAR(bar_name)	Toolbars(bar_name).Delete
DEMOTE(1)	Selection.Rows.Group
使选定区域的行成为组。

DEMOTE(2)	Selection.Columns.Group
使选定区域的列成为组。

DEREF(reference)	Range(reference).Value
像 Microsoft Excel 4.0 宏语言中的引用一样，在大多数使用 Range 对象并期望返回一个值的情况下，Visual Basic 自动返回 Value 属性。可使用 Value 属性强制返回 Range 对象。

DIALOG.BOX(dialog_ref)	Range(dialog_ref).DialogBox
Microsoft Excel 5.0 及以上的版本支持对话框的可视化编辑。要使用这种新对话框，在“插入”菜单中选择“宏”，然后单击子菜单中的“对话框编辑表”。

DIRECTORY(path_text)	ChDir path_text
DISABLE.INPUT(logical)	Application.Interactive = Not logical
DISPLAY(formulas, gridlines, headings, zeros, color_num, reserved, outline, page_breaks, object_num)	With ActiveWindow .DisplayFormulas = formulas .DisplayGridlines = gridlines .DisplayHeadings = headings .DisplayZeros = zeros .GridlineColorIndex = color_num .DisplayOutline = outline End With ActiveSheet.DisplayAutomaticPageBreaks = page_breaks ActiveWorkbook.DisplayDrawingObjects = object_num
控制活动工作表和工作区的视图选项。

DISPLAY(cell, formula, value, format, protection, names, precedents, dependents, note)	ActiveWindow.SetInfoDisplay cell, formula, value, _ mergeformat, protection, names, precedents, _ dependents, note
控制信息窗口的选项。在 Visual Basic 中，使用 Windows("Info")可直接访问信息窗口。

DOCUMENTS( )	For Each wb in Workbooks answer = MsgBox "Print " & wb.Name & "?", vbYesNo If answer = vbYes Then wb.PrintOut End If Next
返回数组，该数组包含所有打开的非加载宏的工作簿名。在 Visual Basic 中，使用Workbooks 集。使用 For Each...Next 语句可轮流查询集合中的每个工作簿。本例询问用户是否打印每个打开的工作簿，若用户作肯定回答就打印。

DOCUMENTS(, match_text)	For Each wb In Workbooks If wb.Name Like match_text Then ' This workbook matches MsgBox "Match for " & wb.Name End If Next
返回一个数组，该数组包含所有打开的非加载宏且名称与 match_text 的样式匹配的工作簿名。Visual Basic 没有直接的等价形式，但本例使用循环中的筛选来模拟。

DOCUMENTS(2)
无直接等价形式。可用 Workbooks 方法以名称访问打开的特定加载宏，但无法获得所有打开的加载宏的集合。同样 DOCUMENTS(3) 也没有 Visual Basic 的等价形式。

DUPLICATE( )	Selection.Duplicate
E

ECHO(logical)	Application.ScreenUpdating = logical
EDIT.COLOR(color_num, red_value, green_value, blue_value)	ActiveWorkbooks.Colors(color_num) = _ RGB(red_value, green_value, blue_value)
EDIT.DELETE(1)	Selection.Delete xlToLeft
删除选定的单元格。EDIT.DELETE(2) 命令相当于 Delete 方法的 xlUp 参数。

EDIT.DELETE(3)	Selection.EntireRow.Delete
删除选定区域所在的行。对EDIT.DELETE(4)命令使用 EntireColumn 属性取代 EntireRow 属性。

EDIT.OBJECT(verb_num)	Selection.Verb verb := verb_num
编辑嵌入或链接的对象。no_pause 参数在 Visual Basic 中无等价形式。

EDIT.REPEAT( )	Application.Repeat
EDIT.SERIES(series_num, name_ref, x_ref, y_ref, z_ref, plot_order)	ActiveChart.SeriesCollection(series_num) _ .PlotOrder = plot_order
无直接等价形式，增加新系列。可用 SeriesCollection 对象的 Add 方法增加新系列，然后设置 Formula 和 PlotOrder 属性以修改系列的设定。本例示范如何访问现存的系列。

EDIT.TOOL(bar_id, position)	Toolbars(bar_id).ToolbarButtons(position).Edit
EDITBOX.PROPERTIES(validation_num, multiline_logical, vscroll_logical)	With Selection .InputType = (validation_num) .MultiLine = multiline_logical .DisplayVerticalScrollBar = vscroll_logical End With
EDITION.OPTIONS(edition_type, edition_name, reference, option, appearance, size, formats)	ActiveWorkbook.EditionOptions type := edition_type, _ option := , name := edition_name, _ reference := reference, appearance := _ appearance, chartSize := size, formats := formats
ELSE( )	Else keyword, part of an If...Then...Else statement
ELSE.IF(logical_test)	ElseIf keyword, part of an If...Then...Else statment
EMBED(object_class, item)
无直接等价形式。当选定嵌入对象时显示在编辑栏，但不能在宏表或模块中使用。

ENABLE.COMMAND(bar_num, menu, command, enable)	MenuBars(bar_num).Menus(menu). _ MenuItems(command).Enabled = enable
激活或禁止菜单的某一命令。

ENABLE.COMMAND(bar_num, menu, command, enable, subcommand)	MenuBars(bar_num).Menus(menu). _ MenuItems(command). _ MenuItems(subcommand).Enabled = enable
激活或禁止子菜单的某一命令。

ENABLE.COMMAND(bar_num, menu, command, enable)	ShortcutMenus(shortcut_menu). _ MenuItems(command).Enabled = enable
激活或禁止快捷菜单的某一命令。在 Visual Basic 中，使用 ShortcutMenus 方法及适当常量可访问快捷菜单。

ENABLE.TIPWIZARD(state)	Application.EnableTipWizard = state
ENABLE.TOOL(bar_id, position, enable)	Toolbars(bar_id).ToolbarButtons(position). _ Enabled = enable
END.IF( )	End If keyword, part of an If...Then...Else statement
ENTER.DATA(logical)	Application.DataEntryMode = logical
ERROR(FALSE)	On Error Resume Next Application.DisplayAlerts = False
禁止错误检查和警告消息。在 Visual Basic 中，本例中的 On Error 语句导致错误被忽略，DisplayAlerts 属性禁止警告消息。

ERROR(TRUE)	On Error GoTo 0 Application.DisplayAlerts = True
激活错误检查和警告消息。在 Visual Basic 中，本例中的 On Error 语句禁止所有的错误捕获，恢复缺省的错误警告，DisplayAlerts 属性激活警告消息。

ERROR(TRUE, macro_ref)	Sub ErrorsTrapped () ' Trap all errors, display alerts Application.DisplayAlerts = True On Error GoTo ErrorTrapper ' Code that potentially causes errors Exit Sub ErrorTrapper: ' Error recovery code ' Use the Resume statement to continue Resume Next End Sub
当错误发生时，捕获错误并调用 macro_ref。在 Visual Basic 中，错误处理程序不是独立的过程，仅是当前过程中一段有标志的代码。该标志是作为 On Error 语句的参数。

ERRORBAR.X(include, type, amount, minus)	Selection.ErrorBar direction := xlX, include := include, _ type := type, amount := amount, _ minusValues := minus
ERRORBAR.Y(include, type, amount, minus)	Selection.ErrorBar direction := xlY, include := include, _ type := type, amount := amount, _ minusValues := minus
EVALUATE(formula_text)	Evaluate name := formula_text
EXEC(program_text, window_num)	Shell program_text, window_num
以 window_num 指定的初始窗口状态启动 Microsoft Windows 应用程序。

EXEC(program_text, , TRUE, preferred_size_only)	Shell program_text, 4
在 Macintosh 机上，在后台启动应用程序。如果后台参数为 FALSE，令 Shell 函数的第二个参数为1。Shell 方法没有 preferred_size_only 参数的等价形式。

EXECUTE(channel_num, execute_text)	DDEExecute channel_num, execute_text
EXTEND.POLYGON(array)	With Drawings.Add(x1, y1, x2, y2, closed) .AddVertex x3, y3 .AddVertex x4, y4 End With
当多边形顶点太多，以至于不能放在单一 CREATE.OBJECT 命令中时，用本命令定义多边形。在 Visual Basic 中，使用 AddVertex 方法向多边形增加顶点。注意 AddVertex 的坐标以工作表或图表的左上角为基点，而不是包围多边形的矩形的左上角。

EXTRACT(unique)
无直接等价形式。使用 AdvancedFilter 方法从数据库中提取数据。

F

FCLOSE(file_num)	Close file_num
FILE.CLOSE(save_logical, route_logical)	ActiveWorkbook.Close saveChanges := save_logical, _ routeWorkbook := route_logical
FILE.DELETE(file_text)	Kill file_text
FILES(directory_text)	Dim arrayFiles() As String count = 0 f = Dir(directory_text) Do While Len(f) > 0 count = count + 1 ReDim Preserve arrayFiles(1 to count) arrayFiles(count) = f f = Dir() Loop
要获得文件夹中所有文件的列表，必须连续地在循环中调用 Dir 函数，如本例所示。因为每一轮循环中文件名都可用，所以可能没有必要建立文件数组。本例建立了数组。

FILL.AUTO(destination_ref, copy_only)	Selection.AutoFill destination := destination_ref, _ type := copy_only
FILL.DOWN( )	Selection.FillDown
FILL.GROUP(type_num)	ActiveWindow.SelectedSheets.FillAcrossSheets _ range := Selection, type := type_num
FILL.LEFT( )	Selection.FillLeft
FILL.RIGHT( )	Selection.FillRight
FILL.UP( )	Selection.FillUp
FILTER( )	Selection.AutoFilter
FILTER(field_num, criteria1, operation, criteria2)	Selection.AutoFilter field := field_num, _ criteria1 := criteria1, operator := operation, _ criteria2 := criteria2
FILTER.ADVANCED(operation, list_ref, criteria_ref, copy_ref, unique)	Range(list_ref).AdvancedFilter action := operation, _ criteriaRange := criteria_ref unique := unique
FILTER.SHOW.ALL()	ActiveSheet.ShowAllData
FIND.FILE()	Application.FindFile
FONT(name_text, size_num)	With ActiveWorkbook.Styles("Normal").Font .Name = name_text .Size = size_num End With
FONT.PROPERTIES(font, font_style, size, strikethrough, superscript, subscript, outline, shadow, underline, color, normal, background, start_char, char_count)	With Selection.Characters(start_char, char_count).Font .Name = font .FontStyle = font_style .Size = size .Strikethrough = strikethrough .Superscript = superscript .Subscript = subscript .OutlineFont = outline .Shadow = shadow .Underline = underline .ColorIndex = color .Background = background End With
修改选定的单元格或文本框中的字体。如果省略 start_char 和 char_count 参数，在 With 语句中用 Selection.Font 取代 Selection.Characters(start_char, char_count)。norma 参数无直接等价形式。可通过拷贝 Normal 样式的 Font 来设置字体的 Normal 样式，即 ActiveWorkbook.Styles("Normal").Font。

FOPEN(file_text, 1)	filenum = FreeFile Open file_text For Output Access Write As #filenum
以可读写方式打开文件，进行文本输入和输出。在 Visual Basic 中，可按只输出或只输入方式打开，而不能按可同时输入输出方式打开。本例按只输出方式打开文件。并且如果文件不存在，Visual Basic 将会创建。由于这个原因，FOPEN(file_text, 3) 将翻译为与本例相同的 Visual Basic 代码。

Visual Basic 比 Microsoft Excel 4.0宏语言提供更为丰富的文件操作集，允许对文件输入输出模式和存取权限进行更全面的控制。关于可用模式的详细信息，请参阅 将数据写入文件!AL(vaconWritingData, 1, xlmscALERRORVA) 和 打开.!AL(vastmOpen, 1, xlmscALERRORVA)

FOPEN(file_text, 2)	filenum = FreeFile Open file_text For Input Access Read As #filenum
以只读方式打开文件进行文本输入。

FOR(counter_text, start_num, end_num, step_num)	For counter = start_num to end_num Step step_num
在循环中递增计数器。在 Visual Basic 中，计数器是一个变量，而非定义名称。

FOR.CELL(ref_name, area_ref)	For Each ref_name In area_ref
对区域内的单元格进行重复操作。在 Visual Basic 中，当前单元格 ref_name 是变量，而非定义名称。

FOR.CELL(ref_name, area_ref, TRUE)	For Each ref_name In area_ref If Not IsEmpty(ref_name.Value) Then ' Cell is non-blank End If Next
对区域内的单元格进行重复操作，跳过空白单元格。For Each...Next 语句没有 skip_blanks 参数的等价形式，故循环检查每个单元格。

FORMAT.AUTO(format_num, number, font, alignment, border, pattern, width)	Selection.AutoFormat format := format_num, _ Number := number, Font := font, _ Alignment := alignment, _ Border := border, Pattern := pattern, _ Width := width
FORMAT.CHART(layer_num, view, overlap, angle, gap_width, gap_depth, chart_depth, doughnut_size, axis_num, drop, hilo, up_down, series_line, labels, vary)	With ActiveChart.ChartGroups(layer_num) .SubType = view .Overlap = overlap .FirstSliceAngle = angle .GapWidth = gap_width .DoughnutHoleSize = doughnut_size .AxisGroup =  axis_num .HasDropLines = drop .HasHiLoLines = hilo .HasUpDownBars = up_down .HasSeriesLines = series_line .HasRadarAxisLabels = labels .VaryByCategories = vary End With With ActiveChart .GapDepth = gap_depth .DepthPercent = chart_depth End With
某些参数和属性可能不适用于特定类型的图表。

FORMAT.CHARTTYPE(1, , dimension, type_num)	Selection.Type = charttype
设置选定系列的图表类型。Visual Basic 不区分二维和三维图表类型；二是将维数和 type_num 参数组合在 Type 属性中。用于 Type 属性的常量在图表类型之后命名(例如, xlRadar, xlLine 和 xl3DArea)。

FORMAT.CHARTTYPE(2, group_num, dimension, type_num)	ActiveChart.ChartGroups(group_num).Type = charttype
设置特定图表组的图表类型。

FORMAT.CHARTTYPE(3, , dimension, type_num)	ActiveChart.Type = charttype
为整个图表设置图表类型。

FORMAT.FONT(name_text, size_num, bold, italic, underline, strike, color, outline, shadow)	With Selection.Font .Name = name_text .Size = size_num .Bold = bold .Italic = italic .Underline = underline .Strikethrough = strike .ColorIndex = color .OutlineFont = outline .Shadow = shadow End With
为工作表的单元格和宏表修改字体设定。

FORMAT.FONT(name_text, size_num, bold, italic, underline, strike, color, outline, shadow, object_id_text, start_num, char_num)	With ActiveSheet.DrawingObjects(object_id_text). _ Characters(start_num, char_num).Font .Name = name_text .Size = size_num .Bold = bold .Italic = italic .Underline = underline .Strikethrough = strike .ColorIndex = color .OutlineFont = outline .Shadow = shadow End With
为工作表的文本框和按钮或宏表修改字体设定。如果省略 object_id_text ，用 Selection 属性取代 DrawingObjects(object_id_text)。如果 start_num 和 char_num 均省略，就不必在语句中使用 Characters(start_num, char_num) 了。

FORMAT.FONT(color, backgd, apply, name_text, size_num, bold, italic, underline, strike, outline, shadow)	With Selection.Font .ColorIndex = color .Background = backgd .Name = name_text .Size = size_num .Bold = bold .Italic = italic .Underline = underline .Strikethrough = strike .OutlineFont = outline .Shadow = shadow End With
为图表中未链接的文本修改字体设定。apply 参数没有直接等价形式，但若为 TRUE，可用影响图表中每个 Series 对象的 Font 属性的设定来模拟。可以通过将 For Each...Next 循环和活动工作表的 SeriesCollection 对象共用，对图表中所有的系列重复操作来实现。

FORMAT.LEGEND(position_num)	Selection.Position = position_num
FORMAT.MAIN(type_num, view, overlap, gap_width, vary, drop, hilo, angle, gap_depth, chart_depth, up_down, series_line, labels, doughnut_size)	With ActiveChart.ChartGroups(1) .Type = type_num .SubType = view .Overlap = overlap .GapWidth = gap_width .VaryByCategories = vary .HasDropLines = drop .HasHiLoLines = hilo .FirstSliceAngle = angle .HasUpDownBars = up_down .HasSeriesLines = series_line .HasRadarAxisLabels = labels .DoughnutHoleSize = doughnut_size End With With ActiveChart .GapDepth = gap_depth .DepthPercent = chart_depth End With
某些参数和属性可能不适用于特定类型的图表。Microsoft Excel 5.0 及以上版本不使用主图表和覆盖图表，而是用图表组提供多重图表类型。本例格式化第一个图表组，该图表组相当于 Microsoft Excel 4.0 中图表的主图表。

FORMAT.MOVE(x_offset, y_offset, reference)	With Range(reference) xpos = .Left + x_offset ypos = .Top + y_offset End With With Selection .Left = xpos .Top = ypos End With
在工作表或宏表中移动图形对象。Visual Basic 的坐标系总以 A1 单元格的左上角为基准。此处的 Visual Basic 实例将单元格坐标调整到与 A1 相联系。若省略引用，就无需调整。

FORMAT.MOVE(x_pos, y_pos)	With Selection .Left = x_pos adjVert = ActiveChart.ChartArea.Height - .Height .Top = adjVert - y_pos End With
在图表中移动图形对象或文本。Visual Basic 的坐标系基于对象的左上角和图表的左上角的距离。由于 FORMAT.MOVE 的坐标系基于对象的左下角和图表的左下角的距离，因此必须转换。

FORMAT.MOVE(explosion_num)	Selection.Explosion = (explosion_num)
移动圆环图或饼图中的一部分。

FORMAT.NUMBER(format_text)	Selection.NumberFormat = format_text
FORMAT.OVERLAY(type_num, view, overlap, gap_width, vary, drop, hilo, angle, series_dist, series_num, up_down, series_line, labels)	With ActiveChart.ChartGroups(2) .Type = type_num .SubType = view .Overlap = overlap .GapWidth = gap_width .VaryByCategories = vary .HasDropLines = drop .HasHiLoLines = hilo .FirstSliceAngle = angle .HasUpDownBars = up_down .HasSeriesLines = series_line .HasRadarAxisLabels = labels End With
某些参数和属性可能不适用于特定类型的图表。Microsoft Excel 5.0 及以上的版本不使用主图表和覆盖图表，而是用图表组提供多重图表类型。本例格式化第一个图表组，该图表组相当于 Microsoft Excel 4.0 中图表的覆盖图表。

series_dist和series_num参数在 Visual Basic 中无直接等价形式。由于 Microsoft Excel 5.0 及以上的版本可用任何图表组拟合系列，使用 Series 对象的 Type 属性决定用哪种图表组来拟合系列。

FORMAT.SHAPE(vertex_num, insert, , x_offset, y_offset)	With Selection xpos = .Left + x_offset ypos = .Top + y_offset .Reshape vertex := vertex_num, insert := insert, _ left := xpos, top := ypos End With
移动或插入多边形的顶点。当 reference 参数省略时，FORMAT.SHAPE 的坐标系以包围多边形的矩形的左上角为基准点，如本例所示。Visual Basic 的坐标系以 A1 单元格或图表的左上角为基准点。若要删除顶点，令 insert 为 False，并省略 left 和 top 参数。

FORMAT.SHAPE(vertex_num, insert, reference, x_offset, y_offset)	With Range(reference) xpos = .Left + x_offset ypos = .Top + y_offset End With Selection.Reshape vertex := vertex_num, insert := insert, _ left := xpos, top := ypos
移动或插入多边形的顶点。当 reference 参数省略时，FORMAT.SHAPE 的坐标系以 reference 的左上角为基准点。Visual Basic 的坐标系以 A1 单元格或图表的左上角为基准点。

FORMAT.SIZE(width, height)	With Selection .Width = width .Height = height End With
以绝对坐标改变对象的大小。

FORMAT.SIZE(x_off, y_off, reference)	set ref = Range(reference) With Selection .Width = (ref.Left + x_off) - .Left .Height = (ref.Top + y_off) - .Top End With
相对于某工作表单元格改变对象的大小。Visual Basic 的坐标系总以 A1 单元格的左上角为基准点，故需要进行转换。

FORMAT.TEXT(x_align, y_align, orient_num, auto_text, auto_size)	With Selection .HorizontalAlignment = x_align .VerticalAlignment = y_align .Orientation = orient_num .AutoText = auto_text .AutoSize = auto_size End With
Microsoft Excel 5.0 及以上的版本不使用 show_key 和 show_value 参数。

FORMULA(formula_text, reference)	Range(reference).FormulaR1C1 = formula_text
用 R1C1 样式的引用输入公式。要在 Visual Basic 中用 A1 样式的引用输入公式，可用 Formula 属性取代 FormulaR1C1。

FORMULA(formula_text)	ActiveCell.FormulaR1C1 = formula_text
FORMULA.ARRAY(formula_text, reference)	Range(reference).FormulaArray = formula_text
用R1C1样式的引用输入公式数组。

FORMULA.ARRAY(formula_text)	Selection.FormulaArray = formula_text
FORMULA.CONVERT(formula_text, from_a1, to_a1, to_ref_type, rel_to_ref)	Application.ConvertFormula formula := formula_text, _ fromReferenceStyle := from_a1, _ toReferenceStyle := to_a1, _ toAbsolute := to_ref_type, relativeTo := rel_to_ref
FORMULA.FILL(formula_text)	Selection.FormulaR1C1 = formula_text
FORMULA.FILL(formula_text, reference)	Range(reference) = formula_text
FORMULA.FIND(text, in_num, at_num, by_num, dir_num, match_case)	Cells.Find(what := text, after := ActiveCell, _ lookIn := in_num, lookAt := at_num, _ searchOrder := by_num, _ searchDirection := dir_num, _ matchCase := match_case).Activate
查找单元格中的文本。如果选定了多个单元格以限定查找范围，就用 Selection 属性取代 Cells 方法。注意，由于 FIND 命令更新选定区域，故激活了 Find 方法的结果。

FORMULA.FIND.NEXT( )	Cells.FindNext(after := ActiveCell).Activate
在单元格中查找下一个匹配的文本。如果选定了多个单元格以限定查找范围，就用 Selection 属性取代 Cells 方法。

FORMULA.FIND.PREV( )	Cells.FindPrevious(after := ActiveCell).Activate
在单元格中查找上一个匹配的文本。如果选定了多个单元格以限定查找范围，就用 Selection 属性取代 Cells 方法。

FORMULA.GOTO(reference, corner)	Application.Goto reference := reference, scroll := corner
FORMULA.REPLACE(find_text, replace_text, look_at, look_by, FALSE, match_case)	Cells.Replace what := find_text, _ replacement := replace_text, lookAt := look_at, _ searchOrder := look_by, matchCase := match_case
在单元格中替换文本。如果选定了多个单元格以限定查找范围，就用 Selection 属性取代 Cells 方法。

FORMULA.REPLACE(find_text, replace_text, look_at, look_by, TRUE, match_case)	ActiveCell.Replace what := find_text, _ replacement := replace_text, lookAt := look_at, _ searchOrder := look_by, matchCase := match_case
仅在活动单元格中替换文本。

FPOS(file_num, position_num)	Seek file_num, position_num
在文件中设置当前位置。

FPOS(file_num)	Seek(file_num)
返回文件中的当前位置。

FREAD(file_num, num_chars)	Input(num_chars, file_num)
从文件中读字节。注意参数的顺序是相反的。不象 FREAD，Input 语句不限制一次从文件中读的字节数。但 Microsoft Excel 的方法和属性仅能接受少于256个字符的字符串。长于256个字符的字符串当作参数或属性值传递时将截断。

FREADLN(file_num)	Dim resultString as String Line Input # file_num, resultString
从文件中读一行以 newline 终止的字符。Visual Basic 的 Line Input 语句不返回所读的行，而是将结果赋值给预定义的变量。

FREEZE.PANES(logical)	ActiveWindow.FreezePanes = True
FREEZE.PANES(TRUE, col_split, row_split)	With ActiveWindow .SplitRow = row_split .SplitColumn = col_split .FreezePanes = True End With
FSIZE(file_num)	LOF(file_num)
FULL(TRUE)	ActiveWindow.WindowState = xlMaximized
FULL(FALSE)	ActiveWindow.WindowState = xlNormal
FULL.SCREEN(logical)	Application.DisplayFullScreen = logical
FUNCTION.WIZARD()	Selection.FunctionWizard
FWRITE(file_num, text)	Print # file_num, text ;
向文件写文本。Visual Basic 对字符串长度无限制，故 Print 语句可写入多于255字符的字符串。注意结尾的分号，它避免了写入换行符。

FWRITELN(file_num, text)	Print # file_num, text
向文件写入以换行符结尾的文本。注意 Visual Basic 等价形式没有结尾的分号。


宏函数和命令的 Visual Basic 等价形式

G

GALLERY.3D.AREA(type_num)	ActiveChart.AutoFormat gallery := xl3DArea, _ format := type_num
GALLERY.3D.BAR(type_num)	ActiveChart.AutoFormat gallery := xl3DBar, _ format := type_num
GALLERY.3D.COLUMN(type_num)	ActiveChart.AutoFormat gallery := xl3DColumn, _ format := type_num
GALLERY.3D.LINE(type_num)	ActiveChart.AutoFormat gallery := xl3DLine, _ format := type_num
GALLERY.3D.PIE(type_num)	ActiveChart.AutoFormat gallery := xl3DPie, _ format := type_num
GALLERY.3D.SURFACE(type_num)	ActiveChart.AutoFormat gallery := xl3DSurface, _ format := type_num
GALLERY.AREA(type_num)	ActiveChart.AutoFormat gallery := xlArea, _ format := type_num
对活动图表应用自动套用格式，在 Visual Basic 和 Microsoft Excel 5.0 及以后版本中 delete_overlay 没有直接等价的参数，要只设置选定图表组的格式，请参阅下述实例。

GALLERY.AREA(type_num, FALSE)	With Selection.Parent .Type = xlArea .SubType = type_num End With
要只设置选定图表组的格式，如果 delete_overlay 参数是 FALSE，则此语法对于所有 GALLERY.TYPE 命令都适用。Visual Basic 等价函数使用 Selection.Parent 来获得所选定系列的图表组，然后适当改变类型和子类型。

GALLERY.BAR(type_num)	ActiveChart.AutoFormat gallery := xlBar, _ format := type_num
GALLERY.COLUMN(type_num)	ActiveChart.AutoFormat gallery := xlColumn, _ format := type_num
GALLERY.CUSTOM(name_text)	ActiveChart.AutoFormat gallery := xlCustom, _ format := name_text
GALLERY.DOUGHNUT(type_num)	ActiveChart.AutoFormat gallery := xlDoughnut, _ format := type_num
GALLERY.LINE(type_num)	ActiveChart.AutoFormat gallery := xlLine, _ format := type_num
GALLERY.PIE(type_num)	ActiveChart.AutoFormat gallery := xlPie, _ format := type_num
GALLERY.RADAR(type_num)	ActiveChart.AutoFormat gallery := xlRadar, _ format := type_num
GALLERY.SCATTER(type_num)	ActiveChart.AutoFormat gallery := xlXYScatter, _ format := type_num
GET.BAR( )	ActiveMenuBar
语法1：返回活动菜单栏的标识号。ActiveMenuBar 属性返回活动的 MenuBar 对象。不使用其标识号，而是直接使用对象。

GET.BAR(bar_num, menu, command)	MenuBars(bar_num).Menus(menu). _ MenuItems(command).Caption
语法2：通过将 command 参数指定为一个数值，返回一菜单命令的名称(以文字形式返回)。

GET.BAR(bar_num, menu, command	MenuBars(bar_num).Menus(menu). _ MenuItems(command).Index
语法2：通过将 command 参数定义成文字形式来返回一菜单命令的索引号。

GET.BAR(bar_num, menu, command, subcommand)	MenuBars(bar_num).Menus(menu). _ MenuItems(command). _ MenuItems(subcommand).Caption
语法2：返回子菜单上命令的名称(以文字形式表示)或索引号。在 Visual Basic 中，使用 MenuItem 对象的 Caption 属性来返回文字的名称，或者用 Index 属性返回索引号。

GET.CELL(type_num, reference)	Range(reference).Resize(1, 1).Property
返回一单元格的信息。如果指定了引用，Visual Basic 的等价函数将对一个用 Range 方法构造的 Range 对象，直接使用合适的方法或属性。若省略引用，将使用活动单元格返回信息。为清楚起见，在后面对 GET.CELL 的描述中均假定省略引用。

GET.CELL(1)	ActiveCell.Address rowAbsolute := True, _ columnAbsolute := True, _ referenceStyle := Application.ReferenceStyle
返回所选定对象左上单元格的绝对引用。Visual Basic 不依赖于当前引用的样式，可以选择要用的引用样式。在此实例中，通过使用 ReferenceStyle 属性决定返回什么样式，从而模拟了 GET.CELL (1)使用。

GET.CELL(2)	ActiveCell.Row
GET.CELL(3)	ActiveCell.Column
GET.CELL(4)	valu = ActiveCell.Value If IsArray(valu) Then result = 64 ElseIf IsError(valu) Then result = 16 ElseIf TypeName(valu) = "Boolean" Then result = 4 ElseIf TypeName(valu) = "String" Then result = 2 Else result = 1 End If
以数字代码形式返回单元格内容类型。在 Visual Basic 中，不必使用整个实例，因为用户的代码可以利用 IsError、IsArray 和 TypeNametype 类型的比较函数来构造。

GET.CELL(5)	ActiveCell.Value
GET.CELL(6)	If Application.ReferenceStyle = xlA1 Then result = ActiveCell.Formula Else result = ActiveCell.FormulaR1C1 End If
利用当前引用样式返回单元格公式。Visual Basic 不依赖于当前的引用样式，可以选择想使用的引用形式。在这个实例中利用 ReferenceStyle 属性来决定返回什么样式，从而模拟 GET.CELL(6)。

GET.CELL(7)	ActiveCell.NumberFormat
GET.CELL(8)	ActiveCell.HorizontalAlignment
GET.CELL(9)	ActiveCell.Borders(xlLeft).LineStyle ActiveCell.Borders(xlLeft).Weight
返回单元格左边框线样式。在 Visual Basic 中，利用 LineStyle 和 Weight 属性来决定边框线样式，至于选定哪种取决于所选定的边框线类型，这也同样适用于 GET.CELL (10) 到 GET.CELL (12) 部分。

GET.CELL(10)	ActiveCell.Borders(xlRight).LineStyle ActiveCell.Borders(xlRight).Weight
GET.CELL(11)	ActiveCell.Borders(xlTop).LineStyle ActiveCell.Borders(xlTop).Weight
GET.CELL(12)	ActiveCell.Borders(xlBottom).LineStyle ActiveCell.Borders(xlBottom).Weight
GET.CELL(13)	ActiveCell.Interior.Pattern
GET.CELL(14)	ActiveCell.Locked
GET.CELL(15)	ActiveCell.FormulaHidden
GET.CELL(16)	cellWidth = ActiveCell.ColumnWidth If cellWidth = ActiveCell.Parent.StandardWidth Then isStandardWidth = True Else isStandardWidth = False End If
与GET.CELL(16)不同，Visual Basic 的 ColumnWidth 属性并不返回数组，本实例将单元格的宽度与工作表的 StandardWidth 属性进行比较，以判定单元格宽度是否为标准宽度。

GET.CELL(17)	ActiveCell.RowHeight
GET.CELL(18)	ActiveCell.Font.Name
GET.CELL(19)	ActiveCell.Font.Size
GET.CELL(20)	ActiveCell.Font.Bold
GET.CELL(21)	ActiveCell.Font.Italic
GET.CELL(22)	ActiveCell.Font.Underline <> xlNone
GET.CELL23)	ActiveCell.Font.Strikethrough
GET.CELL(24)	ActiveCell.Font.ColorIndex
GET.CELL(25)	ActiveCell.Font.OutlineFont
GET.CELL(26)	ActiveCell.Font.Shadow
GET.CELL(27)	result = 0 If ActiveCell.EntireRow.PageBreak = xlManual Then result = result + 1 End If If ActiveCell.EntireColumn.PageBreak = xlManual Then result = result + 2 End If
返回在单元格中是否有人工分页符。在 Visual Basic 中，行和列各自独立地检查分页符。本实例建立一个等价于 GET.CELL(27)的结果值。

GET.CELL(28)	ActiveCell.EntireRow.OutlineLevel
GET.CELL(29)	ActiveCell.EntireColumn.OutlineLevel
GET.CELL(30)	ActiveCell.EntireRow.Summary
GET.CELL(31)	ActiveCell.EntireColumn.Summary
GET.CELL(32)	Set containingBook = ActiveCell.Parent.Parent If containingBook.Sheets.Count = 1 Then ' Get bookname, strip off extension (if any) bookName = containingBook.Name For i = Len(bookName) To 1 Step -1 If Mid(bookName, i, 1) = "." Then bookName = Mid(bookName, 1, i - 1) Exit For End If Next x = StrComp(bookName, ActiveCell.Parent.Name, 1) If x <> 0 Then Goto BuildLongName result = containingBook.Name Else BuildLongName: result = "[" & containingBook.Name & _ "]" & ActiveCell.Parent.Name End If
返回包含单元格的工作簿和工作表的名称，本实例构造了准确的 GET.CELL(32)等价函数，此等价函数具有与 Micosoft Excel 4.0 向后兼容的特殊规则，在 Visual Basic 中，没有必要构造这样一种等价函数，因为所使用的是含有单元格的 Worksheet 和 Workbook 而非文本名称。

GET.CELL(33)	ActiveCell.WrapText
GET.CELL(34)	ActiveCell.Borders(xlLeft).ColorIndex
GET.CELL(35)	ActiveCell.Borders(xlRight).ColorIndex
GET.CELL(36)	ActiveCell.Borders(xlTop).ColorIndex
GET.CELL(37)	ActiveCell.Borders(xlBottom).ColorIndex
GET.CELL(38)	ActiveCell.Interior.PatternColorIndex
GET.CELL(39)	ActiveCell.Interior.ColorIndex
GET.CELL(40)	ActiveCell.Style.Name
GET.CELL(41)	ActiveCell.FormulaLocal
GET.CELL(42)	ActiveCell.Left - _ Columns(ActiveWindow.ScrollColumn).Left
返回从窗口左边界到单元格左边界间的距离。因为 Range 对象的 Left 属性不包括窗口框架的大小、分级显示符号区及行号列标。所以，在 VisualBasic 中没有直接等价函数。本实例返回从窗口的左边界到单元格左边界的距离，而没有计算窗口本身的边界到它最左列边界之间的距离。在绝大多数情况下该差别不予考虑，这是由于 GET.CELL(42) 通常只以 GET.CELL(44)-GET.CELL(42) 的方式来确定单元格宽度，等价于 ActiveCell.Width 所得到的值。

GET.CELL(43)	ActiveCell.Top - Rows(ActiveWindow.ScrollRow).Top
无直接等价函数，参阅 GET.CELL(42) 的注释。

GET.CELL(44)	(ActiveCell.Left + ActiveCell.Width) - _ Columns(ActiveWindow.ScrollColumn).Left
无直接等价函数，参阅 GET.CELL(42) 的注释。

GET.CELL(45)	(ActiveCell.Top + ActiveCell.Height) - _ Rows(ActiveWindow.ScrollRow).Top
无直接等价函数，参阅 GET.CELL(42) 的注释。

GET.CELL(46)	Len(ActiveCell.NoteText()) > 0
GET.CELL(47)	ExecuteExcel4Macro("GET.CELL(47)")
返回一个单元格中是否含有声音附注，Visual Basic 中无直接等价函数。

GET.CELL(48)	ActiveCell.HasFormula
GET.CELL(49)	ActiveCell.HasArray
GET.CELL(50)	ActiveCell.VerticalAlignment
GET.CELL(51)	ActiveCell.Orientation
GET.CELL(52)	ActiveCell.PrefixCharacter
GET.CELL(53)	ActiveCell.Text
GET.CELL(54)	ActiveCell.PivotTable.Name
GET.CELL(55)	ActiveCell.LocationInTable
GET.CELL(56)	ActiveCell.PivotField.Name
GET.CELL(57)	ActiveCell.Font.Superscript
GET.CELL(58)	ActiveCell.Font.FontStyle
GET.CELL(59)	ActiveCell.Font.Underline
GET.CELL(60)	ActiveCell.Font.Subscript
GET.CELL(61)	ActiveCell.PivotItem.Name
GET.CELL(62)	"[" & ActiveCell.Parent.Parent.Name & "]" & _ ActiveCell.Parent.Name
GET.CELL(63)	ActiveCell.Interior.ColorIndex
GET.CELL(64)	ActiveCell.Interior.PatternColorIndex
GET.CELL(65)	ActiveCell.AddIndent
GET.CELL(66)	ActiveCell.Parent.Parent.Name
GET.CHART.ITEM(x_y_index, point_index)
返回所选图表项的位置信息。Visual Basic 中没有关于获取数据点或饼图中扇形位置的等价函数。若所选对象为图形对象(例如椭圆或文字框)，则使用 Left、Top、Width 和 Height 属性返回位置信息，若选中对象为箭头，Visual Basic 无法决定箭头所指的方向，但可以获得箭头端点的位置。

GET.CHART.ITEM(1, 1)	Selection.Left
返回所选对象左边界的水平坐标，对象可以为选中的图例、图表区、绘图区或者面积图上的区域。它与 GET.CHART.ITEM(1,7) 和 GET.CHART.ITEM(1,8) 的转换方式相同。

GET.CHART.ITEM(1, 3)	Selection.Left + Selection.Width
返回所选对象右边界的水平坐标，对象可以为选中的图例、图表区、绘图区或者面积图上的区域，它与 GET.CHART.ITEM(1,4)和GET.CHART.ITEM(1,5) 的转换方式相同。

GET.CHART.ITEM(1, 2)	Selection.Left + (Selection.Width / 2)
返回所选对象中央的水平坐标，对象可以为选中的图例、图表区、绘图区、矩形数据点或面积图上的区域，它与 GET.CHART.ITEM(1,6)的转换方式相同。

GET.CHART.ITEM(2, 1)	ActiveChart.ChartArea.Height - Selection.Top
返回所选对象顶部的垂直坐标，对象可以为选中的图例、图表区、绘图区或面积图上的区域，它与GET.CHART.ITEM(2,2)和GET.CHART.ITEM(2,3)的转换方式是一样的。注意Visual Basic 的坐标起始点在左上部，所以必须进行转换，以便返回准确的等价函数。通常用户可以编写自己的代码以避免这样的转换。

GET.CHART.ITEM(2, 7)	ActiveChart.ChartArea.Height - Selection.Top - _ Selection.Height
返回所选对象底部的垂直坐标，对象可以为选中的图例、图表区、绘图区或面积图上的区域，它与GET.CHART.ITEM(2,6)和GET.CHART.ITEM(2,5)的转换方式相同。

GET.CHART.ITEM(2, 8)	ActiveChart.ChartArea.Height - Selection.Top - _ (Selection.Height / 2)
返回所选对象垂直中点的垂直坐标，对象为选中的图例、图表区、绘图区或面积图上的区域，它与GET.CHART.ITEM(2,4)的转换方式相同。

GET.DEF(def_text, , type_num)	ActiveWorkbook.Names(refersTo := def_text).Name
返回被指定为引用参数的名称，Visual Basic 有 Name 对象，此对象的 Name 属性用以返回Name名称的文本名称， Visail Basic 没有与 type_name 参数等价的函数，因为在 Visual Basic 中所有的名称均为可见，只是对用户隐藏，名称对象的 Hidden 属性用来决定一个特定名称隐藏与否。

GET.DOCUMENT(type_num, name_text)	Sheets(name_text).Property
返回有关工作表的信息，如果指定了 name_text，则可在用 Sheets 方法获得的对象上直接使用合适的 Visual Basic 方法或属性。若省略name_text则返回有关活动表的信息。为清楚起见， GET. DOCUMENT 在后面的描述中均假设省略name_text。

请注意Visual Basic中的一些等价函数使用 的是由ActiveWorkbook 属性返回的对象，而不是一个工作表对象，这反映了 Microsoft Excel 5.0 或以后版本中有关工作表的工作簿结构。请参阅 GET.WORKBOOK。

GET.DOCUMENT(1)	If ActiveWorkbook.Sheets.Count = 1 Then ' Get bookname, strip off extension (if any) bookName = ActiveWorkbook.Name For i = Len(bookName) To 1 Step -1 If Mid(bookName, i, 1) = "." Then bookName = Mid(bookName, 1, i - 1) Exit For End If Next x = StrComp(bookName, ActiveSheet.Name, 1) If x <> 0 Then Goto BuildLongName result = ActiveWorkbook.Name Else BuildLongName: result = "[" & ActiveWorkbook.Name & _ "]" & ActiveSheet.Name End If
返回活动的工作簿和工作表的名称，本实例构造了一个完全等价于 GET.DOCUMENT(1) 的函数，该等价函数具有与 Microsoft Excel 4.0 向后兼容的特殊规则，在 Visual Basic 中，没有必要构造这样一个等价函数，因为所用的是 Worksheet 和 Workbook 对象而非文本名称。

GET.DOCUMENT(2)	ActiveWorkbook.Path
GET.DOCUMENT(3)	If ActiveWindow.Type = xlInfo Then result = 4 Else Select Case TypeName(ActiveSheet) Case "Chart" result = 2 Case "Module" result = 6 Case "DialogSheet" result = 7 Case Else If ActiveSheet.Type = xlWorksheet Then result = 1 Else result = 3 End If End Select End If
以数字形式返回活动工作表类型，在 Visual Basic 中，可以直接比较工作表的类型。

GET.DOCUMENT(4)
无直接等价函数。 GET. DOCUMENT 命令返回当前的工作表是否发生了变化。Visual Basic 只能决定工作簿是否发生了变化，而在 Microsoft Excel 4. 0宏语言中由 GET.WorkBook(24) 来判定。

GET.DOCUMENT(5)	ActiveWorkbook.ReadOnly
GET.DOCUMENT(6)	ActiveWorkbook.HasPassword
GET.DOCUMENT(7)	ActiveSheet.ProtectContents
GET.DOCUMENT(8)	ActiveWorkbook.ProtectWindows
GET.DOCUMENT(9)	ActiveChart.ChartGroups(1).Type
如果活动表是图表，则返回主图表的类型。Microsoft Excel 5.0 及以后版本不是使用主图表和覆盖图表，而是在同一图表上使用多重图表组。本实例返回第一个图表组的类型，如果图表是由Microsft Excel 4.0生成的，那么返回主图表的编号。

GET.DOCUMENT(9)	ActiveSheet.UsedRange.Row
如果活动表是一个工作表或一个宏表，则返回首行的编号。

GET.DOCUMENT(10)	ActiveChart.ChartGroups(2).Type
如果活动表是图表，则返回覆盖图表的类型，本实例返回第二个图表组的类型，如果该图表是由 Microsoft Excel 4.0 所生成，那么返回覆盖图表的编号。

GET.DOCUMENT(10)	With ActiveSheet.UsedRange result = .Rows(.Rows.Count).Row End With
如果活动表是工作表或宏表，则返回最后所用行的编号。

GET.DOCUMENT(11)	ActiveChart.ChartGroups(1).SeriesCollection.Count
如果活动表是图表，则返回主图表中系列的数目。请参阅有关 Microsoft Excel 5.0 及以后版本中涉及主图表的GET.DOCUMENT(9)的说明。

GET.DOCUMENT(11)	ActiveSheet.UsedRange.Column
如果活动表是工作表或宏表，则返回所使用的首列的编号。

GET.DOCUMENT(12)	ActiveChart.ChartGroups(2).SeriesCollection.Count
如果活动表是图表，则返回覆盖图表系列的编号，请参阅有关 Microsoft Excel 5.0 及以后版本中涉及覆盖图表的GET.DOCUMENT(10)的说明。

GET.DOCUMENT(12)	With ActiveSheet.UsedRange result = .Columns(.Columns.Count).Column End With
如果活动表是工作表或宏表，则返回最后列的编号。

GET.DOCUMENT(13)	ActiveWorkbook.Windows.Count
返回对于活动工作簿的窗口数目，请注意在 Visual Basic 中，窗口是以工作簿为准计算的，而不是以每一张工作表为基准。

GET.DOCUMENT(14)	Application.Calculation
GET.DOCUMENT(15)	Application.Iteration
GET.DOCUMENT(16)	Application.MaxIterations
GET.DOCUMENT(17)	Application.MaxChange
GET.DOCUMENT(18)	ActiveWorkbook.UpdateRemoteReferences
GET.DOCUMENT(19)	ActiveWorkbook.PrecisionAsDisplayed
GET.DOCUMENT(20)	ActiveWorkbook.Date1904
GET.DOCUMENT(21) through GET.DOCUMENT(29)
返回 Microsoft Excel 早期版本中四种默认字体的属性，对这些值 Visual Basic 没有直接的等价函数，因为它们仅有宏兼容性。

GET.DOCUMENT(30)	ActiveSheet.ConsolidationSources
GET.DOCUMENT(31)	ActiveSheet.ConsolidationFunction
GET.DOCUMENT(32)	ActiveSheet.ConsolidationOptions
GET.DOCUMENT(33)	Application.CalculateBeforeSave
GET.DOCUMENT(34)	ActiveWorkbook.ReadOnlyRecommended
GET.DOCUMENT(35)	ActiveWorkbook.WriteReserved
GET.DOCUMENT(36)	ActiveWorkbook.WriteReservedBy
GET.DOCUMENT(37)	ActiveWorkbook.FileFormat
GET.DOCUMENT(38)	ActiveSheet.Outline.SummaryRow
GET.DOCUMENT(39)	ActiveSheet.Outline.SummaryColumn
GET.DOCUMENT(40)	ActiveWorkbook.CreateBackup
GET.DOCUMENT(41)	ActiveWorkbook.DisplayDrawingObjects
GET.DOCUMENT(42)	Dim result() ReDim result(1 To ActiveSheet.DrawingObjects.Count) x = 1 For Each obj In ActiveSheet.DrawingObjects result(x) = obj.Name x = x + 1 Next
返回活动表上图形对象名称的数组。可以通过使用 DrawingObjects 集来直接存取图形对象。本例通过For Each...Next 语句来构造一个图形对象名称数组从而代表每个图形对象。另外也可以直接存取某种特殊类型的图形对象，如只是矩形或椭圆形。

GET.DOCUMENT(43)	ActiveWorkbook.SaveLinkValues
GET.DOCUMENT(44)	ActiveSheet.ProtectDrawingObjects
GET.DOCUMENT(45)	ExecuteExcel4Macro("GET.DOCUMENT(45)")
表明当前文档窗口是否同步，Visual Basic 中没有等价函数，因为 Microsoft Excel 及以后版本仅对宏兼容性支持窗口同步。

GET.DOCUMENT(46)	ExecuteExcel4Macro("INDEX(GET.DOCUMENT(46),,1)")
返回 LINE.PRINT 使用的设置， Visual Basic 不支持 LINE. PRINT。ExecuteExcel4Macro 方法不能返回数组，因此需要建立索引恢复数组元素。

GET.DOCUMENT(47)	ActiveSheet.TransitionExpEval
GET.DOCUMENT(48)	ActiveSheet.StandardWidth
GET.DOCUMENT(49)	ActiveSheet.PageSetup.FirstPageNumber
GET.DOCUMENT(50)	ExecuteExcel4Macro("GET.DOCUMENT(50)")
返回活动表的当前所设置的打印页数，其中不包括附注，Visual Basic 中无等价函数。

GET.DOCUMENT(51)	ExecuteExcel4Macro("GET.DOCUMENT(51)")
返回包括附注的打印页数，Visual Basic中无等价函数。

GET.DOCUMENT(52)	With ActiveSheet.PageSetup left = .LeftMargin right = .RightMargin top = .TopMargin bottom = .BottomMargin End With
返回打印的页边距设置。在 Visual Basic 中可以将这些设置作为属性直接存取，数值总是以磅计。本例保存属性的值但不生成数组。

GET.DOCUMENT(53)	ActiveSheet.PageSetup.Orientation
GET.DOCUMENT(54)	With ActiveSheet.PageSetup result = "&L" & .LeftHeader result = result & "&C" & .CenterHeader result = result & "&R" & .RightHeader End With
GET.DOCUMENT(55)	With ActiveSheet.PageSetup result = "&L" & .LeftFooter result = result & "&C" & .CenterFooter result = result & "&R" & .RightFooter End With
GET.DOCUMENT(56)	Array(ActiveSheet.PageSetup.CenterHorizontally, _ ActiveSheet.PageSetup.CenterVertically)
GET.DOCUMENT(57)	ActiveSheet.PageSetup.PrintHeadings
GET.DOCUMENT(58)	ActiveSheet.PageSetup.PrintGridlines
GET.DOCUMENT(59)	ActiveSheet.PageSetup.BlackAndWhite
GET.DOCUMENT(60)	ActiveSheet.PageSetup.ChartSize
GET.DOCUMENT(61)	ActiveSheet.PageSetup.Order
GET.DOCUMENT(62)	ActiveSheet.PageSetup.Zoom
GET.DOCUMENT(63)	Array(ActiveSheet.PageSetup.FitToPagesWide, _ ActiveSheet.PageSetup.FitToPagesTall)
GET.DOCUMENT(64)	Dim rNums() As Integer count = 0 For Each row In ActiveSheet.UsedRange.Rows If row.PageBreak <> xlNone Then count = count + 1 ReDim Preserve rNums(1 To count) rNums(count) = row.Row End If Next
返回对应于人工或自动分页符下一行的行号数组，Visual Basic 没有直接的等价函数，本例从工作表的使用区域建立等价数组。

GET.DOCUMENT(65)	Dim cNums() As Integer count = 0 For Each col In ActiveSheet.UsedRange.Columns If col.PageBreak <> xlNone Then count = count + 1 ReDim Preserve cNums(1 To count) cNums(count) = col.Column End If Next
返回对应于人工或自动分页符右列的列号数组， Visual Basic 没有直接的等价函数，本例从表的使用区域建立等价数组。

GET.DOCUMENT(66)	ActiveSheet.TransitionFormEntry
GET.DOCUMENT(67)	True
在Visual Basic 中总是返回TRUE，因为 Microsoft Excel 5.0 及以后版本不支持未装订的工作簿。

GET.DOCUMENT(68)	ActiveSheet.Parent.Name
GET.DOCUMENT(69)	ActiveSheet.DisplayAutomaticPageBreaks
GET.DOCUMENT(70)	Dim result() ReDim result(1 To ActiveSheet.PivotTables.Count) x = 1 For Each t In ActiveSheet.PivotTables result(x) = t.Name x = x + 1 Next
返回由活动工作表上的所有数据透视表名称构成的数组，Visual Basic 没有直接的等价函数，PivotTables 集可以用来反复使用所有数据透视表。本例用PivotTables 集建立数据透视表名称数组。

GET.DOCUMENT(71)	Dim result() ReDim result(1 To ActiveWorkbook.Styles.Count) x = 1 For Each s In ActiveWorkbook.Styles result(x) = s.Name x = x + 1 Next
返回在当前工作簿中所有样式名的数组，Visual Basic 没有直接的等价函数， Styles 集可用来反复使用所有样式。本例用 Styles 集建立一个样式名数组。

GET.DOCUMENT(72)	Dim result() ReDim result(1 To ActiveChart.ChartGroups.Count) x = 1 For Each g In ActiveChart.ChartGroups result(x) = g.Type x = x + 1 Next
返回当前图表上图表组类型的数组，Visual Basic 没有直接的等价函数， ChartGroups 集可用来反复使用所有图表组。本例用 ChartGroups 集建立一个图表组类型数组。

GET.DOCUMENT(73)	Dim result() ReDim result(1 To ActiveChart.ChartGroups.Count) x = 1 For Each g In ActiveChart.ChartGroups seriesCount = 0 For Each s In g.SeriesCollection seriesCount = seriesCount + 1 Next result(x) = seriesCount x = x + 1 Next
返回当前图表上每一图表组中计数系列的数组，Visual Basic 中没有直接的等价函数。本例通过反复使用图表组集，为每一图表组建立计数系列数组。

GET.DOCUMENT(74)	ActiveSheet.Focus
GET.DOCUMENT(75)	ActiveSheet.DefaultButton
GET.DOCUMENT(76)	"[" & ActiveSheet.Parent.Name & "]" & ActiveSheet.Name
GET.DOCUMENT(77)	ActiveSheet.PageSetup.PaperSize
GET.DOCUMENT(78)	ActiveSheet.PageSetup.PrintQuality
GET.DOCUMENT(79)	ActiveSheet.PageSetup.Draft
GET.DOCUMENT(80)	ActiveSheet.PageSetup.PrintNotes
GET.DOCUMENT(81)	ActiveSheet.PageSetup.PrintArea
GET.DOCUMENT(82)	Array(ActiveSheet.PageSetup.PrintTitleRows, _ ActiveSheet.PageSetup.PrintTitleColumns)
返回打印标题行和列的引用位置。Visual Basic 总是返回 A1 样式表示的引用位置。

GET.DOCUMENT(83)	ActiveSheet.ProtectScenarios
GET.DOCUMENT(84)	ActiveSheet.CircularReference
GET.DOCUMENT(85)	ActiveSheet.FilterMode
GET.DOCUMENT(86)	ActiveSheet.AutoFilterMode
GET.DOCUMENT(87)	ActiveSheet.Index
GET.DOCUMENT(88)	ActiveSheet.Parent.Name
GET.FORMULA(reference)	Range(reference).Resize(1, 1).FormulaR1C1
返回引用区域左上角单元格的公式。

GET.FORMULA("Picture 1")	ActiveSheet.Pictures("Picture 1").Formula
返回用摄影工具生成的链接图片的公式，Visual Basic 利用 A1 引用样式返回公式。

GET.FORMULA("S3")	ActiveChart.SeriesCollection(3).FormulaR1C1
返回系列公式。

GET.LINK.INFO(link_text, type_num, type_of_link, reference)	ActiveWorkbook.LinkInfo(name := link_text, _ linkInfo := type_num, type := type_of_link, _ editionRef := reference)
GET.NAME("!Profit", 1)	ActiveWorkbook.Names("Profit").RefersToR1C1
返回活动工作簿中指定名称的定义。

GET.NAME("[BOOK1.XLS]Sheet1!Profit", 1)	Workbooks("BOOK1").Names("Profit").RefersToR1C1
返回特定工作簿中指定名称的定义。

GET.NAME("Sheet1!Profit", 2)	Function DefinedLocally(wb As Object, sheet As String, _   n As String) DefinedLocally = True On Error Goto NotDefined wb.Names(sheet & "!" & n) Exit Function NotDefined: DefinedLocally = False Exit Function End Function
如果名称只在特定的工作表有效，则返回 TRUE；如果名称对整个工作簿有效，则返回 FALSE。Visual Basic 没有直接的等价函数，但如果指定的名称包含惊叹号，则名称仅为工作表而定义。本例是一个函数，它试图恢复带有惊叹号的名称，如果名称不能在带惊叹号的情况下被恢复，则该名称必须为整个工作簿定义。

GET.NOTE(cell_ref, start_char, num_chars)	Range(cell_ref).NoteText(start := start_char, _ length := num_chars)
返回单元格的附注文字。如果省略 cell_ref 参数，则使用ActiveCell 属性而不用Range方法。

GET.OBJECT(type_num, object_id_text, start_num, count_num)	ActiveSheet.DrawingObjects(object_id_text).Property
返回有关图形对象的信息。如果定义了 Object_id_text ，那么在利用 DrawingObjects 方法所获得的对象上，可直接使用合适的 Visual Basic 方法或属性；若省略 Object_id__text , Visual Basic 返回所选对象的信息。为清楚起见，GET.OBJECT 在后面的描述中均假定省略 Object_id_text 。

对于 type_num 的某些数值使用 start_num、count_num、item_index 参数。此转换表仅在适当情况下才包括这些参数。

GET.OBJECT(1)	Select Case TypeName(Selection) Case "GroupObject" result = 0 Case "Line" result = 1 Case "Rectangle" result = 2 Case "Oval" result = 3 Case "Arc" result = 4 Case "ChartObject" result = 5 Case "TextBox" result = 6 Case "Button" result = 7 Case "Picture", "OLEObject" result = 8 Case "Drawing" result = 9 Case "CheckBox" result = 11 Case "OptionButton" result = 12 Case "EditBox" result = 13 Case "Label" result = 14 Case "DialogFrame" result = 15 Case "Spinner" result = 16 Case "ScrollBar" result = 17 Case "ListBox" result = 18 Case "GroupBox" result = 19 Case "DropDown" result = 20 Case Else result = CVErr(xlErrValue) End Select
决定选定对象的类型，Visual Basic 没有直接的等价函数，本例通过检查对象类型名称来计算等价函数，Visual Basic 不能分辨出开口的和封闭的多边形的区别。

GET.OBJECT(2)	Selection.Locked
GET.OBJECT(3)	Selection.ZOrder
GET.OBJECT(4)	Selection.TopLeftCell
GET.OBJECT(5)	Selection.Left - Selection.TopLeftCell.Left
返回从左上单元格到对象左边界的距离。Visual Basic 无直接的等价函数，因为它相对于工作表的左上部来度量图形对象的坐标。本例将相对于工作表的坐标转换为相对于单元格的坐标。

GET.OBJECT(6)	Selection.Top - Selection.TopLeftCell.Top
返回从左上单元格到对象顶部边界的距离。Visual Basic 无直接等价函数，因为它相对于工作表的左上部度量图形对象的坐标。本例将相对于表的坐标转换到相对于单元格的坐标。

GET.OBJECT(7)	Selection.BottomRightCell
GET.OBJECT(8)	(Selection.Left + Selection.Width) - _ Selection.BottomRightCell.Left
返回从底部右侧单元格的左上角到对象右边界的距离。Visual Basic 无直接等价函数，因为它相对于表的左上部度量图形对象的坐标。本例将相对于表的坐标转换为相对于单元格的坐标。

GET.OBJECT(9)	(Selection.Top + Selection.Height) - _ Selection.BottomRightCell.Top
返回从底部右边单元格的左上角到对象底端边界的距离，Visual Basic 无直接等价函数，因为它相对于表的左上部度量图形对象的坐标。本例将相对于表的坐标转换为相对于单元格的坐标。

GET.OBJECT(10)	Selection.OnAction
GET.OBJECT(11)	Selection.Placement
GET.OBJECT(12, , start_num, count_num)	Selection.Characters(start_num, count_num)
GET.OBJECT(13, , start_num, count_num)	Selection.Characters(start_num, count_num).Font.Name
GET.OBJECT(14, , start_num, count_num)	Selection.Characters(start_num, count_num).Font.Size
GET.OBJECT(15, , start_num, count_num)	Selection.Characters(start_num, count_num).Font.Bold
GET.OBJECT(16, , start_num, count_num)	Selection.Characters(start_num, count_num).Font.Italic
GET.OBJECT(17, , start_num, count_num)	Selection.Characters(start_num, count_num).Font.Underline _ <> xlNone
GET.OBJECT(18, , start_num, count_num)	Selection.Characters(start_num, ount_num).Font.Strikethrough
GET.OBJECT(19, , start_num, count_num)	Selection.Characters(start_num, count_num).Font.OutlineFont
GET.OBJECT(20, , start_num, count_num)	Selection.Characters(start_num, count_num).Font.Shadow
GET.OBJECT(21, , start_num, count_num)	Selection.Characters(start_num, count_num).Font.ColorIndex
GET.OBJECT(22)	Selection.HorizontalAlignment
GET.OBJECT(23)	Selection.VerticalAlignment
GET.OBJECT(24)	Selection.Orientation
GET.OBJECT(25)	Selection.AutoSize
GET.OBJECT(26)	Selection.Visible
GET.OBJECT(27)	lstyle = Selection.Border.LineStyle If lstyle = xlAutomatic Then result = 1 ElseIf lstyle = xlNone Then result = 2 Else result = 0 End If
返回边框线或直线的类型，在 Visual Basic 中直接使用 LineStyle 属性。

GET.OBJECT(28)	Selection.Border.LineStyle
返回边框线或直线的样式。

GET.OBJECT(29)	Selection.Border.ColorIndex
GET.OBJECT(30)	Selection.Border.Weight
GET.OBJECT(31)	pat = Selection.Interior.Pattern If pat = xlAutomatic Then result = 1 ElseIf pat = xlNone Then result = 2 Else result = 0 End If
返回填充类型，在 Visual Basic 中直接使用 Pattern 属性。

GET.OBJECT(32)	Selection.Interior.Pattern
GET.OBJECT(type_num, object_id_text, start_num, count_num)	Selection.Interior.PatternColorIndex
GET.OBJECT(34)	Selection.Interior.ColorIndex
GET.OBJECT(35)	Selection.ArrowHeadWidth
GET.OBJECT(36)	Selection.ArrowHeadLength
GET.OBJECT(37)	Selection.ArrowHeadStyle
GET.OBJECT(38)	Selection.RoundedCorners
GET.OBJECT(39)	Selection.Shadow
GET.OBJECT(40)	Selection.LockedText
GET.OBJECT(41)	Selection.PrintObject
GET.OBJECT(42)	Selection.Left - Columns(ActiveWindow.ScrollColumn).Left
返回从窗口左边界到所选对象左边界的距离。Visual Basic 中无直接等价函数，因为图形对象的 Left 属性不包括窗口框架的大小、分级显示符号区、行号列标。本例返回从窗口左边界起的距离，而不包括窗口边界与最左列边界之间的距离。绝大多数情况下这一差别不予考虑，因为 GET.OBJECT(42)通常只用于决定 GET.OBJECT(44)-GET.OBJECT(42)对象的宽度，此宽度直接等于 Selection.Width。

GET.OBJECT(43)	Selection.Top - Rows(ActiveWindow.ScrollRow).Top
无直接等价函数，参阅 GET.OBJECT(42)的说明。

GET.OBJECT(44)	(Selection.Left + Selection.Width) - _ Columns(ActiveWindow.ScrollColumn).Left
无直接等价函数，参阅 GET.OBJECT(42)的说明。

GET.OBJECT(45)	(Selection.Top + Selection.Height) - _ Rows(ActiveWindow.ScrollRow).Top
无直接等价函数，参阅 GET.OBJECT(42)的说明。

GET.OBJECT(46)	UBound(Selection.Vertices, 1)
返回多边形的顶点数，如果多边形的顶点多于 255 个，Visual Basic 将不能确定多边形的顶点数目，此时总是返回 255 。在这种情形下，请使用 ExecuteExcel4Macro ( "GET.OBJECT(46)") 。

GET.OBJECT(47, , start_num)	Selection.Vertices
返回多边形顶点的数组，数组起始于顶点 start_num。Visual Basic 没有 start_num 参数的直接等价函数。该参数总是假定为 1。Visual Basic 的顶点属性也不能以数组返回多于 255 个顶点，为存取记数在 255 以外的顶点，通过将行和列的索引参数传给顶点属性而获取单一坐标。例如， Selection.Vertices(500,1) ,是获取第 500 个顶点的x坐标。

GET.OBJECT(48)	Selection.Formula
返回与文字框或按钮相链接的单元格的公式。Visual Basic 总是返回 A1 样式的引用。

GET.OBJECT(48)	Selection.LinkedCell
返回与表上控制项相链接的单元格的公式。Visual Basic 总是返回 A1 样式引用。

GET.OBJECT(49)	ExecuteExcel4Macro("GET.OBJECT(49)")
返回对象的创建索引。创建索引是对象默认名称后的数字。例如"Line5"具有创建索引 5。Visual Basic 没有与此等价的函数。

GET.OBJECT(50)	TypeName(Selection)
返回文本形式的对象种类名称。本例返回 Visual Basic 对象名称。可以使用对比来创建确切的等价函数，该对比类似于 Visual Basic 中 GET.OBJECT(1)的等价函数。

GET.OBJECT(51)	Selection.Name
GET.OBJECT(52)	Selection.Left
GET.OBJECT(53)	Selection.Top
GET.OBJECT(54)	Selection.Width
GET.OBJECT(55)	Selection.Height
GET.OBJECT(56)	Selection.Enabled
GET.OBJECT(57)	Selection.Accelerator
GET.OBJECT(58)	Selection.DefaultButton
GET.OBJECT(59)	Selection.CancelButton
GET.OBJECT(60)	Selection.DismissButton
GET.OBJECT(61)	Selection.HelpButton
GET.OBJECT(62)	Selection.Value
GET.OBJECT(63)	Selection.Min
GET.OBJECT(64)	Selection.Max
GET.OBJECT(65)	Selection.SmallChange
GET.OBJECT(66)	Selection.LargeChange
GET.OBJECT(67)	Selection.InputType
GET.OBJECT(68)	Selection.MultiLine
GET.OBJECT(69)	Selection.DisplayVerticalScrollBar
GET.OBJECT(70)	Selection.LinkedObject
GET.OBJECT(71)	Selection.ListCount
GET.OBJECT(72)	Selection.List(Selection.ListIndex)
GET.OBJECT(73)	Selection.ListFillRange
GET.OBJECT(74)	Selection.DropDownLines
GET.OBJECT(75)	Selection.Display3DShading
GET.OBJECT(76)	Selection.PhoneticAccelerator
GET.OBJECT(77)	Selection.MultiSelect
GET.OBJECT(78)	Selection.Selected
GET.OBJECT(79)	Selection.AddIndent
GET.PIVOT.FIELD(type_num, pivot_field_name, pivot_table_name)	ActiveSheet.PivotTables(pivot_table_name). _ PivotFields(pivot_field_name).Property
返回有关数据透视表中数据透视字段的信息，如果指定了 pivot_field_name 和 pivot_table_name，则可以在由 PivotTables 和 PivotFields 方法所返回的对象上，直接使用合适的 Visual Basic 的方法或属性。若省略 pivot_field_name 和 pivot_table_name，则返回包含活动单元格的数据透视字段信息。为清楚起见，GET.PIVOT.FIELD 在后面的描述中均假定省略 pivot_field_name 和 pivot_table_name。

GET.PIVOT.FIELD(1)	Dim result Set pvtItems = ActiveCell.PivotField.PivotItems If pvtItems.Count = 0 Then result = CVErr(xlErrNA) Else ReDim result(1 To pvtItems.Count) x = 1 For Each i In pvtItems result(x) = i.Name x = x + 1 Next End If
返回由构成此字段的数据透视名称所组成的数组。Visual Basic 没有直接的等价函数，但是 Pivotitem 方法返回一个能重复使用的检查项的集。本例通过反复使用此集来建立一个等价数组。

用VisibleItems, HiddenItems, ParentItems 或 ChildItems 方法代替 PivotItems 方法，对 GET.PIVOT.FIELD() 中 type_number 数值 2,3,5 和 17 分别建立等价关系。

GET.PIVOT.FIELD(2)
返回由数据透视项名称所组成的数组，这些数据透视项名称是有关字段中的可见项。Visual Basic 中没有直接的等价函数，但是可用VisibleItems 方法返回一个能循环使用的检查这些项的集合。请参阅有关 GET.PIVOT.FIELD的实例并使用VisibleItems 方法。

GET.PIVOT.FIELD(3)
返回由数据透视项名称所组成的数组，这些数据透视项名称是有关字段中的隐藏项。Visual Basic 中没有直接的等价函数，但是可用HiddenItems 方法返回一个能循环使用去检查这些项的集合。参见有关 GET.PIVOT.FIELD(1)的实例并使用HiddenItems 方法。

GET.PIVOT.FIELD(4)	ActiveCell.PivotField.Orientation
GET.PIVOT.FIELD(5)
返回由数据透视项名称所组成的数组，这些数据透视项名称是有关字段中所有作为组源的项。Visual Basic 中没有直接的等价函数，然而可用ParentItems 方法返回一个能循环使用去检查这些项的集合。参阅有关 GET. PIVOT. FIELD( 1) 的实例并使用ParentItems 方法。

GET.PIVOT.FIELD(6)	ActiveCell.PivotField.Subtotals
无直接等价函数，Visual Basic 返回一个布尔值的数组而不是位串值数组。检查数组的每一输入以决定是否激活特定的分类汇总类型。

GET.PIVOT.FIELD(7)	ActiveCell.PivotField.DataType
GET.PIVOT.FIELD(8)	With ActiveCell.PivotField result = Array(.Function, .Calculation, _ .BaseField, .BaseItem, .NumberFormat) End With
返回有关数据透视项设置的数组。Visual Basic 允许单个属性的检查，而本例构造了一个等价于 GET.PIVOT.FIELD(8) 的数组。

GET.PIVOT.FIELD(9)	ActiveCell.PivotField.DataRange
GET.PIVOT.FIELD(10)	ActiveCell.PivotField.LabelRange
GET.PIVOT.FIELD(11)	ActiveCell.PivotField.TotalLevels
GET.PIVOT.FIELD(12)	ActiveCell.PivotField.GroupLevel
GET.PIVOT.FIELD(13)	ActiveCell.PivotField.ParentField
GET.PIVOT.FIELD(14)	ActiveCell.PivotField.ChildField
GET.PIVOT.FIELD(15)	ActiveCell.PivotField.SourceName
GET.PIVOT.FIELD(16)	ActiveCell.PivotField.Position
GET.PIVOT.FIELD(17)
返回一个由数据透视项名称组成的数组，这些数据透视项是有关字段中的所有组子项。Visual Basic 中没有直接的等价函数；但是 ChildItems 方法返回一个能循环使用去检查这些项的集合。可参阅有关 GET.PIVOT.FIELD(1)的实例并使用 ChildItems 方法。

GET.PIVOT.ITEM(type_num, pivot_item_name, pivot_field_name, pivot_table_name)	ActiveSheet.PivotTables(pivot_table_name). _ PivotFields(pivot_field_name). _ PivotItems(pivot_item_name).Property
返回数据透视表中数据透视项的信息，如果指定了 pivot_item_name、pivot_field_name 和 pivot_table_name，可以在由 PivotTables, PivotFields 和 PivotItems 方法所返回的对象上，直接使用合适的 Visual Basic 方法或属性；若上述参数省略，则返回包含活动单元格的数据透视项的有关信息。为清楚起见， GET. PIVOT. ITEM 在以后的描述中均假定省略参数pivot_item_name,pivot_field_name 和 pivot_table_name。

GET.PIVOT.ITEM(1)	ActiveCell.PivotItem.Position
GET.PIVOT.ITEM(2)	ActiveCell.PivotItem.LabelRange
GET.PIVOT.ITEM(3)	ActiveCell.PivotItem.DataRange
GET.PIVOT.ITEM(4)	Dim result Set chldItems = ActiveCell.PivotItem.ChildItems If chldItems.Count = 0 Then result = CVErr(xlErrNA) Else ReDim result(1 To chldItems.Count) x = 1 For Each i In chldItems result(x) = i.Name x = x + 1 Next End If
如果当前项为源项，则返回当前项的所有子项数据透视项名称的数组，Visual Basic 中没有直接的等价函数，但是 ChildItems 方法返回一个能循环使用去检查这些项的集合。本例通过循环使用集建立了一个等价数组。

GET.PIVOT.ITEM(5)	ActiveCell.PivotItem.ParentItem
GET.PIVOT.ITEM(6)	ActiveCell.PivotItem.ParentShowDetail
GET.PIVOT.ITEM(7)	ActiveCell.PivotItem.ShowDetail
GET.PIVOT.ITEM(8)	ActiveCell.PivotItem.Visible
GET.PIVOT.ITEM(9)	ActiveCell.PivotItem.SourceName
GET.PIVOT.TABLE(type_num, pivot_table_name)	ActiveSheet.PivotTables(pivot_table_name).Property
返回数据透视表的信息，若 指定了Pivot_table_name ，则在由PivotTables 方法所返回的对象上可以直接使用合适的 Visual Basic 方法或属性；若省略 Pivot_table_name ，则返回包含活动单元格的数据透视表信息。为清楚起见，GET.PIVOT.ITEM 在后面的描述中均假定省略pivot_table_name。

GET.PIVOT.TABLE(1)	ActiveCell.PivotTable.RefreshName
GET.PIVOT.TABLE(2)	ActiveCell.PivotTable.RefreshDate
GET.PIVOT.TABLE(3)	Dim result Set flds = ActiveCell.PivotTable.PivotFields If flds.Count = 0 Then result = CVErr(xlErrNA) Else ReDim result(1 To flds.Count) x = 1 For Each f In flds result(x) = f.Name x = x + 1 Next End If
返回数据透视表中所有字段的数据透视字段名称数组。Visual Basic中无直接等价函数，但是 PivotFields 方法返回一个能循环使用去检查这些字段的集合。本实例通过循环使用集建立一个等价数组。可用下述方法之一代替 PivotFields 方法：VisibleFields、HiddenFields、RowFields、ColumnFields、PageFields 或 DataFields 方法，它们可以对 GET.PIVOT.TABLE() 中 type_num 值为 5，6，7，8，9 和 10 分别建立等价函数。

GET.PIVOT.TABLE(4)	ActiveCell.PivotTable.PivotFields.Count
GET.PIVOT.TABLE(5)
返回由数据透视字段名称所组成的数组，这些数据透视字段是数据透视表中的所有可见字段。Visual Basic中没有直接的等价函数，但是， VisibleFields 方法返回一个可循环使用来检查这些字段的集合，请参阅有关 GET.PIVOT.TABLE(3) 的实例并使用 VisibleFields 方法。

GET.PIVOT.TABLE(6)
返回一个由数据透视字段名称所组成的数组，这些数据透视字段是数据透视表中的所有隐藏字段。Visual Basic中没有直接的等价函数；但是， HiddenFields 方法返回一个可循环使用来检查这些字段的集合，请参阅有关 GET.PIVOT.TABLE(3) 的实例并使用 HiddenFields 方法。

GET.PIVOT.TABLE(7)
返回一个由数据透视字段名称所组成的数组，这些数据透视字段是数据透视表中的所有行字段。Visual Basic 中没有直接的等价函数。但是， RowFields 方法返回一个可循环使用来检查这些字段的集合，请参阅有关 GET.PIVOT.TABLE(3) 的实例并使用 RowFields 方法。

GET.PIVOT.TABLE(8)
返回一个由数据透视字段名称所组成的数组，这些数据透视字段是数据透视表中的所有列字段。Visual Basic 中没有直接的等价函数。但是，ColumnFields 方法返回一个可循环使用来检查这些字段的集合，请参阅有关 GET.PIVOT.TABLE(3) 的实例并使用ColumnFields 方法。

GET.PIVOT.TABLE(9)
返回一个由数据透视字段名称所组成的数组，这些数据透视字段是数据透视表中的所有分页字段。Visual Basic 中没有直接的等价函数，但是 PageFields 方法返回一个可循环使用来检查这些字段的集合，请参阅有关 GET.PIVOT.TABLE(3) 的实例并使用 PageFields 方法。

GET.PIVOT.TABLE(10)
返回一个由数据透视字段名称所组成的数组，这些数据透视字段是数据透视表中的所有数据字段。Visual Basic中没有直接的等价函数，但是 DataFields 方法返回一个可循环使用来检查这些字段的集合，请参阅有关 GET.PIVOT.TABLE(3) 的实例并使用 DataFields 方法。

GET.PIVOT.TABLE(11)	ActiveCell.PivotTable.TableRange1
GET.PIVOT.TABLE(12)	ActiveCell.PivotTable.TableRange2
GET.PIVOT.TABLE(13)	ActiveCell.PivotTable.RowRange
GET.PIVOT.TABLE(14)	ActiveCell.PivotTable.ColumnRange
GET.PIVOT.TABLE(15)	ActiveCell.PivotTable.DataLabelRange
GET.PIVOT.TABLE(16)	ActiveCell.PivotTable.PageRange
GET.PIVOT.TABLE(17)	ActiveCell.PivotTable.DataBodyRange
GET.PIVOT.TABLE(18)	ActiveCell.PivotTable.RowGrand
GET.PIVOT.TABLE(19)	ActiveCell.PivotTable.ColumnGrand
GET.PIVOT.TABLE(20)	ActiveCell.PivotTable.SaveData
GET.PIVOT.TABLE(21)	ActiveCell.PivotTable.HasAutoFormat
GET.PIVOT.TABLE(22)	ActiveCell.PivotTable.SourceData
GET.TOOL(1, bar_id, position)	Toolbars(bar_id).ToolbarButtons(position).Id
GET.TOOL(2, bar_id, position)	Toolbars(bar_id).ToolbarButtons(position).OnAction
GET.TOOL(3, bar_id, position)	Toolbars(bar_id).ToolbarButtons(position).Pushed
GET.TOOL(4, bar_id, position)	Toolbars(bar_id).ToolbarButtons(position).Enabled
GET.TOOL(5, bar_id, position)	Toolbars(bar_id).ToolbarButtons(position).BuiltInFace
GET.TOOL(6, bar_id, position)	ExecuteExcel4Macro("GET.TOOL(6, bar_id, position)")
返回同工具栏按钮相关的帮助文字，Visual Basic 没有直接的等价函数。作为替代，帮助文字同指定给工具栏按钮的宏相联系。

GET.TOOL(7, bar_id, position)	ExecuteExcel4Macro("GET.TOOL(7, bar_id, position)")
返回同工具栏按钮有关的快捷帮助， Visual Basic 没有直接的等价函数。

GET.TOOLBAR(1, bar_id)	Dim result() ReDim result(1 To Toolbars(bar_id).ToolbarButtons.Count x = 1 For Each t In Toolbars(bar_id).ToolbarButtons result(x) = t.Id x = x + 1 Next
返回同工具栏上按钮相关的标识号数组。Visual Basic 没有直接的等价函数，但是可循环使用 ToolbarButtons 集来检查工具栏，本例通过循环使用集建立了一个等价数组。

GET.TOOLBAR(2, bar_id)	Toolbars(bar_id).Left
GET.TOOLBAR(3, bar_id)	Toolbars(bar_id).Top
GET.TOOLBAR(4, bar_id)	Toolbars(bar_id).Width
GET.TOOLBAR(5, bar_id)	Toolbars(bar_id).Height
GET.TOOLBAR(6, bar_id)	Toolbars(bar_id).Position
GET.TOOLBAR(7, bar_id)	Toolbars(bar_id).Visible
GET.TOOLBAR(8)	Dim result() ReDim result(1 To Toolbars.Count) x = 1 For Each t In Toolbars result(x) = t.Name x = x + 1 Next
返回所有可见和隐藏工具栏的工具栏名称数组。Visual Basic 没有直接的等价函数，但是可循环使用 Toolbars 集来检查工具栏。本例通过循环使用集建立了一个等价数组。

GET.TOOLBAR(9)	Dim result() ReDim result(1 To Toolbars.Count) x = 1 For Each t In Toolbars If t.Visible Then result(x) = t.Name x = x + 1 End If Next ReDim result(1 To (x - 1))
返回一个所有可见工具栏的工具栏名称数组， Visual Basic 没有直接的等价函数，但是可循环使用 Toolbars 集来检查工具栏。本实例通过循环使用集和对可见工具栏的筛选来建立一个等价数组。

GET.TOOLBAR(10, bar_id)	ExecuteExcel4Macro("GET.TOOLBAR(10, bar_id)")
返回工具栏在全屏幕方式下是否可见。Visual Basic 没有直接的等价函数。

GET.WINDOW(type_num, window_text)	Windows(window_text).Property
返回窗口的信息，若指定了 window_text ，则可以在由 Windows 方法返回的对象上直接使用合适的 Visual Basic 方法或属性。如果省略了 window_text ，则返回有关活动窗口的信息。为清楚起见，GET.WINDOW 在后面的描述中均假定省略 Window_text。

GET.WINDOW(1)	Set containingBook = ActiveWindow.ActiveSheet.Parent If containingBook.Sheets.Count = 1 Then ' Get bookname, strip off extension (if any) bookName = containingBook.Name For i = Len(bookName) To 1 Step -1 If Mid(bookName, i, 1) = "." Then bookName = Mid(bookName, 1, i - 1) Exit For End If Next x = StrComp(bookName, _ ActiveWindow.ActiveSheet.Name, 1) If x <> 0 Then Goto BuildLongName result = containingBook.Name Else BuildLongName: result = "[" & containingBook.Name & _ "]" & ActiveWindow.ActiveSheet.Name End If
返回窗口中工作簿和工作表的名称。本实例构造了 GET.WINDOW(1) 的一个确切等价函数。该等价函数具有与 Microsoft Excel 4.0 向后兼容的特殊规则。在 Visual Basic 中，没有必要构造这样一个等价函数，因为使用的是 Worksheet 和Workbook 对象而不是文本名称。

GET.WINDOW(2)	ActiveWindow.WindowNumber
GET.WINDOW(3)	ActiveWindow.Left
GET.WINDOW(4)	ActiveWindow.Top
GET.WINDOW(5)	ActiveWindow.Width
GET.WINDOW(6)	ActiveWindow.Height
GET.WINDOW(7)	ActiveWindow.Visible
GET.WINDOW(8)	ActiveWindow.DisplayFormulas
GET.WINDOW(9)	ActiveWindow.DisplayGridlines
GET.WINDOW(10)	ActiveWindow.DisplayHeadings
GET.WINDOW(11)	ActiveWindow.DisplayZeros
GET.WINDOW(12)	ActiveWindow.GridlineColorIndex
GET.WINDOW(13)	ActiveWindow.Panes(1).ScrollColumn
返回包含所有分隔区域的最左列列号的数组。Visual Basic 中没有直接的等价函数。使用 Panes 集来检查特定分隔区域的属性，如果需要，通过对集中所有分隔区域的循环使用来构造结果值的数组。

GET.WINDOW(14)	ActiveWindow.Panes(1).ScrollRow
返回包含所有分隔区域的最顶行行号的数组。Visual Basic 中没有直接的等价函数。使用 Panes 集来检查一特定分隔区域的属性，如果需要，通过对集中所有分隔区域的循环使用来构造结果值的数组。

GET.WINDOW(15)	ExecuteExcel4Macro("INDEX(GET.WINDOW(15),,pane_num)")
无直接等价函数。VisibleRange 属性返回包含所有可见单元格(包括部分可见单元格)的区域。该区域可以转换成由 GET.WINDOW(15) 所返回的带小数的宽度数值，使用 ExecuteExcel4Macro 也可以。

GET.WINDOW(16)	ExecuteExcel4Macro("INDEX(GET.WINDOW(16),,pane_num)")
无直接等价函数。VisibleRange 属性返回包含所有可见单元格(包括部分可见单元格)的区域。该区域可以转换成由 GET.WINDOW(16) 所返回的带小数的行高数值，或使用 ExecuteExcel4Macro 来完成。

GET.WINDOW(17)	result = ActiveWindow.ActivePane.Index If ActiveWindow.Panes.Count = 2 Then If ActiveWindow.SplitVertical <> 0 Then If result = 2 Then result = 3 End If End If
返回分隔区域索引。在 Visual Basic 中，分隔区域根据分隔结构来重新编号，因此需要一个转换来返回确切的等价函数。

GET.WINDOW(18)	ActiveWindow.SplitVertical <> 0
GET.WINDOW(19)	ActiveWindow.SplitHorizontal <> 0
GET.WINDOW(20)	ActiveWindow.WindowState = xlMaximized
GET.WINDOW(22)	ActiveWindow.DisplayOutline
GET.WINDOW(23)	ActiveWindow.WindowState
GET.WINDOW(24)	ActiveWindow.FreezePanes
GET.WINDOW(25)	ActiveWindow.Zoom
GET.WINDOW(26)	ActiveWindow.DisplayHorizontalScrollBar
GET.WINDOW(27)	ActiveWindow.DisplayVerticalScrollBar
GET.WINDOW(28)	ActiveWindow.TabRatio
GET.WINDOW(29)	ActiveWindow.DisplayWorkbookTabs
GET.WINDOW(30)	"[" & ActiveWindow.ActiveSheet.Parent.Name & _ "]" & ActiveWindow.ActiveSheet.Name
GET.WINDOW(31)	ActiveWindow.ActiveSheet.Parent.Name
GET.WORKBOOK(type_num, name_text)	Workbooks(name_text).Property
返回有关工作簿的信息，若指定了 name_text，则可以在由Workbooks方法返回的工作簿对象上直接使用合适的 Visual Basic 方法或属性。若省略 name_text，则返回有关活动工作簿的信息。为清楚起见，GET.WORKBOOK 在后面的描述中均假定省略了name_text。

GET.WORKBOOK(1)	Dim result() ReDim result(1 To ActiveWorkbook.Sheets.Count) bkName = "[" & ActiveWorkbook.Name & "]" x = 1 For Each s In ActiveWorkbook.Sheets result(x) = bkName & s.Name x = x + 1 Next
返回工作簿中所有工作表名称的数组，Visual Basic 中无直接等价函数，但是可以循环使用工作表集来检查工作表。本实例通过对集的循环使用建立一个等价数组。

GET.WORKBOOK(2)	CVErr(xlErrNA)
在 Microsoft Excel 5.0 及以后版本中，该函数总是返回错误值 #N/A 。

GET.WORKBOOK(3)	Dim result() ReDim result(1 To ActiveWindow.SelectedSheets.Count) bkName = "[" & ActiveWorkbook.Name & "]" x = 1 For Each s In ActiveWindow.SelectedSheets result(x) = bkName & s.Name x = x + 1 Next
返回工作簿中选定工作表的表名数组。 Visual Basic 中无直接等价函数，但是 SelectedSheets 方法返回一个可用于循环检查选定工作表的集。本实例通过对集的循环使用建立一个等价数组。

GET.WORKBOOK(4)	ActiveWorkbook.Sheets.Count
GET.WORKBOOK(5)	ActiveWorkbook.HasRoutingSlip
GET.WORKBOOK(6)	ActiveWorkbook.RoutingSlip.Recipients
GET.WORKBOOK(7)	ActiveWorkbook.RoutingSlip.Subject
GET.WORKBOOK(8)	ActiveWorkbook.RoutingSlip.Message
GET.WORKBOOK(9)	ActiveWorkbook.RoutingSlip.Delivery
GET.WORKBOOK(10)	ActiveWorkbook.RoutingSlip.ReturnWhenDone
GET.WORKBOOK(11)	ActiveWorkbook.Routed
GET.WORKBOOK(12)	ActiveWorkbook.RoutingSlip.TrackStatus
GET.WORKBOOK(13)	ActiveWorkbook.RoutingSlip.Status
GET.WORKBOOK(14)	ActiveWorkbook.ProtectStructure
GET.WORKBOOK(15)	ActiveWorkbook.ProtectWindows
GET.WORKBOOK(16)	ActiveWorkbook.Name
GET.WORKBOOK(17)	ActiveWorkbook.ReadOnly
GET.WORKBOOK(18)	ActiveWorkbook.WriteReserved
GET.WORKBOOK(19)	ActiveWorkbook.WriteReservedBy
GET.WORKBOOK(20)	ActiveWorkbook.FileFormat
GET.WORKBOOK(21)	ActiveWorkbook.CreateBackup
GET.WORKBOOK(22)	ActiveWorkbook.SaveLinkValues
GET.WORKBOOK(23)	ActiveWorkbook.HasMailer
GET.WORKBOOK(24)	Not ActiveWorkbook.Saved
GET.WORKBOOK(25)	ActiveWorkbook.Mailer.ToRecipients
GET.WORKBOOK(26)	ActiveWorkbook.Mailer.CCRecipients
GET.WORKBOOK(27)	ActiveWorkbook.Mailer.BCCRecipients
GET.WORKBOOK(28)	ActiveWorkbook.Mailer.Subject
GET.WORKBOOK(29)	ActiveWorkbook.Mailer.Enclosures
GET.WORKBOOK(30)	ActiveWorkbook.Mailer.Received
GET.WORKBOOK(31)	ActiveWorkbook.Mailer.SendDateTime
GET.WORKBOOK(32)	ActiveWorkbook.Mailer.Sender
GET.WORKBOOK(33)	ActiveWorkbook.Title
GET.WORKBOOK(34)	ActiveWorkbook.Subject
GET.WORKBOOK(35)	ActiveWorkbook.Author
GET.WORKBOOK(36)	ActiveWorkbook.Keywords
GET.WORKBOOK(37)	ActiveWorkbook.Comments
GET.WORKBOOK(38)	ActiveWorkbook.ActiveSheet.Name
GET.WORKSPACE(1)	Application.OperatingSystem
GET.WORKSPACE2)	Application.Version
GET.WORKSPACE(3)	Application.FixedDecimal
GET.WORKSPACE(4)	Application.ReferenceStyle = xlR1C1
GET.WORKSPACE(5)	Application.DisplayScrollBars
GET.WORKSPACE(6)	Application.DisplayStatusBar
GET.WORKSPACE(7)	Application.DisplayFormulaBar
GET.WORKSPACE(8)	Not Application.IgnoreRemoteRequests
GET.WORKSPACE(9)	Application.TransitionMenuKey
GET.WORKSPACE(10)	Application.DataEntryMode Application.CutCopyMode
返回指示当前用户模式的数字，可以使用属性清单中所列的任一种。Microsoft Excel 5.0及以后版本无数据查找方式的等价函数。

GET.WORKSPACE(11)	Application.Left
GET.WORKSPACE(12)	Application.Top
GET.WORKSPACE(13)	Application.UsableWidth
GET.WORKSPACE(14)	Application.UsableHeight
GET.WORKSPACE(15)	Application.WindowState
GET.WORKSPACE(16)	Application.MemoryFree
GET.WORKSPACE(17)	Application.MemoryTotal
GET.WORKSPACE(18)	Application.MathCoprocessorAvailable
GET.WORKSPACE(19)	Application.MouseAvailable
GET.WORKSPACE(20)	Dim result If ActiveWindow.SelectedSheets.Count = 1 Then result = CVErr(xlErrNA) Else ReDim result(1 To ActiveWindow.SelectedSheets.Count) bkName = "[" & ActiveWorkbook.Name & "]" x = 1 For Each s In ActiveWindow.SelectedSheets result(x) = bkName & s.Name x = x + 1 Next End If
返回一个包含成组编辑的工作表的表名数组。在 Microsoft Excel 5.0 及以后版本中，通过选定多重工作表标签来创建组。本例通过使用由 SelectedSheets 方法所返回的工作表集来构造数组。

GET.WORKSPACE(21)	Toolbars("Standard").Visible
GET.WORKSPACE(22)	Application.DDEAppReturnCode
GET.WORKSPACE(type_num)	Application.StartupPath
GET.WORKSPACE(24)	Application.AltStartupPath
GET.WORKSPACE(25)	Application.RecordRelative
GET.WORKSPACE(26)	Application.UserName
GET.WORKSPACE(27)	Application.OrganizationName
GET.WORKSPACE(28)	Application.TransitionMenuKeyAction
GET.WORKSPACE(29)	Application.TransitionNavigKeys
GET.WORKSPACE(30)	ExecuteExcel4Macro("INDEX(GET.WORKSPACE(30),,num)")
无直接的等价函数。由于 ExecuteExcel4Macro 方法不能返回一个数组，所以只能使用 INDEX 函数每次恢复一个设置。

GET.WORKSPACE(31)
在 Visual Basic 中无等价函数。

GET.WORKSPACE(32)	Application.Path
GET.WORKSPACE(33)
在 Visual Basic 中无直接等价函数。

GET.WORKSPACE(34)
在 Visual Basic 中无直接等价函数。

GET.WORKSPACE(35)
在 Visual Basic 中无等价函数。

GET.WORKSPACE(36)	Application.CellDragAndDrop
GET.WORKSPACE(37)	Application.International
GET.WORKSPACE(38)	Application.DisplayAlerts
无直接等价函数。DisplayAlerts 属性指示警报是否打开，但并不指示错误捕获是否完全关闭。当用 On Error 语句设置时，Visual Basic 的错误捕获状态是无效的。

GET.WORKSPACE(39)
在 Visual Basic 中无等价函数。通过 On Error 语句所设置的当前活动错误控制柄的位置是无效的。

GET.WORKSPACE(40)	Application.ScreenUpdating
GET.WORKSPACE(41)	Application.PreviousSelections
GET.WORKSPACE(42)	Application.CanPlaySounds
GET.WORKSPACE(43)	Application.CanRecordSounds
GET.WORKSPACE(44)	Application.RegisteredFunctions
返回注册于工作表和宏表的 DLL 或代码源函数的信息数组。请注意这些函数不是 Visual Basic 可直接调用的，而且它们与在 Visual Basic 中用 Dedare Function 和 DeclareSub 语句说明的 DLL 和代码源也没有关系。

GET.WORKSPACE(45)	Application.WindowsForPens
GET.WORKSPACE(46)	Application.MoveAfterReturn
GET.WORKSPACE(48)	Application.LibraryPath
GET.WORKSPACE(49)	Application.MailSession
GET.WORKSPACE(50)	Application.DisplayFullScreen
GET.WORKSPACE(51)	ExecuteExcel4Macro("GET.WORKSPACE(51)")
无直接等价函数。

GET.WORKSPACE(52)	ExecuteExcel4Macro("GET.WORKSPACE(51)")
无直接等价函数。

GET.WORKSPACE(53)	Application.ActiveDialog.Name
GET.WORKSPACE(54)	Application.EditDirectlyInCell
GET.WORKSPACE(55)	Application.AlertBeforeOverwriting
GET.WORKSPACE(56)	Application.StandardFont
GET.WORKSPACE(57)	Application.StandardFontSize
GET.WORKSPACE(58)	Application.DisplayRecentFiles
GET.WORKSPACE(59)	Application.DisplayExcel4Menus
GET.WORKSPACE(60)	Application.EnableTipWizard
GET.WORKSPACE(61)	Application.CustomListCount
GET.WORKSPACE(62)	Application.FileConverters
GET.WORKSPACE(63)	Application.MailSystem
GET.WORKSPACE(64)	Application.AskToUpdateLinks
GET.WORKSPACE(65)	Application.CopyObjectsWithCells
GET.WORKSPACE(66)	Application.SheetsInNewWorkbook
GET.WORKSPACE(67)	Application.DefaultFilePath
GET.WORKSPACE(68)	Application.ShowToolTips
GET.WORKSPACE(69)	Application.LargeButtons
GET.WORKSPACE(70)	Application.PromptForSummaryInfo
GET.WORKSPACE(71)	ExecuteExcel4Macro("GET.WORKSPACE(71)")
GET.WORKSPACE(72)	Application.ColorButtons
GOAL.SEEK(target_cell, target_value, variable_cell)	Range(target_cell).GoalSeek goal := target_value, _ changingCell := variable_cell
GOTO(reference)	GoTo TargetLabel ' code that is skipped here TargetLabel: ' execution resumes here, following the label
利用 Visual Basic 中的 GOTO 语句进行无条件转移，与 GOTO()函数不同，Visual Basic 要求硬代码的标记值，这些值在运行期间不能改变。

GRIDLINES(x_major, x_minor, y_major, y_minor)	With ActiveChart.Axes(xlCategory) .HasMajorGridlines = x_major .HasMinorGridlines = x_minor End With With ActiveChart.Axes(xlValue) .HasMajorGridlines = y_major .HasMinorGridlines = y_minor End With
控制二维图表的网格线设置。

GRIDLINES(x_major, x_minor, y_major, y_minor, z_major, z_minor, 2D_effect)	With ActiveChart.Axes(xlCategory) .HasMajorGridlines = x_major .HasMinorGridlines = x_minor End With With ActiveChart.Axes(xlSeries) .HasMajorGridlines = y_major .HasMinorGridlines = y_minor End With With ActiveChart.Axes(xlValue) .HasMajorGridlines = z_major .HasMinorGridlines = z_minor End With ActiveChart.WallsAndGridlines2D = 2D_effect
控制三维图表的网络线设置。

GROUP( )	Selection.Group.Select
将所选定的图形对象分组。


与 Visual Basic 等价的宏函数和命令

H

HALT(cancel_close)	End
cancel_close 参数无等价参数。

HELP(help_ref)	sepOffset = InStr(help_ref, "!") helpFile = Left(help_ref, sepOffset - 1) helpContextID = CInt(Right(help_ref, Len(help_ref) - sepOffset)) Application.Help helpFile, helpContextID
在 Microsoft Excel 4.0 宏语言中，帮助引用被指定为一个字符串，该字符串包括＂帮助＂文件名，其后紧接有关此宏＂帮助＂内容的标识，例如 "PROJECT.HLP!255"。在 Visual Basic 中，帮助文件和有关此宏的＂帮助＂内容不在一个字符串中指定，而是分别指定的。此例将 help_ref 字符串参数分成字符串和数字两个组成部分。

HIDE( )	ActiveWindow.Visible = False
HIDE.DIALOG(cancel_logical)	ActiveDialog.Hide cancel := cancel_logical
HIDE.OBJECT(, hide_logical)	Selection.Visible = hide_logical
隐藏或取消隐藏选定的图形对象。

HIDE.OBJECT("Oval 1", hide_logical	ActiveSheet.DrawingObjects("Oval 1").Visible = hide_logical
隐藏或取消隐藏未被选定的一指定图形对象。如果这个图形对象位于图表上，则用 ActiveChart 属性 代替 ActiveSheet 属性。

HIDE.OBJECT("Oval 1, Rectangle 2", hide_logical)	ActiveSheet.DrawingObjects( _ Array("Oval 1", "Rectangle 2")).Visible = hide_logical
隐藏或取消隐藏未被选定的一组指定的图形对象.如果这些图形对象位于图表上，则用 ActiveChart 代替 ActiveSheet。

HLINE(num_columns)	ActiveWindow.SmallScroll toRight := num_columns
HPAGE(num_windows)	ActiveWindow.LargeScroll toRight := num_windows
HSCROLL(position, TRUE)	ActiveWindow.ScrollColumn = position
水平滚动至指定的列号处。

HSCROLL(position, FALSE)	ActiveWindow.ScrollColumn = position * 256
水平滚动至某一列间位置。在 Visual Basic 中仅能滚动至指定列。此例将小数转换成绝对的整数列号处。

I

IF(logical_test)	If logical_test Then ' code for True condition Else ' code for False condition End If
求出 logical_test 表达式的值，并在此基础上，运行 IF 至 ELES，ELES.IF 或 END.IF 语句间的代码。此 Visual Basic 的实例说明了完整的 IF 语局的语法。

IF(logical_test, value_if_true, value_if_false)	If logical_test Then result = value_if_true Else result = value_if_false End If
求出 logical_test 表达式的值，并且据此测试值，返回 true_value 或 false_value 表达式的值。Visual Basic 没有直接等价的函数，用一临时变量来替代。

INITIATE(app_text, topic_text)	Application.DDEInitiate app := app_text, topic := topic_text
INPUT(message_text, type_num, title_text, default, x_pos, y_pos, help_ref)	Application.InputBox prompt := message_text, title := title_text, _ default := default, left := x_pos, top := y_pos, _ helpFile := help_ref, helpContextID := help_file, _ type := type_num
给出一个带有编辑字段的对话框供用户输入操作。help_ref 参数在 VisualBasic 中被分成一个独立的＂帮助＂文件名和有关此宏＂帮助＂内容的标识。参见 HELP 函数中将 help_ref 参数转换为两部分的实例。在 Visual Basic 运行库中的 InputBox 函数可以执行相似的功能，但不支持 type_num 参数。如果要在其它的 Visual Basic 环境中运行代码，请使用 InputBox 函数。

INSERT(1)	Selection.Insert shift := xlToRight
INSERT(2)	Selection.Insert shift := xlDown
INSERT(3)	Selection.EntireRow.Insert
INSERT(4)	Selection.EntireColumn.Insert
INSERT.OBJECT(object_class, file_name, link_logical, display_icon_logical, icon_file, icon_number, icon_label)	ActiveSheet.OLEObjects.Add classType := object_class, _ fileName := file_name, link := link_logical, _ displayAsIcon := display_icon_logical, _ iconFileName := icon_file, iconIndex := icon_number, _ iconLabel := icon_label
INSERT.PICTURE(file_name, filter_number)	ActiveSheet.Pictures.Insert filename := file_name, _ converter := filter_number
INSERT.TITLE(chart, y_primary, x_primary, y_secondary, x_secondary)	With ActiveChart .HasTitle = chart .Axes(xlCategory, xlPrimary).HasTitle = x_primary .Axes(xlCategory, xlSecondary).HasTitle = x_secondary .Axes(xlValue, xlPrimary).HasTitle = y_primary .Axes(xlValue, xlSecondary).HasTitle = y_secondary End With
在一个二维图表上附加文字。

INSERT.TITLE(chart, z_primary, x_primary, y_primary)	With ActiveChart .HasTitle = chart .Axes(xlValue).HasTitle = chart, z_primary, x_primary .Axes(xlCategory).HasTitle = x_primary .Axes(xlSeries).HasTitle = x_primary, y_primary) End With
在一个三维图表上附加文字。

J

JUSTIFY()	Selection.Justify

K


与 Visual Basic 等价的宏函数和命令

L

LABEL.PROPERTIES(accel_text, accel2_text, 3d_shading)	With Selection .Accelerator = accel_text .PhoneticAccelerator = accel2_text .Display3DShading = 3d_shading End With
LAST.ERROR( )	Erl
没有直接等价的函数。使用 Erl 函数返回一个 Visual Basic 表达式的行号，该行号指示最近一次 Visual Basic 错误。

LEGEND(logical)	ActiveChart.HasLegend = logical
LINE.PRINT( )	ExecuteExcel4Macro("LINE.PRINT(...)")
没有直接等价的函数。用 ExecuteExcel4Macro 方法或用Visual Basic 的 Write与 Print 语句组合来生成一个输出文件。

LINK.COMBO(link_logical)	Selection.LinkCombo link := link_logical
LINK.FORMAT( )	Selection.TickLabels.NumberFormatLinked = True
如果选定坐标轴刻度线标记，则使用这一语法。

LINK.FORMAT( )	Selection.NumberFormatLinked = True
如果选定的是除坐标轴刻度线标记外的其他对象，则使用这一语法。

LINKS(document_text, type_num)	Workbooks(document_text).LinkSources type := type_num
如果省略 documewnt_text 参数,则使用 ActiveWorkbook 属性取代 Workbooks( document_text) 函数。

LIST.NAMES( )	Selection.ListNames
LISTBOX.PROPERTIES(range, link, drop_size, multi_select, 3d_shading)	With Selection .ListFillRange = range .LinkedCell = link .DropDownLines = drop_size .MultiSelect = multi_select .Display3DShading = 3d_shading End With

M

MAIL.ADD.MAILER( )	ActiveWorkbook.HasMailer = True
MAIL.DELETE.MAILER( )	ActiveWorkbook.HasMailer = False
MAIL.EDIT.MAILER(to_recipients, cc_recipients, bcc_recipients, subject, enclosures, which_address)	With ActiveWorkbook.Mailer .ToRecipients = to_recipients .CCRecipients = bcc_recipients .BCCRecipients = bcc_recipients .Subject = subject .Enclosures = enclosures End With
which_address 参数在 Visual Baisc 中没有直接等价的参数。

MAIL.FORWARD( )	ActiveWorkbook.ForwardMailer
MAIL.LOGOFF( )	Application.MailLogoff
MAIL.LOGON(name_text, password_text, download_logical)	Application.MailLogon name := name_text, _ password := password_text, _ downloadNewMail := download_logical
MAIL.NEXT.LETTER( )	Application.NextLetter
MAIL.REPLY( )	ActiveWorkbook.Reply
MAIL.REPLY.ALL( )	ActiveWorkbook.ReplyAll
MAIN.CHART(type_num, stack, 100, vary, overlap, drop, hilo, overlap%, cluster, angle)	With ActiveChart .Type = type_num .SubType = 100 End With With ActiveChart.ChartGroups(1) .VaryByCategories = vary .Overlap = overlap% .HasDropLines = drop .HasHiLoLines = hilo .FirstSliceAngle = angle End With
使用此函数仅为了与 Microsoft Excel 2.2 及其更早的版本向后兼容。某些参数不是对所有的图表类型都适用，并且 stack，overlap 和 cluster 参数在 Microsoft Excel 5.0 及以后版本中没有直接等价的参数。

MAIN.CHART.TYPE(type_num)	ActiveChart.Type = type_num
MENU.EDITOR()	Application.Dialogs(xlDialogMenuEditor).Show
MERGE.STYLES(document_text)	ActiveWorkbook.Styles.Merge _ workbook := Workbooks(document_text)
MESSAGE(TRUE, text)	Application.StatusBar = text
在状态栏中显示文字。

MESSAGE(FALSE)	Application.StatusBar = False
恢复状态栏到默认的消息显示状态。

MOVE.TOOL(from_bar_id, from_bar_position, to_bar_id, to_bar_position, TRUE)	With Toolbars(from_bar_id).ToolbarButtons(from_bar_position) .Copy toolbar := Toolbars(to_bar_id), _ before := to_bar_position End With
将一按钮从一工具栏复制到另一工具栏中。

MOVE.TOOL(from_bar_id, from_bar_position, to_bar_id, to_bar_position, FALSE)	With Toolbars(from_bar_id).ToolbarButtons(from_bar_position) .Move toolbar := Toolbars(to_bar_id), _ before := to_bar_position End With
将一按钮从一工具栏移动到另一工具栏中。

MOVE.TOOL(from_bar_id, from_bar_position, , , , width)	With Toolbars(from_bar_id).ToolbarButtons(from_bar_position) .Width = width End With
重新调整用于显示下拉列表的工具栏按钮的大小。

N

NAMES(document_text, 3)	For Each n In ActiveWorkbook.Names MsgBox n.Name Next
返回具有所有区域名的一个数组。在 Visual Basic 中， Names 集给出直接访问 Names 对象的方法，并且无需使用文本名字。此例在一消息框中显示每一区域名称。如果将 type_num 指定为 1 或 2 ，则检查 Names 对象的 Visible 属性，从而确定是否包括此名字。

NAMES(document_text, 2, match_text)	Dim result() As String numNames = 0 For Each n In ActiveWorkbook.Names If n.Visible = False And n.Name Like match_text Then numNames = numNames + 1 ReDim Preserve result(1 To numNames) result(numNames) = n.Name End If Next
返回名字与给定方式匹配并且名称隐藏的区域名称数组。此例构造了一个名字与给定方式匹配并且为隐藏方式的区域名称数组。注意在 For Each...Next 语句中 Name 集的用法。

NEW(type_num, xy_series, add_logical)	Workbooks.Add template := type_num
如果 type_num 为文本方式，则增加一个基于 type_num 模板的新工作簿；如果省略 type-num ，则产生一个默认的工作簿。xy_series 和 add_logical 参数在 Visual Basic 中没有直接的等价参数。

NEW(1)	Workbooks.Add template := xlWorksheet
增加一个包含一张工作表的新工作簿。

NEW(2)	Workbooks.Add template := xlChart
增加一个包含一张基于当前选定区域的图表的新工作簿。

NEW(3)	Workbooks.Add template := xlExcel4MacroSheet
增加一个包含一张 Microsoft Excel 4.0 宏表的新工作簿。

NEW(4)	Workbooks.Add template := xlExcel4IntlMacroSheet
增加一个包含一张Microsoft Excel 4.0国际通用宏表的新工作簿。

NEW(5)	Workbooks.Add
增加一个包含默认个数工作表或基于默认工作簿模板的新工作簿。

NEW.WINDOW( )	ActiveWindow.NewWindow
NEXT( )	For x = 1 To 100 ' loop body Next
结束一个循环。实例说明了完整的 Visual Basic 语法。

NOTE(, cell_ref)	Range(cell_ref).ClearNotes
删除一个单元格附注。

NOTE(add_text, cell_ref, start_char, num_chars)	Range(cell_ref).NoteText text := add_text, _ start := start_char, length := num_chars
在一个单元格附注上增加文本。


与Visual Baisc 等价的宏函数和命令

O

OBJECT.PROPERTIES(placement_type, print_object)	With Selection .Placement = placement_type .PrintObject = print_object End With
OBJECT.PROTECTION(locked, lock_text)	With Selection .Locked = locked .LockedText = lock_text End With
ON.DATA(document_text, macro_text)	ActiveWorkbook.SetLinkOnData name := document_text, _ procedure := macro_text
ON.DOUBLECLICK(sheet_text, macro_text)	Sheets(sheet_text).OnDoubleClick = macro_text
当双击某一特定的工作表时，运行指定的宏。

ON.DOUBLECLICK(, macro_text)	Application.OnDoubleClick = macro_text
当双击一个不含有已定义双击宏的任一表时，运行指定的宏。

ON.ENTRY(sheet_text, macro_text)	Sheets(sheet_text).OnEntry = macro_text
当在某一特定表的单元格中输入数据时，运行指定的宏。

ON.ENTRY(, macro_text)	Application.OnEntry = macro_text
当向不含有已定义数据输入宏的任一表上某一单元格输入数据时，运行指定的宏。

ON.KEY(key_text, macro_text)	Application.OnKey key := key_text, procedure := macro_text
ON.RECALC(sheet_text, macro_text)	Sheets(sheet_text).OnCalculate = macro_text
当计算某一特定的工作表时，运行指定的宏。

ON.RECALC(, macro_text	Application.OnCalculate = macro_text
当不含有已定义计算宏的任意工作表进行计算时，运行指定的宏。

ON.SHEET("[BOOK1]Sheet1", macro_text, TRUE)	Workbooks("BOOK1").Sheets("Sheet1").OnSheetActivate = _ macro_text
当在某一特定的工作簿中使用某一特定的工作表时，运行指定的宏。如果最后一参数为 FALSE，则使用 OnSheetDeactivate 属性代替 OnSheetActivate。

ON.SHEET("[BOOK1]", macro_text, TRUE)	Workbooks("BOOK1").OnSheetActivate = macro_text
当在某一特定工作簿中使用任意一表时，运行指定的宏。如果最后一参数为 FALSE，则使用 OnSheetDeactivate 属性代替 OnSheetActivate。

ON.SHEET(sheet_text, macro_text, TRUE)	Application.OnSheetActivate = macro_text
当使用任一工作簿中任一表时，运行指定的宏。如果最后一参数为 FALSE，则使用 OnSheetDeactivate 属性代替 OnSheetActivate。

ON.TIME(time, macro_text, tolerance, insert_logical)	Application.OnTime earliestTime := insert_logical, _ procedure := macro_text, latestTime := tolerance, _ schedule := insert_logical
ON.WINDOW(window_text, macro_text)	Windows(window_text).OnWindow = macro_text
当一指定的窗口被激活时，运行指定的宏。

ON.WINDOW(, macro_text)	Application.OnWindow = macro_text
当不含有激活宏的任意一个窗口被激活时，运行指定的宏。

OPEN(file_text, update_links, read_only, format, prot_pwd, write_res_pwd, ignore_rorec, file_origin, custom_delimit, , editable, , notify_logical, converter)	Workbooks.Open filename := file_text, _ updateLinks := update_links, readOnly := read_only, _ format := format, password := prot_pwd, _ writeResPassword := write_res_pwd, _ ignoreReadOnlyRecommended := ignore_rorec, _ origin := file_origin, delimiter := custom_delimit, _ editable := editable, notify := notify_logical, _ converter := converter
打开一文件，add_logical 参数在 Microsoft Excel 5.0及以后版本中没有等价参数。

OPEN?(file_text)	Application.Dialogs(xlDialogOpen).Show file_text
显示“文件”菜单中带有默认文件名的“打开”对话框，并打开选定的文件。在Visual Basic中，使用具有合适对话常数的 Dialogs 集，将传递给 Show 方法的参数作为对话框的默认值。Show 方法的参数与对应的 Microsoft Excel 4.0 宏命令的参数完全相同。参数必须按位置指定。

OPEN(file_text, , , , , write_res_pwd, , , , , , 2, notify_logical)	Workbooks(file_text).ChangeFileAccess _  mode := xlReadWrite, notify := notify_logical, _ writePassword := write_res_pwd
将一工作簿访问权限改变为读写。

OPEN(file_text, , , , , , , , , , , 3)	Workbooks(file_text).ChangeFileAccess mode := xlReadOnly
将一工作簿访问权限改变为只读。

OPEN(file_text, , TRUE, , , , , , , , , 1)	Workbooks(file_text).UpdateFromFile
用最近一次保存的磁盘副本更新某一工作簿，很可能丢弃内存中原有的改变。

OPEN.DIALOG(file_filter, button_text, title, filter_index)	Application.GetOpenFilename fileFilter := file_filter, _ filterIndex := filter_index, title := title, _ buttonText := button_text
OPEN.LINKS(document_text1, document_text2, ..., read_only, type_of_link)	ActiveWorkbook.OpenLinks _ name := Array(document_text1, document_text2), _ readOnly = read_only, type := type_of_link
打开指定的支持文档。如果指定多个文档，Visual Basic 要求一个由 name 参数组成的数组。此例用 Array 函数来构造一个数组。

OPEN.MAIL(subject, comments)	ExecuteExcel4Macro("comments.comments(subject, comments)")
没有直接等价的函数。

OPEN.TEXT(file_name, file_origin, start_row, file_type, text_qualifier, consecutive_delim, tab, semicolon, comma, space, other, other_char, {field_info; field_info2;...}	Workbooks.OpenText filename := file_name, _ origin := file_origin, startRow := start_row, _ dataType := file_type, textQualifier := text_qualifier, _ consecutiveDelimiter := consecutive_delim, _ tab := tab, semicolon := semicolon, comma := comma, _ space := space, other := other_char, _ otherChar := other_char, fieldInfo := field_info2
OPTIONS.CALCULATION(type_num, iter, max_num, max_change, update, precision,  date_1904, calc_save, save_values)	With Application .Calculation = type_num .Iteration = iter .MaxIterations = max_num .MaxChange = max_change .CalculateBeforeSave = calc_save End With With ActiveWorkbook .UpdateRemoteReferences = update .PrecisionAsDisplayed = precision .Date1904 = date_1904 .SaveLinkValues = save_values End With
OPTIONS.CHART(display_blanks, plot_visible, size_with_window)	With ActiveChart .DisplayBlanksAs = display_blanks .PlotVisibleOnly = plot_visible .SizeWithWindow =  size_with_window End With
OPTIONS.EDIT(incell_edit, drag_drop, alert, entermove, fixed, decimals,copy_objects, update_links)	With Application .EditDirectlyInCell = incell_edit .CellDragAndDrop = drag_drop .AlertBeforeOverwriting = alert .MoveAfterReturn = entermove .FixedDecimal = fixed .FixedDecimalPlaces = decimals .CopyObjectsWithCells = copy_objects .AskToUpdateLinks = update_links End With
OPTIONS.GENERAL(R1C1_mode, dde_on, sum_info, tips, recent_files, old_menus, user_info, font_name, font_size, default_location, alternate_location, sheet_num, enable_under)	With Application .ReferenceStyle = R1C1_mode .IgnoreRemoteRequests = dde_on .PromptForSummaryInfo = sum_info .DisplayRecentFiles = recent_files .DisplayExcel4Menus = old_menus .UserName = user_info .StandardFont = font_name .StandardFontSize = font_size .DefaultFilePath = default_location .AltStartupPath = alternate_location .SheetsInNewWorkbook = sheet_num .CommandUnderlines = enable_under End With Application.ResetTipWizard
如果 Tips 参数是 FALSE 或被省略，则不包括 ResetTipWizard 方法。

OPTIONS.LISTS.ADD(string_array)	Application.AddCustomList listArray := string_array
对一自定义序列的数组增加内容。在Visual Basic 中，使用Array 函数可以很容易地创建字符串值的数组。

OPTIONS.LISTS.ADD(import_ref, by_row)	Application.AddCustomList listArray := import_ref, _ byRow := by_row
对一自定义序列的单元格区域增加内容。

OPTIONS.LISTS.DELETE(list_num)	Application.DeleteCustomList listNum = list_num
OPTIONS.LISTS.GET(list_num)	Application.GetCustomListContents(listNum := list_num)
OPTIONS.TRANSITION(menu_key, menu_key_action, nav_keys, trans_eval, trans_entry )	With Application .TransitionMenuKey = menu_key_action .TransitionMenuKeyAction = menu_key_action .TransitionNavigKeys = nav_keys End With With ActiveSheet .TransitionExpEval = trans_eval .TransitionFormEntry = trans_entry End With
OPTIONS.VIEW(formula, status, notes, show_info, object_num, page_breaks, formulas, gridlines, color_num, headers, display_outline, zeros, hor_scroll, vert_scroll, sheet_tabs)	With Application .DisplayFormulaBar = formula .DisplayStatusBar = status .DisplayNoteIndicator = notes .DisplayInfoWindow = show_info End With ActiveWorkbook.DisplayDrawingObjects = object_num ActiveSheet.DisplayAutomaticPageBreaks = page_breaks With ActiveWindow .DisplayFormulas = formulas .DisplayGridlines = gridlines .GridlineColorIndex = color_num .DisplayHeadings = headers .DisplayOutline = display_outline .DisplayZeros = zeros .DisplayHorizontalScrollBar = hor_scroll .DisplayVerticalScrollBar = vert_scroll .DisplayWorkbookTabs = sheet_tabs End With
OUTLINE(auto_styles, row_dir, col_dir)	With ActiveSheet.Outline .AutomaticStyles = auto_styles .SummaryRow = row_dir .SummaryColumn = col_dir End With
改变分级显示设置。

OUTLINE(, , , 1)	Selection.AutoOutline
用当前的分级显示设置创建一个分级显示。

OUTLINE(, , , 2)	Selection.ApplyOutlineStyles
对已有的分级显示选定区域应用分级显示式样。

OVERLAY(type_num, stack, 100, vary, overlap, drop, hilo, overlap%, cluster, angle, series_num, auto)	With ActiveChart.ChartGroups(2) .Type = type_num .SubType = 100 .VaryByCategories = vary .Overlap = overlap% .HasDropLines = drop .HasHiLoLines = hilo .FirstSliceAngle = angle End With
使用此函数仅为了和Microsoft Excel 2.2及其更早的版本向后兼容。某些参数不能对所有的图表类型都适用。stack,overlap,cluster,series_num和auto参数在Microsoft Excel 5.0及以后版本中无直接等价的参数。

P

PAGE.SETUP(head, foot, left, right, top, bot, hdng, grid, h_cntr, v_cntr, orient, paper_size, scale, pg_num, pg_order, bw_cells, quality, head_margin, foot_margin, notes, draft)	With ActiveSheet.PageSetup .LeftHeader = head .CenterHeader = head .RightHeader = head . = foot .CenterFooter = foot .RightFooter = foot .LeftMargin = Application.InchesToPoints(left) .RightMargin = Application.InchesToPoints(right) .TopMargin = Application.InchesToPoints(top) .BottomMargin = Application.InchesToPoints(bot) .PrintHeadings = hdng .PrintGridlines = grid .CenterHorizontally = h_cntr .CenterVertically = v_cntr .Orientation = orient .PaperSize = paper_size If scale = True Then .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 ElseIf IsArray(scale) Then .Zoom = False If IsError(scale(1)) Then .FitToPagesWide = False Else .FitToPagesWide = scale(1) End If If IsError(scale(2)) Then .FitToPagesTall = False Else .FitToPagesWide = scale(2) End If Else .Zoom = scale End If .FirstPageNumber = pg_num .Order = pg_order .BlackAndWhite = bw_cells .PrintQuality = quality .HeaderMargin = _ Application.InchesToPoints(head_margin) .FooterMargin = _ Application.InchesToPoints(foot_margin) .PrintNotes = notes .Draft = draft End With
控制工作表和宏表的页面设置。在Visual Basic中head和 foot 参数被分成独立的left，center和right格式字符串。同时也必须注意它要求比例参数的转换。

PAGE.SETUP(head, foot, left, right, top, bot, size, h_cntr, v_cntr, orient, paper_size, scale, pg_num, bw_chart, quality, head_margin, foot_margin, draft)	With ActiveSheet.PageSetup .LeftHeader = head_margin .CenterHeader = head_margin .RightHeader = head_margin .LeftFooter = foot_margin .CenterFooter = foot_margin .RightFooter = foot_margin .LeftMargin = Application.InchesToPoints(left) .RightMargin = Application.InchesToPoints(right) .TopMargin = Application.InchesToPoints(top) .BottomMargin = Application.InchesToPoints(bot) .ChartSize = paper_size .CenterHorizontally = h_cntr .CenterVertically = v_cntr .Orientation = orient .PaperSize = paper_size .Zoom = scale .FirstPageNumber = pg_num .BlackAndWhite = bw_chart .PrintQuality = quality .HeaderMargin = _ Application.InchesToPoints(head_margin) .FooterMargin =  _ Application.InchesToPoints(foot_margin) .Draft = draft End With
控制图表的页面设置。在 Visual Basic 中，head 和 foot 参数被分成为独立的 left，center 和 right 格式字符串。

PAGE.SETUP(head, foot, left, right, top, bot, orient, paper_size, scale, quality, head_margin, foot_margin, pg_num)	With ActiveSheet.PageSetup .LeftHeader = head .CenterHeader = head .RightHeader = head .LeftFooter = foot .CenterFooter = foot .RightFooter = foot .LeftMargin = Application.InchesToPoints(left) .RightMargin = Application.InchesToPoints(right) .TopMargin = Application.InchesToPoints(top) .BottomMargin = Application.InchesToPoints(bot) .Orientation = orient .PaperSize = paper_size .Zoom = scale .PrintQuality = quality .HeaderMargin = _ Application.InchesToPoints(head_margin) .FooterMargin =  _ Application.InchesToPoints(foot_margin) .FirstPageNumber = pg_num End With
控制 Visual Basic 模块的页面设置。在 Visual Basic 中，head 和 foot 参数被分成独立的 left，center 和 right 格式字符串。

PARSE(parse_text, destination_ref)	Selection.Parse parseLine := parse_text, _ destination := destination_ref
PASTE(to_reference)	ActiveSheet.Paste destination := to_reference
在一工作表或图表上粘贴数据。如果某一图表为活动状态，则用 ActiveChart 属性取代 ActiveSheet 属性并省略 destination 参数。注意， Paste 方法依据当前选定区域而定。

PASTE( )	Selection.Paste
在所选定的图片图表上的点或系列位置粘贴某一图像。

PASTE( )	ActiveChart.Paste
在活动图表上粘贴一个完整的图表。

PASTE.LINK( )	ActiveSheet.Paste link := True
与被粘贴的数据源建立链接。

PASTE.PICTURE( )	ActiveSheet.Pictures.Paste
在剪贴板上粘贴一数据图片。如果活动表为一图表，则用 ActiveChart 属性取代 ActiveSheet 属性。

PASTE.PICTURE.LINK( )	ActiveSheet.Pictures.Paste link := True
在剪贴板上粘贴一幅与数据源链接的图片。如果活动表个为一图表，则用 ActiveChart 属性取代 ActiveSheet 属性。

PASTE.SPECIAL(paste_num, operation_num, skip_blanks, transpose)	Selection.PasteSpecial paste := paste_num, _ operation := operation_num, skipBlanks := skip_blanks, _ transpose := transpose
粘贴工作表或宏表区域数据。

PASTE.SPECIAL(rowcol, titles, categories, replace, series)	ActiveChart.SeriesCollection.Paste rowcol := rowcol, _ seriesLabels := titles, categoryLabels := categories, _ replace := replace, newSeries := series
在一图表上粘贴数据点或数据系列信息。

PASTE.SPECIAL(paste_num)	ActiveChart.Paste type := paste_num
在一图表上粘贴图表信息。

PASTE.SPECIAL(format_text, pastelink_logical, display_icon_logical, icon_file, icon_number, icon_label)	ActiveSheet.PasteSpecial format := format_text, _ link := pastelink_logical, _ displayAsIcon := display_icon_logical, _ iconFileName := icon_file, iconIndex := icon_number, _ iconLabel := icon_label
粘贴来自另一应用程序的数据。

PASTE.TOOL(bar_id, position)	Toolbars(bar_id).ToolbarButtons(position).PasteFace
PATTERNS(apattern, afore, aback, TRUE)	With Selection.Interior If apattern = 0 Then .ColorIndex = xlNone Else .ColorIndex = aback .Pattern = apattern .PatternColorIndex = afore End If End With
语法 1: 为所选定的区域设置图案或颜色信息。如果指示Microsoft Excel4.0 兼容方式的 newui 参数为 FALSE，则表示 Visual Basic 没有直接等价的函数。

PATTERNS(lauto, lstyle, lcolor, lwt, hwidth, hlength, htype)	With Selection.Border If lauto = 1 Then .LineStyle = xlAutomatic ElseIf lauto = 2 Then .LineStyle = xlNone Else .LineStyle = lstyle .ColorIndex = lcolor .Weight = lwt End If End With With Selection .ArrowHeadWidth = hwidth .ArrowHeadStyle = htype .ArrowHeadLength = hlength End With
语法 2: 为位于工作表和图表上的直线和箭头设置颜色和线条式样信息。

PATTERNS(bauto, bstyle, bcolor, bwt, shadow, aauto, apattern, afore, aback, rounded, TRUE)	With Selection.Border If bauto = 1 Then .LineStyle = xlAutomatic ElseIf bauto = 2 Then .LineStyle = xlNone Else .LineStyle = bstyle .ColorIndex = bcolor .Weight = bwt End If End With Selection.Shadow = shadow With Selection.Interior If aauto = 1 Then .Pattern = xlAutomatic ElseIf aauto = 2 Then .Pattern = xlNone Else .ColorIndex = aback .Pattern = apattern .PatternColorIndex = afore End If End With Selection.RoundedCorners = rounded
语法 3:为位于工作表和图表上的实心图形对象设置图案和边框线信息。如果指示 Microsoft Excel 4.0兼容方式的 newui 参数为 FALSE，则 Visual Basic 中没有直接等价的函数。

PATTERNS(bauto, bstyle, bcolor, bwt, shadow, aauto, apattern, afore, aback, invert, apply, TRUE)	With Selection.Border If bauto = 1 Then .LineStyle = xlAutomatic ElseIf bauto = 2 Then .LineStyle = xlNone Else .LineStyle = bstyle .ColorIndex = bcolor .Weight = bwt End If End With Selection.Shadow = shadow With Selection.Interior If aauto = 1 Then .Pattern = xlAutomatic ElseIf aauto = 2 Then .Pattern = xlNone Else .ColorIndex = aback .Pattern = apattern .PatternColorIndex = afore End If End With Selection.InvertIfNegative = invert
语法 4:为图表的条，柱，面积和文字标记设置图案和边框线信息。如果指示 Microsoft Excel 4.0 兼容方式的 newfill 参数为 FALSE，则 Visual Basic 中 apply 参数没有直接等价的函数。

PATTERNS(lauto, lstyle, lcolor, lwt, tmajor, tminor, tlabel)	With Selection.Border If bauto = 1 Then .LineStyle = xlAutomatic ElseIf bauto = 2 Then .LineStyle = xlNone Else .LineStyle = bstyle .ColorIndex = bcolor .Weight = bwt End If End With With Selection .MajorTickMark = tmajor .MinorTickMark = tminor .TickLabelPosition = tlabel End With
语法 5:为图表坐标轴设置边框线和式样信息。

PATTERNS(lauto, lstyle, lcolor, lwt, apply, smooth)	With Selection.Border If lauto = 1 Then .LineStyle = xlAutomatic ElseIf lauto = 2 Then .LineStyle = xlNone Else .LineStyle = lstyle .ColorIndex = lcolor .Weight = lwt End If End With Selection.Smooth = smooth
语法 6:为图表线条而不是图表数据线设置边框线信息。在 Visual Basic 中 apply 参数没有直接等价的参数。

PATTERNS(lauto, lstyle, lcolor, lwt, mauto, mstyle, mfore, mback, apply, smooth)	With Selection.Border If lauto = 1 Then .LineStyle = xlAutomatic ElseIf lauto = 2 Then .LineStyle = xlNone Else .LineStyle = lstyle .ColorIndex = lcolor .Weight = lwt End If End With With Selection If mauto = 1 Then .MarkerStyle = xlAutomatic ElseIf mauto = 2 Then .MarkerStyle = xlNone Else .MarkerStyle = mstyle .MarkerForegroundColorIndex = mfore .MarkerBackgroundColorIndex = mback End If .Smooth = smooth End With
语法 7: 为图表数据线设置边框线信息。在 Visual Baisc 中 apply 参数没有直接等价的参数。

PATTERNS(type, picture_units, apply)	With Selection .PictureType = type .PictureUnit = picture_units End With
语法 8: 为图片图表数据标记设置图片图表信息。在 Visual Baisc 中 apply 参数没有直接等价的参数。

PAUSE(no_tool)
没有直接等价的函数。用一断点或 Stop 语句中断执行并显示调试窗口，一旦中断运行，在窗口的另一屏检查并设置变量。

PIVOT.ADD.DATA(name, pivot_field_name, new_name, position, function, calculation, base_field, base_item, format_text)	With ActiveSheet.PivotTables(name). _ PivotFields(pivot_field_name) .Orientation = xlDataField .Name = new_name .Position = position .Function = function .Calculation = calculation .BaseField = base_field .BaseItem = base_item .NumberFormat = format_text End With
如果省略 name 参数，则用 ActiveCell.PivotTable 代替 ActiveSheet.PivotTables。对以后所有含数据透视表名称参数的数据透视表函数均可进行同样的替换。

PIVOT.ADD.FIELDS(name, row_array, column_array, page_array, add_to_table)	ActiveSheet.PivotTables(name).AddFields _ rowFields := row_array, columnFields := column_array, _ pageFields := page_array, addToTable := add_to_table
PIVOT.FIELD(name, pivot_field_name, orientation, position)	With ActiveSheet.PivotTables(name). _ PivotFields(pivot_field_name) .Orientation = orientation .Position = position End With
在一指定的数据透视表上透视指定的字段。

PIVOT.FIELD(, , orientation, position)	With ActiveCell.PivotField .Orientation = orientation .Position = position End With
透视含有活动单元格的字段。

PIVOT.FIELD.GROUP(start, end, by, periods)	Selection.Group start := start, end := end, by := by, _ periods := periods
在一数据透视字段内创建群组。在 Visual Basic 中 periods 参数是一指明要建立组的时间间隔的逻辑值数组。Microsoft Excel 4.0 宏的 period 参数必须从一总和值转换为一个逻辑值数组。

PIVOT.FIELD.PROPERTIES(name, pivot_field_name, new_name, orientation, function, formats)	With ActiveSheet.PivotTables(name). _ PivotFields(pivot_field_name) .Name = new_name .Orientation = orientation .Subtotals = function For x = 1 To UBound(formats, 1) .PivotItems(formats(x, 1)).Visible = formats(x, 2) Next End With
改变一数据透视表页眉字段的属性。在 Visual Baisc 中，Subtotals 的属性是指明计算字段的部分和的逻辑值的数组。PIVOT.FIELD.PROPERTIES 函数参数必须从一总和数转换成一个逻辑值数组。Formats 参数是一指明字段中各项的可见性的数组。Visual Baisc 要求数据透视项的属性必须在每个字段中分别设置。实例根据数组的内容迭代了设置 Visible 属性的数组。

PIVOT.FIELD.PROPERTIES(name, pivot_field_name, new_name, orientation, function, formats)	With ActiveSheet.PivotTables(name). _ PivotFields(pivot_field_name) .Name = new_name .Orientation = orientation .Function = function .Calculation = formats(1) .BaseField = formats(2) .BaseItem = formats(3) .NumberFormat = formats(4) End With
改变一数据透视表数据字段的属性。在 Visual Basic 中function 参数从一数组转换为四个不同的属性。

PIVOT.FIELD.UNGROUP( )	Selection.Ungroup
PIVOT.ITEM(name, pivot_field_name, pivot_item_name, position)	ActiveSheet.PivotTables(name). _ PivotFields(pivot_field_name). _ PivotItems(pivot_item_name).Position = position
在数据透视表上移动指定的项。

PIVOT.ITEM(, , , position)	ActiveCell.PivotItem.Position = position
移动含有活动单元格的数据透视项。

PIVOT.ITEM.PROPERTIES(name, pivot_field_name, pivot_item_name, new_name, position, show, TRUE)	With ActiveSheet.PivotTables(name). _ PivotFields(pivot_field_name). _ PivotItems(pivot_item_name) .Name = new_name .Position = position .Visible = show End With ActiveSheet.PivotTables(name).PivotFields(pivot_field_name). _ CurrentPage = new_name
在一页眉字段中改变一数据透视项的名字和属性,并使该项在分页字段中成为活动项。

PIVOT.ITEM.PROPERTIES(name, pivot_field_name, pivot_item_name, , position, show, TRUE)	With ActiveSheet.PivotTables(name). _ PivotFields(pivot_field_name). _ PivotItems(pivot_item_name) .Position = position .Visible = show End With ActiveSheet.PivotTables(name). _ PivotFields(pivot_field_name).CurrentPage = _ pivot_item_name
在一页眉字段中改变一数据透视项的属性,并使该项在分页字段中成为活动项。

PIVOT.ITEM.PROPERTIES(name, pivot_field_name, pivot_item_name, new_name, position, show, FALSE)	With ActiveSheet.PivotTables(name). _ PivotFields(pivot_field_name). _ PivotItems(pivot_item_name) .Name = new_name .Position = position .Visible = show End With
改变某一页眉字段中的某一数据透视项的属性，而不改变分页字段中的活动项。

PIVOT.REFRESH(name)	ActiveSheet.PivotTables(name).RefreshTable
PIVOT.SHOW.PAGES(name, page_field)	ActiveSheet.PivotTables(name).ShowPages _ pageField := page_field
PIVOT.TABLE.WIZARD(type, source, destination, name, row_grand, col_grand, save_data, apply_auto_format, autopage)	ActiveSheet.PivotTableWizard sourceType := type, _ SourceData := source, tableDestination := destination, _ tableName := name, rowGrand := row_grand, _ columnGrand := col_grand, saveData := save_data, _ hasAutoFormat := apply_auto_format, _ autoPage := autopage
POKE(channel_num, item_text, data_ref)	Application.DDEPoke channel := channel_num, _ item := item_text, data_ref := data_ref
PRECISION(logical)	ActiveWorkbook.PrecisionAsDisplayed = logical
PREFERRED( )	ActiveChart.AutoFormat gallery := xlDefaultAutoFormat
PRESS.TOOL(bar_id, position, down)	Toolbars(bar_id).ToolbarButtons(position).Pushed = down
PRINT(1, , , copies, , preview, , , , , , 1)	Selection.PrintOut copies := copies, preview := preview
打印选定区域的所有页。

PRINT(2, from, to, copies, , preview, , , , , , 1)	Selection.PrintOut from := from, to := to, copies := copies, _ preview := preview
打印选定区域的指定页。

PRINT(1, , , copies, draft, preview, print_what, color, feed, quality, y_resolution, 1)	' Save the page setup variables to restore after override With ActiveSheet.PageSetup saveDraft = .Draft savePrintNotes = .PrintNotes ' Override the page setup settings .Draft = draft If print_what = 3 Then .PrintNotes = True Else .PrintNotes = False End If End With ' Print with overridden settings Selection.PrintOut copies := copies, preview := preview ' Restore page setup settings With ActiveSheet.PageSetup .Draft = saveDraft .PrintNotes = savePrintNotes End With
打印选定区域的所有页，暂时不考虑“页面设置”的“草稿”和“附注”选项。color,feed,quality 和y_resolution 参数在 Visaul Basic 中没有直接等价的参数。print_what 值为 2 时,表示仅打印附注,这在 Visual Basic 中也没有等价参数。

PRINT(1, , , copies, draft, preview, , , , , , 2)	ActiveWindow.SelectedSheets.PrintOut copies := copies, _ preview := preview
打印选定工作表的所有页。

PRINT(1, , , copies, draft, preview, , , , , , 2)	Windows("Info").PrintOut copies := copies, preview := preview
如果信息窗口为活动窗口，打印信息窗口的所有页。

PRINT(1, , , copies, , preview, , , , , , 3)	ActiveWorkbook.PrintOut copies := copies, preview := preview
打印活动工作簿的所有页。

PRINT.PREVIEW( )	ActiveSheet.PrintPreview
预览活动工作表的打印效果。

PRINT.PREVIEW( )	Windows("Info").PrintPreview
如果信息窗口为活动窗口，则预览信息窗口所有页的打印效果。

PRINTER.SETUP(printer_text)	Application.ActivePrinter = printer_text
PROMOTE(1)	Selection.Rows.Ungroup
取消对选定区域中行的分组，参数 1 为任选项。

PROMOTE(2)	Selection.Columns.Ungroup
取消对选定区域中列的分组。

PROTECT.DOCUMENT(contents, windows, password, objects, scenarios)	ActiveSheet.Protect password := password, _ drawingObjects := objects, contents := contents, _ scenarios := scenarios
保护活动表。windows参数在Microsoft Ecxcel 5.0及以后版本中没有直接等价的参数。

PROTECT.DOCUMENT(FALSE, windows, password, FALSE, FALSE)	ActiveSheet.Unprotect password := password
取消保护活动工作表。windows 参数在 Microsoft Excel 5.0 及以后版本中没有直接等价的参数。

PUSHBUTTON.PROPERTIES( default_logical, cancel_logical, dismiss_logical, help_logical, accel_text, accel_text2)	With Selection .DefaultButton = default_logical .CancelButton = cancel_logical .DismissButton = dismiss_logical .HelpButton = help_logical .Accelerator = accel_text .PhoneticAccelerator = accel_text2 End With
Q

QUIT( )	Application.Quit


宏函数和宏命令的Visual Basic等价形式

R

REFTEXT(reference, TRUE)	Range.Address referenceStyle := xlA1
无直接等价形式。在 Visual Basic 中 Range 对象比 REFTEXT 函数更为灵活，不要求将引用作为文本进行操作。此例以文字形式返回绝对的 A1 式样引用的区域地址（ REFTEXT 函数总是保存原始引用的绝对或相对属性）。

REFTEXT(reference, FALSE)	Range.Address referenceStyle := xlR1C1
无直接等价形式。此例以文字形式返回 R1C1 式样绝对引用的区域地址。

REGISTER("SAMPLE.DLL", "MyFunction", "AIC")	Declare Function MyFunction Lib "SAMPLE.DLL" _ (ByVal a As Integer, ByVal s As String) As Boolean
注册一个在 DLL 或代码资源中的函数，使之可被 Microsoft Excel 4.0 宏语言调用。在 Visual Basic 中， Declare 语句注册 DLL 或代码资源函数。此例说明了在 SAMPLE.DLL 中一独立函数的注册，该函数返回布尔值，并带有一整数和一个字符串参数。

REGISTER 函数的其他参数在 Visual Basic 中没有直接的等价参数。这些参数决定　该函数在函数指南中的出现形式，以及该函数能否进入某一工作表或宏表。可通过使用 ExecuteExcel4Macro 方法运行 REGISTER 命令，在某一工作表上产生一个 DLL 函数。

REGISTER(module_text)	Application.RegisterXLL filename := module_text
在某一 DLL 或代码资源中自动注册所有工作表和 Microsoft Excel5.0 宏语言函数。

RELREF(reference, rel_to_ref)	Range(reference).Address rowAbsolute := False, _ columnAbsolute := False, referenceStyle := xlR1C1, _ relativeTo := Range(rel_to_ref)
REMOVE.LIST.ITEM(index_num, count_num)	Selection.RemoveItem index := index_num, count := count_num
REMOVE.PAGE.BREAK( )	ActiveCell.PageBreak = xlNone
取消活动单元格的左侧或上部的人工分页符。

REMOVE.PAGE.BREAK( )	Cells.PageBreak = xlNone
如果选定所有的单元格，则取消整个表上去掉手动的分页线。

RENAME.COMMAND(bar_num, menu, command, name_text)	Menubars(bar_num).Menus(menu). _ MenuItems(command).Caption = name_text
在菜单上更改命令名。

RENAME.COMMAND(bar_num, menu, command, name_text, position)	Menubars(bar_num).Menus(menu). _ MenuItems(command). _ MenuItems(position).Caption = name_text
在子菜单上更改命令名。

RENAME.COMMAND(bar_num, menu, command, name_text)	ShortcutMenus(shortcut_menu). _ MenuItems(command).Caption = name_text
在某一快捷菜单上更改命令名。在 Visual Basic 中可使用带有适当常量的 ShortcutMenus 方法来访问快捷菜单。

RENAME.OBJECT(new_name)	Selection.Name = new_name
REPLACE.FONT(font_num, name_text, size_num, bold, italic, underline, strike, color, outline, shadow)
此函数只是为了和 Microsoft Excel 早期版本的宏兼容。在 Visual Baisc 中它无直接等价形式。参见 FONT.PROPERTIES 函数关于改变字体的信息。

REQUEST(channel_num, item_text)	Application.DDERequest channel := channel_num, _ item := item_text
RESET.TOOL(bar_id, position)	Toolbars(bar_id).ToolbarButtons(position).Reset
RESET.TOOLBAR(bar_id)	Toolbar(bar_id).Reset
RESTART(level_num)
无直接等价形式。在 Visual Basic 中可以用 GoTo 语句显式跳转到某一指定的代码段，但是不能任意地从一被调用的过程返回某特定的调用者。

RESULT(type_num)	Function MyProcedure () As String
指明某一函数的返回类型。在 Visual Basic 中，函数的结果作为函数的一部分已在函数开头部分给予了说明。此例为返回 String 型值的过程。

如果 type_num 参数有不止一种返回类型 ( 例如，使用 type_num5 指定数(1)或逻辑值(4)为返回值 ) 在 Visual Basic 中必须指定返回类型为 Variant 。

RESUME(type_num)
无直接等价形式。不能暂停执行 Visual Basic 宏。为帮助调试宏， Visual Baisc 提供调试窗口和断点或监视点。

RETURN(value)	Function MyFunction () ' Often a function returns before reaching the normal ' end of the function, for example after an error occurs. If AnErrorOccurred Then MyFunction = value Exit Function End If ' No Exit Function is necessary at the end of the function ' because the End Function statement implies a return MyFunction = value End Function
从一子程序或函数返回，并指定返回值。在 Visual Basic 中，一般是通过对函数名赋返回值的方法来指定某一函数的返回值。当一函数执行到函数尾 End Function 语句，或执行一个 Exit Function 语句时，函数返回。此例显示了返回值的赋值方法，并说明了从一函数返回的两种形式的用法。

ROUTE.DOCUMENT( )	ActiveWorkbook.Route
ROUTING.SLIP(recipients,subject, message, route_num, return_logical, status_logical)	ActiveWorkbook.HasRoutingSlip = True With ActiveWorkbook.RoutingSlip .Recipients = recipients .Subject = subject .Message = message .Delivery = route_num .ReturnWhenDone = return_logical .TrackStatus = status_logical End With
ROW.HEIGHT(, reference, , 1)	Rows(reference).Hidden = True
隐藏行。如果隐藏选定区域，则用 Selection.EnterRow 代替 Rows 方法。

ROW.HEIGHT(, reference, , 2)	Rows(reference).Hidden = False
取消隐藏行。

ROW.HEIGHT(, reference, , 3)	Rows(reference).AutoFit
根据每一行中最高行的高度设定行高。

ROW.HEIGHT(height_num, reference)	Rows(reference).RowHeight = height_num
设置行高为一指定的值。

ROW.HEIGHT(, reference, TRUE)	Rows(reference).RowHeight = ActiveSheet.StandardHeight
设置行高为标准行高。

RUN(reference, step)	Application.Run macro := Range(reference)
运行一特定的宏。 Visual Basic 没有等价于 step 的参数。注意， Visual Basic 的 Run 方法可以传递参数并返回被调用宏的值。要从 Visual Baisc 中运行一个 Microsoft Excel 4.0 的宏，必须使用 Application 对象的 ExecuteExcel4Macro 方法。

RUN(1)	ActiveWorkbook.RunAutoMacros which := xlAutoOpen
RUN(2)	ActiveWorkbook.RunAutoMacros which := xlAutoClose
RUN(3)	ActiveWorkbook.RunAutoMacros which := xlAutoActivate
RUN(4)	ActiveWorkbook.RunAutoMacros which := xlAutoDeactivate


宏函数和宏命令的Visual Basic等价形式

S

SAVE( )	ActiveWorkbook.Save
SAVE.AS(document_text, type_num, prot_pwd, backup, write_res_pwd, read_only_rec)	ActiveWorkbook.SaveAs filename := document_text, _ fileFormat := type_num, password := prot_pwd, _ writeResPassword := write_res_pwd, _ readOnlyRecommended := read_only_rec, _ createBackup := backup
SAVE.AS(, 0)	ActiveWorkbook.Saved = True
改变工作簿设置值，使 Microsoft Excel 在工作簿关闭时不再提示保存它。

SAVE.COPY.AS(document_text)	ActiveWorkbook.SaveCopyAs filename := document_text
SAVE.DIALOG(init_filename, title, button_text, file_filter, filter_index)	Application.GetSaveAsFilename initialFilename := init_filename, fileFilter := file_filter, _ filterIndex := filter_index, title := title, _ buttonText := button_text
SAVE.TOOLBAR(bar_id, filename)	ExecuteExcel4Macro("SAVE.TOOLBAR(...)")
无直接等价形式。

SAVE.WORKBOOK(document_text, type_num, prot_pwd, backup, write_res_pwd, read_only_rec)	ActiveWorkbook.SaveAs filename := document_text, _ fileFormat := type_num, password := prot_pwd, _ writeResPassword := write_res_pwd, _ readOnlyRecommended := read_only_rec, _ createBackup := backup
SAVE.WORKSPACE(name_text)	Application.Save filename := name_text
SCALE(cross, cat_labels, cat_marks, between, max, reverse)	With ActiveChart.Axes(xlCategory, xlPrimary) If max = True Then .Crosses = xlMaximum Else .CrossesAt = cross End If .TickLabelSpacing = cat_labels .TickMarkSpacing = cat_marks .ReversePlotOrder = reverse .AxisBetweenCategories = between End With
语法 1 : 控制二维图表上分类坐标轴的设置。如果选定次坐标轴，用 xlSecondary 取代 xlPrimary。

SCALE(min_num, max_num, major, minor, cross, logarithmic, reverse, max)	With ActiveChart.Axes(xlValue, xlPrimary) If min_num = True Then .MinimumScaleIsAuto = True Else .MinimumScale = min_num End If If max_num = True Then .MaximumScaleIsAuto = True Else .MaximumScale = max_num End If If major = True Then .MajorUnitIsAuto = True Else .MajorUnit = major End If If minor = True Then .MinorUnitIsAuto = True Else .MinorUnit = minor End If If max = True Then .Crosses = xlMaximum Else If cross = True Then .Crosses = xlAutomatic Else .Crosses = xlCustom .CrossesAt = cross End If End If .ScaleType = logarithmic .ReversePlotOrder = reverse End With
语法 2 : 控制二维图表上分类坐标轴设置。如选定次坐标轴，用 xlSecondary 取代 xlPrimary。

SCALE(cat_labels, cat_marks, reverse, between)	With ActiveChart.Axes(xlCategory) .TickLabelSpacing = cat_labels .TickMarkSpacing = cat_marks .ReversePlotOrder = reverse .AxisBetweenCategories = between End With
语法 3 : 控制三维图表上分类坐标轴设置。

SCALE(series_labels, series_marks, reverse)	With ActiveChart.Axes(xlSeries) .TickLabelSpacing = series_labels .TickMarkSpacing = series_marks .ReversePlotOrder = reverse End With
语法 4 : 控制三维图表上系列坐标轴的设置。

SCALE(min_num, max_num, major, minor, cross, logarithmic, reverse, min)	With ActiveChart.Axes(xlValue) If min_num = True Then .MinimumScaleIsAuto = True Else .MinimumScale = min_num End If If max_num = True Then .MaximumScaleIsAuto = True Else .MaximumScale = max_num End If If major = True Then .MajorUnitIsAuto = True Else .MajorUnit = major End If If minor = True Then .MinorUnitIsAuto = True Else .MinorUnit = minor End If If min = True Then .Crosses = xlMinimum Else If cross = True Then .Crosses = xlAutomatic Else .Crosses = xlCustom .CrossesAt = cross End If End If .ScaleType = logarithmic .ReversePlotOrder = reverse End With
语法 5 : 控制三维图表上数值(Y)轴的设置。

SCENARIO.ADD(scen_name, value_array, changing_ref, scen_comment, locked, hidden)	ActiveSheet.Scenarios.Add name := scen_name, _ changingCells := changing_ref, values := value_array, _ comment := scen_comment, locked := locked, _ hidden := hidden
SCENARIO.CELLS(changing_ref)	For Each scen In ActiveSheet.Scenarios scen.ChangeScenario changingCells := changing_ref Next
无直接等价形式。在 Microsoft Excel 5.0 及以后版本的方案中可以有可变单元格的不同设置，但是，SCENARIO.CELLS 命令假定只有一种可变单元格的设置。为模拟只有一种可变单元格的设置，此例用循环设置了所有的方案的可变单元格。

SCENARIO.DELETE(scen_name)	ActiveSheet.Scenarios(scen_name).Delete
SCENARIO.EDIT(scen_name, new_scenname, value_array, changing_ref, scen_comment, locked, hidden)	ActiveSheet.Scenarios.ChangeScenario _ changingCells := changing_ref, values := value_array With ActiveSheet.Scenarios(scen_name) .Name = new_scenname .Comment = scen_comment .Locked = locked .Hidden = hidden End With
SCENARIO.GET(1)	Dim result() As String count = 0 For Each scen In ActiveSheet.Scenarios count = count + 1 ReDim Preserve result(1 To count) result(count) = scen.Name Next
返回在当前工作表中定义的由方案名字组成的数组。Visual Basic 用 Scenarios 集合来存取方案，并允许直接迭代。此例通过使用 Scenarios 集合来创建由方案名字组成的数组。

SCENARIO.GET(2, scen_name)	ActiveSheet.Scenarios(scen_name).ChangingCells
SCENARIO.GET(3)	ExecuteExcel4Macro("SCENARIO.GET(3)")
无直接等价形式。

SCENARIO.GET(4, scen_name)	ActiveSheet.Scenarios(scen_name).Values
SCENARIO.GET(5, scen_name)	ActiveSheet.Scenarios(scen_name).Comment
SCENARIO.GET(6, scen_name)	ActiveSheet.Scenarios(scen_name).Locked
SCENARIO.GET(7, scen_name)	ActiveSheet.Scenarios(scen_name).Hidden
SCENARIO.GET(8, scen_name)	ExecuteExcel4Macro("SCENARIO.GET(8, scen_name)")
无直接等价形式。

SCENARIO.MERGE(source_file)	ActiveSheet.Scenarios.Merge source := source_file
SCENARIO.SHOW(scen_name)	ActiveSheet.Scenarios(scen_name).Show
SCENARIO.SHOW.NEXT( )	ExecuteExcel4Macro("SCENARIO.SHOW.NEXT()")
无直接等价形式。在 Microsoft Excel 5.0及以后版本中“方案”对话框里没有“下一个方案”按钮，因此 Visual Basic 没有 Next 属性。若要在 Visual Baisc 中重建 SCENARIO.SHOW.NEXT 的功能，可显示指定方案，并使用计数器记录当前可见方案号，通过增加计数器的记数值来显示下一方案。

SCENARIO.SUMMARY(result_ref, report_type)	ActiveSheet.Scenarios.CreateSummary _ reportType := report_type, resultCells := result_ref
SCROLLBAR.PROPERTIES(value, min, max, inc, page, link, 3d_shading)	With Selection .Value = value .Min = min .Max = max .SmallChange = inc .LargeChange = page .LinkedCell = link .Display3DShading = 3d_shading End With
SELECT(selection, active_cell)	Range(selection).Select Range(active_cell).Activate
选定单元格区域或改变活动单元格。

SELECT("Oval 1", replace)	ActiveSheet.DrawingObjects("Oval 1").Select replace := replace
在一工作表或图表上选定图形对象。如果对象在图表上，用 ActiveChart 属性代替 ActiveSheet 属性。

SELECT("Oval 1, Rectangle 2", replace)	ActiveSheet.DrawingObjects( _ Array("Oval 1", "Rectangle 2")).Select replace := replace
在一工作表或图表上选定多个图形对象。如果对象在图表上，用 ActiveChart 属性代替 ActiveSheet属性。

SELECT(item_text, single_point)
在一图表上选定图项。在图表上选定图项的语法变化很灵活。要查看在一图表上选定一特定图项的方法在 Visual Basic中的等价用法，可在“工具”菜单上使用“记录宏”命令。

SELECT.ALL( )	Set curSheet = ActiveSheet ActiveWorkbook.Sheets.Select curSheet.Activate
SELECT.CHART( )	ActiveChart.ChartArea.Select
SELECT.END(direction_num)	Selection.End(direction_num).Select
SELECT.LAST.CELL( )	ActiveCell.SpecialCells(xlLastCell).Select
SELECT.LIST.ITEM(index_num)	Selection.Value = index_num
在单选列表框中选定项。

SELECT.LIST.ITEM(index_num, selected_logical)	Selection.Selected(index_num) = selected_logical
在复选列表框中选定或取消选定项。

SELECT.PLOT.AREA( )	ActiveChart.PlotArea.Select
SELECT.SPECIAL(1)	Selection.SpecialCells(xlNotes).Select
SELECT.SPECIAL(2, value_type)	Selection.SpecialCells(xlFormulas, value_type).Select
SELECT.SPECIAL(3, value_type)	Selection.SpecialCells(xlFormulas, value_type).Select
SELECT.SPECIAL(4)	Selection.SpecialCells(xlBlanks).Select
SELECT.SPECIAL(5)	Selection.CurrentRegion.Select
SELECT.SPECIAL(6)	Selection.CurrentArray.Select
SELECT.SPECIAL(7)	Selection.RowDifferences(ActiveCell).Select
SELECT.SPECIAL(8)	Selection.ColumnDifferences(ActiveCell).Select
SELECT.SPECIAL(9, , 1)	Selection.DirectPrecedents.Select
SELECT.SPECIAL(9, , 2)	Selection.Precedents.Select
SELECT.SPECIAL(10, , 1)	Selection.DirectDependents.Select
SELECT.SPECIAL(10, , 2)	Selection.Dependents.Select
SELECT.SPECIAL(11)	Selection.SpecialCells(xlLastCell).Select
SELECT.SPECIAL(12)	Selection.SpecialCells(xlVisible).Select
SELECT.SPECIAL(13)	ActiveSheet.DrawingObjects.Select
SELECTION( )	Selection
SEND.KEYS(key_text, wait_logical)	SendKeys key_text, wait_logical
SEND.MAIL(recipients, subject, return_receipt)	ActiveWorkbook.SendMail recipients := recipients, _ subject := subject, returnReceipt := return_receipt
SEND.TO.BACK( )	Selection.SendToBack
SERIES(name_ref, categories, values, plot_order)
无直接等价形式。SERIES 函数代表图表系列的公式，它不能装入某个宏表单元格。在 Visual Basic 中使用 SERIES 对象的 Name,Values,XValues 和 PlotOrder 属性以及 Axies 对象的 CategoryNames 属性。

SERIES.AXES(axis)	Selection.AxisGroup = axis
SERIES.ORDER(chart_num, old_series_num, new_series_num)	ActiveChart.ChartGroups(chart_num). _ SeriesCollection(old_series_num).PlotOrder = _ new_series_num
SERIES.X(x_ref)	Selection.XValues = x_ref
SERIES.Y(name_ref, y_ref)	With Selection .Name = name_ref .Values = y_ref End With
SET.CONTROL.VALUE(value)	Selection.Value = value
SET.CRITERIA( )	ExecuteExcel4Macro("SET.CRITERIA()")
无直接等价形式。在 Visual Basic 中 AdvancedFile 方法允许在任意区域内保存条件。而不要求明确地设置条件区域。

SET.DATABASE( )	ExecuteExcel4Macro("SET.DATABASE()")
无直接等价形式。在 Microsoft Excel 5.0 及以后版本中，利用数据库命令可自动搜索和选定数据库清单。

SET.DIALOG.DEFAULT(object_id_text)	ActiveDialog.DefaultButton = object_id_text
SET.DIALOG.FOCUS(object_id_text)	ActiveDialog.Focus = object_id_text
SET.EXTRACT( )	ExecuteExcel4Macro("SET.EXTRACT()")
无直接等价形式。在 Visual Baisc中 AdvancedFilter 方法允许在任意区域内包含提取区域。而不要求明确地设置提取区域。

SET.LIST.ITEM(text, index_num)	Selection.List(index_num) = text
SET.NAME(name_text, value)	Dim name_text name_text = value
当宏正在运行时给它定义临时名称。在 Visual Basic 中用一变量而不是名字来保存值。此例说明如何说明变量并给它赋值。只有当 Option Explicit 用于 Visual Basic 模块时，变量的说明才是必要的。

SET.PAGE.BREAK( )	ActiveCell.PageBreak = xlManual
SET.PREFERRED(format)	Application.SetDefaultChart formatName := format
给一自定义的自动套用格式的名字设置默认图表格式。

SET.PREFERRED("Built-in")	Application.SetDefaultChart formatName := xlBuiltIn
给一标准内部格式设置默认图表格式。

SET.PRINT.AREA( )	ActiveSheet.PageSetup.PrintArea = Selection.Address
设置与当前选定区域匹配的打印区域。

SET.PRINT.AREA(range)	ActiveSheet.PageSetup.PrintArea = range
设置指定区域为打印区域。

SET.PRINT.TITLES(titles_for_columns_ref, titles_for_rows_ref)	With ActiveSheet.PageSetup .PrintTitleColumns = titles_for_columns_ref .PrintTitleRows = titles_for_rows_ref End With
SET.UPDATE.STATUS(link_text, status, type_of_link)	ExecuteExcel4Macro("SET.UPDATE.STATUS(...)")
无直接等价形式。

SET.VALUE(reference, values)	myVariable = values
改变已定义的宏名字的值。在 Visual Basic 中，当一宏正在执行时，用一变量而不是名字来保存值。此例说明给一变量赋值的方法。

SHORT.MENUS(TRUE)	MenuBars(xlWorksheetShort).Activate
显示快捷菜单。无 Visual Basic 直接等价形式。这个命令用于和 Microsoft Excel 3.0 兼容。此例显示“快捷工作表”菜单栏。

SHOW.ACTIVE.CELL( )	ActiveCell.Activate
SHOW.BAR(bar_num)	MenuBars(bar_num).Activate
SHOW.CLIPBOARD( )	Application.DisplayClipboardWindow = True
SHOW.DETAIL(1, rowcol_num, expand)	Rows(rowcol_num).ShowDetail = expand
显示或隐藏分级显示行的明细数据。

SHOW.DETAIL(2, rowcol_num, expand)	Columns(rowcol_num).ShowDetail = expand
显示或隐藏分级显示列的明细数据。

SHOW.DETAIL(3, , expand, show_field)	ActiveCell.PivotTable.InnerDetail = show_field Selection.ShowDetail = expand
显示或隐藏数据透视表上某一区域的明细数据。

SHOW.DIALOG(dialog_sheet)	DialogSheets(dialog_sheet).Show
SHOW.INFO(logical)	Application.DisplayInfoWindow = logical
SHOW.LEVELS(row_level, col_level)	ActiveSheet.Outline.ShowLevels rowLevels := row_level, _ columnLevels = col_level
SHOW.TOOLBAR(bar_id, visible, dock, x_pos, y_pos, width, protect)	With Toolbars(bar_id) .Visible = visible .Position = dock .Left = x_pos .Top = y_pos .Width = width End With
设置一工具栏的属性。 protect 参数在 Visual Basic 中没有等价参数。

SHOW.TOOLBAR(0, , , , , , , tool_tips, large_buttons, color_buttons)	With Application .ShowToolTips = tool_tips .LargeButtons = large_buttons .ColorButtons = color_buttons End With
设置工具栏工作区的属性。

SORT(orientation, key1, order1, key2, order2, key3, order3, header, custom, case)	Selection.Sort key1 := key1, order1 := order1, _ key2 := key2, order2 := order2, _ key3 := key3, order3 := order3, _ header := header, orderCustom := custom, _ matchCase := case, orientation := orientation
语法 1：对一单元格区域进行排序。

SORT(orientation, key1, order1, type, custom)	Selection.Sort key1 := key1, order1 := order1, type := type _ orderCustom := custom, orientation := orientation
语法 2: 对一数据透视表进行排序。

SOUND.NOTE(cell_ref, FALSE)	Range(cell_ref).SoundNote.Record
通过显示“声音记录”对话框来记录声音。

SOUND.NOTE(cell_ref, TRUE)	Range(cell_ref).SoundNote.Delete
删除声音附注。

SOUND.NOTE(cell_ref, file_text, resource)	Range(cell_ref).SoundNote.Import filename := file_text _ resource := resource
从文件中输入声音附注。 resource 参数只用于 Microsoft Excel 中的 Macintosh。

SOUND.PLAY(cell_ref)	Range(cell_ref).SoundNote.Play
播放保存在单元格中的声音附注。如果省略 cell_ref ，用 ActiveCell 属性代替 Range(cell_ref)。

SOUND.PLAY(, file_text, resource)	ExecuteExcel4Macro("SOUND.PLAY(, file_text, resource)")
播放保存在文件中的声音。Visual Basic 无直接等价形式。

SPELLING(custom_dic, ignore_uppercase, always_suggest)	Selection.CheckSpelling customDictionary := custom_dic, _ ignoreUppercase := ignore_uppercase, _ alwaysSuggest := always_suggest
SPELLING.CHECK(word_text, custom_dic, ignore_uppercase)	Application.CheckSpelling word := word_text, _ customDictionary := custom_dic, _ ignoreUppercase := ignore_uppercase
SPLIT(col_split, row_split)	With ActiveWindow .SplitColumn = col_split .SplitRow = row_split End With
STANDARD.FONT(name_text, size_num, bold, italic, underline, strike, color, outline, shadow)
使用此函数是为了与 Microsoft Excel 早期版本的宏兼容。参见 DEFINE.STYLE 和 APPLY.STYLE 函数。

STANDARD.WIDTH(standard_num)	ActiveSheet.StandardWidth = standard_num
STEP( )	Stop
STYLE(bold, italic)
使用此函数是为了与 Microsoft Excel 早期版本的宏兼容，参见 FONT.PROPERTIES 函数。

SUBSCRIBE.TO(file_text, format_num)	Selection.SubscribeTo edition := file_text, format := format_num
SUBTOTAL.CREATE(at_change_in, function_num, total, replace, pagebreaks, summary_below)	Selection.Subtotal groupBy := at_change_in, _ function := function_num, totalList := total, _ replace := replace, pageBreaks := pagebreaks, _ summaryBelowData := summary_below
SUBTOTAL.REMOVE()	Selection.RemoveSubtotal
SUMMARY.INFO(title, subject, author, keywords, comments)	With ActiveWorkbook .Title = title .Subject = subject .Author = author .Keywords = keywords .Comments = comments End With


宏函数和宏命令的Visual Basic等价形式

T

TAB.ORDER()	Application.Dialogs(xlDialogTabOrder).Show
无直接等价形式。Dialogs 集合的 Show 方法弹出 Tab 键次序对话框，或者用 BringToFront 和 SendToBack 方法控制对话框中的 Tab 键次序。

TABLE(row_ref, column_ref)	Selection.Table rowInput := row_ref, columnInput := column_ref
TERMINATE(channel_num)	DDETerminate channel := channel_num
TEXT.BOX(add_text, , start_num, num_chars)	Selection.Characters(start_num, num_chars).Text = add_text
在选定文字框中用 add_text 代替 text。

TEXT.BOX(add_text, object_id_text, start_num, num_chars)	ActiveSheet.DrawingObjects(object_id_text). _ Characters(start_num, num_chars).Text = add_text
在被命名的文字框或按钮中用add_text代替text。

TEXT.TO.COLUMNS(destination_ref, data_type, text_delim, consecutive_delim, tab, semicolon, comma, space, other, other_char, field_info)	Selection.TextToColumns destination := destination_ref, _ dataType := data_type, textQualifier := text_delim, _ consecutiveDelimiter := consecutive_delim, _ tab := tab, semicolon := semicolon, comma := comma, _ space := space, other := other_char, _ otherChar := other_char, fieldInfo := field_info
TEXTREF(text, TRUE)	Range(text)
将 A1-式样的文字转换为一个引用。在 Visual Basic 中，Range 方法总是采用 A1-式样的文字并返回一个 Range 对象。

TEXTREF(text, FALSE)	a1Text = Application.ConvertFormula(formula := "=" & text, _ fromReferenceStyle := xlR1C1, _ toReferenceStyle := xlA1, toAbsolute := xlAbsolute) Set result = Range(Right(a1Text, Len(a1Text) - 1))
无直接等价形式。将 R1C1-式样的文字转换为一个引用。在 Visual Baisc 中，Range 方法仅采用 A1-式样的文字。本例通过将文字作为一个公式处理的方法将 R1C1-式样文字转换为 A1-式样文字。

在 Microsoft Excel 4.0 宏中，R1C1-式样文字经常用于从行和列索引中构造引用。在 Visual Basic 中则使用 Cells 方法，直接从数字行或列索引参数中构造一个 Range 对象。

TRACER.CLEAR( )	ActiveSheet.ClearArrows
TRACER.DISPLAY(FALSE, FALSE)	Selection.ShowDependents remove := True
取消一级从属跟踪箭头。

TRACER.DISPLAY(FALSE, TRUE)	Selection.ShowDependents remove := False
增加一级从属跟踪箭头。

TRACER.DISPLAY(TRUE, FALSE)	Selection.ShowPrecedents remove := True
取消一级引用跟踪箭头。

TRACER.DISPLAY(TRUE, TRUE)	Selection.ShowPrecedents remove := False
增加一级引用跟踪箭头。

TRACER.ERROR()	Selection.ShowErrors.Select
TRACER.NAVIGATE(direction, arrow_num, ref_num)	ActiveCell.NavigateArrow towardPrecedent := direction, _ arrowNumber := arrow_num, linkNumber := ref_num
U

UNDO( )	Application.Undo
UNGROUP( )	Selection.Ungroup
UNHIDE(window_text)	Windows(window_text).Visible = False
取消隐藏一个正常工作簿窗口。

UNHIDE("[Book1]Sheet1 Chart1")	ActiveSheet.ChartObjects("Chart 1").Activate
激活一个内嵌图表，以便对其进行编辑。

UNLOCKED.NEXT( )	ActiveCell.Next.Activate
UNLOCKED.PREV( )	ActiveCell.Previous.Activate
UNREGISTER(register_id)	ExecuteExcel4Macro("UNREGISTER(register_id)")
无直接等价形式。在 Visual Basic 中，DLL 中的函数和代码资源必须在使用前清楚地加以说明。在运行时，Visual Basic 自动地装载，注册和取消注册这些函数。

UPDATE.LINK(link_text, type_of_link)	ActiveWorkbook.UpdateLink name := link_text, _ type := type_of_link
V

VBA.MAKE.ADDIN( )	ExecuteExcel4Macro("VBA.MAKE.ADDIN")
无直接等价形式。

VBA.INSERT.FILE(filename_text)	ActiveSheet.InsertFile filename := filename_text
VIEW.3D(elevation, perspective, rotation, axes, height%, autoscale)	With ActiveChart .Elevation = elevation .Perspective = perspective .Rotation = rotation .RightAngleAxes = axes .HeightPercent = height% .AutoScaling = autoscale End With
VLINE(num_rows)	ActiveWindow.SmallScroll down := num_rows
VOLATILE(logical)	Application.Volatile volatile := logical
VPAGE(num_windows)	ActiveWindow.LargeScroll down := num_windows
VSCROLL(position, TRUE)	ActiveWindow.ScrollRow = position
垂直滚动至一指定行号。

VSCROLL(position, FALSE)	ActiveWindow.ScrollRow = position * 16384
垂直滚动至一行间位置。在Visual Basic中，只可以滚动至指定行。本例将一行间位置的行号转换为一个绝对的整数行号。

W

WAIT(serial_number)	Application.Wait time := serial_number
WHILE(logical_test)	Do While logical_test ' statements within loop Loop
在 Visual Basic 中，用 Do...loop 语句来构造一个循环。 使用 Do...loop 语句比用 WHILE 命令的灵活性更大。

WINDOW.MAXIMIZE( )	ActiveWindow.WindowState = xlMaximized
最大化活动文档窗口。

WINDOW.MAXIMIZE(window_text)	Windows(window_text).WindowState = xlMaximized
最大化指定的窗口，对所有下列具有 window_text 参数的 Window 函数来说，要对一特定窗口进行操作，必须使用 Window(window_text) 而不是 ActiveWindow 属性。

WINDOW.MINIMIZE( )	ActiveWindow.WindowState = xlMinimized
WINDOW.MOVE(x_pos, y_pos)	With ActiveWindow .Left = x_pos .Top = y_pos End With
WINDOW.RESTORE( )	ActiveWindow.WindowState = xlNormal
WINDOW.SIZE(width, height)	With ActiveWindow .Width = width .Height = height End With
WINDOW.TITLE(text)	ActiveWindow.Caption = text
改变一个窗口的标题文字。

WINDOW.TITLE( )	ExecuteExcel4Macro "WINDOW.TITLE()"
恢复默认的窗口标题文字。无直接等价形式。

WINDOWS( )	For Each w In Windows MsgBox w.Caption Next
返回一个由窗口名字组成的数组。在Visual Basic 中，Windows集合提供对 Window 对象的直接存取，并且不要求使用文字名字，本例显示在一消息框中每个窗口的名字。

WINDOWS(, match_text)	Dim result() As String numWindows = 0 For Each w In Windows If w.Caption Like match_text Then numWindows = numWindows + 1 ReDim Preserve result(1 To numWindows) result(numWindows) = w.Caption End If Next
返回一个由窗口名字组成的数组，这些窗口的标题与给定字符相匹配。本例构造了一个标题具有匹配字符的窗口名字数组。注意 Windows 集合在 For Each...Next 语句中的使用。

WINDOWS(2, match_text)
没有等价的函数。在 Visual Basic 中，不能存取装载有加载宏工作簿的窗口。

WINDOWS(3, match_text)
没有完全等价的函数。在 Visual Baisc 中，不能存取装载有加载宏工作簿的窗口，其他工作簿窗口可使用 Windows 集合进行存取。

WORKBOOK.ACTIVATE(sheet_name)	ActiveWorkbook.Sheets(sheet_name).Activate
WORKBOOK.ADD(name_array, dest_book, position_num)
等价于 Microsoft Excel 5.0 及以后版本中的 WORKBOOK.MOVE ，参见与 Visual Baisc 等价的 WORKBOOK.MOVE。

WORKBOOK.COPY(name_array)	Sheets(name_array).Copy
复制指定的工作表至一个新的工作簿。

WORKBOOK.COPY(name_array, dest_book, position_num)	Sheets(name_array).Copy before := Sheets(position_num)
复制指定的工作表至当前的工作簿，假定 dest_book 是当前工作簿的名字。

WORKBOOK.COPY(name_array, dest_book)	Sheets(name_array).Copy after := Sheets(Sheets.Count)
复制指定的工作表，并将其插入到当前工作簿的尾部，假定 dest_book 为当前工作簿的名字。

WORKBOOK.COPY(name_array, dest_book, position_num)	Sheets(name_array).Copy before := _ Workbooks(dest_book).Sheets(position_num)
复制指定的工作表，并将其插入到另一工作簿中，假定 dest_book 不是当前工作簿的名字。

WORKBOOK.COPY(name_array, dest_book)	numSheets = Workbooks(dest_book).Sheets.Count Set LastInBook = Workbooks(dest_book).Sheets(numSheets) Sheets(name_array).Copy after := LastInBook
复制指定的工作表，并将其插入到另一工作簿的尾部，假定 dest_book 不是当前工作簿的名字。

WORKBOOK.DELETE( )	ActiveWindow.SelectedSheets.Delete
删除选定的工作表。

WORKBOOK.DELETE(sheet_text)	Sheets(sheet_text).Delete
删除指定的工作表。

WORKBOOK.DELETE({"Sheet1", "Sheet2"})	Sheets(Array("Sheet1", "Sheet2")).Delete
删除一组工作表。

WORKBOOK.HIDE( )	ActiveWindow.SelectedSheets.Visible = False
隐藏当前工作簿窗口中选定的工作表。

WORKBOOK.HIDE(sheet_text)	Sheets(sheet_text).Visible = False
隐藏指定的工作表。

WORKBOOK.HIDE({"Sheet1","Sheet2"})	Sheets(Array("Sheet1", "Sheet2")).Visible = False
隐藏指定为一个数组的一组工作表。

WORKBOOK.HIDE(sheet_text, TRUE)	Sheets(sheet_text).Visible = xlVeryHidden
隐藏指定的表，使其不会显示在取消隐藏列表中。

WORKBOOK.INSERT(1)	Worksheets.Add
WORKBOOK.INSERT(2)	Charts.Add
WORKBOOK.INSERT(3)	Worksheets.Add type := xlExcel4MacroSheet
WORKBOOK.INSERT(4)	Worksheets.Add type := xlExcel4IntlMacroSheet
WORKBOOK.INSERT(6)	Modules.Add
WORKBOOK.INSERT(7)	DialogSheets.Add
WORKBOOK.MOVE(name_array)	Sheets(name_array).Move
将指定的工作表移至一个新的工作簿。

WORKBOOK.MOVE(name_array, dest_book, position_num)	Sheets(name_array).Move before := Sheets(position_num)
在当前工作簿中移动指定的工作表，假定 dest_text 为当前工作簿的名字。

WORKBOOK.MOVE(name_array, dest_book)	Sheets(name_array).Move after := Sheets(Sheets.Count)
把指定的工作表移到当前工作簿的尾端，假定当前工作簿的名字是 dest_book 。

WORKBOOK.MOVE(name_array, dest_book, position_num)	Sheets(name_array).Move before := _ Workbooks(dest_book).Sheets(position_num)
移动指定的工作表至另一工作簿中，假定 dest_text 不是当前工作簿的名字。

WORKBOOK.MOVE(name_array, dest_book)	numSheets = Workbooks(dest_book).Sheets.Count Set LastInBook = Workbooks(dest_book).Sheets(numSheets) Sheets(name_array).Move after := LastInBook
移动指定的工作表至另一工作簿尾端，假定dest_text不是当前工作簿的名字。

WORKBOOK.NAME(oldname_text, newname_text)	Sheets(oldname_text).Name =  newname_text
WORKBOOK.NEW( )
无直接等价形式。此函数在向用户提示工作表是何种类型之后，在工作簿上增加一个新的工作表。要增加一个特定的工作表类型，请使用 Sheets 对象的 Add 方法。

WORKBOOK.NEXT( )	ActiveSheet.Next.Select
WORKBOOK.OPTIONS(sheet_name, , new_name)	Sheets(sheet_name).Name = new_name
在 Microsoft Excel 5.0及以后版本中没有与 WORKBOOK.OPTIONS 的第二个参数的直接等价形式。

WORKBOOK.PREV( )	ActiveSheet.Previous.Select
WORKBOOK.PROTECT(structure, windows, password)	ActiveWorkbook.Protect password := password, _ structure := structure, windows := windows
如果 stucture 或 windows 的值中有一个为 TRUE，则保护工作簿。

WORKBOOK.PROTECT(FALSE, FALSE, password)	ActiveWorkbook.Unprotect password := password
对一工作簿解除保护。

WORKBOOK.SCROLL(num_sheets)	ActiveWindow.ScrollWorkbookTabs sheets := num_sheets
滚动工作簿标签。

WORKBOOK.SCROLL(, TRUE)	ActiveWindow.ScrollWorkbookTabs position := xlLast
滚动工作簿标签至工作簿的最后一个标签。

WORKBOOK.SCROLL(, FALSE)	ActiveWindow.ScrollWorkbookTabs position := xlFirst
滚动工作簿标签至工作簿的第一个标签。

WORKBOOK.SELECT("Sheet1", "Sheet1")	Sheets("Sheet1").Select
在活动工作簿中选定一个工作表，这是 WORKBOOK.SELECT 最常用的用法。

WORKBOOK.SELECT({"Sheet1", "Sheet2"}, "Sheet2")	Sheets(Array("Sheet1", "Sheet2")).Select Sheets("Sheet2").Activate
在活动工作簿中选定一组工作表，并使在该组中选定 Sheet2为活动表。在 Visual Basic 中这个操作要求首先选定工作表组，然后再指定激活的工作表。

WORKBOOK.SELECT("Sheet1", "Sheet1", FALSE)	Sheets("Sheet1").Select replace := False
在一工作簿中增加一个工作表至选定的工作表集合。用 Sheet 对象的 Select 方法时， replace 参数与其在 WORKBOOK.SELECT 函数中的功能相同。

WORKBOOK.TAB.SPLIT(ratio_num)	ActiveWindow.TabRatio = (ratio_num)
WORKBOOK.UNHIDE(sheet_text)	Sheets(sheet_text).Visible = True
WORKGROUP({"Sheet1", "Sheet2"})	Sheets(Array("Sheet1", "Sheet2")).Select
选定一组工作表用于成组编辑。Visual Basic 在表数组省略时，没有与此直接等价的命令。

WORKSPACE(fixed, decimals, r1c1, scroll, status, formula, menu_key, remote, entermove, underlines, tools, notes, nav_keys, menu_key_action, drag_drop, show_info, incell_edit)	With Application .FixedDecimal = fixed .FixedDecimalPlaces = decimals .ReferenceStyle = r1c1 .DisplayStatusBar = status .DisplayFormulaBar = formula .TransitionMenuKey = menu_key_action .IgnoreRemoteRequests = remote .MoveAfterReturn = entermove .CommandUnderlines = underlines .DisplayNoteIndicator = notes .TransitionNavigKeys = nav_keys .TransitionMenuKeyAction = menu_key_action .CellDragAndDrop = drag_drop .DisplayInfoWindow = show_info .EditDirectlyInCell = incell_edit End With With ActiveWindow .DisplayHorizontalScrollBar = scroll .DisplayVerticalScrollBar = scroll End With
在Microsoft Excel 5.0及以后版本中没有与tools参数直接等价的参数。

X

Y

Z

ZOOM(TRUE)	ActiveWindow.Zoom = TRUE
ZOOM(FALSE)	ActiveWindow.Zoom = 100
ZOOM(magnification)	ActiveWindow.Zoom = magnification


关于将 Microsoft Excel 4.0 宏转换为 Visual Basic 过程的进一步说明。

提示	用户可以用 Visual Basic 和 Microsoft Excel 4.0 宏语言记录宏。比较用两种语言来记录同一方式，对于学习 Visual basic 很有帮助。

在很多情况下，Microsoft Excel 4.0 宏语言函数参数与 Visual Basic 的属性或方法之间必须进行一些参数间的转换。通常，必须转换的情况包括：

引用    Microsoft Excel 4.0 宏语言的引用数据类型就是工作表或宏表上的单元格地址或单元格区域的直接表达，例如 $c$10。 在 Microsoft Excel 4.0 宏语言表达式中可直接输入引用，因为宏表支持引用。 VisualBasic 有一等价的数据类型，即 Range 对象，但是产生和操作区域的方法不同于引用中的对应方法。 Visual Basic 中不能直接输入区域名，它们必须通过使用一系列行或列的单元格数字索引，或通过将区域地址表达为 A1 式样的文字方式来产生。例如：Application.Range(Cells(1,1),Cells(10,10)) 或 Application.Range("A1:J10") 都返回区域 A1 至 J10。

作为参数的常量    很多宏函数以数字作参数。例如 INSERT(2) 是指当插入新的单元格时将活动单元格下移。在 Visual Basic 中，方法和属性用文字常量取代数字作参数。例如在 Visual Basic 语句 Range("A1:C5").Insert(xlDown) 中 "xlDown" 意思是当插入新的单元格时，将活动单元格下移。

在宏表中作选择  大多数 Microsoft Excel 4.0 式样的宏通常在选定区域或活动表上直接进行操作。而 Visual Basic 的方法或属性极少对选定区域进行操作。相反，Visual Basic 要求必须明确地指定要操作的对象。这就给使用非活动或未选定的对象以更大的自由。在某些情况下，Visual Basic 处理对象的方式与 Microsoft Excel 4.0 宏语言根本不同。在这些情况下，可能没有关于 Microsoft Excel 4.0 宏语言表达式的直接转换。

加载宏中的函数    包含在加载宏中的 Microsoft Excel 4.0 宏函数与 Visual Basic 中保持一致。当正在使用一个 Visual Basic 模块时，可通过使用“工具”菜单上的“引用位置”命令引用加载宏，这样即可应用这些函数。这样操作以后，就可以在程序中包含 Microsoft Excel 4.0 宏函数。例如，下面是在执行“引用位置”命令以后，如何使用 ANOVA 宏函数的实例：

Sub Analyze_Data

Anova1Q(A1:D15, F1, "C")

End Sub

您可以使用 ExecuteExcel4Macro 方法来调用加载宏中的宏函数。此方法将宏函数及其参数都当作参数来调用。例如，为了使用 ANOVA 宏函数对 A1:D15 区域的数据变量进行分析，程序必须包括下面的语句：

Application.ExecuteExcel4Macro("ANOVA1?(A1:D15, F1,""C"")")

有关进一步使用 Visual Basic 的说明，请参阅《Microsoft Excel/Visual Basic for Windows 95 Programmer's Guide.》的附录B:“从 Microsoft Excel 4. 0 宏语言转向 VisualBasic”。


宏函数和宏命令的Visual Basic等价形式

为查看一个与 Microsoft Excel 4.0 版宏函数等价的 Visual Basic 语句，可单击宏函数的第一个字母。或滚动清单直到发现要查找的宏函数。

关于将Microsoft Excel 4.0 宏转换为 Visual Basic 进程的进一步说明


EnableAnimations 属性

如果允许动画插入和删除，则为 True 。当允许动画时，在工作表上插入和删除行和列将显示得很慢。此属性只在Microsoft Excel for Windows 95 中可用。它是可读写的。


EnableAnimations 属性实例

此实例关掉动画插入和删除。

Application.EnableAnimations = False


TemplatesPath 属性

返回模板存储的本地路径。此属性只在Microsoft Excel for Windows 95 中可用并且是只读的。


TemplatesPath 属性实例

此例返回模板存储的路径。

Msgbox Application.TemplatesPath


NetworkTemplatesPath 属性

返回模板存储的网络路径．如果此网络路径不存在，则返回空字符串。此属性只在Microsoft Excel for Windows 95 中可用并且是只读的。


NetworkTemplatesPath 属性实例

此例显示模板存储的网络路径。

Msgbox Application.NetworkTemplatesPath


OnSave 属性

返回或设定当用户使用“保存”或“另存为”命令但工作表还没有实际保存时，所要执行的 Visual Basic 过程名。此属性只在 Microsoft Excel for Windows 95 中可用。它是可读写的。

注释

指定的过程必须有一个布尔型参数。

此属性只支持 Visual Basic 过程，而不支持 Microsoft Excel 4.0 宏语言。

此属性的值不与工作簿一同保存。它必须在每次打开工作簿时设定。

保存工作簿时，如果一个宏或邮件命令正在执行，或者嵌入的工作簿被更新，或者一个未保存的工作簿是正在保存的工作簿的一部分时，此事件不被调用。


OnSave 属性实例

在实例中，当用户使用“保存”或“令存为”命令但工作表还没有实际保存时，显示一个信息窗口。

指定保存工作簿时所要运行的过程

Sub SetSaveEvent()

ActiveWorkbook.OnSave = "SaveProcedure"

End Sub

Sub SaveProcedure(s As Boolean)

MsgBox "Excel will now save your work"

End Sub


EnableAutoComplete 属性

当允许“记忆式键入”时为 True 。此属性只在Microsoft Excel for Windows 95 中可用。它是可读写的。


EnableAutoComplete 属性实例

此实例设定“记忆式键入”。

Application.EnableAutoComplete = True


AutoComplete 方法

从选择列表中返回相符合的自动添加项。当自动添加项中无相符合的项或相符合项多于一条，此方法返回空字符串。此方法只在 Microsoft Excel for Windows 95 中可用。

语法

object.AutoComplete(string)

object

必选项。区域对象 (必须是一个单元格)。

string

必选项。要完成的字符串。

注释

此方法无论在“记忆式键入”是否允许时都可使用。


AutoComplete 方法实例

此例返回对字符串“ Ap ”的自动添加。在单元格 A5 的上一格或下一格(或与其同列的)单元格中，检查其值是否相符合，从而对其进行自动添加。

s = Worksheets(1).Range("A5").AutoComplete("Ap")

If Len(s) > 0 Then

MsgBox "Completes to " & s

Else

MsgBox "Has no completion"

End If


MoveAfterReturnDirection 属性

返回或设定当用户按 ENTER 键后活动单元格的移动方向 (xoLeft, xlToRight, xlUp, 或 xlDown 中的一种)。此属性只在Microsoft Excel for Windows 95 中。它是可读写的。

注释

如果 MoveAfterReturn  属性为 False ，不管 MoveAfterReturnDirection 属性是否设定，选择区域都不会移动。


MoveAfterReturnDirection 属性实例

在此例中，当用户按 ENTER 键后活动单元格向右移动。

Application.MoveAfterReturn = True

Application.MoveAfterReturnDirection = xlToRight


AutoLoad 属性

打开包含 OLE 对象的工作簿时，如果OLE对象自动加载则为 True 。此属性只在Microsoft Excel for Windows 95 中可用。它是可读写的。

注释

对大多数OLE对象，此属性不可设置为 True 。对新的 OLE 对象， AutoLoad 属性的默认值为 False 。在 Microsoft Excel 加载工作簿时，这样会节省时间和内存。而自动加载 OLE 对象的益处在于，对于代表易变数据的对象，可自动链接到数据源且如果需要，对象会被刷新。


AutoLoad 属性实例

此例为第一个 OLE 对象设置 AutoLoad 属性。

ActiveSheet.OLEObjects(1).AutoLoad = True


ListHeaderRows 属性

返回指定区域的标题行数目。此属性只在Microsoft Excel for Windows 95 中可用并且是只读的。

注释

在使用此属性之前，可使用 CurrentRegion  属性找到区域的边界。


ListHeaderRows 属性实例

此例将包括活动单元格的区域赋给 rTbl 变量，不包括标题行。

Set rTbl = ActiveCell.CurrentRegion

' 从区域中去掉标题行

iHdrRows = rTbl.ListHeaderRows

If iHdrRows > 0 Then

' 修改区域大小

Set rTbl = rTbl.Resize(rTbl.Rows.Count - iHdrRows)

' 将修改大小后的区域向下移动到第一个非标题行

Set rTbl = rTbl.Offset(iHdrRows)

End If


RangeSelection 属性

返回在指定窗口中的工作表上代表选定单元格的 Range 对象，即使在此工作表中已经存在活动的图形对象或是已被选定的图形对象也如此。此属性只在Microsoft Excel for Windows 95 中可用，并且是只读的。

注释

当在工作表上选定一个图形对象，Selection 属性返回图形对象而不是一个 Range 对象。 RangeSelection 属性返回在选定图形对象之前选定的单元格区。

当在工作表上选定一个单元格区(不是一个图形对象)时，此属性和 Selection 属性的返回值相同。

如果窗口中的工作表不是活动的工作表，此属性无效。


RangeSelection 属性实例

此例显示在活动窗口中的工作表上，被选中的单元格的地址。

MsgBox ActiveWindow.RangeSelection.Address


SetBackgroundPicture 方法

设置工作表或图表的背景图形。此方法只在Microsoft Excel for Windows 95 中可用。

语法

object.SetBackgroundPicture(fileName)

object

必选项。它是 Workshee 或 Chart 对象。

fileName

必选项。它是要显示的图形文件。


SetBackgroundPicture 方法实例

此例为一号工作表设置背景图形。

Worksheets(1).SetBackgroundPicture "c:\graphics\watrmark.bmp"


Protection 属性

返回或设置如何保护工具栏不被用户改动，如下表所示(保护级由小到大)。此属性只在Microsoft Excel for Windows 95 中可用。它是可读写的。

值	含义
xlNormal	普通的工具栏操作。工具栏位置可以移动，可以改变大小及导入。工具栏按钮可以添加，移动和重新定位。
xlNoButtonChanges	工具栏位置可以移动，可以改变大小及导入。但工具栏按钮不能添加，移动和重新定位。
xlNoShapeChanges	与 xlNoButtonChanges 相同, 但工具栏可以移动及导入，而不可改变大小。
xlNoDockingChanges	与 xlNoShapeChanges 相同, 但工具栏可以移动，不能导入或导出。
xlNoChanges	与 xlNoDockingChanges 相同, 但工具栏不能移动。
注释

此属性与工具栏配置文件一同保存，并在任一 Microsoft Excel 执行过程时调用。

新打开的工具栏总是将保护属性设定为 xlNormal 方式。


Protection 属性实例

此例设置用户自定义工具栏的保护属性。工具栏位置可以移动，可以改变大小及导入。工具栏按钮不能添加，移去和重新定位。

Toolbars("My Custom Toolbar").Protection = xlNoButtonChanges


Container 属性

存取器。返回包含嵌入工作簿的对象。此属性只在Microsoft Excel for Windows 95 中可用并且是只读的。

注释

对嵌入工作簿使用此属性则返回容器对象。如果此容器对象不支持 OLE 自动化或工作簿不是嵌入的，此属性无效。


Container 属性实例

此例在包含活动的 Microsoft Excel 工作簿的文件夹中隐藏第二部分，并把 345.67 赋给单元格 A1 。此例中，文件夹为 Binder1.obd 。

Set myBinder = GetObject("Binder1.obd", "Office.Binder")

Set myWorkbook = myBinder.Sections(1).Object

With myWorkbook

.Container.Sections(2).Visible = False

.Sheets(1).Cells(1, 1).Value = 345.67

End With


Post 方法

将指定的工作簿邮寄到一个公共文件夹。此属性只在Microsoft Excel for Windows 95 中可用，且只用于连接到 Microsoft Exchange 服务器上的Microsoft Exchange 用户。

语法

object.Post(destName)

object

必选项。它是要邮寄的工作簿。

destName

可选项。指定目标公共文件夹。在Microsoft Excel for Windows 95 中，省略此参数。 Post 方法将提示用户指定工作簿的目标文件夹。


Post 方法实例

此例邮寄活动工作簿。

ActiveWorkbook.Post


ProtectionMode 属性

如果选择仅保护用户界面时为 True 。要设定保护用户界面，使用 Protect 方法并将 userInterfaceOnly 参数设置为 True 。此属性只在Microsoft Excel for Windows 95 中可用并且是只读的。


ProtectionMode 属性实例

此例显示 ProtectionMode 属性的状态。

MsgBox ActiveSheet.ProtectionMode


比较运算符

用于表示两个或更多个值或表达式之间关系的字符或符号：

符号	描述

<	小于

<=	小于或等于

> 	大于

>=	大于或等于

<> 	不等于

=	等于

其他比较运算符有 Is 和 Like 。然而要注意， Is 和 Like 在 Select Case 语句中不能被用作比较运算符。


 常量

是指在程序的整个执行过程中值保持不变的项，这与变量相反，变量的值在执行时可以改变。 每个应用程序都可以预先定义它自己的一组常量。附加常量可以用 Const 语句定义。两种类型的常量可以在程序代码的任何地方代替实际值。常量可以是字符串或数字串，其它常量，或这些量的包含算术或逻辑运算符（除Is外）的组合。例如：

Const A = "MyString"


数据类型

数据类型是变量的特性，它决定了变量可以是何种类型的数据。数据类型 Boolean, Integer, Long, Currency, Single, Double, Date, String, Object, Variant (默认值)、用户自定义类型及专用对象类型。

用户自定义类型用 Type 语句来定义。用户定义的数组及其它数据类型的数组用 Dim 语句来定义 。任何类型的数组都可置于用户定义类型中。


表达式

表达式是关键字、运算符、变量和常量的组合。它产生一个字符串、数字或对象。一个表达式可以进行计算，处理字符或测试数据。


关键字

是指被作为程序设计语言的一部分的字或符号。例如，一个语句、函数名或运算符。

有两类关键字(如下所示)：

类型	描述

限制性	不能用于命名过程的关键字

非限制性	可以不受限制而使用的关键字。许多不受限制的关键字可以作为系统或应用程序的函数、方法、属性和语句名，但编译器并不识别其为关键字。它允许用户用这些不受限制的关键字来定义用户自己的过程，例如，如果用户创建一个 FileCopy 过程并且从用户的应用程序内调用它，则调用的是用户定义的 FileCopy 过程，而不是系统提供的 FileCopy 语句。


命名参数

是指具有已预先定义了名字的参数。与语法所要求的必须按次序给参数赋值不同，用户可以使用命名参数以任何次序给所需要的参数赋值(如果它们是可选项)。例如，假定要对三个参数进行赋值：

DoSomeThing namedarg1, namedarg2, namedarg3

用户可以使用下列语句给命名参数赋值：

DoSomeThing namedarg3:=4,namedarg2:=5

注意：参数不必按它们通常的位置次序排列。


过程级

是指位于 Function，Property 或 Sub 过程内的语句。通常首先列出名称，后跟赋值语句和其它可执行代码。例如：

Sub MySub()

Dim A	' 声明语句。

A = "My variable"	' 赋值语句。

Debug.Print A	' 可执行语句。

End Sub

附注：  与之相反，模块级代码位于 Sub...End Sub 块之外。


作用域

定义一个变量、过程或对象的可读写性及生命期。例如，一个被定义为 Public 的变量对于在所有应用程序中的所有模块的所有过程均有效(除非 Option Private Module 有效)。


变量

命名了的存储位置，可包含确定类型的数据，该数据在程序运行时可修改。每个变量在其作用域级别内由唯一的名称标识。变量名必须以字母打头，不能包含句点或类型定义字符，必须在作用域中唯一。