Parámetros opcionales en soluciones de Office

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

Se aplica a: la información de este tema se aplica a proyectos de nivel de documento y proyectos de complementos de VSTO. Consulte Características disponibles por aplicación de Office lication y tipo de proyecto.

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

Nota:

En versiones anteriores de Visual Studio, tiene que 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 puede pasar a un parámetro opcional cuando desee utilizar el valor predeterminado del parámetro. Los proyectos de Visual C# para Office en Visual Studio todavía incluyen la missing variable , pero normalmente no es necesario usarlo al desarrollar soluciones de Office en Visual Studio 2013, excepto cuando se llama a métodos con parámetros ref opcionales en la ThisDocument clase en proyectos de nivel de documento para Word.

Ejemplo de Excel

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


Globals.Sheet1.CheckSpelling(ignoreUppercase: true);

Ejemplo de Word

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

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 métodos en 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 Object valores. Sin embargo, no se pueden omitir parámetros ref opcionales de métodos de la clase generada ThisDocument en proyectos de nivel de documento de Visual C# para Word. Visual C# permite omitir parámetros ref opcionales solo para métodos de interfaces, no clases. Por ejemplo, el ejemplo de código siguiente no se compila, porque no se pueden omitir parámetros ref opcionales del CheckSpelling método de la ThisDocument clase .

Globals.ThisDocument.CheckSpelling(ignoreUppercase: true);

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

  • Para aceptar el valor predeterminado de un parámetro ref opcional, pase la missing variable al parámetro . La variable missing se define automáticamente en los proyectos de Office de Visual C# y se asigna al valor Missing en el código de 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 llamar al CheckSpelling método especificando un valor para el parámetro ignoreUppercase y aceptando el valor predeterminado para 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 parámetros ref opcionales de un método en la ThisDocument clase , también puede llamar al mismo método en el Document objeto devuelto por la InnerObject propiedad y omitir los parámetros de ese método. Puede hacerlo porque 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 referencia y valor, vea Pasar argumentos por valor y por referencia (Visual Basic) (para Visual Basic) y Pasar parámetros (guía de programación de C#).