ApplicationFactory.GetVstoObject (Método) (_Worksheet)

Devuelve un elemento host Microsoft.Office.Tools.Excel.Worksheet que extiende la funcionalidad del objeto de libro nativo especificado.

Espacio de nombres:  Microsoft.Office.Tools.Excel
Ensamblado:  Microsoft.Office.Tools.Excel (en Microsoft.Office.Tools.Excel.dll)

Sintaxis

'Declaración
Function GetVstoObject ( _
    worksheet As _Worksheet _
) As Worksheet
Worksheet GetVstoObject(
    _Worksheet worksheet
)

Parámetros

Valor devuelto

Tipo: Microsoft.Office.Tools.Excel.Worksheet
Elemento host que extiende la funcionalidad del objeto de hoja de cálculo nativo.

Comentarios

Llame a este método en un complemento en el nivel de la aplicación para personalizar cualquier hoja de cálculo que esté abierta en Excel. Este método genera un nuevo objeto Microsoft.Office.Tools.Excel.Worksheet si aún no se ha generado ninguno. Llamadas subsiguientes a este método devuelven la instancia almacenada en memoria caché del objeto Microsoft.Office.Tools.Excel.Worksheet existente. Para obtener más información, vea Ampliar documentos de Word y libros de Excel en complementos en el nivel de la aplicación en tiempo de ejecución.

Nota

El parámetro worksheet es de tipo Microsoft.Office.Interop.Excel._Worksheet, que es la interfaz primaria de Microsoft.Office.Interop.Excel.Worksheet. Por consiguiente, este método puede aceptar objetos de ambos tipos: Microsoft.Office.Interop.Excel._Worksheet y Microsoft.Office.Interop.Excel.Worksheet. Normalmente, al hacer referencia a una hoja de cálculo de Excel, se usa un Microsoft.Office.Interop.Excel.Worksheet.

Ejemplos

En el ejemplo de código siguiente crea un elemento host Microsoft.Office.Tools.Excel.Worksheet para cada objeto Microsoft.Office.Interop.Excel.Workbook que tiene un elemento host. Para usar este código, ejecútelo desde la clase ThisAddIn en un proyecto de complemento de Excel dirigido a .NET Framework 4.

Private Sub Application_WorkbookBeforeSave( _
    ByVal Wb As Microsoft.Office.Interop.Excel.Workbook, _
    ByVal SaveAsUI As Boolean, _
    ByRef Cancel As Boolean) Handles Application.WorkbookBeforeSave

    If Globals.Factory.HasVstoObject(Wb) = True Then
        For Each interopSheet As Excel.Worksheet In Wb.Worksheets
            If Globals.Factory.HasVstoObject(interopSheet) = True Then
                Dim vstoSheet As Worksheet = Globals.Factory.GetVstoObject(interopSheet)
                If vstoSheet.Controls.Count > 0 Then
                    System.Windows.Forms.MessageBox.Show( _
                        "The VSTO controls are not persisted when you" _
                        + " save and close this workbook.", _
                        "Controls Persistence", _
                        System.Windows.Forms.MessageBoxButtons.OK, _
                        System.Windows.Forms.MessageBoxIcon.Warning)
                    Exit For
                End If
            End If
        Next
    End If
End Sub
void Application_WorkbookBeforeSave(
    Microsoft.Office.Interop.Excel.Workbook Wb, bool SaveAsUI, 
    ref bool Cancel)
{            
    if (Globals.Factory.HasVstoObject(Wb) == true)
    {                
        foreach (Excel.Worksheet interopSheet in Wb.Worksheets)
        {
            if (Globals.Factory.HasVstoObject(interopSheet) ==  true)
            {
                Worksheet vstoSheet = Globals.Factory.GetVstoObject(interopSheet);
                if (vstoSheet.Controls.Count > 0)
                {
                    System.Windows.Forms.MessageBox.Show(
                        "The VSTO controls are not persisted when you"
                        + " save and close this workbook.",
                        "Controls Persistence",
                        System.Windows.Forms.MessageBoxButtons.OK,
                        System.Windows.Forms.MessageBoxIcon.Warning);
                    break;
                }
            }
        }
    }
}

Seguridad de .NET Framework

Vea también

Referencia

ApplicationFactory Interfaz

GetVstoObject (Sobrecarga)

Microsoft.Office.Tools.Excel (Espacio de nombres)

Otros recursos

Ampliar documentos de Word y libros de Excel en complementos en el nivel de la aplicación en tiempo de ejecución

Obtener objetos extendidos a partir de objetos nativos de Office en personalizaciones en el nivel del documento