Bu öğretici, VBA'da nesne dizilerinin nasıl oluşturulacağını ve kullanılacağını gösterecektir.
VBA'da Diziler, birden çok değer depolayan değişkenlerdir. VBA Nesnelerini, diğer verileri sakladığınız gibi dizilerde saklayabilirsiniz.
Nesne Dizisini Bildirmek
Bu örnekte, bir dizi VBA çalışma sayfası bildireceğiz:
1 | Dim arWks(3) Çalışma Sayfası Olarak |
Statik Nesne Dizisini Doldurma
Nesne Dizisinin Statik olduğunu bildirin ve ardından diziyi çalışma kitabınızdan seçtiğiniz sayfalarla doldurabilirsiniz.
12345678 | Alt TestObjArray()'diziyi çalışma sayfası dizisi olarak tanımlaDim arWks(1 to 3) As Çalışma Sayfası'diziye 3 sayfa eklearWks(1) = Sayfalar(1) olarak ayarlaarWks(2) = Sayfalar(2) olarak ayarlaarWks(3) = Sayfalar(3) olarak ayarlaAlt Bitiş |
Dinamik Nesne Dizisini Doldurma
Nesne Dizisini Dinamik olarak bildirebilir ve ardından dizi boyutunu Nesne Dizisine atamadan önce çalışma kitabındaki sayfaları sayabilirsiniz.
1234567891011121314 | Alt TestObjArray()'diziyi çalışma sayfası dizisi olarak tanımlaDim arWks() Çalışma Sayfası Olarak'dosyada kaç çalışma sayfası olduğunu sayın ve diziyi yeniden karartınTamsayı Olarak Dim nDim i Tamsayı Olarak'dizi için sınırları ayarlamak için sayfaları ve eksi biri sayınn = Application.Sheets.Count - 1ReDim arWks(n)'çalışma sayfası dizisini çalışma kitabındaki tüm sayfalarla dolduruni = LBound(arWks) için UBound(arWks) içinarWks(i) = ActiveWorkbook.Sheets(i + 1) olarak ayarlayınsonraki benAlt Bitiş |
Yukarıdaki örnekte, önce Çalışma Sayfası Dizisini ilan ediyoruz. Daha sonra çalışma kitabındaki sayfa sayısını sayarız ve bu değeri Dizinin UBound'una eksi bir atarız. Bunun nedeni Dizinin LBound'unun 0 olarak başlamasıdır. Son olarak, sayfalar arasında dolaşıyoruz ve her sayfayı diziye ekliyoruz.
VBA Kodunda Nesne Dizisini Kullanma
Worksheet dizisini doldurduktan sonra, dizide dolaşmak için VBA'yı kullanabiliriz.
123456789101112131415161718 | Alt TestObjArray()'diziyi çalışma sayfası dizisi olarak tanımlaDim arWks() Çalışma Sayfası Olarak'dosyada kaç çalışma sayfası olduğunu sayın ve diziyi yeniden karartınTamsayı Olarak Dim nDim i Tamsayı Olarak'dizi için sınırları ayarlamak için sayfaları ve eksi biri sayınn = Application.Sheets.Count - 1ReDim arWks(n)'çalışma sayfası dizisini çalışma kitabındaki tüm sayfalarla dolduruni = LBound(arWks) için UBound(arWks) içinarWks(i) = ActiveWorkbook.Sheets(i + 1) olarak ayarlayınsonraki ben'dizideki her sayfaya bir şeyler yapi = LBound(arWks) için UBound(arWks) içinarWks(i).Range("A1:H1").Font.Bold = Truesonraki benAlt Bitiş |
Yukarıdaki örnekte, dizide dolaşıyoruz ve dizideki her sayfanın ilk satırını Kalınlaştırıyoruz.