ApplicationFactory.GetVstoObject - метод (_Worksheet)
Возвращает ведущий элемент Microsoft.Office.Tools.Excel.Worksheet, расширяющий функциональность указанного собственного объекта книги.
Пространство имен: Microsoft.Office.Tools.Excel
Сборка: Microsoft.Office.Tools.Excel (в Microsoft.Office.Tools.Excel.dll)
Синтаксис
'Декларация
Function GetVstoObject ( _
worksheet As _Worksheet _
) As Worksheet
Worksheet GetVstoObject(
_Worksheet worksheet
)
Параметры
- worksheet
Тип: Microsoft.Office.Interop.Excel._Worksheet
Собственный объект листа, для которого нужно извлечь расширенный объект.Хотя этот параметр принадлежит к типу Microsoft.Office.Interop.Excel._Worksheet, как правило, этому методу передается объект Microsoft.Office.Interop.Excel.Worksheet.
Возвращаемое значение
Тип: Microsoft.Office.Tools.Excel.Worksheet
Ведущий элемент, расширяющий функциональность указанного собственного объекта листа.
Заметки
Вызовите этот метод в надстройке уровня приложения, чтобы настроить любой открытый в Excel лист. Этот метод создает новый объект Microsoft.Office.Tools.Excel.Worksheet, если такой объект еще не создан. Последующие вызовы данного метода возвращают кэшированный экземпляр существующего объекта Microsoft.Office.Tools.Excel.Worksheet. Дополнительные сведения см. в разделе Расширение документов Word и книг Excel в надстройках уровня приложения во время выполнения.
Примечание
Параметр worksheet является типом Microsoft.Office.Interop.Excel._Worksheet, который является родительским интерфейсом Microsoft.Office.Interop.Excel.Worksheet.Следовательно, этот метод может принимать объекты обоих типов: Microsoft.Office.Interop.Excel._Worksheet и Microsoft.Office.Interop.Excel.Worksheet.Обычно при ссылке на лист Excel используетсяMicrosoft.Office.Interop.Excel.Worksheet.
Примеры
В следующем примере кода создается ведущий элемент Microsoft.Office.Tools.Excel.Worksheet для каждого объекта Microsoft.Office.Interop.Excel.Workbook, у которого есть ведущий элемент. Чтобы воспользоваться этим кодом, запустите его из класса ThisAddIn в проекте надстройки Excel, ориентированном на .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;
}
}
}
}
}
Безопасность платформы .NET Framework
- Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Дополнительные сведения см. в разделе Использование библиотек из не вполне надежного кода.
См. также
Ссылки
Microsoft.Office.Tools.Excel - пространство имен
Другие ресурсы
Расширение документов Word и книг Excel в надстройках уровня приложения во время выполнения
Получение вложенных объектов из собственных объектов Office в настройках уровня документа