다음을 통해 공유


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을 반환하는지 여부를 확인하는 코드를 작성해야 합니다.

참고 항목

개념

런타임에 리본 메뉴에 액세스

런타임에 양식 영역 액세스

호스트 항목 및 호스트 컨트롤 개요

추가 기능 호스트 항목

문서 호스트 항목

통합 문서 호스트 항목

워크시트 호스트 항목

Office 솔루션에서 코드 작성