Bir Excel çalışma kitabına sayfalar eklemek, kopyalamak, taşımak, eklenen sayfalara veriler veya formüller eklemek.
Bir Excel çalışma kitabına ait VBA projesinde kitabın kendisine Me özel nesnesiyle erişebilirsiniz.
Aslında çalışma kitabı Workbook türünden bir nesnedir.
Çalışma kitabını temsil eden Workbook nesnesinin Worksheets özelliği kitabı oluşturan çalışma sayfaları koleksiyonunu temsil eder.
Bu özellik aslında Sheets türü bir koleksiyon nesnesidir.
Çalışma kitabının bir sayfasına Worksheets koleksiyon özelliğine bir sıra numarası ekleyerek erişebilirsiniz:
Me.Worksheets(1)
Bir sayfasının adını sıra numarası gibi de kullanabilirsiniz:
Me.Worksheets("Sayfa1")
Worksheets koleksiyon özelliği üzerinde Add fonksiyonuyla yeni bir çalışma sayfası ekleyebilirsiniz. Bu fonksiyonun
Before argümanıyla yeni sayfanın hangi sayfanın önüne konacağını,
After argümanıyla da yeni sayfanın hangi sayfanın ardına konacağını belirleyebilirsiniz.
Bu iki argümanın yalnızca birini kullanabilirsiniz. Argüman değeri olarak sıra numarası veya adla eriştiğiniz bir sayfayı vermelisiniz.
Sıra numarası veya adıyla eriştiğiniz bir sayfa Worksheet türünden bir nesnedir. Bu türe ait:
Range fonksiyonuyla sayfa üzerinde bir bölge tanımlayabilirsiniz.
Select fonksiyonuyla sayfayı seçtirebilirsiniz.
Copy fonksiyonuyla sayfayı başka bir yere kopyalayabilirsiniz. Bu fonksiyonun
Before argümanıyla sayfa kopyasının hangi sayfanın önüne konacağını,
After argümanıyla da sayfa kopyasının hangi sayfanın ardına konacağını belirleyebilirsiniz.
Bu iki argümanın yalnızca birini kullanabilirsiniz. Argüman değeri olarak sıra numarası veya adla eriştiğiniz bir sayfayı vermelisiniz.
Move fonksiyonuyla sayfayı başka bir yere taşıyabilirsiniz. Bu fonksiyonun
Before argümanıyla taşınan sayfanın hangi sayfanın önüne konacağını,
After argümanıyla da taşınan sayfanın hangi sayfanın ardına konacağını belirleyebilirsiniz.
Bu iki argümanın yalnızca birini kullanabilirsiniz. Argüman değeri olarak sıra numarası veya adla eriştiğiniz bir sayfa referansını vermelisiniz.
Delete fonksiyonuyla da sayfayı sildirebilirsiniz.
Sayfalar ekleyeceğiniz çalışma kitabına ait VBA projesinde (proje organizasyon görünümündeki “BuÇalışmaKitabı” veya “ThisWorkbook” adlı proje) bir altyordam yaratın.
Bir Worksheet nesnesi tanımlayın:
Dim sayfa As Worksheet
Bu nesne aracılığıyla içeriğine eklemeler yapacağınız bir sayfaya sıra numarasıyla veya adıyla erişebilirsiniz:
Set sayfa = Me.Worksheets(1)
Set sayfa = Me.Worksheets("Sayfa1")
Range türü bir nesne tanımlayın:
Dim bolge As Range
Bu nesne aracılığıyla üzerinde düzenlemeler yapacağınız bir sayfa bölgesine erişin. Örneğin, sol üst hücreyi seçin ve oraya bir sayı değeri yerleştirin:
Set bolge = sayfa.Range("A1")
bolge.Value2 = 0
Bölge hücrelerini dolduracak bir formül belirleyin. Örneğin, sol sütunda 0.1 adımlarla 0’dan 1’e değişen bir sıralı dizi oluşturun:
Set bolge = sayfa.Range("A2:A11")
bolge.Formula = "=A1+0.1"
Belirlediğiniz bölgeyi rasgele sayılarla da doldurabilirsiniz:
Set bolge = sayfa.Range("A1:A11")
bolge.Formula = "=RAND()"
Ama dikkat edin, RAND (Türkçesi S_SAYI_URET) fonksiyonuyla bölgeye doldurduğunuz rasgele değerler her yeni hesaplamada tümden değişecektir.
Bu bölgede istediğiniz ekleme veya biçimlendirmeyi yapacak komutlar yazın.
Örneğin, tüm kenarlıkların ince çizgiler olmasını sağlayın:
bolge.Borders.Weight = xlThin
Ya da bölge için geçerli yazı tipini düzenleyin:
bolge.Font.Name = "Times New Roman"
bolge.Font.Size = 14
bolge.Font.Bold = True
Çalışma kitabının Worksheets özelliğinin Add fonksiyonuyla yeni bir sayfa ekleyin:
Set sayfa = Me.Worksheets.Add
Copy fonksiyonuyla bir sayfayı kopyalamayı deneyin:
sayfa.Copy Before:=Me.Worksheets("Sayfa1")
Aşağıdaki altyordam önce “Sayfa1” adlı sayfada belirlediği bölgelere rasgele sayı değerleri yerleştiriyor ve o değerlerin kosinüslerini yerleştiriyor. Bu bölgelerin yazı tipini kalın, 14 punto Times New Roman olarak belirliyor. Sonra yeni eklediği bir sayfa üzerinde sıralı dizi oluşturuyor ve onların sinüslerini hesaplatıyor. Son olarak da yeni sayfayı “Sayfa1” sayfasının öncesine kopyalıyor.
Kaynak Dosya: “KitabaSayfalarEklemek.xlsm”
Unutmayın; kitap veya ekran satırına sığmayan komut satırları alta sarkmış olabilir. Siz onları tek satır olarak yazacaksınız!
Sub KitabaSayfalarEklemek()
Dim sayfa As Worksheet
Dim bolge As Range
Set sayfa = Me.Worksheets("Sayfa1")
Set bolge = sayfa.Range("A1:A11")
bolge.Formula = "=RAND()"
Set bolge = sayfa.Range("B1:B11")
bolge.Formula = "=Cos(A1)"
Set bolge = sayfa.Range("A1:B11")
bolge.Font.Name = "Times New Roman"
bolge.Font.Size = 14
bolge.Font.Bold = True
Set sayfa = Me.Worksheets.Add
Set bolge = sayfa.Range("A1")
bolge.Value2 = 0
Set bolge = sayfa.Range("A2:A11")
bolge.Formula = "=A1+0.1"
Set bolge = sayfa.Range("B1:B11")
bolge.Formula = "=Sin(A1)"
Set bolge = sayfa.Range("A1:B11")
bolge.Borders.Weight = xlThin
sayfa.Copy Before:=Me.Worksheets("Sayfa1")
End Sub