Word 'Ü denetlemek için Otomasyon kullanan bir Visual Basic kodu çalıştırdığınızda "çalışma zamanı hatası '-2147023174 ' (800706ba)" hata 462 iletisi

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ı

  1. Visual Basic 'te yeni bir Standart EXE projesi başlatın. Form1 varsayılan olarak oluşturulur.

  2. 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.

  3. Form1 'e bir CommandButton koyun.

  4. 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
  5. Başlat menüsünde RunBaşlat 'ı tıklatın veya F5 tuşuna basarak programı başlatın.

  6. Komutçubuğu Hata oluşmaz. Bununla birlikte, Word için bir başvuru oluşturulmuştur ve henüz yayınlanmamış.

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

  8. Projeyi durdurun ve aşağıdaki satırı değiştirin:

    .PageSetup.LeftMargin = InchesToPoints(1.25)

    dön

    .PageSetup.LeftMargin = oWord.InchesToPoints(1.25)
  9. Programı yeniden deneyin. Ardından Commanddüğmesini tıklayın. Hata oluşmaz.

  10. 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.

  11. 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
  12. 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

Daha fazla yardıma mı ihtiyacınız var?

Yeteneklerinizi geliştirin
Eğitimleri keşfedin
Yeni özellikleri ilk olarak siz edinin
Microsoft Insider 'a katılın

Bu bilgi yardımcı oldu mu?

Geri bildiriminiz için teşekkür ederiz!

Geri bildiriminiz için teşekkürler! Office destek temsilcilerimizden biriyle görüşmeniz yararlı olabilir.

×