Metodo ApplicationFactory.HasVstoObject (_Worksheet)
Restituisce un valore che indica se esiste un elemento host Microsoft.Office.Tools.Excel.Worksheet per l'oggetto foglio di lavoro di Excel specificato.
Spazio dei nomi: Microsoft.Office.Tools.Excel
Assembly: Microsoft.Office.Tools.Excel (in Microsoft.Office.Tools.Excel.dll)
Microsoft.Office.Tools.Excel.v4.0.Utilities (in Microsoft.Office.Tools.Excel.v4.0.Utilities.dll)
Sintassi
'Dichiarazione
Function HasVstoObject ( _
worksheet As _Worksheet _
) As Boolean
bool HasVstoObject(
_Worksheet worksheet
)
Parametri
- worksheet
Tipo: Microsoft.Office.Interop.Excel._Worksheet
Oggetto foglio di lavoro nativo da testare.Sebbene questo parametro sia di tipo Microsoft.Office.Interop.Excel._Worksheet, a questo metodo viene in genere passato un oggetto Microsoft.Office.Interop.Excel.Worksheet.
Valore restituito
Tipo: System.Boolean
true se esiste un elemento host Microsoft.Office.Tools.Excel.Worksheet per l'oggetto Microsoft.Office.Interop.Excel.Worksheet specificato; in caso contrario, false.
Note
È possibile chiamare questo metodo in un componente aggiuntivo a livello di applicazione per verificare l'esistenza di controlli gestiti che si desidera salvare in modo permanente prima di chiudere o salvare il foglio di lavoro di Excel.
Nota
Il parametro worksheet è di tipo Microsoft.Office.Interop.Excel._Worksheet, che è l'interfaccia padre di Microsoft.Office.Interop.Excel.Worksheet.Pertanto, questo metodo può accettare oggetti di entrambi i tipi: Microsoft.Office.Interop.Excel._Worksheet e Microsoft.Office.Interop.Excel.Worksheet.In genere, quando si fa riferimento a un foglio di lavoro di Excel, si utilizza un oggetto Microsoft.Office.Interop.Excel.Worksheet.
Esempi
Nell'esempio di codice riportato di seguito viene controllato se i fogli di lavoro nella cartella di lavoro corrente presentano un elemento host associato. Per utilizzare questo codice, eseguirlo dalla classe ThisAddIn in un progetto di componente aggiuntivo di Excel destinato a .NET Framework 4 o .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;
}
}
}
}
}
Sicurezza di .NET Framework
- Attendibilità totale per il chiamante immediato. Impossibile utilizzare questo membro in codice parzialmente attendibile. Per ulteriori informazioni, vedere Utilizzo di librerie da codice parzialmente attendibile.