Excel Formül
Modül 4: Nesne Hiyerarşisi (Workbook & Worksheet)

Worksheets ve Workbook Nesneleri

Excel VBA dünyasında her şey birer Nesne (Object) hiyerarşisine dayanır. Şimdiye kadar komutları doğrudan yazdık ancak Excel arka planda her zaman hangi dosyada (Workbook) ve hangi sayfada (Worksheet) işlem yaptığımızı bilmek zorundadır. Bu iki devasa nesneyi detaylıca tanıyalım.

Şirket Binası Metaforu

Bu hiyerarşiyi kafanızda kalıcı hale getirmek için devasa bir holding binası düşünün:

Workbook (Çalışma Kitabı)

Holdingin ta kendisidir (Yani açtığınız .xlsm uzantılı Excel dosyasının tamamı). Bilgisayarda açık olan tüm dosyaları temsil eder.

Workbooks("Rapor.xlsm").Activate

Worksheet (Çalışma Sayfası)

Binanın içindeki odalardır (Sayfa1, Sayfa2, Personel vb.). Dosyanın alt kısmında sekmeler halinde gördüğünüz sayfalardır.

Worksheets("Personel").Range("A1").Value = "Ali"

Neden Tam Adres (Hiyerarşi) Yazmalıyız?

Eğer sadece Range("A1").Value = 100 yazarsanız, Excel bunu o an ekranda açık olan aktif sayfaya yazar. Ancak siz başka bir arkadaki dosyadan veri alıp başka bir sayfaya yazdırmak istiyorsanız, mutlak suretle Workbooks("Dosya.xlsm").Worksheets("Sayfa1").Range("A1") şeklinde tam adres belirtmek zorundasınız.

Canlı Simülatör: Farklı Sayfaya Veri Gönderme

Aşağıdaki makro kodunda aktif sekmede olmasak bile Worksheets("Satislar") nesnesini hedef alarak arka plandaki sayfaya veri yazdırıyoruz. Kodu Çalıştır butonuna basın ve aşağıdaki sekmeler arası veri akışını izleyin.

Visual Basic Editörü
Module1 (Code)
Sub FarkliSayfayaYaz()
    ' "Satislar" sayfasına tam adres ile veri yazıyoruz
    Worksheets("Satislar").Range("A1").Value = "2026 Cirosu"
    Worksheets("Satislar").Range("B1").Value = "1.450.000 ₺"

    MsgBox "Veriler başarıyla hedef sayfaya işlendi!", vbInformation
End Sub
Canlı Excel Çalışma Kitabı
A1
A (Özet Ekranı - Aktif)
1
Burada işlem yapılmadı...
Özet
Satislar