다음을 통해 공유


Office 프로젝트의 개체에 대한 전역 액세스

Office 프로젝트를 만들 때 Visual Studio는 프로젝트에 명명된 Globals 클래스를 자동으로 생성합니다. 클래스를 Globals 사용하여 프로젝트의 모든 코드에서 런타임에 여러 다른 프로젝트 항목에 액세스할 수 있습니다.

적용 대상: 이 항목의 정보는 문서 수준 프로젝트 및 VSTO 추가 기능 프로젝트에 적용됩니다. Office 응용 프로그램 및 프로젝트 유형에서 사용할 수 있는 기능을 참조하세요.

Globals 클래스를 사용하는 방법

Globals 는 프로젝트의 특정 항목에 대한 참조를 유지하는 정적 클래스입니다. 클래스를 Globals 사용하여 런타임에 프로젝트의 모든 코드에서 다음 항목에 액세스할 수 있습니다.

  • ThisWorkbook Excel 통합 문서 또는 템플릿 프로젝트의 Sheetn 클래스. Globals.ThisWorkbookSheetn 속성을 사용하여 이러한 개체에 액세스할 수 있습니다.

  • ThisDocument Word 문서 또는 서식 파일 프로젝트의 클래스입니다. 속성을 사용하여 Globals.ThisDocument 이 개체에 액세스할 수 있습니다.

  • ThisAddIn VSTO 추가 기능 프로젝트의 클래스입니다. 속성을 사용하여 Globals.ThisAddIn 이 개체에 액세스할 수 있습니다.

  • 리본 디자이너를 사용하여 사용자 지정한 프로젝트의 모든 리본입니다. 속성을 사용하여 Globals.Ribbons 리본에 액세스할 수 있습니다. 자세한 내용은 런타임에 리본에 액세스하세요.

  • Outlook VSTO 추가 기능 프로젝트의 모든 Outlook 양식 영역 속성을 사용하여 Globals.FormRegions 양식 영역에 액세스할 수 있습니다. 자세한 내용은 런타임에 양식 영역 액세스를 참조하세요.

  • 리본 컨트롤을 만들고 런타임에 .NET Framework 4 또는 .NET Framework 4.5를 대상으로 하는 프로젝트에서 항목을 호스트할 수 있는 팩터리 개체입니다. 속성을 사용하여 Globals.Factory 이 개체에 액세스할 수 있습니다. 이 개체는 다음 인터페이스 중 하나를 구현하는 클래스의 인스턴스입니다.

    예를 들어 사용자가 Excel용 문서 수준 프로젝트의 작업 창에서 Globals.Sheet1 단추를 클릭할 때 이 속성을 사용하여 NamedRange 컨트롤에 텍스트를 Sheet1 삽입할 수 있습니다.

    private void button1_Click(object sender, EventArgs e)
    {
        Globals.Sheet1.namedRange1.Value2 = this.textBox1.Text;
    }
    

문서나 VSTO 추가 기능이 초기화되기 전에 Globals 클래스를 사용하려고 시도하는 코드는 런타임 예외가 발생할 수 있습니다. 예를 들어 선언된 개체가 인스턴스화되기 전에 클래스가 모든 호스트 항목에 대한 참조로 초기화되지 않을 수 있으므로 Globals 클래스 수준 변수를 선언할 때 사용하는 Globals 것이 실패할 수 있습니다.

비고

Globals 클래스는 디자인 타임에 초기화되지 않지만 컨트롤 인스턴스는 디자이너에서 만듭니다. 즉, 사용자 컨트롤 클래스 내에서 클래스의 Globals 속성을 사용하는 사용자 컨트롤을 만드는 경우 반환된 개체를 사용하기 전에 속성이 null 을 반환하는지 확인해야 합니다.