Visual Studio Tools for Office 프로젝트의 개체에 전역 액세스
업데이트: 2007년 11월
프로젝트의 어느 코드에서나 Globals 클래스를 사용하여 다른 프로젝트 항목에 액세스할 수 있습니다.
Globals 사용 방법
Globals는 프로젝트의 항목에 대한 참조를 보관하는 정적 클래스입니다. Globals 클래스를 사용하면 프로젝트 내의 모든 코드에서 다음과 같은 항목을 참조할 수 있습니다.
Excel 통합 문서 또는 서식 파일 프로젝트의 Workbook 또는 모든 Worksheet 호스트 항목. 프로젝트의 각 호스트 항목을 참조하는 Globals 클래스의 속성을 사용하여 이러한 호스트 항목에 액세스할 수 있습니다. 호스트 항목의 기본 이름은 ThisWorkbook, Sheet1, Sheet2 및 Sheet3입니다.
Word 문서 또는 서식 파일 프로젝트의 Document 호스트 항목. 이 호스트 항목 속성의 기본 이름은 Globals.ThisDocument입니다.
응용 프로그램 수준 프로젝트의 AddIn 호스트 항목. 이 호스트 항목 속성의 기본 이름은 Globals.ThisAddIn입니다.
리본 디자이너를 사용하여 사용자 지정한 프로젝트의 모든 리본 메뉴. Globals.Ribbons 속성을 사용하여 리본 메뉴에 액세스할 수 있습니다.
Outlook 추가 기능 프로젝트의 모든 Outlook 양식 영역. Globals.FormRegions 속성을 사용하여 양식 영역에 액세스할 수 있습니다.
예를 들어 다음 예제와 같이 사용자가 작업 창의 단추를 클릭할 때 Sheet1의 NamedRange 컨트롤에 텍스트를 삽입하는 코드를 작성할 수 있습니다.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Button1.Click
If Globals.Sheet1 IsNot Nothing Then
Globals.Sheet1.NamedRange1.Value2 = Me.TextBox1.Text
End If
End Sub
private void button1_Click(object sender, EventArgs e)
{
if (Globals.Sheet1 != null)
{
Globals.Sheet1.namedRange1.Value2 = this.textBox1.Text;
}
}
Globals 클래스 초기화
코드에서 문서 또는 추가 기능이 완전히 초기화되기 전에 Globals 클래스를 사용하면 런타임 예외가 throw될 수 있습니다. 예를 들어 클래스 수준 변수를 선언할 때 Globals를 사용하면, 선언된 개체가 인스턴스화되기 전에는 Globals 클래스가 모든 호스트 항목에 대한 참조로 초기화되지 않을 수 있으므로 작업이 실패할 수 있습니다.
참고: |
---|
Globals 클래스는 디자인 타임에 초기화되지 않지만 컨트롤 인스턴스는 디자이너에서 작성됩니다. 즉, Globals 클래스의 메서드를 호출하는 사용자 정의 컨트롤을 만드는 경우에는 이 컨트롤에 액세스하기 전에 메서드에서 null을 반환하는지 여부를 확인하는 코드를 작성해야 합니다. |