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 2007 ve Excel 2010; Word 2007 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 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ı için. 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.

Yaratılan Sınıfların Tasarımını Anlama

İçinde hedefleyen projeler.net Framework 3.5, oluşturulan sınıflar türetmek çoğu kendi üyeleri ve davranış aşağıdakini ana madde sınıfları Visual Studio Tools for Office çalışma zamanı modülü: 

  • ThisDocument: Microsoft.Office.Tools.Word.Document'ten türetir

  • ThisWorkbook: Microsoft.Office.Tools.Excel.Workbook'ten türetir

  • Sheetn: Microsoft.Office.Tools.Excel.Worksheet'ten türetir

Konak öğeleri, Office projelerinde nesne model hiyerarşilerinin başındaki türlerdir ve Office birincil birlikte çalışma derlemelerindeki (PIA) ilgili nesnenin davranışını genişletirler. Konak öğeleri hakkında daha fazla bilgi için, bkz. Konak Öğeleri ve Konak Kontrollerine Genel Bakış.

.NET Framework 4'i hedefleyen projelerde, Visual Studio Tools for Office çalışma zamanı modülü içindeki konak öğesi türleri arayüzlerdir, böylece yaratılan sınıflar uygulamalarını onlardan türetemez. 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, Visual Studio Tools for Office çalışma zamanı modülü içindeki ilgili konak öğesi arayüzlerinin iç uygulamalarına yönlendirir. Örneğin, eğer ThisDocument sınıfının Protect yöntemini çağırırsanız, Microsoft.Office.Tools.Word.DocumentBase sınıfı bu çağrıyı, Visual Studio Tools for Office çalışma zamanı modülü içindeki Microsoft.Office.Tools.Word.Document arayüzünün iç uygulamalarına yönlendirir. .NET Framework 3.5 ve .NET Framework 4 hedfleyen projeler için Visual Studio Tools for Office çalışma zamanı modülü'daki farklılıklar hakkında daha fazla bilgi için, bkz. Office için Visual Studio Araçları Çalışma Zamanına Genel Bakış.

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ştirmesi.

Ayrıca bkz.

Kavramlar

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

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

Office Çözümlerinde Kod Yazma

Diğer Kaynaklar

Office Belgeleri Üzerinde Denetimler

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