ApplicationFactory.GetVstoObject 메서드 (_Worksheet)
지정된 네이티브 통합 문서 개체의 기능을 확장하는 Microsoft.Office.Tools.Excel.Worksheet 호스트 항목을 반환합니다.
네임스페이스: Microsoft.Office.Tools.Excel
어셈블리: Microsoft.Office.Tools.Excel(Microsoft.Office.Tools.Excel.dll)
Microsoft.Office.Tools.Excel.v4.0.Utilities(Microsoft.Office.Tools.Excel.v4.0.Utilities.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._WorksheetMicrosoft.Office.Interop.Excel.Worksheet.대개 Excel 워크시트를 참조할 때는 Microsoft.Office.Interop.Excel.Worksheet를 사용합니다.
예제
다음 코드 예제에서는 호스트 항목이 있는 Microsoft.Office.Interop.Excel.Workbook 개체마다 Microsoft.Office.Tools.Excel.Worksheet 호스트 항목을 만듭니다.이 코드를 사용 하려면 실행 된 ThisAddIn 클래스는 Excel 추가 기능에서 프로젝트를 대상으로 .NET Framework 4 또는 .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;
}
}
}
}
}
.NET Framework 보안
- 직접 실행 호출자의 경우 완전히 신뢰합니다. 이 멤버는 부분적으로 신뢰할 수 있는 코드에서 사용할 수 없습니다. 자세한 내용은 부분 신뢰 코드에서 라이브러리 사용을 참조하십시오.
참고 항목
참조
Microsoft.Office.Tools.Excel 네임스페이스
기타 리소스
런타임에 응용 프로그램 수준 추가 기능의 Word 문서 및 Excel 통합 문서 확장
Getting Extended Objects from Native Office Objects in Document-Level Customizations