Share via


ApplicationFactory.GetVstoObject, méthode (_Worksheet)

Retourne un élément hôte Microsoft.Office.Tools.Excel.Worksheet qui étend les fonctionnalités de l'objet de classeur natif spécifié.

Espace de noms :  Microsoft.Office.Tools.Excel
Assemblys :   Microsoft.Office.Tools.Excel (dans Microsoft.Office.Tools.Excel.dll)
  Microsoft.Office.Tools.Excel.v4.0.Utilities (dans Microsoft.Office.Tools.Excel.v4.0.Utilities.dll)

Syntaxe

'Déclaration
Function GetVstoObject ( _
    worksheet As _Worksheet _
) As Worksheet
Worksheet GetVstoObject(
    _Worksheet worksheet
)

Paramètres

Valeur de retour

Type : Microsoft.Office.Tools.Excel.Worksheet
Élément hôte qui étend les fonctionnalités de l'objet de feuille de calcul natif.

Notes

Appelez cette méthode dans un complément d'application pour personnaliser toutes les feuilles de calcul ouvertes dans Excel. Cette méthode génère un nouvel objet Microsoft.Office.Tools.Excel.Worksheet si aucun objet de ce type n'a déjà été généré. Les appels suivants à cette méthode retournent l'instance mise en cache de l'objet Microsoft.Office.Tools.Excel.Worksheet existant. Pour plus d'informations, consultez Extension de documents Word et de classeurs Excel dans des compléments d'application au moment de l'exécution..

Notes

Le paramètre worksheet est de type Microsoft.Office.Interop.Excel._Worksheet, qui correspond à l'interface parente de Microsoft.Office.Interop.Excel.Worksheet.Par conséquent, cette méthode peut accepter des objets de deux types: Microsoft.Office.Interop.Excel._Worksheet et Microsoft.Office.Interop.Excel.Worksheet.En général, lorsque vous référencez une feuille de calcul Excel, vous utilisez Microsoft.Office.Interop.Excel.Worksheet.

Exemples

L'exemple de code suivant crée un élément hôte Microsoft.Office.Tools.Excel.Worksheet pour chaque objet Microsoft.Office.Interop.Excel.Workbook qui a un élément hôte. Pour utiliser ce code, exécutez-le depuis la classe ThisAddIn dans un projet de complément Excel qui cible le .NET Framework 4 ou le .NET Framework 4.5.

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

Sécurité .NET Framework

Voir aussi

Référence

ApplicationFactory Interface

GetVstoObject, surcharge

Microsoft.Office.Tools.Excel, espace de noms

Autres ressources

Extension de documents Word et de classeurs Excel dans des compléments d'application au moment de l'exécution.

Getting Extended Objects from Native Office Objects in Document-Level Customizations