- Sayfalar Vs. çalışma sayfaları
- Referans Sayfaları
- Etkinleştir ve Sayfa Seç
- Çalışma Sayfası Değişkeni
- Çalışma Kitabındaki Tüm Sayfalarda Döngü
- Çalışma Sayfası Koruması
- Çalışma Sayfası Görünür Özellik
- Çalışma Sayfası Düzeyindeki Etkinlikler
- Çalışma Sayfası Hile Sayfası
- VBA Çalışma Sayfaları Hile Sayfası
Bu, Excel'de E-Tablolar / Çalışma Sayfaları ile çalışmak için nihai kılavuzdur.
Bu kılavuzun altında, sayfalarla çalışmak için ortak komutlardan oluşan bir hile sayfası oluşturduk.
Sayfalar Vs. çalışma sayfaları
VBA kullanarak E-Tablolara başvurmanın iki yolu vardır. İlki, Sheets nesnesiyle ilgilidir:
1 | Sayfalar("Sayfa1").Etkinleştir |
Diğeri, Çalışma Sayfaları nesnesiyle birlikte:
1 | Çalışma Sayfaları("Sayfa1").Etkinleştir |
Zamanın %99'unda bu iki nesne aynıdır. Aslında, VBA kodu örnekleri için çevrimiçi arama yaptıysanız, muhtemelen her iki nesnenin de kullanıldığını görmüşsünüzdür. İşte fark:
Sayfa Koleksiyonu, Çalışma Sayfaları VE Grafik Sayfaları içerir.
Bu nedenle, normal Çalışma Sayfaları VE Grafik Sayfaları eklemek istiyorsanız Sayfaları kullanın. Grafik Sayfalarını hariç tutmak istiyorsanız Çalışma Sayfalarını kullanın. Bu kılavuzun geri kalanında E-Tablolar ve Çalışma Sayfalarını birbirinin yerine kullanacağız.
Referans Sayfaları
E-Tablolar'a başvurmanın birkaç farklı yolu vardır:
- Etkin sayfa
- Sayfa Sekmesi Adı
- Sayfa Dizin Numarası
- Sayfa Kodu Adı
Etkin sayfa
ActiveSheet, şu anda etkin olan Sayfadır. Başka bir deyişle, kodunuzu duraklattıysanız ve Excel'e baktıysanız, görünen sayfadır. Aşağıdaki kod örneği, ActiveSheet adına sahip bir Mesaj Kutusu gösterecektir.
1 | MsgBox ActiveSheet.Name |
Sayfa Adı
Sayfalara muhtemelen Sekme Adlarına göre atıfta bulunmaya aşinasınızdır:
1 | Sheets("TabName").Etkinleştir |
Sayfa Dizin Numarası
Sayfa Dizini numarası, çalışma kitabındaki sayfa konumudur. 1 ilk sayfadır. 2, ikinci sayfa vb.:
1 | Sayfalar(1).Etkinleştir |
Sayfa Dizin Numarası - Çalışma Kitabındaki Son Sayfa
Çalışma kitabındaki son Sayfaya başvurmak için, son Dizin Numarasını almak için Sheets.Count'u kullanın:
1 | Sayfalar(Sayfalar.Sayı).Etkinleştir |
"Kod Adı" sayfası
Sayfa Kodu Adı, VBA'daki Nesne adıdır:
1 | KodAdı.Etkinleştir |
Diğer Çalışma Kitaplarındaki Referans Sayfaları
Diğer Çalışma Kitaplarındaki Sayfalara başvurmak da kolaydır. Bunu yapmak için Çalışma Kitapları Nesnesini kullanmanız gerekir:
1 | Workbooks("VBA_Examples.xlsm").Worksheets("Sheet1").Activate |
Önemli: E-Tablolarına başvurabilmeniz için Çalışma Kitabının açık olması gerekir.
Etkinleştir ve Sayfa Seç
Başka bir makalede, sayfaları etkinleştirme ve seçmeyle ilgili her şeyi tartışıyoruz. Kısa versiyonu şudur:
Bir Sayfayı Etkinleştirdiğinizde, ActiveSheet olur. Excel programınıza baktığınızda göreceğiniz sayfa budur. Bir seferde yalnızca bir sayfa etkinleştirilebilir.
Bir Sayfayı Etkinleştir
1 | Sayfalar("Sayfa1").Etkinleştir |
Bir Sayfa seçtiğinizde, aynı zamanda ActiveSheet olur. Ancak, aynı anda birden fazla sayfa seçebilirsiniz. Aynı anda birden fazla sayfa seçildiğinde, "üst" sayfa ActiveSheet'tir. Ancak, seçili sayfalar içinde ActiveSheet'i değiştirebilirsiniz.
Bir Sayfa Seçin
1 | Sayfalar("Sayfa1").Seçin |
Birden Çok Sayfa Seç
Aynı anda birden çok sayfa seçmek için bir dizi kullanın:
1 | Çalışma Sayfaları(Array("Sayfa2", "Sayfa3")).Seçin |
Çalışma Sayfası Değişkeni
Bir değişkene çalışma sayfası atamak, çalışma sayfasına değişken adıyla referans vermenizi sağlar. Bu, çok fazla yazma tasarrufu sağlayabilir ve kodunuzun okunmasını kolaylaştırabilir. Değişkenleri kullanmak isteyebileceğiniz başka birçok neden de vardır.
Bir çalışma sayfası değişkeni bildirmek için:
1 | Dim ws çalışma sayfası olarak |
Bir değişkene bir çalışma sayfası atayın:
1 | Set ws = Sayfalar("Sayfa1") |
Artık kodunuzdaki çalışma sayfası değişkenine başvurabilirsiniz:
1 | ws.Etkinleştir |
Çalışma Kitabındaki Tüm Sayfalarda Döngü
Bir çalışma kitabındaki tüm çalışma sayfaları arasında dolaşmak istediğinizde, çalışma sayfası değişkenleri çok önemlidir. Bunu yapmanın en kolay yolu şudur:
12345 | Çalışma Sayfası olarak Dim wsÇalışma Sayfalarındaki Her ws içinMsgBox ws.nameSonraki |
Bu kod, çalışma kitabındaki tüm çalışma sayfalarında dolaşarak her çalışma sayfası adını bir mesaj kutusunda görüntüler. Bir çalışma kitabındaki tüm sayfalar arasında geçiş yapmak, aynı anda birden çok çalışma sayfasını kilitlerken/kilidini açarken veya gizlerken/gösterirken çok kullanışlıdır.
Çalışma Sayfası Koruması
Çalışma Kitabı Koruması
Çalışma kitabı koruması, çalışma kitabını çalışma sayfalarını ekleme, silme, taşıma veya gizleme gibi yapısal değişikliklerden korur.
VBA'yı kullanarak çalışma kitabı korumasını açabilirsiniz:
1 | ActiveWorkbook.Protect Parola:="Parola" |
veya çalışma kitabı korumasını devre dışı bırakın:
1 | ActiveWorkbook.UnProtect Parola:="Parola" |
Not: Parola bağımsız değişkenini atlayarak parola olmadan da koruyabilir/korumayı kaldırabilirsiniz:
1 | ActiveWorkbook.Protect |
Çalışma Sayfası Koruması
Çalışma sayfası düzeyinde koruma, bireysel çalışma sayfalarında değişiklik yapılmasını önler.
Çalışma Sayfasını Koru
1 | Çalışma Sayfaları ("Sayfa1"). "Parolayı" koruyun |
Çalışma Sayfasının Korumasını Kaldır
1 | Çalışma Sayfaları ("Sayfa1"). "Parola" korumasını kaldırın |
Çalışma sayfalarını korurken çeşitli seçenekler vardır (biçimlendirme değişikliklerine izin ver, kullanıcının satır eklemesine izin ver, vb.) İstediğiniz ayarları kaydetmek için Makro Kaydediciyi kullanmanızı öneririz.
Çalışma sayfası korumasını burada daha ayrıntılı olarak tartışıyoruz.
Çalışma Sayfası Görünür Özellik
Çalışma sayfalarının gizlenebileceğini zaten biliyor olabilirsiniz:
Aslında üç çalışma sayfası görünürlük ayarı vardır: Görünür, Gizli ve Çok Gizli.Gizli sayfalar, herhangi bir normal Excel kullanıcısı tarafından - çalışma sayfası sekmesi alanına (yukarıda gösterilmiştir) sağ tıklayarak gösterilebilir. VeryHidden sayfaları yalnızca VBA koduyla veya VBA Düzenleyicisi içinden gösterilebilir. Çalışma sayfalarını gizlemek/göstermek için aşağıdaki kod örneklerini kullanın:
Çalışma Sayfasını Göster
1 | Çalışma Sayfaları("Sayfa1").Visible = xlSheetVisible |
Çalışma Sayfasını Gizle
1 | Worksheets("Sayfa1").visible = xlSheetHidden |
Çalışma Sayfasını Çok Gizle
1 | Worksheets("Sayfa1").Visible = xlSheetVeryHidden |
Çalışma Sayfası Düzeyindeki Etkinlikler
Olaylar, "Olay Prosedürlerinin" çalışmasına neden olabilecek tetikleyicilerdir. Örneğin, bir çalışma sayfasındaki herhangi bir hücre her değiştirildiğinde veya bir çalışma sayfası etkinleştirildiğinde kodun çalışmasını sağlayabilirsiniz.
Çalışma sayfası olay prosedürleri bir çalışma sayfası modülüne yerleştirilmelidir:
Çok sayıda çalışma sayfası etkinliği vardır. Tam listeyi görmek için bir çalışma sayfası modülüne gidin, ilk açılır menüden “Çalışma Sayfası”nı seçin. Ardından, modüle eklemek için ikinci açılır menüden bir olay prosedürü seçin.
Çalışma Sayfası Etkinleştirme Etkinliği
Çalışma sayfası etkinleştirme olayları, çalışma sayfası her açıldığında çalışır.
123 | Özel Alt Çalışma Sayfası_Activate()Aralık("A1").SeçinAlt Bitiş |
Bu kod, çalışma sayfası her açıldığında A1 hücresini seçecektir (görünüm alanını çalışma sayfasının sol üst köşesine sıfırlayacaktır).
Çalışma Sayfası Değişiklik Etkinliği
Çalışma sayfası değişikliği olayları, çalışma sayfasında bir hücre değeri her değiştirildiğinde çalışır. Daha fazla bilgi için Çalışma Sayfası Değişikliği Olayları hakkındaki eğiticimizi okuyun.
Çalışma Sayfası Hile Sayfası
Aşağıda, VBA'da sayfalarla çalışmak için yaygın kod örneklerini içeren bir hile sayfası bulacaksınız.
VBA Çalışma Sayfaları Hile Sayfası
VBA çalışma sayfaları Hile sayfasıAçıklama | Kod Örneği |
---|---|
Sayfaları Referanslama ve Etkinleştirme | |
Sekme Adı | Sayfalar("Giriş").Etkinleştir |
VBA Kod Adı | Sayfa1.Etkinleştir |
Dizin Konumu | Sayfalar(1).Etkinleştir |
Sayfa Seç | |
Sayfa Seç | Sayfalar("Giriş").Seçin |
Değişken olarak ayarla | Çalışma Sayfası olarak Dim ws ws = ActiveSheet'i ayarla |
Ad / Yeniden Adlandır | ActiveSheet.Name = "YeniAd" |
Sonraki Sayfa | ActiveSheet.Sonraki.Etkinleştir |
Tüm Sayfalarda Döngü | Çalışma Sayfası olarak Dim ws Çalışma Sayfalarındaki her ws için Msgbox ws.name Sonraki |
Seçili Sayfalarda Döngü | Dim ws As Çalışma Sayfası ActiveWindow.SelectedSheets'deki Her ws için MsgBox ws.Name Sonraki |
ActiveSheet'i Alın | MsgBox ActiveSheet.Name |
Sayfa Ekle | E-Tablolar.Ekle |
Sayfa ve Ad Ekle | Sheets.Add.Name = "Yeni Sayfa" |
Hücreden Adlı Sayfa Ekle | Sheets.Add.Name = aralık("a3").değer |
Birbirinden Sonra Sayfa Ekle | Sheets.Add After:= Sheets("Giriş") |
Sayfadan Sonra ve Ad Ekle | Sheets.Add(Sonra:=Sayfalar("Giriş")).Name = "YeniSayfa" |
Önce Sayfa Ekle ve Ad | Sheets.Add(Önce:=Sayfalar("Giriş")).Name = "YeniSayfa" |
Çalışma Kitabının Sonuna Sayfa Ekle | Sheets.Add After:= Sheets(Sheets.Count) |
Çalışma Kitabının Başına Sayfa Ekle | Sheets.Add(Before:=Sheets(1)).Name = "İlk Sayfa" |
Değişkene Sayfa Ekle | Dim ws As Çalışma Sayfası ws = E-Tablolar'ı ayarla.Add |
Çalışma Sayfalarını Kopyala | |
Sayfayı Çalışma Kitabının Sonuna Taşı | Sayfalar("Sayfa1").Sonra Taşı:=Sayfalar(Sayfalar.Sayı) |
Yeni Çalışma Kitabına | Sayfalar("Sayfa1").Kopyala |
Seçilen Sayfalardan Yeni Çalışma Kitabına | ActiveWindow.SelectedSheets.Copy |
Başka Bir Sayfadan Önce | Sayfalar("Sayfa1").Önce Kopyala:=Sayfalar("Sayfa2") |
İlk Sayfadan Önce | Sayfalar("Sayfa1").Önce Kopyala:=Etablolar(1) |
Son Sayfadan Sonra | Sheets("Sheet1").Copy After:=Sheets(Sheets.Count) |
Kopyala ve Ad | Sheets("Sheet1").Copy After:=Sheets(Sheets.Count) ActiveSheet.Name = "Son Sayfa" |
Hücre Değerinden Kopyalama ve Adlandırma | Sheets("Sheet1").Copy After:=Sheets(Sheets.Count) ActiveSheet.Name = Aralık("A1").Value |
Başka Bir Çalışma Kitabına | Sheets("Sheet1").Copy Before:=Workbooks("Example.xlsm").Sheets(1) |
Sayfaları Gizle / Göster | |
Sayfayı Gizle | Sheets("Sayfa1").visible = False veya Sheets("Sayfa1").visible = xlSheetHidden |
Sayfayı Göster | Sayfalar("Sayfa1").Görünür = Doğru veya Sayfalar("Sayfa1").Visible = xlSheetVisible |
Sayfayı Çok Gizle | Sayfalar(“Sayfa1”).Görünür = xlSheetVeryHidden |
Sayfaları Sil veya Temizle | |
Sayfayı Sil | Sayfalar("Sayfa1").Sil |
Sayfayı Sil (Hata İşleme) | Hatada Devam Et Sonraki Sayfalar("Sayfa1").Sil Hatada GoTo 0 |
Sayfayı Sil (İstem Yok) | Application.DisplayAlerts = Yanlış Sayfalar("Sayfa1").Sil Application.DisplayAlerts = Doğru |
Sayfayı Temizle | Sayfalar("Sayfa1").Hücreler.Temizle |
Yalnızca Sayfa İçeriğini Temizle | Sayfalar("Sayfa1").Cells.ClearContents |
Kullanılan Sayfa Aralığını Temizle | Sayfalar("Sayfa1").UsedRange.Clear |
Sayfaları Koru veya Korumasını Kaldır | |
Korumayı Kaldır (Parola Yok) | Sayfalar("Sayfa1").Korumayı kaldır |
Korumayı kaldır (Parola) | Sayfalar ("Sayfa1"). "Parola" korumasını kaldırın |
Koru (Parola Yok) | Sayfalar("Sayfa1").Koru |
Koru (Şifre) | Sayfalar ("Sayfa1"). "Parolayı" koruyun |
Koru ama VBA Erişimine İzin Ver | Sheets("Sayfa1").Protect UserInterfaceOnly:=True |
Tüm Sayfaların Korumasını Kaldır | Dim ws As Çalışma Sayfası Çalışma Sayfalarında Her ws için ws. "Parola" korumasını kaldırın Sonraki |