Aracılığıyla paylaş


Belge Düzeyi Özelleştirmelerini Programlama

Microsoft Office Word veya Microsoft Office Excel'i belge düzeyi özelleştirmesi kullanarak genişlettiğinizde, aşağıdaki görevleri gerçekleştirebilirsiniz:

  • Nesne modellerini kullanarak uygulamaları otomatikleştirme.

  • Belgenin yüzeyine içerik denetimleri ekleme.

  • Özelleştirme derlemesinden belgeye Visual Basic for Applications (VBA) kodu çağırma.

  • Kodu VBA'den özelleştirme derlemesine çağırma.

  • Belgenin bazı yönlerini, belge Microsoft Office'in yüklü olmadığı bir sunucudayken yönetme.

  • Uygulamaların kullanıcı arayüzünü (UI) özelleştirme.

Uygulama alanı: Bu konudaki bilgiler şu uygulamaların belge düzeyi projelerine yöneliktir: Excel 2013 ve Excel 2010; Word 2013 ve Word 2010. Daha fazla bilgi için bkz. Office Uygulamalarında Kullanılabilir Özellikler ve Proje Türü.

Belge düzeyi projelerde kod yazmanın bazı açıları Visual Studio'daki diğer tür projelerden farklıdır.Bu farklılıkların birçoğuna Office nesne modellerinin yönetilen koda uygulanma yolu sebep olur.Daha fazla bilgi için bkz. Office Çözümlerinde Kod Yazma.

Belge düzeyi özelleştirmeleri ve Visual Studio'da Office geliştirme araçlarını kullanarak oluşturabileceğiniz çözümlerin diğer türleri hakkında genel bilgi için, bkz. Office Çözümleri Geliştirmesine Genel Bakış.

Belge Düzeyi Projelerinde Yaratılan Sınıfları Kullanma

Belge düzeyi projesi yarattığınızda, Visual Studio projenizde kodunuzu yazmaya başlamak için kullanabileceğiniz bir sınıfı otomatik olarak yaratır.Visual Studio, Excel ve Word için farklı sınıflar yaratır:

  • Word belge düzeyi projelerinde, varsayılan olarak sınıf ThisDocument olarak adlandırılır.

  • Excel için belge düzeyi projeleri çoklu yaratılan sınıflara sahiptir: biri çalışma kitabının kendisi için ve diğeri her bir çalışma sayfası.Varsayılan olarak, bu sınıflar aşağıdaki isimlere sahiptir:

    • ThisWorkbook

    • Sheet1

    • Sheet2

    • Sheet3

Yaratılan sınıf, belge açıldığında veya kapatıldığında çağrılan olay işleyicileri içerir.Belge açıldığında kodu çalıştırmak için, kodu Startup olay işleyicisine ekleyin.Belge kapatıldığında hemen önce kodu çalıştırmak için, kodu Shutdown olay işleyicisine ekleyin.Daha fazla bilgi için bkz. Office Projelerindeki Olaylar.

Bb386206.collapse_all(tr-tr,VS.110).gifYaratılan Sınıfların Tasarımını Anlama

' İ hedefleyen projelerde .NET Framework 4 veya .NET Framework 4.5, içindeki konak öğesi türleri Office için Visual Studio Araçları çalışma zamanı modülü , arabirimleri, yaratılan sınıflar onların uygulamasından türetilemez böylece.Onun yerine, yaratılan sınıflar birçok üyelerini aşağıdaki temel sınıflardan türetir:

Temel sınıflar, tüm çağrıları kendi üyelerine, Office için Visual Studio Araçları çalışma zamanı modülü içindeki ilgili konak öğesi arayüzlerinin iç uygulamalarına yönlendirir.Örneğin çağırırsanız, Protect yöntemi, ThisDocument sınıfı Microsoft.Office.Tools.Word.DocumentBase sınıfı bu çağrıyı iç uygulamalarına yönlendirir Microsoft.Office.Tools.Word.Document arayüzünün Office için Visual Studio Araçları çalışma zamanı modülü.

Konak Uygulamasının Nesne Modeline Erişme

Konak uygulamasının nesne modeline erişmek için, projenizde yaratılan sınıfının üyelerini kullanın.Bu sınıfların her biri Excel veya Word'ün nesne modelinde bir nesneyle karşılık gelir ve onlar birçok aynı özelliği, yöntemi ve olayı içerir.Örneğin, Word için belge düzeyi projesindeki ThisDocument sınıfı, Word nesne modelindeki Microsoft.Office.Interop.Word.Document nesnesiyle aynı üyeleri sağlar.

Aşağıdaki kod örneğinde, Word belge düzeyi özelleştirmesinin bir kısmı olan belgeyi kaydetmek için Word nesne modelinin nasıl kullanıldığı gösterilmektedir.Bu örnek, ThisDocument sınıfından çalıştırılmak üzere tasarlanmıştır.

Me.Save()
this.Save();

ThisDocument sınıfının dışından aynı şeyi yapmak için,ThisDocument sınıfına erişmek üzere Globals nesnesini kullanın.Örneğin, eğer eylemler bölmesi UI'ında Kaydet düğmesi istiyorsanız, bu kodu eylemler bölmesi kod dosyasına ekleyebilirsiniz.

Globals.ThisDocument.Save()
Globals.ThisDocument.Save();

ThisDocument sınıfı, üyelerinin birçoğunu Microsoft.Office.Tools.Word.Document konak öğesinden elde ettiği için, bu kodda çağırılan Save yöntemi, Microsoft.Office.Tools.Word.Document konak öğesinin Save yöntemidir.Bu yöntem, Word nesne modelindeki Microsoft.Office.Interop.Word.Document nesnesinin Save yöntemine karşılık gelir.

Excel ve Word nesne modellerini kullanma hakkında daha fazla bilgi için, bkz. Word Nesne Modeline Genel Bakış ve Excel Nesne Modeline Genel Bakış.

Globals nesnesi hakkında daha fazla bilgi için, bkz. Office Projeleri Nesnelerine Genel Erişim.

Belgelere Denetimleri Ekleme

Belgenin UI'ını özelleştirmek için, Windows Forms denetimlerini veya konak kontrolleri'ni belge yüzeyine ekleyebilirsiniz.Farklı denetim kümelerini ve kod yazmayı birleştirerek, veriyi denetimlere bağlayabilirsiniz, kullanıcıdan bilgi toplayabilirsiniz ve kullanıcı eylemlerine yanıt verebilirsiniz.

Konak kontrolleri, Word ve Excel nesne modelindeki bazı nesneleri genişleten sınıflardır.Örneğin, Microsoft.Office.Tools.Excel.ListObject konak kontrolü, Excel'de Microsoft.Office.Interop.Excel.ListObject'im tüm işlevselliğini sağlar. Fakat, Microsoft.Office.Tools.Excel.ListObject konak kontrolü ek olaylar ve veri bağlama yeteneklerine sahiptir.

Daha fazla bilgi için, bkz. Konak Öğeleri ve Konak Kontrollerine Genel Bakış ve Office Belgerindeki Windows Forms Denetimlerine Genel Bakış.

VBA ve Belge Düzeyi Özelleştirmelerini Birleştirme

VBA kodunu, belge düzeyi özelleştirmesinin bir bölümü olarak belgede kullanabilirsiniz.Özelleştirme derlemesinden belgedeki VBA kodunu çağırabilirsiniz ve özelleştirme derlemesindeki kodu çağırmak amacıyla belgedeki VBA kodunu etkinleştirmek için de projenizi yapılandırabilirsiniz.

Daha fazla bilgi için bkz. VBA ve Belge Düzeyi Özelleştirmelerini Birleştirme.

Sunucu Üzerinde Belgeleri Yönetme

Microsoft Office Word veya Microsoft Office Excel'in yüklü olmadığı sunucu üzerindeki belge düzeyi özelleştirmelerinin farklı yönlerini yönetebilirsiniz.Örneğin, bir belgenin önbelleğindeki verilere erişebilir ve bu verileri değiştirebilirsiniz.Belge ile ilişkili özelleştirme derlemesini de yönetebilirsiniz.Örneğin, belgenin kodunuzu çalıştırmaması için programlı olarak derlemeyi belgeden kaldırabilirsiniz veya belgeye bir derleme iliştirebilirsiniz.

Daha fazla bilgi için bkz. ServerDocument Sınıfını Kullanarak Sunucu Üzerinde Belge Yönetme.

Microsoft Officem Uygulamasının Kullanıcı Arayüzünü Özelleştirme

Belge düzeyi özelleştirmesi kullanarak Excel'in ve Word'ün UI'ını özelleştirebilirsiniz.

Microsoft Office uygulamalarının UI'larının özelleştirme hakkında daha fazla bilgi için bkz. Office UI Özelleştirme.

Belge Düzeyi Özelleştirmelerinde Yerel Office Nesnelerinden Genişletilmiş Nesneleri Alma

Office olayları için birçok olay işleyicisi, olay yaratan çalışma kitabını, çalışma sayfasını veya belgeyi temsil eden yerel bir Office nesnesi alır.Bazı durumlarda, sadece belge düzeyi özelleştirmesinde çalışma kitabı veya belge olay yarattığında bazı kodları çalıştırmak isteyebilirsiniz.Örneğin, Excel için belge düzeyi özelleştirmesinde, kullanıcı bir özelleştirilmiş çalışma kitabındaki çalışma sayfalarının etkinleştirdiğinde, ama kullanıcı aynı anda açık olduğu ortaya başka bir çalışma kitabındaki çalışma sayfasını etkinleştirdiğinde değil, bazı kodları çalıştırmak isteyebilirsiniz.

Yerel Office nesnesi varsa, o nesnenin içine genişleyip genişlemediğini test edebilirsiniz bir konak öğesi veya konak kontrolünü bir belge düzeyi özelleştirmesindeki.Konak öğeleri ve konak kontrolleri, Word veya Excel nesne modellerinde varolan nesnelere işlevsellik ekleyen Office için Visual Studio Araçları çalışma zamanı modülü tarafından sağlanan türlerdir (yerel Office nesneleri adı verilir).Toplu olarak, konak öğeleri ve konak kontrolleri de denilen Genişletilmiş nesneler. Konak öğeleri ve konak kontrolleri hakkında daha fazla bilgi için bkz: Konak Öğeleri ve Konak Kontrollerine Genel Bakış.

GetVstoObject ve HasVstoObject yöntemlerini anlama

Yerel Office nesnesi sınamak için kullanın HasVstoObject ve GetVstoObject yöntemleri projenizdeki:

Belge düzeyi projelerinde, kullandığınız GetVstoObject yöntemi yeni bir oluşturmak için Microsoft.Office.Tools.Excel.Workbook, Microsoft.Office.Tools.Excel.Worksheet, veya Microsoft.Office.Tools.Word.Document konak öğesi yaratabilirsiniz.Bu yöntemi sadece projenizde tasarım anında yaratılan ve varolan konak öğelerine erişmek için kullanabilirsiniz.Uygulama düzeyi projesinde, çalışma anında yeni konak öğelerini yaratmak istiyorsanız, geliştirmeniz gerekir.Daha fazla bilgi için, bkz. Ana Bilgisayar Öğelerinin ve Ana Bilgisayar Denetimlerinin Programsal Sınırlamaları ve Word Belgelerini ve Excel Çalışma Kitaplarını Çalıştırma Zamanında Uygulama Düzeyi Eklentileri İçinde Genişletme.

GetVstoObject ve HasVstoObject Yöntemlerini Kullanma

Çağırmak için HasVstoObject ve GetVstoObject yöntemi, kullanım Globals.Factory.GetVstoObject veya Globals.Factory.HasVstoObject yöntemi ve yerel Word veya Excel nesnesine geçirin (gibi bir Microsoft.Office.Interop.Word.Document veya Microsoft.Office.Interop.Excel.Worksheet) test etmek istediğiniz.

Ayrıca bkz.

Kavramlar

ServerDocument Sınıfını Kullanarak Sunucu Üzerinde Belge Yönetme

Office Çözümlerinde Kod Yazma

Diğer Kaynaklar

Office Belgeleri Üzerinde Denetimler

VBA ve Belge Düzeyi Özelleştirmelerini Birleştirme