Belirtiler
Microsoft Word 'Ü denetlemek için Otomasyon kullanan Microsoft Visual Basic kodunu çalıştırdığınızda, aşağıdaki hata iletilerinden birini alabilirsiniz:hata iletisi 1
Çalışma zamanı hatası '-2147023174 ' (800706ba) Otomasyon hatası
Hata iletisi 2
Çalışma zamanı hatası ' 462 ': uzak sunucu makinesi yok veya kullanılamıyor
Neden
Visual Basic, Word nesnesine, yönteme veya özelliğe bir Word nesne değişkeniyle hak vermeden çağrı yapmadan bir kod satırı nedeniyle Word 'e bir başvuru oluşturmuştur. Siz programı sonlandırana kadar Visual Basic bu başvuruyu serbest bırakabilir. Bu hatalı başvurusu, kod birden çok kez çalıştırıldığında Otomasyon koduyla aynı şekilde kesintiye uğratır.
Çözüm
Bir Word nesnesine, yöntemine veya özelliğine yapılan her çağrının uygun nesne değişkeniyle nitelendirilmeleri için kodu değiştirin.
Durum
Bu davranış tasarımdan kaynaklanır.
Ek Bilgi
Word 'Ü otomatikleştirmek için genellikle Word uygulamasına veya belge nesnesine başvuran bir nesne değişkeni oluşturursunuz. Daha sonra diğer nesne değişkenleri, Word nesne modelindeki seçime, bir aralığa veya diğer nesnelere başvuracak şekilde ayarlanabilir. Word nesnesi, yöntemi veya özelliği kullanmak için kod yazdığınızda, çağrının başına uygun nesne değişkenini kullanmanız gerekir. Bunu yapmazsanız, Visual Basic, o anda çalışan örneğe ayarlayan gizli bir genel değişken başvurusunu kullanır. Word kapatılmışsa veya bildirilen nesne değişkeni serbest bırakımışsa, gizli genel değişkeni geçersiz (yok edilmiş) bir nesneye başvuracaktır. Otomasyon kodunu yeniden çalıştırırken, bu gizli nesne değişkenine yapılan çağrılar, belirtilen hatayla başarısız olur. Aşağıdaki adımlarda bu sorunu nasıl yeniden yazabileceğiniz ve nasıl düzeltebileceğiniz gösterilmektedir.
Davranışı yeniden oluşturma adımları
-
Visual Basic 'te yeni bir Standart EXE projesi başlatın. Form1 varsayılan olarak oluşturulur.
-
Proje menüsünden Başvurular 'a tıklayın ve sonra aşağıdaki seçeneklerden birine tıklayın:
-
Office Word 2007 için, Microsoft Word 12,0 nesne kitaplığı
-
Word 2003 için, Microsoft Word 11,0 nesne kitaplığı
-
Word 2003 için, Microsoft Word 10,0 nesne kitaplığı
-
Word 2000 için, Microsoft Word 9,0 nesne kitaplığı'nı tıklatın.
-
Word 97 için, Microsoft Word 8,0 nesne kitaplığı'nı tıklatın.
-
-
Form1 'e bir CommandButton koyun.
-
Aşağıdaki kodu Form1 ' in Code penceresine kopyalayın:
Option Explicit Private Sub Command1_Click() Dim oWord As Word.Application Dim oDoc As Word.Document Dim oRange as Word.Range Set oWord = CreateObject("Word.Application") With oWord .Visible = True .Activate .WindowState = wdWindowStateNormal End With Set oDoc = oWord.Documents.Add MsgBox "Document open", vbMsgBoxSetForeground With oDoc .PageSetup.LeftMargin = InchesToPoints(1.25) End With ' This example inserts text at the end of section one. Set oRange = ActiveDocument.Sections(1).Range With oRange .MoveEnd Unit:=wdCharacter, Count:= -1 .Collapse Direction:=wdCollapseEnd .InsertParagraphAfter .InsertAfter "End of section." End With With oDoc .Saved = True End With Set oRange = Nothing Set oDoc = Nothing oWord.Quit Set oWord = Nothing End Sub
-
Başlat menüsünde RunBaşlat 'ı tıklatın veya F5 tuşuna basarak programı başlatın.
-
Komutçubuğu Hata oluşmaz. Bununla birlikte, Word için bir başvuru oluşturulmuştur ve henüz yayınlanmamış.
-
Komutdüğmesini yeniden tıklatın ve daha önce açıklanan hatayı aldığınız unutmayın.Not Hata, kod, InchesToPoints yöntemine, oWord nesne değişkeniyle çağrısından önce başvurduğu için oluşur.
-
Projeyi durdurun ve aşağıdaki satırı değiştirin:
.PageSetup.LeftMargin = InchesToPoints(1.25)
dön
.PageSetup.LeftMargin = oWord.InchesToPoints(1.25)
-
Programı yeniden deneyin. Ardından Commanddüğmesini tıklayın. Hata oluşmaz.
-
Commanddüğmesini yeniden tıklatın ve hatayı aldığınız unutmayın.Not Hata, kod ActiveWord nesne değişkeniyle çağrısından önce ActiveDocument bölümüne başvurduğundan oluşur.
-
Projeyi durdurun ve aşağıdaki satırı değiştirin:
Set oRange = ActiveDocument.Sections(1).Range
dön
Set oRange = oWord.ActiveDocument.Sections(1).Range
-
Programı yeniden deneyin. Kodu birden çok kez hatasız çalıştırabiliriz.
Bir Visual Basic projesi oluştururken, projenizde Microsoft Word nesne kitaplığına başvuru varsa, Word Yardım dosyasında Word nesne modelinin, yöntemlerin ve özelliklerinin örnek kodu kullanılabilir. İmleç kodunuzda bir anahtar sözcüğün üzerine geldiğinde, F1 tuşuna basarak ilgili yardım metnini görürsünüz. Yardım konusunun örnek kodu Microsoft Word Visual Basic for Applications kodu olacaktır. Visual Basic kodunuzun gerektirdiği nesne başvurularını göstermez. Niteleyicileri uygun şekilde eklemeniz gerekir.
Başvurular
Ek bilgi için lütfen Microsoft Bilgi Bankası 'nda aşağıdaki makalelere bakın:
178510 SORUN: ' _Global ' nesnesinin Excel Otomasyonu yöntemi başarısız oldu
167223 Microsoft Office 97 Otomasyonu yardım dosyası kullanılabilirOffice uygulamalarının otomasyonu hakkında ek bilgi için, Microsoft Bilgi Bankası 'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
222101 Nasıl yapılır: Office nesne modeli belgelerini bulma ve kullanma