ApplicationFactory.GetVstoObject-Methode (_Worksheet)
Gibt ein Microsoft.Office.Tools.Excel.Worksheet-Hostelement zurück, das die Funktionalität des angegebenen systemeigenen Arbeitsmappenobjekts erweitert.
Namespace: Microsoft.Office.Tools.Excel
Assemblys: 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)
'Declaration
Function GetVstoObject ( _
worksheet As _Worksheet _
) As Worksheet
Worksheet GetVstoObject(
_Worksheet worksheet
)
- worksheet
Typ: Microsoft.Office.Interop.Excel._Worksheet
Das systemeigene Arbeitsblattobjekt, für das das erweiterte Objekt abgerufen wird.Obwohl dieser Parameter vom Typ Microsoft.Office.Interop.Excel._Worksheet ist, übergeben Sie i. d. R. ein Microsoft.Office.Interop.Excel.Worksheet-Objekt an diese Methode.
Typ: Microsoft.Office.Tools.Excel.Worksheet
Das Hostelement, das die Funktionalität des systemeigenen Arbeitsblattobjekts erweitert.
Rufen Sie diese Methode in einem Add-In auf Anwendungsebene auf, um ein beliebiges, in Excel geöffnetes Arbeitsblatt anzupassen.Diese Methode generiert ein neues Microsoft.Office.Tools.Excel.Worksheet-Objekt, falls ein solches Objekt nicht bereits generiert wurde.Nachfolgende Aufrufe dieser Methode geben die zwischengespeicherte Instanz des vorhandenen Microsoft.Office.Tools.Excel.Worksheet-Objekts zurück.Weitere Informationen finden Sie unter Erweitern von Word-Dokumenten und Excel-Arbeitsmappen in Add-Ins auf Anwendungsebene zur Laufzeit.
Hinweis |
---|
Der worksheet-Parameter ist vom Typ Microsoft.Office.Interop.Excel._Worksheet. Bei diesem handelt es sich um die übergeordnete Schnittstelle von Microsoft.Office.Interop.Excel.Worksheet.Daher kann diese Methode Objekte beider Typen akzeptieren: Microsoft.Office.Interop.Excel._Worksheet und Microsoft.Office.Interop.Excel.Worksheet.Normalerweise wird ein Microsoft.Office.Interop.Excel.Worksheet verwendet, um auf ein Excel-Arbeitsblatt zu verweisen. |
Im folgenden Codebeispiel wird ein Microsoft.Office.Tools.Excel.Worksheet-Hostelement für jedes Microsoft.Office.Interop.Excel.Workbook-Objekt erstellt, das über ein Hostelement verfügt.Um diesen Code auszuführen, führen Sie es von der - Klasse ThisAddIn in einem Excel-Add-In-Projekt abzielt .NET Framework 4 oder .NET Framework 4.5 verwenden.
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;
}
}
}
}
}
- Volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer. Dieser Member kann von nur teilweise vertrauenswürdigem Code nicht verwendet werden. Weitere Informationen finden Sie unter Verwenden von Bibliotheken aus teilweise vertrauenswürdigem Code.
ApplicationFactory Schnittstelle
Microsoft.Office.Tools.Excel-Namespace
Erweitern von Word-Dokumenten und Excel-Arbeitsmappen in Add-Ins auf Anwendungsebene zur Laufzeit
Getting Extended Objects from Native Office Objects in Document-Level Customizations