Bu eğitim, Çalışma Kitabı adının VBA'da nasıl alınacağını ve ayarlanacağını gösterecektir.
VBA'da Aktif çalışma kitabının adını alabilir veya ayarlayabiliriz veya Excel'deki tüm açık çalışma kitaplarında dolaşabilir ve bir VBA Döngüsü kullanarak her birinin adını alabilir veya ayarlayabiliriz.
Çalışma Kitabı Adını Al
Etkin çalışma kitabının adını almak için çalışma kitapları nesnesinin name özelliğini kullanmamız gerekir.
12345 | Alt GetWorkbookName()Dize Olarak Dim strWBNamestrWBName = ActiveWorkbook.NameMsgBox strWBAdıAlt Bitiş |
Yukarıdaki kodu çalıştıracak olsaydık, ekranda Aktif çalışma kitabının adının bulunduğu bir mesaj kutusu belirirdi.
Tüm aktif Çalışma Kitapları arasında dolaşmak ve çalışma kitaplarının adlarını Excel'e döndürmek için aşağıdaki kodu çalıştırabiliriz:
1234567 | Alt GetWorkbookNames()Çalışma Kitabı Olarak Dim wbÇalışma Kitaplarında Her wb içinActiveCell = wb.NameActiveCell.Offset(1, 0).SeçSonrakiAlt Bitiş |
Yukarıdaki örnekler dosyanın uzantısını içerecektir (örn. xlsx). Uzantıyı dahil etmek istemiyorsanız, yalnızca çalışma kitabının dosya adını elde etmek için kullanabileceğimiz birkaç yöntem vardır.
Uzantısız Çalışma Kitabı Adını Alın
Dosya adındaki noktadan sonra herhangi bir karakteri kaldırmak için LEFT ve INSTR işlevlerini kullanabiliriz:
12345 | Alt GetWorkbookName()Dize Olarak Dim strWBNamestrWBName = Sol(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".") - 1)MsgBox strWBAdıAlt Bitiş |
Dosya adının sonundan 5 karakter çıkarmak için SOL ve UZUNLUK fonksiyonlarını kullanabiliriz:
12345 | Alt GetWorkbookName()Dize Olarak Dim strWBNamestrWBName = Sol(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 55)MsgBox strWBAdıAlt Bitiş |
Çalışma Kitabı Adını Ayarlama
VBA'da bir çalışma kitabının adını ayarlamak için hala çalışma kitabının Ad özelliğini kullanıyoruz, ancak Aktif Çalışma Kitabının adını değiştirmek için bu yöntemi kullanamıyoruz. Bunun nedeni, Etkin çalışma kitabının açık olması ve bir dosya erişim hatası oluşmasıdır. Bunu aşmak için dosyayı yeni bir adla kaydedebilir ve ardından eski dosyayı silebiliriz.
12345678910 | Public Sub SetWorkbookName()Dize olarak strPath'i karartDim strNewName As StringDize Olarak Dim strOldNamestrOldName = ActiveWorkbook.NamestrNewName = InputBox("Lütfen çalışma kitabı için yeni bir isim giriniz")strPath = ActiveWorkbook.PathActiveWorkbook.SaveAs strPath & "/" & strNewNamestrPath & "/" & strOldName'i öldürAlt Bitiş |
Açık olmayan bir çalışma kitabını yeniden adlandırmak için Name yöntemini kullanabiliriz.
123 | Public Sub RenameWorkbook()"C:\Data\MyFile.xlsx" adını "C:\Data\MyNewFile.xlsx" olarakAlt Bitiş |