다음을 통해 공유


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

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

적용 대상: 이 항목의 정보는 문서 수준 프로젝트 및 VSTO 추가 기능 프로젝트에 적용됩니다. Office 애플리케이션 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하세요.

Globals 클래스를 사용하는 방법

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

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

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

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

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

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

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

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

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

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

참고 항목

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