Bu yazıyı exceltr.net altında okumak için tıklayın
Sayfa ismi, Excel’de çalışma sayfasında worksheet sekmelerinde gördüğünüz isimdir, Referans ismi ise VBE editöründen erişilebilen ve prosedürlerde sayfaya referans vermek için kullanılabilen isimdir.Yeni bir sayfa yarattığınızda sayfanın ismi gibi referans ismi de otomatik olarak excel tarafından verilir.Sayfa adı değiştirilse de referans adı aynı kalır. Sayfa isminde boşluk bulunabilir, türkçe karakter kullanılabilir fakat referans isminde türkçeye has karakterler ve boşluk ve sair karakterler bulunamaz.
Sayfa sekmeleri çubuğunda “Sayfa İsimleri”
VB Editöründe Properties penceresi. En üstteki özellik referans ismi.
Visual Basic editöründe bir sayfanın properties penceresinden özelliklerine baktğınızda sayfanın ismini Name özelliğinin değeri olduğunu görürsünüz. Referans ismi ise aynı pencerede (Name) ( Name değil (Name)) özelliğinin değeridir .Kod ismi buradan elle değiştirilebilir.
VBA içinde bu iki isim kullanılarak da sayfaya erişilebilir. Kod ismi doğrudan o sayfa objesinin ismi olduğundan doğrudan kullanılabilir. Sayfa ismini kulanmak daha dolaylı bir yol gerektiri. Mesela sayfa adını kullanarak Sayfa1 isminde ve Sayfa1Ref referans ismindeki excel çalışma sayfasında bir hücreye;
ThisWorkbook.Worksheets(“Sayfa1”).Cells(1,1)
şeklinde, aynı hücreye referans ismi kullanarak
Sayfa1Ref.Cells(1,1)
şeklinde erişilir.
Kod içerisinde sayfa ismini kullanamanın sakıncaları çoktur. Bir ker sayfa ismi kolayca değiştirilebilir, o zaman kodun da değiştirilmesi gerekir. Sayfa isminde türkçe karakter ve boşluk var ise dil non-unicode program dili ingilizce ayarlanmış bir windows üzerinde sorunlar yaşanır. En iyisi refrans isimlerini kullanmaktır. Fakat çok sayıda sayfa içeren bir çalışma kitabında, eğer müdahale etmemişseniz, referans isimleri ayırt etmeyi güçleştirecek bir haldedir. Elle hepsini tek tek düzeltebilirsiniz. Sayfa isimleri ile aynı ya da yaklaşık aynı ismi vermek ya da amaca uygun isimlendirme yapmak çıkar bir yoldur.
Aşağıda çalışma kitabının referans ismini değiştiren bir kod görüyorsunuz. Mesela vba kullanarak sayfa ekleyecekseniz, sayfa isminin yanında referans ismini değiştirmek de yararlı olacaktır.
Kodu göstermeden önce: Bu kod VBA projesine erişim gerektirmektedir. Çalışabilmesi için VBA editörüne erişime izin vermelisiniz. Bunu için:
Araçlar–>Makro–>Güvenlik
menüsünden
Trusted Publisher (Tr: Güvenilen Yayıncılar) sekmesini tıklayın
En altta görülen
Trusted Access to VBA Project (Tr: VBA Projesi Erişimine Güven) kutucuğunu seçili değil ise seçili hale getirin.
Dim ws As Worksheet
Set ws=ThisWorkbook.Worksheets("OrnekSayfa")
ws.Parent.VBProject.VBComponents(ws.CodeName).Properties("_CodeName") = “YeniKodAd"
Şimdi bu kodu tüm çalışma sayfasındaki referans isimlerini sayfa1, sayfa2 .. şeklinde değiştiren bir hale çevirelim.
Sub ChangeCodeName()
Dim ws As Worksheet
Dim i As Integer
i = 1
' Sayaf1, Sayfa2 gibi isimler excel tarafından otomatik verildiğinden. İsim çakışması olmasın diye önce bütün sayfalara geçici referans ismi verelim
For Each ws In ThisWorkbook.Worksheets
ws.Parent.VBProject.VBComponents(ws.CodeName).Properties("_CodeName") = "gecici" & i
i = i + 1
Next
'Tüm sayfalara isim verelim
i=1
For Each ws In ThisWorkbook.Worksheets
ws.Parent.VBProject.VBComponents(ws.CodeName).Properties("_CodeName") = "Sayfa" & i
i = i + 1
Next
End Sub