Parámetros opcionales en las soluciones de Office

Muchos de los métodos en los modelos de objetos de las aplicaciones de Microsoft Office aceptan parámetros opcionales. Si usa Visual Basic para desarrollar una solución de Office en Visual Studio 2010, no es necesario pasar un valor para los parámetros opcionales porque se usan automáticamente los valores predeterminados para cada parámetro que falte. En la mayoría de los casos, también puede omitir los parámetros opcionales en los proyectos de Visual C#. Sin embargo, en los proyectos de Word de nivel de documento, no se pueden omitir los parámetros ref opcionales de la clase ThisDocument.

Se aplica a: la información de este tema se aplica a los proyectos de nivel de documento y los proyectos de nivel de aplicación para Microsoft Office 2010 y 2007 Microsoft Office System. Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto de Office.

Para obtener más información sobre cómo trabajar con parámetros opcionales en proyectos de Visual C# y Visual Basic, vea Argumentos opcionales y con nombre (Guía de programación de C#) y Parámetros opcionales (Visual Basic).

Nota

En versiones anteriores de Visual Studio, debe pasar un valor para cada parámetro opcional en los proyectos de Visual C#. Por comodidad, estos proyectos incluyen una variable global denominada missing que se puede pasar a un parámetro opcional cuando se desea usar el valor predeterminado del parámetro. Los proyectos de Visual C# para Office en Visual Studio 2010 todavía incluyen la variable missing, pero normalmente no es necesario usarla cuando se desarrollan soluciones de Office en Visual Studio 2010, excepto si en las llamadas a los métodos se usan parámetros ref opcionales de la clase ThisDocument en proyectos de nivel de documento para Word.

Ejemplo en Excel

El método Worksheet.CheckSpelling tiene muchos parámetros opcionales. Puede especificar los valores de algunos parámetros y aceptar el valor predeterminado de otros, como se muestra en el siguiente ejemplo de código. En este ejemplo se requiere un proyecto de nivel de documento con una clase de hoja de cálculo denominada Sheet1.

Globals.Sheet1.CheckSpelling(ignoreUppercase:=True)
// In projects that target the .NET Framework 3.5, change "ignoreUppercase" to "IgnoreUppercase" 
// in the following line of code.
Globals.Sheet1.CheckSpelling(ignoreUppercase: true);

Ejemplo en Word

El método Find.Execute tiene muchos parámetros opcionales. Puede especificar los valores de algunos parámetros y aceptar el valor predeterminado de otros, como se muestra en el siguiente ejemplo de código.

With Me.Application.ActiveDocument.Content
    .Find.ClearFormatting()
    .Find.Execute(FindText:="blue", ReplaceWith:="red", Replace:=Word.WdReplace.wdReplaceAll)
End With
Word.Range documentRange = this.Application.ActiveDocument.Content;
documentRange.Find.ClearFormatting();
documentRange.Find.Execute(FindText: "blue", ReplaceWith: "red", Replace: Word.WdReplace.wdReplaceAll);            

Usar parámetros opcionales de los métodos de la clase ThisDocument en proyectos de nivel de documento de Visual C# para Word

El modelo de objetos de Word contiene muchos métodos con parámetros ref opcionales que aceptan valores Object. Sin embargo, en los proyectos de nivel de documento de Visual C# para Word, no se pueden omitir los parámetros ref opcionales de los métodos de la clase ThisDocument generada. Visual C# permite omitir los parámetros ref opcionales únicamente en los métodos de interfaces, no en las clases. Por ejemplo, el ejemplo de código siguiente no se compila, ya que no se pueden omitir los parámetros ref opcionales del método CheckSpelling de la clase ThisDocument.

Globals.ThisDocument.CheckSpelling(ignoreUppercase: true);

Cuando llame a los métodos de la clase ThisDocument, siga estas instrucciones:

  • Para aceptar el valor predeterminado de un parámetro ref opcional, pase la variable missing al parámetro. La variable missing se define automáticamente en los proyectos de Office en Visual C# y se asigna al valor Type.Missing en el código del proyecto generado.

  • Para especificar su propio valor para un parámetro ref opcional, declare un objeto asignado al valor que desea especificar y, a continuación, pase el objeto al parámetro.

En el ejemplo de código siguiente se muestra cómo se llama al método CheckSpelling especificando un valor para el parámetro ignoreUppercase y aceptando el valor predeterminado de los demás parámetros.

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);

Si desea escribir código que omita los parámetros ref opcionales de un método en la clase ThisDocument, como alternativa, puede llamar al mismo método en el objeto Microsoft.Office.Interop.Word.Document devuelto por la propiedad InnerObject y omitir los parámetros de ese método. Puede hacerlo porque Microsoft.Office.Interop.Word.Document es una interfaz y no una clase.

Globals.ThisDocument.InnerObject.CheckSpelling(IgnoreUppercase: true);

Para obtener más información sobre los parámetros de tipo de valor y de tipo de referencia, vea Pasar argumentos por valor y por referencia (Visual Basic) (para Visual Basic) y Pasar parámetros (Guía de programación de C#).

Vea también

Conceptos

Escribir código en soluciones de Office

Otros recursos

Desarrollar soluciones de Office