VBA ThisWorkbook - ThisWorkbook Özelliği Excel VBA'da Nasıl Kullanılır?

İçindekiler

Excel VBA ThisWorkbook

VBA ThisWorkbook, excel kodunu yazdığımız çalışma kitabı anlamına gelir. Örneğin, "Satış 2019.xlsx" adlı çalışma kitabında çalışıyorsanız, genellikle çalışma kitabına bu şekilde başvururuz.

Çalışma kitapları ("Satış 2019.xlsx"). Etkinleştir

Kod, "Satış 2019.xlsx" adlı çalışma kitabını etkinleştirecektir.

Bu şekilde yazmak yerine, aşağıdaki VBA kodunu yazabiliriz.

ThisWorkbook.Activate '

Burada ThisWorkbook, kodu yazdığımız çalışma kitabını ifade eder. Bu kelimeye atıfta bulunarak, mevcut çalışma kitabındaki tüm görevleri yürütebilir ve tam olarak adlandırılmış bir çalışma kitabı adı ile uzun kodlardan kaçınabiliriz.

Diğerlerinin koduna atıfta bulunurken "Etkin Çalışma Kitabı" kelimesini de görmüş olmalısınız eminim. Bu aynı zamanda kodlamada sıklıkla kullanılan kelimelerden biridir. Temel olarak bu iki kelime arasındaki farkların ne olduğunu göreceğiz.

Excel VBA'da ThisWorkbook ile Çalışma

"ThisWorkbook" referans sözcüğü, Workbooks nesne niteleyicisinden daha güvenilirdir. İnsan eğilimlerinden biri, çalışma kitabının adını yanlış yazmaktır ve bu da bir hata mesajı atılmasına neden olur.

VBA ThisWorkbook'un daha güvenilir olmasının bir diğer önemli nedeni, çünkü çalışma kitabının adını değiştirmemiz durumunda, "ThisWorkbook" kelimesini kullandığımız için kodu değiştirmemiz gerekir.

Bu nedenle, ThisWorkbook, kodu yazdığımız çalışma kitabına başvurmak için daha güvenlidir.

Örnek 1

ThisWorkbook kelimesini excel VBA'da kullanabileceğimiz bazı örnekleri göreceğiz. Aşağıdaki kod çalışma kitabının adını yazdıracaktır.

Kod:

Sub TWB_Example1 () Dim WBName As String WBName = ThisWorkbook.Name MsgBox WBName End Sub

Kodu manuel olarak veya F5 tuşunu kullanarak çalıştırdığınızda, yukarıdaki kod çalışma kitabı adını VBA'daki mesaj kutusunda gösterecektir.

Örnek 2

"Bu Çalışma Kitabı" kelimesini kullanmak yerine, çalışma kitabı referansını ayarlamak için değişkenler kullanabilir ve hatta VBA'da kodun uzunluğunu büyük ölçüde azaltabiliriz. Örneğin, önce aşağıdaki koda bakın.

Kod:

Alt TWB_Örnek2 () ThisWorkbook.Activate ThisWorkbook.Worksheets ("Sheet1").

Yukarıdaki kod, kodun her satırında "ThisWorkbook" kullanmıştır. Her seferinde kelimeyi yazmak ne kadar zor. Dolayısıyla, bunu değişkenler kullanarak en aza indirebiliriz.

Şimdi, değişkenle birlikte aşağıdaki koda bakın.

Kod:

Alt TWB_Örnek2 () Dim Wb As Workbook Set Wb = ThisWorkbook Wb.Activate Wb.Worksheets ("Sheet1"). Wb.Save Wb.Close Wb.SaveAs End Sub

Güzel görünüyor, değil mi ??

Size kodu açıklamama izin verin.

İlk olarak, değişkeni bir Çalışma Kitabı nesnesi olarak ilan ettim.

Çalışma Kitabı Olarak Dim Wb

Bu bir nesne değişkeni olduğundan, referansı belirli çalışma kitabına ayarlamamız gerekir. Bu yüzden "ThisWorkbook" referansını kullandım.

Wb'yi Ayarla = ThisWorkbook

Şimdi "Wb" değişkeni, şu anda kodu yazdığımız çalışma kitabına başvuruyor. Bundan sonra prosedürde ileriye doğru, bunun yerine "ThisWorkbook" kelimesini kullanmamıza gerek yok, "Wb" değişkenini kullanabiliriz.

Excel VBA'da Etkin Çalışma Kitabı ve Bu Çalışma Kitabı

Makalenin başında da söylediğim gibi, birçok kodlayıcı, Active Workbook & ThisWorkbook kelimelerini VBA kodlamasında çok sık kullanıyor. Bir okuyucu veya yeni bir öğrenci olarak bu ikisini anlamak kolay değil. Öyleyse, size bazı farklılıkları açıklamama izin verin.

Fark # 1: Anlam

  • Etkin Çalışma Kitabı: Etkin Çalışma Kitabı, şu anda kodu yazdığımız çalışma kitabı olmayabilir. Birden çok açık çalışma kitabınız varsa ve hangi çalışma kitabı ekranınızda görünürse , Etkin Çalışma Kitabı olarak kabul edilir .
  • ThisWorkbook: ThisWorkbook, her zaman şu anda kodu yazdığımız çalışma kitabıdır.

Fark 2: Hata Şansı

  • Aktif Çalışma Kitabı: Kodlamada Aktif kullanmak birçok hataya ve kafa karışıklığına yol açabilir çünkü Aktif Çalışma Kitabı sözcüğünü kullanmadan önce etkinleştirilecek çalışma kitabından özel olarak bahsetmedikçe hangi çalışma kitabının aktif olduğunu asla bilemeyiz.
  • ThisWorkbook: ThisWorkbook yanlış gidemez çünkü hangi çalışma kitabının etkin olduğu önemli değildir. Her zaman kodu yazdığımız yerde çalışma kitabının referansını alır.

Ilginç makaleler...