Microsoft Office 应用程序的对象模型中的许多方法都接受可选参数。 如果使用 Visual Basic 在 Visual Studio 中开发 Office 解决方案,则无需为可选参数传递值,因为默认值会自动用于每个缺失的参数。 在大多数情况下,还可以在 Visual C# 项目中省略可选参数。 不能在文档级 Word 项目中省略类的可选ThisDocument参数。
适用于: 本主题中的信息适用于文档级项目和 VSTO 外接程序项目。 请参阅 Office 应用程序和项目类型提供的功能。
有关在 Visual C# 和 Visual Basic 项目中使用可选参数的详细信息,请参阅命名参数和可选参数(C# 编程指南)和可选参数(Visual Basic)。
注释
在 Visual Studio 的早期版本中,必须传递 Visual C# 项目中每个可选参数的值。 为方便起见,这些项目包括一个全局 missing 变量,可在想要使用参数的默认值时传递给可选参数。 Visual Studio 中 Office 的 Visual C# 项目仍包含该 missing 变量,但在 Visual Studio 2013 中开发 Office 解决方案时通常不需要使用它,除非在 Word 文档级项目中调用类中具有可选 ref 参数 ThisDocument 的方法。
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 参数。 Visual C# 使你只能省略接口方法的可选 ref 参数,而不是类。 例如,以下代码示例无法编译,因为在ThisDocument类的方法中,你不能省略可选的ref参数CheckSpelling。
Globals.ThisDocument.CheckSpelling(ignoreUppercase: true);
调用类的方法 ThisDocument 时,请遵循以下准则:
若要接受可选 ref 参数的默认值,请将
missing变量传递给参数。 变量missing在 Visual C# Office 项目中自动定义,并分配给生成的项目代码中的值 Missing 。若要为可选 ref 参数指定自己的值,请声明分配给要指定的值的对象,然后将该对象传递给参数。
下面的代码示例演示如何通过指定 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);如果要编写代码以省略类中方法的 ref 参数,则可以对 InnerObject 属性返回的 Document 对象调用相同的方法,并省略该方法中的参数。 你可以执行此作,因为 Document 接口不是类。
Globals.ThisDocument.InnerObject.CheckSpelling(IgnoreUppercase: true);有关值和引用类型参数的详细信息,请参阅按值传递参数以及按引用(适用于 Visual Basic)和传递参数(C# 编程指南)。