Поделиться через


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
)

Параметры

Возвращаемое значение

Тип: 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

См. также

Ссылки

ApplicationFactory Интерфейс

GetVstoObject - перегрузка

Microsoft.Office.Tools.Excel - пространство имен

Другие ресурсы

Расширение документов Word и книг Excel в надстройках уровня приложения во время выполнения

Получение вложенных объектов из собственных объектов Office в настройках уровня документа