Aracılığıyla paylaş


ApplicationFactory.HasVstoObject Yöntem (_Workbook)

Gösteren bir değeri döndürür olup bir Microsoft.Office.Tools.Excel.Workbook ana maddesine belirtilen Excel çalışma kitabı nesnesi.

Ad alanı:  Microsoft.Office.Tools.Excel
Derleme:  Microsoft.Office.Tools.Excel (Microsoft.Office.Tools.Excel.dll içinde)

Sözdizimi

'Bildirim
Function HasVstoObject ( _
    workbook As _Workbook _
) As Boolean
bool HasVstoObject(
    _Workbook workbook
)

Parametreler

Dönüş Değeri

Tür: System.Boolean
true yoksa bir Microsoft.Office.Tools.Excel.Workbook ana maddesine belirtilen için Microsoft.Office.Interop.Excel.Workbook nesne; Aksi takdirde, false.

Açıklamalar

Bir uygulama düzeyinde kapatmayı veya Excel çalışma kitabını kaydetmeden önce kalıcı olmasını istediğiniz yönetilen denetimleri varlığını sınamak için eklenti de, bu yöntemi çağırın.

Not

workbook Parametresi türü Microsoft.Office.Interop.Excel._Workbook, üst arabiriminin olduğu Microsoft.Office.Interop.Excel.Workbook. Bu nedenle, bu yöntem her iki türdeki nesneleri kabul edebilir: Microsoft.Office.Interop.Excel._Workbook ve Microsoft.Office.Interop.Excel.Workbook. Genellikle, bir Excel çalışma kitabı başvuru yaptığınızda, kullandığınız bir Microsoft.Office.Interop.Excel.Workbook.

Örnekler

Aşağıdaki kod örneği, geçerli çalışma kitabında ilişkili ana öğe sahip olup olmadığını denetler. Çalıştır buradan bu kodu kullanmak için ThisAddIn bir Excel eklentisini sınıfında hedefleyen proje .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 Güvenliği

Ayrıca bkz.

Başvuru

ApplicationFactory Arabirim

HasVstoObject Fazla Yük

Microsoft.Office.Tools.Excel Ad Alanı