办公室解决方案中的可选参数
Microsoft Office 应用程序的对象模型中的许多方法都接受可选参数。 如果使用 Visual Basic 在 Visual Studio 中开发 Office 解决方案,你不必为可选参数传递值,因为系统会为每个缺少的参数自动使用默认值。 在大多数情况下,还可以在 Visual C# 项目中省略可选参数。 但是,不能在文档级 Word 项目中省略类的ThisDocument
可选 ref 参数。
适用于: 本主题中的信息适用于文档级项目和 VSTO 外接程序项目。 请参阅办公室应用程序和项目类型提供的功能。
有关在 Visual C# 和 Visual Basic 项目中使用可选参数的详细信息,请参阅命名参数和可选参数(C# 编程指南)和可选参数(Visual Basic)。
注意
在 Visual Studio 的早期版本中,必须为 Visual C# 项目中的每个可选参数传递一个值。 为了方便起见,这些项目包括一个名为 missing
的全局变量,当你想要使用某个可选参数的默认值时,可以将该变量传递给该可选参数。 Visual Studio 中用于办公室的 Visual C# 项目仍包含该missing
变量,但在 Visual Studio 2013 中开发办公室解决方案时通常不需要使用它,除非在 Word 文档级项目中的类中ThisDocument
调用具有可选 ref 参数的方法。
Excel 中的示例
CheckSpelling 方法具有多个可选参数。 可以为某些参数指定值,并接受其他参数的默认值,如下面的代码示例所示。 此示例需要一个具有名为 Sheet1
的工作表类的文档级项目。
Word 中的示例
Execute 方法具有多个可选参数。 可以为某些参数指定值,并接受其他参数的默认值,如下面的代码示例所示。
Word.Range documentRange = this.Application.ActiveDocument.Content;
documentRange.Find.ClearFormatting();
documentRange.Find.Execute(FindText: "blue", ReplaceWith: "red", Replace: Word.WdReplace.wdReplaceAll);
在适用于 Word 的 Visual C# 文档级项目中的 ThisDocument 类中使用方法的可选参数
Word 对象模型包含许多接受值的可选 ref 参数 Object 的方法。 但是,不能在 Word 的 Visual C# 文档级项目中省略生成的ThisDocument
类方法的可选 ref 参数。 Visual C# 使你只能省略接口方法的可选 ref 参数,而不是类。 例如,下面的代码示例不编译,因为不能省略类方法的ThisDocument
可选 ref 参数CheckSpelling。
Globals.ThisDocument.CheckSpelling(ignoreUppercase: true);
调用 ThisDocument
类的方法时,请遵循以下准则:
若要接受可选 ref 参数的默认值,请将
missing
变量传递给参数。 在 Visual C# Office 项目中自动定义missing
变量,并分配给生成的项目代码中的值 Missing。若要为可选 ref 参数指定自己的值,请声明分配给要指定的值的对象,然后将该对象传递给参数。
下面的代码示例演示如何通过指定 ignoreUppercase 参数的值并接受其他参数的默认值来调用CheckSpelling该方法。
object ignoreUppercase = true; Globals.ThisDocument.CheckSpelling( ref missing, ref ignoreUppercase, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
如果要编写代码,该代码省略类中
ThisDocument
方法的可选 ref 参数,也可以对Document属性返回InnerObject的对象调用相同的方法,并省略该方法中的参数。 可以这样做是因为 Document 是接口而不是类。Globals.ThisDocument.InnerObject.CheckSpelling(IgnoreUppercase: true);
有关值和引用类型参数的详细信息,请参阅按值传递参数以及按引用(适用于 Visual Basic)和传递参数(C# 编程指南)。