Aracılığıyla paylaş


İzlenecek yol: Visual Basic projesinde VBA'dan kod çağırma

Bu kılavuz, belgedeki Visual Basic for Applications (VBA) kodundan Microsoft Office Word için belge düzeyinde özelleştirmede bir yöntemin nasıl çağrılacağını gösterir. Yordam üç temel adımdan oluşur: konak öğesi sınıfına ThisDocument bir yöntem ekleyin, yöntemi VBA kodunda kullanıma sunun ve ardından belgedeki VBA kodundan yöntemini çağırın.

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

Bu izlenecek yol özellikle Word'i kullansa da, izlenecek yol tarafından ortaya konan kavramlar Excel için belge düzeyi projeleri için de geçerlidir.

Bu izlenecek yol aşağıdaki görevleri gösterir:

  • VBA kodu içeren bir belge oluşturma.

  • Word'de Güven Merkezi'ni kullanarak belgenin konumuna güvenme.

  • Konaklama öğesi sınıfına ThisDocument bir yöntem ekleme.

  • yöntemini VBA koduna ifşa etme.

  • VBA kodundan metodu çağırma.

Uyarı

Bilgisayarınız, aşağıdaki yönergelerde yer alan Visual Studio kullanıcı arabirimi öğelerinden bazıları için farklı adlar veya konumlar gösterebilir. Sahip olduğunuz Visual Studio sürümü ve kullandığınız ayarlar bu öğeleri belirler. Daha fazla bilgi için bkz . Visual Studio IDE'yi kişiselleştirme.

Önkoşullar

Bu kılavuzu tamamlamak için aşağıdaki bileşenlere ihtiyacınız vardır:

VBA kodu içeren bir belge oluşturma

İlk adım, basit bir VBA makrosunun bulunduğu makro içerebilen bir belge oluşturmaktır. Bu belgeyi temel alan bir Visual Studio projesi oluşturmadan önce belge bir VBA projesi içermelidir. Aksi takdirde Visual Studio, VBA kodunun özelleştirme derlemesine çağrı yapmasını sağlamak için VBA projesini değiştiremez.

Kullanmak istediğiniz VBA kodunu içeren bir belgeniz zaten varsa, bu adımı atlayabilirsiniz.

VBA kodu içeren bir belge oluşturmak için

  1. Word'i başlatın.

  2. Etkin belgeyi, DocumentWithVBA adlı bir Word Macro-Enabled Belgesi (*.docm) olarak kaydedin. Masaüstü gibi uygun bir konuma kaydedin.

  3. Şeritte Geliştirici sekmesine tıklayın.

    Uyarı

    Geliştirici sekmesi görünmüyorsa, önce bunu göstermeniz gerekir. Daha fazla bilgi için bkz . Nasıl yapılır: Şeritte geliştirici sekmesini gösterme.

  4. Kod grubunda Visual Basic'e tıklayın.

    Visual Basic Düzenleyicisi açılır.

  5. Proje penceresinde ThisDocument'a çift tıklayın.

    Nesnenin ThisDocument kod dosyası açılır.

  6. Kod dosyasına aşağıdaki VBA kodunu ekleyin. Bu kod hiçbir şey yapmaz basit bir işlev tanımlar. Bu işlevin tek amacı belgede bir VBA projesinin bulunduğundan emin olmaktır. Bu, bu kılavuzdaki sonraki adımlar için gereklidir.

    Sub EmptySub()
    End Sub
    
  7. Belgeyi kaydedin ve Word'dan çıkın.

Projeyi oluşturma

Artık Word için daha önce oluşturduğunuz makro etkinleştirilmiş belgeyi kullanan bir belge düzeyi projesi oluşturabilirsiniz.

Yeni proje oluşturmak için

  1. Visual Studio'yu başlatın.

  2. Dosya menüsünde Yeni'nin üzerine gelin ve Proje'ye tıklayın. IDE'niz Visual Basic geliştirme ayarlarını kullanacak şekilde ayarlandıysa , Dosya menüsünde Yeni Proje'ye tıklayın.

  3. Şablonlar bölmesinde Visual Basic'i ve ardından Office/SharePoint'i genişletin.

  4. Office Eklentileri düğümünü seçin.

  5. Proje şablonları listesinde Word 2010 Belgesi veya Word 2013 Belge projesini seçin.

  6. Ad alanına CallingCodeFromVBA yazın.

  7. Tamam'a tıklayın.

    Office için Visual Studio Araçları Proje Sihirbazı açılır.

  8. Var olan bir belgeyi kopyala'yı seçin ve Var olan belgenin Tam yolu kutusunda, daha önce oluşturduğunuz DocumentWithVBA belgesinin konumunu belirtin. Makro etkinleştirilmiş kendi belgenizi kullanıyorsanız, bunun yerine bu belgenin konumunu belirtin.

  9. Finish (Son) düğmesine tıklayın.

    Visual Studio, DocumentWithVBA belgesini tasarımcıda açar ve CallingCodeFromVBA projesini Çözüm Gezgini'ne ekler.

Belgenin konumuna güvenme

Çözümünüzdeki kodu belgedeki VBA koduyla kullanıma sunmadan önce, belgedeki VBA'ya güvenmeniz gerekir. Bunu yapmanın birkaç yolu vardır. Bu izlenecek yol için, Word'deki Güven Merkezi'nde belgenin konumuna güvenin.

Belgenin konumuna güvenmek için

  1. Word'i başlatın.

  2. Dosya sekmesine tıklayın.

  3. Word Seçenekleri düğmesine tıklayın.

  4. Kategoriler bölmesinde Güven Merkezi'ne tıklayın.

  5. Ayrıntılar bölmesinde Güven Merkezi Ayarları'na tıklayın.

  6. Kategoriler bölmesinde Güvenilen Konumlar'a tıklayın.

  7. Ayrıntılar bölmesinde Yeni konum ekle'ye tıklayın.

  8. Microsoft Office Güvenilen Konumu iletişim kutusunda, CallingCodeFromVBA projesini içeren klasöre göz atın.

  9. Bu konumun alt klasörleri de güvenilir olarak ayarla seçin.

  10. Microsoft Office Güvenilen Konum iletişim kutusunda Tamam'a tıklayın.

  11. Güven Merkezi iletişim kutusunda Tamam'a tıklayın.

  12. Word Seçenekleri iletişim kutusunda Tamam'a tıklayın.

  13. Word'den çıkın.

ThisDocument sınıfına yöntem ekleme

VBA projesi ayarlandığından, VBA kodundan çağırabileceğiniz konak öğesi sınıfına bir yöntem ThisDocument ekleyin.

ThisDocument sınıfına yöntem eklemek için

  1. Çözüm Gezgini'ndeThisDocument.vb sağ tıklayın ve ardından Kodu Görüntüle'ye tıklayın.

    ThisDocument.vb dosyası Kod Düzenleyicisi'nde açılır.

  2. Sınıfına aşağıdaki yöntemi ThisDocument ekleyin. Bu yöntem, belgenin başında iki satır ve iki sütun içeren bir tablo oluşturur. Parametreler, ilk satırda görüntülenen metni belirtir. Bu kılavuzun ilerleyen bölümlerinde, belgedeki VBA kodundan bu yöntemi çağıracaksınız.

    Public Sub CreateTable(ByVal firstColumnHeader As String, _
        ByVal secondColumnHeader As String)
    
        Me.Paragraphs(1).Range.InsertParagraphBefore()
        Dim table1 As Word.Table = Me.Tables.Add(Me.Paragraphs(1).Range, 2, 2)
    
        With table1
            .Style = "Table Professional"
            .Cell(1, 1).Range.Text = firstColumnHeader
            .Cell(1, 2).Range.Text = secondColumnHeader
        End With
    End Sub
    
  3. Projeyi oluşturun.

yöntemini VBA kodunda kullanıma sunma

Yöntemini belgedeki CreateTable VBA koduna göstermek için konak öğesinin ThisDocument özelliğini True olarak ayarlayın.

Yöntemini VBA kodunda kullanıma sunma

  1. Çözüm Gezgini'ndeThisDocument.vb çift tıklayın.

    DocumentWithVBA dosyası tasarımcıda açılır.

  2. Özellikler penceresinde EnableVbaCallers özelliğini seçin ve değeri True olarak değiştirin.

  3. Görüntülenen iletide Tamam'a tıklayın.

  4. Projeyi oluşturun.

VBA kodundan yöntemini çağırma

Artık belgedeki CreateTable VBA kodundan yöntemini çağırabilirsiniz.

Uyarı

Bu kılavuzda, projede hata ayıklarken belgeye VBA kodu ekleyebilirsiniz. Visual Studio, derleme çıktı klasöründeki belgeyi ana proje klasöründeki belgenin bir kopyasıyla değiştirdiğinden, projeyi bir sonraki derlemenizde bu belgeye eklediğiniz VBA kodunun üzerine yazılır. VBA kodunu kaydetmek istiyorsanız, bunu proje klasöründeki belgeye kopyalayabilirsiniz. Daha fazla bilgi için bkz. VBA ve belge düzeyi özelleştirmelerini birleştirme.

VBA kodundan yöntemi çağırmak için

  1. Projenizi çalıştırmak için F5 tuşuna basın.

  2. Geliştirici sekmesinin Kod grubunda Visual Basic'e tıklayın.

    Visual Basic Düzenleyicisi açılır.

  3. Ekle menüsünde Modül'e tıklayın.

  4. Aşağıdaki kodu yeni modüle ekleyin.

    Bu kod, özelleştirme derlemesindeki yöntemini çağırır CreateTable . Makro, ThisDocument nesnesinin CallVSTOAssembly özelliğini kullanarak bu yönteme erişir. Bu kılavuzun önceki bölümlerinde EnableVbaCallers özelliğini ayarladığınızda bu özellik otomatik olarak oluşturulmuştur.

    Sub CreateTable()
        Call ThisDocument.CallVSTOAssembly.CreateTable("Employee Name", "Start Date")
    End Sub
    
  5. F5tuşlarına basın.

  6. Belgeye yeni bir tablo eklendiğini doğrulayın.

  7. Değişikliklerinizi kaydetmeden Word'den çıkış yapın.

Sonraki Adımlar

VbA'dan Office çözümlerinde kod çağırma hakkında daha fazla bilgiyi şu konularda bulabilirsiniz: