Makale numarası: 288902 - Son Gözden Geçirme: 31 Ocak 2007 Çarşamba - Gözden geçirme: 9.3

Office otomasyon sunucuları GetObject ve CreateObject davranışı

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

Bu makalede, Microsoft Office uygulamalarının çeşitli sürümleriyle GetObject ve CreateObject işlevleri kullanırken oluşan farklı davranışlar anlatılır. GetObject ve CreateObject Microsoft Visual Basic ve Microsoft Visual Basic for Applications (VBA) tarafından sunulan işlevlerdir. GetObject başvuru olarak GetActiveObject API çağrıları ve CreateObject başvuru olarak Cocreateınstance API çağrıları kabul et, ancak bilgileri de Microsoft Visual C++ için geçerlidir.

Daha fazla bilgi

GetObject

GetObject, çalışan bir örneği için bir Otomasyon sunucusu eklemek için kullanılır. GetObject, ancak önerilen sözdizimini çağırmak için birkaç farklı yolla için Microsoft Office uygulamaları olduğu gibi:
set xlApp = GetObject(, "Excel.Application")
				
bu kodu yürütüldüğünde, Microsoft Excel'in bir örneği çalışıyorsa, çalışan örneğinin nesne modeline xlApp değişken aracılığıyla erişebilirsiniz. Hiçbir örneği çalışıyorsa, aşağıdaki çalışma zamanı yakalanabilir bir hata iletisi alırsınız:
Çalışma zamanı hatası '429':
ActiveX bileşeni nesneyi oluşturamıyor
GetObject, Microsoft Excel'in birden çok örneğini çalıştırıyorsanız, önce başlatılan örneğine ekler. Ilk örneğini kapatın, başka bir çağrı GetObject, başlatıldı ikinci örneğe vb. için ekler.

Bu örnekte, açık bir belgenin adını biliyorsanız, belirli bir kopya iliştirebilirsiniz. Book2 adlı bir açık içeren çalışma kitabı, Excel'in bir örneği çalışıyorsa, başlatıldı en erken örnek olmasa bile, aşağıdaki kodu başarıyla bu örneğe bağlanır:
Set xlApp = GetObject("Book2").Application
				

CreateObject

CreateObject bir Otomasyon sunucusu için yeni bir örneğini başlatmak için kullanılır. Örneğin:
set xlApp = CreateObject("Excel.Application")
				
olup olmadığı sunucu SingleUse veya MultiUse olarak tasarlanmıştır, bağlı başka bir sunucu işlemi olabilir veya başlattı.. Bu, bir Otomasyon zorla bilgisayarı mi karar vermek için önemli bir fark olabilir örneği. Eklemeden önce bir örneği zaten çalışıyorsa, MultiUse bir sunucuyla sonra işiniz bittiğinde, sunucuyu program aracılığıyla kapatılıyor önlemek isteyebilirsiniz, otomatikleştirme.

Aşağıdaki tabloda, Microsoft Office ile ilgili bir çözüm oluştururken yararlı bir başvuru olarak hizmet verir. Bu davranış ve öznitelikleri çeşitli sürümleri ve olup bir UserControl varsa bunu SingleUse veya MultiUse, ise başlatıldığında, görünür sunucunun varsayılan olarak, Microsoft Office'in, uygulamaları listeler özelliği, bir Çıkış yöntemi ve kendi ana pencere sınıfı adı varsa.

Bu tabloyu kapaBu tabloyu aç
Uygulama(lar)VisibleÖrneklemesiniSahip UserControlÇıkSınıfAdı
Excel 97, 2000, 2002, 2003, 2007HayırSingleUseEVETEVETXlMain
Word 97, 2000, 2002, 2003, 2007HayırSingleUseEVETEVETOpusApp
PowerPoint 97HayırMultiUseHayırEVETPP97FrameClass
PowerPoint 2000HayırMultiUseHayırEVETPP9FrameClass
PowerPoint 2002HayırMultiUseHayırEVETPP10FrameClass
PowerPoint 2003HayırMultiUseHayırEVETPP11FrameClass
PowerPoint 2007HayırMultiUseHayırEVETPP12FrameClass
Access 97EVETSingleUseEVETEVETOMain
Access 2000, 2002, 2003, 2007HayırSingleUseEVETEVETOMain
Project 98, 2000HayırMultiUseEVETEVETJWinproj WhimperMainClass

Ana pencere sınıfı adı FindWindow APı'SINI çağırmak için herhangi bir örneği zaten çalışıyorsa, kolaylıkla öğrenmek istediğinizde yararlıdır. Özelliği, son başvuru olduğunda sunucu uygulamasının otomatik olarak kapanıp kapanmayacağını belirtir bir boolean özelliğidir UserControl (kümesine hiçbir şey) yayımladı. Çıkış yöntemi (son başvuru yayımlandıktan sonra örnek kapatılmıyor gibi) gerekli olduğu durumlarda <a2>UserControl</a2> özelliği geçersiz kılmak sağlar.

Genel olarak, Microsoft, yeni bir Office uygulaması örneği kullanıcı kullanabilecek bir örneğine ekleme yerine kullanmanızı önerir. Bu, en iyi örnek Application Progıd, oluşturmak ve açmak veya buradan yeni nesneler oluşturmak olur. Diğerleri, Excel.Sheet ve Word.Document gibi diğer Progıd OLE (Nesne bağlama ve katıştırma) kullanılmak üzere tasarlanmıştır ve CreateObject ile kullanıldığında tutarsız sonuçlar verebilir. Uygulama Progıd kullanarak, olası sorunları sunucu (değil katıştırma) Otomasyonu için açıkça başlatarak kaçının.

Otomasyon sunucusu ile Bitirdiğiniz zaman, tüm başvuruları, bırakın ve beklendiği gibi sunucu kapandığı için (varsa), Çıkış yöntemini çağırın. Otomasyon yoluyla bir örneği yapılandırmak ve sonra kullanmak kullanıcının açık bırakmak isterseniz, UserControl özelliği TRUE olarak ayarlaman?z ve sonra tüm başvuruların serbest gerekir. (UserControl özelliği TRUE olduğundan) çalıştıran sunucuyu sonra kalır ve (çünkü bekleyen başvuru) gerektiği gibi kullanıcı uygulamayı kapatır [NULL]'yı kapatır.

Not Word, UserControl özelliği salt okunur özelliklidir. TRUE veya FALSE ayarlanamaz. Word her zaman son başvuru yayımlandığında kalır ve çalışan.

Referanslar

Daha fazla bilgi için GetObject/CreateObject kullanma hakkında ve bazıları hakkında bilgi edinmek için özel durumlar ve Microsoft Office Otomasyonu kullanma ile ilgili sorunlar Microsoft Knowledge Base'deki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
222783  (http://support.microsoft.com/kb/222783/ ) Ppt2000: CreateObject yeni PowerPoint oturum oluştur Not
188546  (http://support.microsoft.com/kb/188546/ ) Hata: Word el ile başlangıç aynı örnek otomasyon kullanır
265385  (http://support.microsoft.com/kb/265385/ ) BILGI: Otomasyon PowerPoint 97 ve PowerPoint 2000 görüntüleyicileri
259940  (http://support.microsoft.com/kb/259940/ ) Hata: Word 2000 mu Not Keybindings.ClearAll çağrıldığında Çık
258511  (http://support.microsoft.com/kb/258511/ ) Nasıl YAPıLıR: Otomasyon için Office uygulaması için pencere tanıtıcı al...
249169  (http://support.microsoft.com/kb/249169/ ) Sonra bir sunu alma bellekteki PPT97: PowerPoint 97 kalır ve kapama
159922  (http://support.microsoft.com/kb/159922/ ) XL97: Kullanarak Çık yöntemi geçersiz bir işlem neden (Bu bağlantı, bir kısmı veya tamamı ingilizce olan içeriğe işaret edebilir.

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Access 2000 Standard Edition
  • Microsoft Access 97 Standard Edition
  • Microsoft Office PowerPoint 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft PowerPoint 2000 Standard Edition
  • Microsoft PowerPoint 97 Standard Edition
  • Microsoft Project 2000 Standard Edition
  • Microsoft Project 98 Standard Edition
  • Microsoft Office Word 2007
  • Microsoft Office Word 2003
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
  • Microsoft Word 97 Standard Edition
Anahtar Kelimeler: 
kbmt kbautomation kbinfo KB288902 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:288902  (http://support.microsoft.com/kb/288902/en-us/ )