Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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 projeler 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:
ThisWorkbookSheet1Sheet2Sheet3
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
Startupkod ekleyin. Belge kapatılana kadar kodu çalıştırmak için olay işleyicisineShutdownkod 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ı'ndaki 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: DocumentBase'den türetilir.ThisWorkbook: WorkbookBase'den türetilir.Sheetn: den WorksheetBase türetilir.Bu temel sınıflar, üyelerine yapılan tüm çağrıları, Office için Visual Studio Araçları çalışma zamanında ilgili konak öğesi arabirimlerinin iç uygulamalarına yönlendirir. Örneğin,
ThisDocumentsınıfının Protect yöntemini çağırırsanız, DocumentBase sınıfı bu çağrıyı, Office için Visual Studio Araçları çalışma zamanı içindeki Document arabiriminin dahili uygulamasına 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 bir belge düzeyi projesindeki ThisDocument sınıfı, Word nesne modelindeki Document nesnesinin çoğu üyesini 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 aynı işlemi yapmak için Globals nesnesini kullanarak ThisDocument sınıfına erişin. Ö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 Save yöntemine karşılık gelirDocument.
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, belgenin arayüzüne Windows Forms denetimleri veya host kontrolleri 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 host kontrolü Excel'deki ListObject işlevlerinin tümünü sağlar. Ancak ListObject host kontrolünün ekstra etkinlikleri ve veri bağlama yetenekleri de vardır.
Daha fazla bilgi için Host öğelerine ve host denetimlerine genel bakış ve Office belgelerinde Windows Forms denetimlerine genel bakış bölümüne bakın.
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 uygulamalarının 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 host kontrolleri veya Windows Forms kontrolleri yerleştirin.
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 Şeride genel bakış'a bakın.
Ş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 uygulamalarının 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 için Visual Studio Araçları çalışma zamanı 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 HasVstoObject ve GetVstoObject yöntemlerini kullanın.
Yerel bir Office nesnesinin özelleştirmenizde genişletilmiş bir nesnesi olup olmadığını belirlemek istiyorsanız
HasVstoObjectmetodunu kullanın. Bu yöntem, yerel Office nesnesinin genişletilmiş bir nesnesi varsa true , aksi takdirde false döndürür.GetVstoObjectYerel 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 takdirdeGetVstoObjectnull döndürür. Örneğin,GetVstoObjectyöntemi, belirtilen Document, Word belgesi projenizdeki belgenin temel nesnesi ise bir Document döndürür.Belge düzeyi projelerinde, çalışma zamanında yeni bir
GetVstoObject, Workbook veya Worksheet konak öğesi oluşturmak için Document yöntemini kullanamazsınız. 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
HasVstoObject ve GetVstoObject yöntemini çağırmak için, Globals.Factory.GetVstoObject veya Globals.Factory.HasVstoObject yöntemini kullanın ve test etmek istediğiniz yerel Word veya Excel nesnesini (örneğin, bir Document veya Worksheet gibi) geçirin.