Aracılığıyla paylaş


İzlenecek yol: Visual Basic'te Office Programlama

Visual Studio, Visual Basic'te Microsoft Office programlamayı geliştiren özellikler sunar. Visual Basic'teki özellikler arasında otomatik uygulanan özellikler, lambda ifadelerindeki deyimler ve koleksiyon başlatıcılar bulunur. Kullanıcının bilgisayarına birincil birlikte çalışma derlemeleri (PIA) dağıtmadan COM bileşenleriyle etkileşim kuran derlemelerin dağıtımına olanak tanıyan tür bilgilerini ekleyebilirsiniz. Daha fazla bilgi için bkz. İzlenecek Yol: Yönetilen Derlemelerden Türleri Ekleme.

Bu izlenecek yol, bu özellikleri Office programlama bağlamında gösterir, ancak bu özelliklerin çoğu genel programlamada da yararlıdır. İzlenecek yolda, Excel çalışma kitabı oluşturmak için bir Excel Eklentisi uygulaması kullanırsınız. Ardından, çalışma kitabının bağlantısını içeren bir Word belgesi oluşturursunuz. Son olarak, PIA bağımlılığını nasıl etkinleştirip devre dışı bırakabileceğinizi göreceksiniz.

Önkoşullar

Bu kılavuzu tamamlamak için bilgisayarınızda Microsoft Office Excel ve Microsoft Office Word yüklü olmalıdır.

Not

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. IDE'yi kişiselleştirme.

Excel Eklenti uygulaması ayarlama

  1. Visual Studio’yu çalıştırın.

  2. Dosya menüsünde Yeni'nin üzerine gelin ve Proje'ye tıklayın.

  3. Yüklü Şablonlar bölmesinde Visual Basic'i genişletin, Office'i genişletin ve ardından Office ürününün sürüm yılına tıklayın.

  4. Şablonlar bölmesinde Excel <sürümü> Eklentisi'ne tıklayın.

  5. Hedef Çerçeve kutusunda .NET Framework 4 veya sonraki bir sürümün göründüğünden emin olmak için Şablonlar bölmesinin en üstüne bakın.

  6. İstersen, Ad kutusuna projeniz için bir ad yazın.

  7. Tamam'a tıklayın.

  8. Yeni proje Çözüm Gezgini görüntülenir.

Başvuru ekleme

  1. Çözüm Gezgini'da projenizin adına sağ tıklayın ve ardından Başvuru Ekle'ye tıklayın. Başvuru Ekle iletişim kutusu görüntülenir.

  2. Derlemeler sekmesinde, Bileşen Adı listesinde Microsoft.Office.Interop.Excel, sürüm <version>.0.0.0 (Office ürün sürüm numaralarının anahtarı için bkz. Microsoft Sürümleri) öğesini seçin ve ardından CTRL tuşunu basılı tutarak Microsoft.Office.Interop.Word, version <version>.0.0.0öğesini seçin. Derlemeleri görmüyorsanız, bunların yüklendiğinden ve görüntülendiğinden emin olmanız gerekebilir (bkz . Nasıl yapılır: Office Birincil Birlikte Çalışma Derlemelerini Yükleme).

  3. Tamam'a tıklayın.

Gerekli Imports deyimlerini veya using yönergelerini ekleme

  1. Çözüm Gezgini'daThisAddIn.vb veya ThisAddIn.cs dosyasına sağ tıklayın ve ardından Kodu Görüntüle'ye tıklayın.

  2. Henüz yoksa kod dosyasının en üstüne aşağıdaki Imports deyimleri ekleyin.

    Imports Microsoft.Office.Interop
    

Banka hesaplarının listesini oluşturma

  1. Çözüm Gezgini projenizin adına sağ tıklayın, Ekle'ye ve ardından Sınıf'a tıklayın. Sınıfı Account.vb olarak adlandırın. Ekle'ye tıklayın.

  2. sınıfının tanımını Account aşağıdaki kodla değiştirin. Sınıf tanımları otomatik olarak uygulanan özellikleri kullanır. Daha fazla bilgi için bkz. Otomatik Uygulanan Özellikler.

    Public Class Account
        Property ID As Integer = -1
        Property Balance As Double
    End Class
    
  3. İki hesap içeren bir bankAccounts liste oluşturmak için ThisAddIn.vb dosyasındaki ThisAddIn_Startup yöntemine aşağıdaki kodu ekleyin. Liste bildirimleri koleksiyon başlatıcılarını kullanır. Daha fazla bilgi için bkz . Koleksiyon Başlatıcıları.

    Dim bankAccounts As New List(Of Account) From {
        New Account With {
                              .ID = 345,
                              .Balance = 541.27
                         },
        New Account With {
                              .ID = 123,
                              .Balance = -127.44
                         }
        }
    

Excel’e verileri aktarma

  1. Aynı dosyada sınıfına aşağıdaki yöntemi ThisAddIn ekleyin. yöntemi bir Excel çalışma kitabı ayarlar ve verileri bu çalışma kitabına aktarır.

    Sub DisplayInExcel(ByVal accounts As IEnumerable(Of Account),
                   ByVal DisplayAction As Action(Of Account, Excel.Range))
    
        With Me.Application
            ' Add a new Excel workbook.
            .Workbooks.Add()
            .Visible = True
            .Range("A1").Value = "ID"
            .Range("B1").Value = "Balance"
            .Range("A2").Select()
    
            For Each ac In accounts
                DisplayAction(ac, .ActiveCell)
                .ActiveCell.Offset(1, 0).Select()
            Next
    
            ' Copy the results to the Clipboard.
            .Range("A1:B3").Copy()
        End With
    End Sub
    
    • Add yönteminin belirli bir şablonu belirtmek için isteğe bağlı bir parametresi vardır. İsteğe bağlı parametreler, parametrenin varsayılan değerini kullanmak istiyorsanız bu parametrenin bağımsız değişkenini atlamanızı sağlar. Önceki örnekte hiçbir bağımsız değişken gönderilmediğinden, Add varsayılan şablonu kullanır ve yeni bir çalışma kitabı oluşturur.

    • Range Range nesnesinin ve Offset özellikleri, dizine alınan özellikler özelliğini kullanır. Dizine alınan özellikler de nesnesinin ValueRange özelliğini kullanmanıza olanak tanıyarak özelliğini kullanma gereksinimini Value2 ortadan kaldırır. Value özelliği dizine eklenir, ancak dizin isteğe bağlıdır. İsteğe bağlı bağımsız değişkenler ve dizine alınan özellikler aşağıdaki örnekte birlikte çalışır.

  2. Sütun genişliklerini DisplayInExcel içeriğe uyacak şekilde ayarlamak için sonuna aşağıdaki kodu ekleyin.

    ' Add the following two lines at the end of the With statement.
    .Columns(1).AutoFit()
    .Columns(2).AutoFit()
    

    Birlikte çalışma türlerini ekleme hakkında daha fazla bilgi için, bu makalenin devamında yer alan "PIA başvuruunu bulmak için" ve "PIA bağımlılığını geri yüklemek için" yordamlarına bakın.

DisplayInExcel'i çağırma

  1. Yönteminin sonuna ThisAddIn_StartUp aşağıdaki kodu ekleyin. çağrısı DisplayInExcel iki bağımsız değişken içerir. İlk bağımsız değişken, işlenecek hesap listesinin adıdır. İkinci bağımsız değişken, verilerin nasıl işlendiğini tanımlayan çok satırlı lambda ifadesidir. Her hesabın ID ve balance değerleri bitişik hücrelerde ve bakiye sıfırdan küçükse satır kırmızı olarak görüntülenir.

    DisplayInExcel(bankAccounts,
           Sub(account, cell)
               ' This multiline lambda expression sets custom
               ' processing rules for the bankAccounts.
               cell.Value = account.ID
               cell.Offset(0, 1).Value = account.Balance
    
               If account.Balance < 0 Then
                   cell.Interior.Color = RGB(255, 0, 0)
                   cell.Offset(0, 1).Interior.Color = RGB(255, 0, 0)
               End If
           End Sub)
    
  2. Programı çalıştırmak için F5 tuşuna basın. Hesaplardan alınan verileri içeren bir Excel çalışma sayfası görüntülenir.

Word belgesi ekleme

  1. Excel çalışma kitabına bağlantı içeren bir Word belgesi oluşturmak için yönteminin sonuna ThisAddIn_StartUp aşağıdaki kodu ekleyin.

    Dim wordApp As New Word.Application
    wordApp.Visible = True
    wordApp.Documents.Add()
    wordApp.Selection.PasteSpecial(Link:=True, DisplayAsIcon:=True)
    

    PasteSpecial yönteminin yedi parametresi vardır ve bunların tümü isteğe bağlı başvuru parametreleri olarak tanımlanır. Adlandırılmış ve isteğe bağlı bağımsız değişkenler, erişmek istediğiniz parametreleri ada göre belirlemenizi ve bağımsız değişkenleri yalnızca bu parametrelere göndermenizi sağlar. Bu örnekte, Pano'daki çalışma kitabına bir bağlantı oluşturulması gerektiğini (parametre Link) ve bağlantının Word belgesinde bir simge (parametreDisplayAsIcon) olarak görüntüleneceğini belirtmek için bağımsız değişkenler gönderilir.

Uygulamayı çalıştırma

  1. Uygulamayı çalıştırmak için F5'e basın. Excel başlatılır ve içindeki bankAccountsiki hesaptaki bilgileri içeren bir tablo görüntülenir. Ardından, Excel tablosunun bağlantısını içeren bir Word belgesi görüntülenir.

Tamamlanan projeyi temizleme

  1. Visual Studio'da, Oluştur menüsünde Çözümü Temizle'ye tıklayın. Aksi takdirde, bilgisayarınızda Excel'i her açtığınızda eklenti çalışır.

PIA başvuruyu bulma

  1. Uygulamayı yeniden çalıştırın, ancak Çözümü Temizle'ye tıklamayın.

  2. Başlangıç'ı seçin. Microsoft Visual Studio <sürümünü> bulun ve bir geliştirici komut istemi açın.

  3. Visual Studio için Geliştirici Komut İstemi penceresine yazın ildasm ve ENTER tuşuna basın. IL DASM penceresi görüntülenir.

  4. IL DASM penceresindeki Dosya menüsünde Dosya>Aç'ı seçin. Visual Studio <sürümüne> çift tıklayın ve ardından Projeler'e çift tıklayın. Projenizin klasörünü açın ve.dll projenizin adı için bin/Debug klasörüne bakın. projenizin adına.dll çift tıklayın. Projenizin özniteliklerinin yanı sıra diğer modüllere ve derlemelere başvurular da yeni bir pencere görüntülenir. ve Microsoft.Office.Interop.Word ad alanlarının Microsoft.Office.Interop.Excel derlemeye dahil olduğunu unutmayın. Varsayılan olarak Visual Studio'da derleyici, başvurulan bir PIA'dan derlemenize ihtiyacınız olan türleri içeri aktarır.

    Daha fazla bilgi için bkz . Nasıl yapılır: Derleme İçeriğini Görüntüleme.

  5. BILDIRIM simgesine çift tıklayın. Proje tarafından başvuruda bulunılan öğeleri içeren derlemelerin listesini içeren bir pencere görüntülenir. Microsoft.Office.Interop.Excel ve Microsoft.Office.Interop.Word listeye dahil değildir. Projenizin ihtiyaç duyduğu türler derlemenize aktarıldığından, PIA başvuruları gerekli değildir. Bu, dağıtımı kolaylaştırır. PIA'ların kullanıcının bilgisayarında mevcut olması gerekmez ve bir uygulama PIA'nın belirli bir sürümünün dağıtılması gerekmediğinden, tüm sürümlerde gerekli API'lerin mevcut olması koşuluyla uygulamalar Office'in birden çok sürümüyle çalışacak şekilde tasarlanabilir.

    PIA dağıtımı artık gerekli olmadığından, önceki sürümler de dahil olmak üzere Office'in birden çok sürümüyle çalışan gelişmiş senaryolarda bir uygulama oluşturabilirsiniz. Ancak, bu yalnızca kodunuz üzerinde çalıştığınız Office sürümünde bulunmayan API'leri kullanmıyorsa çalışır. Belirli bir API'nin önceki bir sürümde kullanılabilir olup olmadığı her zaman net değildir ve bu nedenle Office'in önceki sürümleriyle çalışmak önerilmez.

    Not

    Office, PIA'ları Office 2003'e kadar yayımlamadı. Bu nedenle, Office 2002 veya önceki sürümleri için birlikte çalışma derlemesi oluşturmanın tek yolu COM başvuruyu içeri aktarmaktır.

  6. Bildirim penceresini ve derleme penceresini kapatın.

PIA bağımlılığını geri yükleme

  1. Çözüm Gezgini'daTüm Dosyaları Göster düğmesine tıklayın. Başvurular klasörünü genişletin ve Microsoft.Office.Interop.Excel'i seçin. Özellikler penceresini görüntülemek için F4 tuşuna basın.
  2. Özellikler penceresinde Birlikte Çalışma Türlerini Ekle özelliğini True yerine False olarak değiştirin.
  3. Için bu yordamdaki Microsoft.Office.Interop.Word1. ve 2. adımları yineleyin.
  4. Projenin hala düzgün çalıştığını doğrulamak için F5 tuşuna basın.
  5. Derleme penceresini açmak için önceki yordamdaki 1-3 arası adımları yineleyin. ve Microsoft.Office.Interop.Excel öğesinin Microsoft.Office.Interop.Word artık eklenmiş derlemeler listesinde olmadığına dikkat edin.
  6. BILDIRIM simgesine çift tıklayın ve başvuruda bulunan derlemeler listesinde ilerleyin. Microsoft.Office.Interop.Excel Hem hem de Microsoft.Office.Interop.Word listede yer alır. Uygulama Excel'e başvurup PIA'ları Word ve Birlikte Çalışma Türlerini Ekle özelliği False olarak ayarlandığından, her iki derleme de son kullanıcının bilgisayarında bulunmalıdır.
  7. Visual Studio'da, tamamlanan projeyi temizlemek için Derleme menüsünde Çözümü Temizle'ye tıklayın.

Ayrıca bkz.