Office projelerindeki nesnelere genel erişim

bir Office projesi oluşturduğunuzda, Visual Studio otomatik olarak projede adlı bir sınıf oluşturur Globals . GlobalsÇalışma zamanında, projedeki herhangi bir koddan farklı proje öğelerine erişmek için sınıfını kullanabilirsiniz.

Uygulama hedefi: Bu konudaki bilgiler belge - düzeyi projelerine ve VSTO eklentisi - projelerine yöneliktir. Bkz. Office uygulaması ve proje türü tarafından kullanılabilen özellikler.

Globals sınıfını kullanma

Globals , projenizdeki belirli öğelere başvuruları tutan statik bir sınıftır. GlobalsSınıfını kullanarak, çalışma zamanında projedeki herhangi bir koddan aşağıdaki öğelere erişebilirsiniz:

  • ThisWorkbook Sheet Excel çalışma kitabı veya şablon projesindeki ve n sınıfları. Globals.ThisWorkbookVe Sheet n özelliklerini kullanarak bu nesnelere erişebilirsiniz.

  • ThisDocumentWord belgesi veya şablon projesindeki sınıf. Özelliğini kullanarak bu nesneye erişebilirsiniz Globals.ThisDocument .

  • ThisAddInbir VSTO eklentisi projesindeki sınıfı. Özelliğini kullanarak bu nesneye erişebilirsiniz Globals.ThisAddIn .

  • Projenizdeki şerit tasarımcısını kullanarak özelleştirdiğiniz tüm şeritler. Özelliğini kullanarak Şeritlere erişebilirsiniz Globals.Ribbons . Daha fazla bilgi için bkz. çalışma zamanında Şerit 'e erişme.

  • bir Outlook VSTO eklenti projesindeki tüm Outlook form bölgeleri. Özelliğini kullanarak form bölgelerine erişebilirsiniz Globals.FormRegions . Daha fazla bilgi için bkz. çalışma zamanında form bölgesine erişme.

  • Şerit denetimleri oluşturmanızı ve veya öğesini hedefleyen projelerde çalışma zamanında öğeleri barındırmanızı sağlayan bir fabrika nesnesi .NET Framework 4 .NET Framework 4.5 . Özelliğini kullanarak bu nesneye erişebilirsiniz Globals.Factory . Bu nesne, aşağıdaki arayüzleri uygulayan bir sınıfın örneğidir:

    Örneğin, Globals.Sheet1 NamedRange Sheet1 bir Kullanıcı, Excel için belge düzeyi bir projede eylemler bölmesindeki bir düğmeye tıkladığında bir denetime metin eklemek için özelliğini kullanabilirsiniz.

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles Button1.Click
        Globals.Sheet1.NamedRange1.Value2 = Me.TextBox1.Text
    End Sub
    
    private void button1_Click(object sender, EventArgs e)
    {
        Globals.Sheet1.namedRange1.Value2 = this.textBox1.Text;
    }
    

Globalsbelge veya VSTO eklentisi başlatılmadan önce sınıfı kullanmayı deneyen kod, çalışma zamanı özel durumu oluşturabilir. Örneğin, sınıf Globals düzeyinde bir değişken bildirirken kullanılması başarısız olabilir çünkü Globals sınıf, bildirilmeyen nesne örneklendirmeden önce tüm konak öğelerinin başvuruları ile başlatılmamış olabilir.

Not

GlobalsSınıf tasarım zamanında hiçbir zaman başlatılmaz, ancak denetim örnekleri tasarımcı tarafından oluşturulur. Yani, bir kullanıcı denetimi sınıfının içinden sınıfının bir özelliğini kullanan bir kullanıcı denetimi oluşturursanız Globals , döndürülen nesneyi kullanmayı denemeden önce özelliğin null döndürüp döndürmediğini denetlemeniz gerekir.

Ayrıca bkz.