ApplicationFactory.HasVstoObject, méthode (_Worksheet)
Retourne une valeur qui indique si un élément hôte Microsoft.Office.Tools.Excel.Worksheet existe pour l'objet de feuille de calcul Excel 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 HasVstoObject ( _
worksheet As _Worksheet _
) As Boolean
bool HasVstoObject(
_Worksheet worksheet
)
Paramètres
- worksheet
Type : Microsoft.Office.Interop.Excel._Worksheet
Objet de feuille de calcul natif à tester.Bien que ce paramètre soit de type Microsoft.Office.Interop.Excel._Worksheet, vous passez généralement un objet Microsoft.Office.Interop.Excel.Worksheet à cette méthode.
Valeur de retour
Type : System.Boolean
true si un élément hôte Microsoft.Office.Tools.Excel.Worksheet existe pour l'objet Microsoft.Office.Interop.Excel.Worksheet spécifié ; sinon, false.
Notes
Vous pouvez appeler cette méthode dans un complément d'application pour tester l'existence de contrôles managés que vous souhaitez rendre persistant avant de fermer ou d'enregistrer la feuille de calcul Excel.
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 vérifie si les feuilles de calcul dans le classeur actuel ont un élément hôte associé. 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
- Confiance totale accordée à l'appelant immédiat. Ce membre ne peut pas être utilisé par du code d'un niveau de confiance partiel. Pour plus d'informations, consultez Utilisation de bibliothèques à partir de code d'un niveau de confiance partiel.