Name özelliği, bir nesnenin adını almak veya ayarlamak için kullanılır. VBA'da bir çalışma sayfasına başvurduğunuzda, o çalışma sayfasının adını almak veya değiştirmek için Name özelliğini kullanabilirsiniz.
VBA ile Çalışma Sayfasının ismini değiştirmek için “Name” özelliğinin nasıl kullanılacağını basit bir örnekle görebilirsiniz.

Burada, Excel Çalışma Kitabındaki etkin sayfa veya geçerli sayfa “Sheet1”dir. Aşağıda gösterildiği gibi, bunu adıyla çağırabilir veya ActiveSheet anahtar sözcüğünü kullanabilirsiniz.

Şu anda kullanılan sayfayı verilen herhangi bir dize biçimine dönüştürmek için bir alt rutin oluşturulur. "Sheet1" olan ActiveSheet, kod çalıştırıldığında bunun yerine "Example_name" olarak değiştirilir. Bu şekilde, VBA Name çalışma sayfası işlevi zahmetsizce kullanılabilir.

- VBA'da (Visual Basic for Applications) Name özelliği bir nesnenin adını almak veya ayarlamak için kullanılır.
- VBA'da bir çalışma sayfasının adını değiştirmek için Çalışma Sayfası nesnesinin Ad özelliğini kullanırsınız.
- Name özelliği belirli bir çalışma sayfasına uygulanır ve bu çalışma sayfasının adını değiştirmek için kullanabilirsiniz. VBA'daki çalışma sayfası adları bir çalışma kitabı içinde benzersiz olmalıdır. Örnek:
Worksheets("Sheet1").Name = "NewSheetName" renames "Sheet1" to "NewSheetName." - Sorunları önlemek için sayfaları yeniden adlandırırken benzersizliği sağlayın ve hataları işleyin.
Excel VBA İsim Çalışma Sayfası Nasıl Kullanılır?
VBA'da çalışma sayfalarına isim vermenin nasıl yapılacağını öğrenmek için aşağıdaki adımları izleyin.
- Excel Çalışma Kitabını açtığınızda, başlık çubuğundan “Geliştirici” simgesini seçin ve üzerine tıklayın.

Geliştirici simgesine tıkladıktan sonra “Visual Basic” seçeneğini seçin. Kodlamaya başlayabileceğiniz VBA penceresi açılır.
VBA Editöründe, başlık çubuğunda “Ekle” butonuna tıklayın ve “Modül” seçeneğini seçin.
Artık Excel VBA'da kodlamaya başlamaya hazırsınız. Yeni Çalışma Sayfasının adı şu anda "Sheet1"dir.
- Değişkenli VBA isim çalışma sayfasını uygulamak için kullandığınız alt rutine bir isim verin.

- Çalışma sayfalarını aşağıda gösterildiği gibi indeksleyebilirsiniz. İkinci indeksteki çalışma sayfasının adını bir değişkene atayın.

- Değişkeni Debug.Print fonksiyonunu kullanarak yazdırın.

Çıktı
- Aynı değişkeni yeni Çalışma Sayfasının adıyla atayın.

- Çalışma sayfasının adını, daha önce başlatılan değişkenin değerine atayarak değiştirin.

- Yeni adı bir MsgBox işlevi kullanarak yazdırın. Excel'deki her çalışma sayfasının bir çalışma sayfası adı vardır ve yaptığınız ad değişikliğinden bağımsız olarak aynı kalan çalışma sayfasının kod adı vardır.


Bu, Çalışma Sayfasının adını, MsgBox fonksiyonunda yazdırılan değer olan “Sheet2” kod adıyla çağırarak çağırabileceğimiz anlamına gelir.
Kod:
Sub Change_name_with_variable()
SheetName = Worksheets(2).name
Debug.Print SheetName
SheetName = “NewWorksheet”
Worksheets(2).name = SheetName
MsgBox “Name has been changed to ” & Sheet2.name
End Sub - Programı çalıştırmak için Excel VBA Modülündeki etkinlik çubuğundaki “Çalıştır” simgesine tıklayın. Farklı tarih biçimleriyle bir çıktı yazdırır.

Eğer imlecinizi herhangi bir alt programın üzerine getirmediyseniz, çalıştırmak istediğiniz makroların listesini alacaksınız.
Alt yordamı çalıştırmak için üzerine çift tıklayın. Sayfanın önceki adı Immediate sekmesinde yazdırılır.
Şimdi bir MsgBox istemi alacaksınız.
Artık değiştirilen Çalışma Sayfası adını görüntüleyebilirsiniz.
Daha fazlasını öğrenmek için birkaç örneğe daha göz atın.
VBA kullanarak İsim Çalışma Sayfasına Örnekler
Aşağıdaki örnekleri inceleyerek Excel VBA'da çalışma sayfalarını adlandırmanın farklı yollarını görebilirsiniz.
Örnek 1
Bu örnekte, çalışma sayfalarını VBA'da kopyalayabilir ve daha sonra yeniden adlandırabilirsiniz. Çalışma sayfasında geçerli günün kotasını depolamak için VBA adı çalışma sayfası bugünün tarihi'ni kullanabilirsiniz. Aşağıdaki adımları izleyin.
- Adım 1: Kopyalanan çalışma sayfasının adını değiştirmek için alt rutine bir ad verin.

- Adım 2: VBA Kopyalama işlevini kullanarak, seçtiğiniz çalışma sayfasını adını belirterek kopyalayın ve “After” anahtar sözcüğünü kullanarak sonuna yakın bir yere koyun. 'Sheets.Count', Çalışma Sayfası sayısını döndürür; kopyalanan çalışma sayfasını çalışma sayfası dizininin sonuna yerleştirir.

Kopyalanan çalışma sayfası, kopyalandığı çalışma sayfasının adıyla aynı ada sahip olacaktır; ancak bir kopya olduğu ve adlandırma çakışmalarını önlemek için Excel, aşağıda görüldüğü gibi sayfa adının sonuna sayısal bir değer ekler.

- Adım 3: MsgBox fonksiyonunu kullanarak kopyalanan çalışma sayfasının adını yazdırın .

- Adım 4: Alt programın çalışmasını kesintiye uğratan bir hatayı önlemek için hata işlemeyle birlikte Resume Next'i kullanabilirsiniz.

- Adım 5: Çalışma sayfası kopyalandıktan sonra, kopyalanan çalışma sayfası etkin sayfa olur. Bu nedenle, gösterildiği gibi ActiveSheet anahtar sözcüğünü kullanarak adını CopyedSheets olarak değiştirebilirsiniz .

- Adım 6: Hatalar devam ederse, herhangi bir hata oluştuğunda varsayılan değerine dönerek hata işlemeyi devre dışı bırakabilirsiniz. Bu, kodun sürekli çalışmasını sağlamak içindir.

- Adım 7: Kopyalanan sayfanın çalışma sayfası adını yazdırın.

- Adım 8: Şimdi, VBA ad çalışma sayfası bugünün tarihi komutunu kullanarak geçerli çalışma sayfasının adını günün tarihine atayabilirsiniz.

Excel VBA'daki Tarih işlevi, Excel çalışma kitabınızda ayarlanan geçerli tarihi veya bugünün tarihini döndürür.
- Adım 9: MsgBox fonksiyonu ile çalışma sayfasının değiştirilen ismini yazdır.

Kod:
Sub Change_Copied_Sheet()
Worksheets(“NewWorksheet”).Copy After:=Sheets(Sheets.Count)
MsgBox ActiveSheet.name, vbInformation
On Error Resume Next
ActiveSheet.name = “CopiedSheets”
On Error GoTo 0
MsgBox “Changed to ” & ActiveSheet.name
ActiveSheet.name = Date
MsgBox “Changed to ” & ActiveSheet.name
End Sub
- Adım 10: Alt rutini çalıştırmak için “F5” tuşuna basın. İlk olarak, kopyalanan Çalışma Sayfasının adı bir Mesaj kutusuna yazdırılır.


Daha sonra çalışma sayfasının adı değişir. Yeni ad bir mesaj kutusunda yazdırılır.


Daha sonra değişiyor çünkü kod VBA Name Worksheet'in bugünün tarihini uyguluyor.


Örnek 2
Diyelim ki Excel çalışma kitabınızda bir çalışma sayfası listeniz var ve hepsini farklı adlara değiştirmek istiyorsunuz. Değiştirmek istediğiniz adı herhangi bir hücreye girebilir ve tüm çalışma sayfalarını bir FOR döngüsünden geçirebilirsiniz. VBA Name Worksheet'i bir FOR döngüsünde kullanabilirsiniz.

Örneğin, bunlar çalışma kitabınızda bulunan çalışma sayfalarıdır. Her çalışma sayfasında gösterildiği gibi "A1" hücresinde seçili bir adınız var.




Aşağıdaki adımları izleyerek Çalışma Sayfalarının adlarını değiştirmek için kod oluşturmaya başlayabilirsiniz.
- Adım 1: Hücre değerinden VBA Ad Çalışma Sayfasını gerçekleştirmek için bir alt rutin başlatın.

- Adım 2: Bir çalışma sayfası değişkeni bildirin, bu durumda w . Bu, çalışma kitabındaki her sayfayı çalıştırmak için bir FOR döngüsünde yinelemeli bir değişken olarak kullanılacaktır.

- Adım 3: VBA'da hücre değerini depolamak için bir dize değişkeni tanımlayın ve daha sonra değişkenle VBA Adlandırma Çalışma Sayfasını gerçekleştirin.

- Adım 4: Çalışma Kitabının tüm sayfalarını seçmek için “ThisWorkbook.Worksheets” fonksiyonunu kullanarak Çalışma Sayfası değişkenini tanımlayarak bir FOR döngüsü başlatın.

- Adım 5: FOR döngüsünde “A1” hücresinin değeriyle dize değişkenini başlatın.

Bu, her çalışma sayfasında “A1” hücre değerinin alınıp, çalışma sayfasının isminin değiştirilmesinde kullanılması anlamına gelir.
- Adım 6: Herhangi bir hatayı önlemek için değerlerin boş olup olmadığını kontrol eden bir If-Else ifadesi tanımlayın.

Hücre değeri boş değilse, Name özelliğini kullanarak çalışma sayfasının adını dize değerine eşitleyerek değiştirin. Ardından, koşullu ifadeyi sonlandırın.
- Adım 7: Sonraki çalışma sayfaları için FOR döngüsünü sürdürün.

Kod:
Sub Rename_Sheets_with_cell_values()
Dim w As Worksheet
Dim val As String
ThisWorkbook.Worksheets'teki her w için
val = w.Range(“A1”).Value
If val <> “” ise
w.name = val
End If
Next w
End Sub
- Adım 8: VBA Araç Çubuğu'ndaki yeşil butona tıklayarak alt programı çalıştırın.

Kodu çalıştırdıktan sonra sayfaların kod adının değişmediğini görebilirsiniz.

Değişiklikleri görüntülemek için çalışma sayfasına gidin.

Dikkat Edilmesi Gereken Önemli Noktalar
- Çakışmaları önlemek için yeni çalışma sayfası adının çalışma kitabında benzersiz olduğundan emin olun.
- Yeni adın, sayfa adlarında izin verilmeyen karakterleri içermediğini doğrulayın.
- Çalışma sayfası adlarını boş değerlere ayarlamayın. Yeni adın boş bir dize olmadığından emin olun.
- Hata işlemeyi ihmal etmek, özellikle seçilen ad zaten mevcutsa veya geçersiz karakterler içeriyorsa, çalışma zamanı hatalarına yol açabilir.
Evet, VBA'da bir Worksheet'i dinamik olarak adlandırmak için bir değişken kullanabilirsiniz. Değişkeni bildirin ve sayfanızın değiştirilmesini istediğiniz değere atayın.
Aşağıdaki örneğe bakın: Bu kod parçası, dize değerini depolamak ve daha sonra Worksheet'e atamak için değişkeni kullanır.
SheetName = "NewWorksheet"
Worksheets(2).name = SheetName
VBA'da bir çalışma sayfası adının yeniden adlandırılmadan önce bu kod satırını kullanarak zaten var olup olmadığını kontrol edebilirsiniz: Bundan sonra alternatif ifadeler yazın. Bu şekilde, bir çalışma sayfası adının zaten var olup olmadığını kontrol edebilirsiniz.
If WorksheetExists(newName) Then
Evet, VBA'da çalışma sayfası adlarını yeniden adlandırmak için hücre değerinden VBA Adı çalışma sayfasını kullanabilirsiniz. Değişkenleri kullanabilir veya doğrudan atayabilirsiniz.
"A1" hücresinin değerinin "TEST" olduğunu varsayalım. Ad değişiklikleri 2 şekilde yapılabilir.
Değişkenlerle: Değişkenler olmadan: Bu iki yolla, VBA'da hücre değerlerini kullanarak bir çalışma sayfasını yeniden adlandırabilirsiniz .Sub eg()
v = Worksheets(1).Range("A1").Value
Worksheets(1).name = v
End Sub
Sub eg2()
Worksheets(2).name = Worksheets(2).Range("A1").Value
End Sub
Evet, Worksheet değişkeni ThisWorkbook.Sheets üzerinden çalışırken FOR döngülerini kullanarak birden fazla çalışma sayfasını aynı anda yeniden adlandırabilirsiniz.
Örneğin: Bu şekilde birden fazla çalışma sayfasını aynı anda yeniden adlandırabilirsiniz.For Each w In ThisWorkbook.Worksheets
val = w.Range("A1").Value
w.name = val
