Vba aracılığıyla bir excel çalışma kitabı nasıl etkinleştirilir?
Aynı anda birden fazla çalışma kitabıyla çalıştığınızda yani aynı anda birden fazla açık çalışma kitabınız olduğunda, üzerinde çalışmak istediğiniz çalışma kitabını etkinleştirmenize yardımcı olabilecek yöntemi bilmeniz gerekir.

VBA kullanarak bir çalışma kitabını etkinleştirmek için Workbook.Activate yöntemini kullanmanız gerekir. Bu yöntemde Workbook nesnesini kullanarak çalışma kitabı adını belirtmeniz gerekir. Ayrıca çalışma kitabı adı yerine çalışma kitabı numarasını kullanmanıza da olanak tanır, ancak yalnızca açık çalışma kitaplarına başvurabilirsiniz.
Bu derste bu yöntemi kullanmanın farklı yollarına bakacağız.
Çalışma kitabını etkinleştirme adımları

- Ciltleyici nesnesini kullanmak için “Binders” yazın.
- Çalışma kitabının adını çift tırnak içinde belirtin.
- Özelliklerin ve yöntemlerin listesini almak için bir nokta (.) girin.
- Listeden Etkinleştirme yöntemini seçin veya siz de girebilirsiniz.
- Sonunda çalışma kitabını etkinleştirmek için kodu çalıştırın.
Sub vba_activate_workbook() Workbooks("Book3").Activate End Sub
Not: Açık olmayan bir çalışma kitabını etkinleştirmeye çalışırsanız VBA bir hata görüntüler.

İlgili: VBA Kullanarak Bir Elektronik Tabloyu Etkinleştirme
Yararlı bağlantılar: Makro çalıştırma – Makro kaydedici – Visual Basic Düzenleyici – Kişisel Makrolar El Kitabı
Numarayı kullanarak çalışma kitabını etkinleştirme
Birden fazla çalışma kitabınız açık olduğunda, bu çalışma kitaplarının tümü çalışma kitabı koleksiyonunun parçası haline gelir ve başvurabileceğiniz bir numaraya sahip olur ve ardından onunla etkinleştirme yöntemini kullanabilirsiniz. İşte kod:
Sub vba_activate_workbook() Workbooks(2).Activate End Sub

Var olmayan bir sayıyı kullanarak bir çalışma kitabını etkinleştirmeye çalışırsanız, VBA size bir Çalışma zamanı hatası ‘9’ (Abonelik Aralık Dışında) gösterecektir.

Bu çalışma kitabını etkinleştir
ThisWorkbook özelliğini kullanarak kod yazdığınız çalışma kitabına başvurabilirsiniz. Diyelim ki aynı anda açık olan beş çalışma kitabınız var ama “Kitap1.xlsm” üzerinde çalışıyorsunuz, yani aşağıdaki kodu çalıştırdığınızda “Kitap1.xlsm” aktif hale gelecektir.
Sub vba_activate_workbook() ThisWorkbook.Activate End Sub
Bir çalışma kitabını etkinleştirmeden önce kontrol edin
Dediğim gibi açık olmayan bir çalışma kitabını aktif etmeye çalıştığınızda VBA size hata gösteriyor. Bu sorunu çözmenin en iyi yolu, önce çalışma kitabının adını (açık olup olmadığını) kontrol edip ardından etkinleştirmektir.
Sub vba_activate_workbook() Dim wb As Workbook For Each wb In Workbooks If wb.Name = "Book3.xlsx" Then wb.Activate MsgBox "Workbook found and activated" Exit Sub End If Next wb MsgBox "Not found" End Sub
Yukarıdaki kodu kullanarak bir çalışma kitabı adı belirleyebilirsiniz; bu, öncelikle bu çalışma kitabını tüm açık çalışma kitaplarında kontrol edecek ve çalışma kitabını bulursa etkinleştirecektir.
Yorumlar
- Çalışma kitabı adını kullanırken doğru dosya uzantısını kullandığınızdan emin olun.
- Henüz kaydedilmemiş bir çalışma kitabını etkinleştirmek istiyorsanız, dosya uzantısını eklemeden yalnızca o çalışma kitabının adını kullanmalısınız.