Microsoft hesabıyla oturum açın
Oturum açın veya hesap oluşturun.
Merhaba,
Farklı bir hesap seçin.
Birden çok hesabınız var
Oturum açmak istediğiniz hesabı seçin.

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 nesne değişkeniyle nitelemeden bir Word nesnesini, yöntemini veya özelliğini çağıran bir kod satırı nedeniyle Word başvurusu oluşturms. Visual Basic, siz programı sonlandırana kadar bu başvuruyu yayınlamaz. Bu hatalı başvuru, kod birden çok kez çalıştırıldığında otomasyon kodunu engeller.

Çözüm

Kodu, bir Word nesnesine, yöntemine veya özelliğine yapılan her çağrının uygun nesne değişkeniyle nitelenmiş olması için değiştirin.

Durum

Bu davranış tasarımdan kaynaklanır.

Daha Fazla Bilgi

Word otomatikleştirmek için genellikle Word Uygulaması veya Document nesnesine başvuran bir nesne değişkeni oluşturursunuz. Daha sonra diğer nesne değişkenleri, Word nesne modelindeki bir Seçime, Aralığa veya diğer nesnelere başvuracak şekilde ayarlanabilir. bir Word nesnesi, yöntemi veya özelliği kullanmak için kod yazdığınızda, çağrıdan önce her zaman uygun nesne değişkenine sahip olmanız gerekir. Bunu yapmazsanız, Visual Basic şu anda çalışan örneğe ayarladığı gizli bir genel değişken başvurusu kullanır. Word kapatılırsa veya bildirilen nesne değişkeni serbest bırakılırsa, gizli genel değişken artık geçersiz (yok edilmiş) bir nesneye başvurur. Otomasyon kodunu yeniden çalıştırırken, bu gizli nesne değişkenine yapılan çağrılar yukarıda belirtilen hatayla başarısız olur.


Aşağıdaki adımlar, bu sorunun nasıl yeniden üretilip düzeltilip düzeltilip düzeltilemediğini göstermektedir.
 

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ünde Başvurular'a tıklayın ve ardından aşağıdaki seçeneklerden birine tıklayın:

    • Office Word 2007 için Microsoft Word 12.0 Nesne Kitaplığı'ne tıklayın

    • Word 2003 için Microsoft Word 11.0 Nesne Kitaplığı'ne tıklayın

    • Word 2003 için Microsoft Word 10.0 Nesne Kitaplığı'ne tıklayın

    • Word 2000 için Microsoft Word 9.0 Nesne Kitaplığı'ne tıklayın.

    • Word 97 için Microsoft Word 8.0 Nesne Kitaplığı'ne tıklayın.

  3. Form1'e bir CommandButton yerleştirin.

  4. Aşağıdaki kodu Form1'in Kod Penceresi'ne 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. Çalıştır menüsünde Başlat'a tıklayın veya F5 tuşuna basarak programı başlatın.

  6. CommandButton'a tıklayın. Hata oluşmaz. Ancak, Word başvurusu oluşturulmuştur ve yayımlanmamıştır.

  7. CommandButton düğmesine yeniden tıklayın ve daha önce açıklanan hatayı aldığınızı unutmayın.

    Not Kod, çağrıdan önce oWord nesne değişkeni olmadan InchesToPoints Yöntemine başvurduğundan hata oluşur.

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

    .PageSetup.LeftMargin = InchesToPoints(1.25)
    

    -Hedef-

     

    .PageSetup.LeftMargin = oWord.InchesToPoints(1.25)
    
  9. Programı yeniden çalıştırın. Ardından CommandButton düğmesine tıklayın. Hata oluşmaz.

  10. CommandButton düğmesine yeniden tıklayın ve hatayı aldığınızı unutmayın.

    Not Kod, çağrıdan önce oWord nesne değişkeni olmadan ActiveDocument Bölümünün Range nesnesine başvurduğundan hata oluşur.

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

    Set oRange = ActiveDocument.Sections(1).Range
    

    -Hedef-
     

    Set oRange = oWord.ActiveDocument.Sections(1).Range
    
  12. Programı yeniden çalıştırın. Kodu hatasız olarak birden çok kez çalıştırabileceğinizi unutmayın.

Word otomatikleştirmek üzere bir Visual Basic projesi oluştururken, projenizin Microsoft Word Nesne Kitaplığı'na bir başvurusu varsa, Word Nesne Modeli'nin nesneleri, yöntemleri ve özellikleri için örnek kod Word Yardım dosyasından sağlanır. İmleç kodunuzdaki bir anahtar sözcüğün üzerindeyken F1 tuşuna basarak ilgili Yardım metinlerini 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ı'ndaki aşağıdaki makalelere bakın:

178510 PRB: '_Global' Nesnesinin Excel Otomasyon Yöntemi Başarısız Oldu

Office 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ına tıklayın:

nesne modeline genel bakış Word

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

Daha fazla seçenek mi istiyorsunuz?

Abonelik avantajlarını keşfedin, eğitim kurslarına göz atın, cihazınızın güvenliğini nasıl sağlayacağınızı öğrenin ve daha fazlasını yapın.

Topluluklar, soru sormanıza ve soruları yanıtlamanıza, geri bildirimde bulunmanıza ve zengin bilgiye sahip uzmanlardan bilgi almanıza yardımcı olur.

Bu bilgi yararlı oldu mu?

Dil kalitesinden ne kadar memnunsunuz?
Deneyiminizi ne etkiledi?
Gönder’e bastığınızda, geri bildiriminiz Microsoft ürün ve hizmetlerini geliştirmek için kullanılır. BT yöneticiniz bu verileri toplayabilecek. Gizlilik Bildirimi.

Geri bildiriminiz için teşekkürler!

×