Program belge düzeyi özelleştirmeleri
Belge düzeyinde özelleştirme kullanarak Microsoft Office Word veya Microsoft Office Excel'i genişlettiğiniz zaman, aşağıdaki görevleri gerçekleştirebilirsiniz:
Nesne modelini kullanarak uygulamayı otomatikleştirin.
Belgenin yüzeyine denetimler ekleyin.
Özelleştirme derlemesinden belgedeki Visual Basic for Applications (VBA) kodunu çağırın.
VBA'dan özelleştirme derlemesindeki kodu çağırın.
Microsoft Office yüklü olmayan bir sunucudayken belgenin belirli yönlerini yönetin.
Uygulamanın kullanıcı arabirimini (UI) özelleştirin.
Şunlar için geçerlidir: Bu konudaki bilgiler Excel ve Word için belge düzeyi projeleri için geçerlidir. Daha fazla bilgi için bkz. Office uygulaması ve proje türüne göre kullanılabilen özellikler.
Belge düzeyi projelerinde kod yazmanın bazı yönleri Visual Studio'daki diğer proje türlerinden farklıdır. Bu farklılıkların birçoğu, Office nesne modellerinin yönetilen koda sunulma şeklinden kaynaklandı. Daha fazla bilgi için bkz . Office çözümlerinde kod yazma.
Belge düzeyi özelleştirmeleri ve Visual Studio'daki Office geliştirme araçlarını kullanarak oluşturabileceğiniz diğer çözüm türleri hakkında genel bilgi için bkz . Office çözümleri geliştirmeye genel bakış (VSTO).
Belge düzeyi projelerinde oluşturulan sınıfları kullanma
Belge düzeyinde bir proje oluşturduğunuzda, Visual Studio projede otomatik olarak kodunuzu yazmaya başlamak için kullanabileceğiniz bir sınıf oluşturur. Visual Studio, Word ve Excel için farklı sınıflar oluşturur:
Word için belge düzeyi projelerinde, sınıf varsayılan olarak çağrılır
ThisDocument
.Excel için belge düzeyi projelerinin birden çok oluşturulmuş sınıfı vardır: biri çalışma kitabının kendisi için, diğeri de her çalışma sayfası için. Varsayılan olarak, bu sınıflar aşağıdaki adlara sahiptir:
ThisWorkbook
Sheet1
Sheet2
Sheet3
Oluşturulan sınıf, belge açıldığında veya kapatıldığında çağrılan olay işleyicilerini içerir. Belge açıldığında kodu çalıştırmak için olay işleyicisine
Startup
kod ekleyin. Belge kapatılana kadar kodu çalıştırmak için olay işleyicisineShutdown
kod ekleyin. Daha fazla bilgi için bkz . Office projelerindeki olaylar.
Oluşturulan sınıfların tasarımını anlama
.NET Framework 4 veya .NET Framework 4.5'i hedefleyen projelerde, Office çalışma zamanı için Visual Studio Araçları konak öğesi türleri arabirimlerdir, bu nedenle oluşturulan sınıflar kendi uygulamalarını türetemez. Bunun yerine, oluşturulan sınıflar üyelerinin çoğunu aşağıdaki temel sınıflardan türetir:
ThisDocument
: ' den DocumentBasetüretilir.ThisWorkbook
: ' den WorkbookBasetüretilir.Sheet
n: ' den WorksheetBasetüretilir.Bu temel sınıflar, üyelerine yapılan tüm çağrıları Office çalışma zamanı için Visual Studio Araçları ilgili konak öğesi arabirimlerinin iç uygulamalarına yönlendirir. Örneğin, sınıfının yöntemini çağırırsanızProtect, sınıfı bu çağrıyı DocumentBase Office çalışma zamanı için Visual Studio Araçları arabiriminin Document iç uygulamasına
ThisDocument
yönlendirir.
Konak uygulamasının nesne modeline erişme
Konak uygulamanın nesne modeline erişmek için projenizde oluşturulan sınıfın üyelerini kullanın. Bu sınıfların her biri Excel veya Word'ün nesne modelindeki bir nesneye karşılık gelir ve aynı özelliklerin, yöntemlerin ve olayların çoğunu içerir. Örneğin, Word için belge düzeyi projesindeki sınıf, ThisDocument
Word nesne modelindeki nesneyle aynı üyelerin Document çoğunu sağlar.
Aşağıdaki kod örneği, Word için belge düzeyinde özelleştirmenin parçası olan belgeyi kaydetmek için Word nesne modelinin nasıl kullanılacağını gösterir. Bu örnek sınıfından ThisDocument
çalıştırılmak üzere tasarlanmıştır.
Sınıfın dışından ThisDocument
da aynı şeyi yapmak için sınıfına Globals
erişmek ThisDocument
için nesnesini kullanın. Örneğin, eylemler bölmesi kullanıcı arabirimine Kaydet düğmesi eklemek istiyorsanız bu kodu eylemler bölmesi kod dosyasına ekleyebilirsiniz.
ThisDocument
Sınıfı, üyelerinin çoğunu konak öğesinden Document aldığı için, Save
bu kodda çağrılan yöntem gerçekten Save konak öğesinin Document yöntemidir. Bu yöntem, Word nesne modelindeki nesnenin Document yöntemine karşılık gelirSave.
Word ve Excel'in nesne modellerini kullanma hakkında daha fazla bilgi için bkz . Word nesne modeline genel bakış ve Excel nesne modeline genel bakış.
Nesne hakkında Globals
daha fazla bilgi için bkz . Office projelerindeki nesnelere genel erişim.
Belgelere denetim ekleme
Belgenin kullanıcı arabirimini özelleştirmek için, belge yüzeyine Windows Forms denetimleri veya konak denetimleri ekleyebilirsiniz. Farklı denetim kümelerini birleştirerek ve kod yazarak denetimleri verilere bağlayabilir, kullanıcıdan bilgi toplayabilir ve kullanıcı eylemlerine yanıt vekleyebilirsiniz.
Konak denetimleri, Word ve Excel nesne modelindeki nesnelerin bazılarını genişleten sınıflardır. Örneğin, ListObject konak denetimi Excel'deki işlevinin ListObject tümünü sağlar. Ancak konak denetiminin ListObject ek olayları ve veri bağlama özellikleri de vardır.
Daha fazla bilgi için bkz . Konak öğelerine ve konak denetimlerine genel bakış ve Office belgelerinde Windows forms denetimlerine genel bakış.
VBA ve belge düzeyi özelleştirmelerini birleştirme
VBA kodunu, belge düzeyinde özelleştirmenin parçası olan bir belgede kullanabilirsiniz. Belgedeki VBA kodunu özelleştirme derlemesinden çağırabilir ve ayrıca projenizi belgedeki VBA kodunu özelleştirme derlemesindeki kodu çağıracak şekilde yapılandırabilirsiniz.
Daha fazla bilgi için bkz . VBA ve belge düzeyi özelleştirmelerini birleştirme.
Sunucudaki belgeleri yönetme
Microsoft Office Word veya Microsoft Office Excel yüklü olmayan bir sunucuda belge düzeyi özelleştirmelerinin birkaç farklı yönünü yönetebilirsiniz. Örneğin, belgenin veri önbelleğindeki verilere erişebilir ve bunları değiştirebilirsiniz. Belgeyle ilişkili özelleştirme derlemesini de yönetebilirsiniz. Örneğin, belgenin kodunuzu artık çalıştırmaması için derlemeyi program aracılığıyla belgeden kaldırabilir veya belgeye program aracılığıyla bir derleme ekleyebilirsiniz.
Daha fazla bilgi için bkz . ServerDocument sınıfını kullanarak bir sunucudaki belgeleri yönetme.
Microsoft Office uygulaması lications kullanıcı arabirimini özelleştirme
Belge düzeyinde özelleştirme kullanarak Word ve Excel kullanıcı arabirimini aşağıdaki yollarla özelleştirebilirsiniz:
Belge yüzeyine konak denetimleri veya Windows Forms denetimleri ekleyin.
Daha fazla bilgi için bkz . Genişletilmiş nesneleri kullanarak Word'ün otomatikleştirilmesi, Genişletilmiş nesneler kullanarak Excel'i otomatikleştirme ve Office belgelerinde Windows Forms denetimlerine genel bakış.
Belgeye eylemler bölmesi ekleyin.
Daha fazla bilgi için bkz . Eylemler bölmesine genel bakış.
Şeride özel sekmeler ekleyin.
Daha fazla bilgi için bkz . Şeride genel bakış.
Şeritteki yerleşik bir sekmeye özel gruplar ekleyin.
Daha fazla bilgi için bkz . Nasıl yapılır: Yerleşik sekmeyi özelleştirme.
Microsoft Office uygulaması lications kullanıcı arabirimini özelleştirme hakkında daha fazla bilgi için bkz. Office kullanıcı arabirimi özelleştirme.
Belge düzeyinde özelleştirmelerde yerel Office nesnelerinden genişletilmiş nesneler alma
Office olaylarının birçok olay işleyicisi, olayı tetikleyen çalışma kitabını, çalışma sayfasını veya belgeyi temsil eden yerel bir Office nesnesi alır. Bazı durumlarda, bazı kodları yalnızca belge düzeyi özelleştirmenizdeki çalışma kitabı veya belge olayı tetiklediyse çalıştırmak isteyebilirsiniz. Örneğin, Excel için belge düzeyi özelleştirmesinde, kullanıcı özelleştirilmiş çalışma kitabındaki çalışma sayfalarından birini etkinleştirdiğinde bazı kodlar çalıştırmak isteyebilirsiniz, ancak kullanıcı aynı anda açık olan başka bir çalışma kitabında çalışma sayfasını etkinleştirdiğinde bunu yapmak istemezsiniz.
Yerel bir Office nesneniz olduğunda, bu nesnenin belge düzeyi özelleştirmesinde bir konak öğesine mi yoksa konak denetimine mi genişletildiğini test edebilirsiniz. Konak öğeleri ve konak denetimleri, Office çalışma zamanı için Visual Studio Araçları tarafından sağlanan ve Word veya Excel nesne modellerinde yerel olarak bulunan nesnelere (yerel Office nesneleri olarak adlandırılır) işlevsellik ekleyen türlerdir. Konak öğeleri ve konak denetimleri toplu olarak genişletilmiş nesneler olarak da adlandırılır. Konak öğeleri ve konak denetimleri hakkında daha fazla bilgi için bkz . Konak öğelerine ve konak denetimlerine genel bakış.
GetVstoObject ve HasVstoObject yöntemlerini anlama
Yerel bir Office nesnesini test etmek için projenizde ve GetVstoObject
yöntemlerini kullanınHasVstoObject
:
Yerel Office nesnesinin
HasVstoObject
özelleştirmenizde genişletilmiş bir nesnesi olup olmadığını belirlemek istiyorsanız yöntemini kullanın. Bu yöntem, yerel Office nesnesinin genişletilmiş bir nesnesi varsa true, aksi takdirde false döndürür.GetVstoObject
Yerel bir Office nesnesi için genişletilmiş nesneyi almak istiyorsanız yöntemini kullanın. Belirtilen yerel Office nesnesi varsa bu yöntem bir ListObject, WorkbookWorksheet, veya Document nesnesi döndürür. Aksi takdirde nullGetVstoObject
döndürür. Örneğin,GetVstoObject
word belge projenizdeki belgenin temel nesnesi belirtilen Document ise yöntemi bir Document döndürür.Belge düzeyi projelerinde, çalışma zamanında yeni Workbookbir , Worksheetveya Document konak öğesi oluşturmak için yöntemini kullanamazsınız
GetVstoObject
. Bu yöntemi yalnızca projenizde tasarım zamanında oluşturulan mevcut konak öğelerine erişmek için kullanabilirsiniz. Çalışma zamanında yeni konak öğeleri oluşturmak istiyorsanız, bir VSTO Eklenti projesi geliştirmeniz gerekir. Daha fazla bilgi için bkz . Konak öğelerinin ve konak denetimlerinin programlı sınırlamaları ve Çalışma zamanında VSTO Eklentilerinde Word belgelerini ve Excel çalışma kitaplarını genişletme.
GetVstoObject ve HasVstoObject yöntemlerini kullanma
ve yöntemini çağırmak HasVstoObject
için veya Globals.Factory.HasVstoObject
yöntemini kullanın Globals.Factory.GetVstoObject
ve test etmek istediğiniz yerel Word veya Excel nesnesini (veya WorksheetgibiDocument) geçirin.GetVstoObject