Anasayfa | Akademik Forum | Sizden Gelenler | Sipariş
Menü Açıklamaları
Sorular - Cevaplar
Makaleler
Makrolar
Yerleşik İşlevler
Animasyonlar
Yumurtalar
Fonksiyonlar
MTK Programlar
ExcelCE
Dosya İndir
Neler Yaptık?
İletişim
Makrolar
Makrolarda Adres - M. Temel Korkmaz

Bazı kullanıcıları ve makroları sürekli olarak kullanan okurlarımızın şöyle dediğini duyar gibi oluyoruz:

“Yukarıdaki şekilde hazırladığımız herhangi bir makroyu bir çalışma kitabında birkaç yerde kullanmak istiyoruz. Fakat makroyu çalıştırdığımızda, hangi hücrelerde makroyu oluşturduysak her seferinde aynı yere yazdırıyor. Oysa bu tür bir makro bizim için çok kullanışlı değil.”

Evet, böyle düşünen kullanıcılar çok haklı düşünmektedirler. Bu şekilde hep aynı hücreleri kullanan bir makro çok da kullanışlı değil. Tam burada makrolara ait adres tiplerinin anlatılması yerinde olacaktır.

Makrolara ait iki türlü adres tipi vardır.

1. Mutlak Başvuru(Sabit Adres) Tipi
2. Göreceli Başvuru(İzafi Adres) Tipi.

Aşağıdaki bilgiler Microsoft Excel’in Yardım dosyasından alınıp aktarılmıştır. Konu hakkında açıklayıcı olması amacıyla orijinalini aynen buraya aktardık. Bu konu mutlaka öğrenilmesi gereken bir husustur.

Başvuru; çalışma sayfasındaki bir hücreyi veya hücre aralığını tanımlar ve Microsoft Excel'e formülde kullanmak istediğiniz değerleri veya verileri nerede araması gerektiğini belirtir. Başvurularla, çalışma sayfasının farklı kısımlarında bulunan verileri bir formülde kullanabilir veya bir hücredeki değeri birden fazla formülde kullanabilirsiniz. Ayrıca, aynı çalışma kitabının başka sayfalarındaki hücrelere, başka çalışma kitaplarına ve başka programlardaki verilere başvurabilirsiniz. Başka çalışma kitaplarındaki hücrelere yapılan başvurulara, dış başvuru denir. Başka programlardaki verilere yapılan başvurulara, uzaktan başvuru denir.

Varsayılan olarak, Microsoft Excel , sütunları harflerle (A'dan IV'ye kadar, toplam 256 sütun olarak) ve satırları sayılarla (1'den 65536'ya kadar) etiketleyen A1 başvuru biçemini kullanır. Bir hücreye başvurmak için, sütun harfini, arkasından da satır numarasını girin. Örneğin, D50, D sütunuyla 50. satırının kesiştiği yerdeki hücreye başvurur. Bir hücre aralığına başvurmak için, aralığın sol üst köşesindeki hücrenin başvurusunu girin, iki nokta üst üste imi (:) girin, sonra aralığın sağ alt köşesindeki hücrenin başvurusunu girin. Aşağıdakiler, başvuru örnekleridir.

Buna başvurmak için                                                           Bunu kullanın

A. sütun ve 10. satırdaki hücre                                                  A10
A. sütun ve 10. satırdan 20.satıra kadar olan hücreler                A10:A20
15. satır ve B. sütundan E. sütuna kadar olan hücreler               B15:E15
5. satırdaki tüm hücreler                                                           5:5
5. satırdan 10. satıra kadar olan bütün hücreler                         5:10
H. sütundaki bütün hücreler                                                      H:H
H. sütundan J. sütuna kadar olan tüm hücreler                           H:J

Mutlak Başvuru: Bir formülde, formülü içeren hücrenin konumuna bakılmadan, hücrenin tam adresi, mutlak başvuru $A$1, $B$1 vs. biçimini alır.

Göreceli Başvuru: MS Excel’e formül içeren hücreden başlayarak başka bir hücreyi nasıl bulacağını söyleyen, A1 gibi hücre başvurusu. Göreceli başvuru kullanma, kişiye bulunduğu yerden başlayarak nereye gideceğini açıklayan yönergelere benzer. Örneğin; “iki blok yukarı ve bir blok düz gidin” gibi.

Göreceli ve Mutlak Başvuruların Arasındaki Fark
Bir formül hazırladığınızda, hücrelere veya aralıklara yapılan başvurular, çoğunlukla formülü içeren hücreye göre konumlarına dayandırılır. Aşağıdaki örnekte, B6 hücresi, =A5 formülünü içermektedir; Microsoft Excel, B6 hücresinin bir hücre üstünde ve bir hücre solundaki değeri bulur. Bu işleme, göreceli başvuru denir.



Göreceli başvurular kullanan bir formülü kopyaladığınız zaman, yapıştırılan formüldeki başvurular güncelleştirilir ve formülün konumuna bağlı olarak farklı hücrelere başvurur. Aşağıdaki örnekte, B6 hücresindeki formül, B7 hücresine kopyalanmıştır. B7 hücresindeki formül, B7 hücresinin bir hücre yukarısında ve solundaki hücreye başvuran=A6 olarak değişir.



Bir formülü başka bir hücreye kopyaladığınız zaman, başvuruların değişmesini istemiyorsanız, bir mutlak başvuru kullanın. Örneğin, formülünüz A5 hücresini, C1 hücresiyle çarpıyorsa (=A5*C1) ve formülü başka bir hücreye kopyalarsanız, her iki başvuru da değişir. Başvurunun değişmeyen parçalarından önce bir dolar imi ($) yerleştirerek, C1 hücresine bir mutlak başvuru yaratabilirsiniz. C1 hücresine bir mutlak başvuru yaratmak için, örneğin, formüle, aşağıdaki biçimde dolar imleri ekleyin: =A5*$C$1

Hücre Taşıdıktan ve Kopyaladıktan Sonra, Hücre Başvuruları Hatalı Kopyalanan formüller, göreceli hücre başvuruları içeriyorsa, Microsoft Excel başvuruları (ve karma hücre başvurularının göreceli kısımlarını), çoğaltılmış formüllerde ayarlar. Örneğin, B8 hücresinin =TOPLA(B1:B7) formülünü içerdiğini varsayalım. Bu formülü, C8 hücresine kopyalarsanız, çoğaltılmış formül, o sütundaki ilişkili hücrelere başvurur: =TOPLA(C1:C7). Kopyalanan formüller, mutlak hücre başvuruları içeriyorsa, çoğaltılmış formüllerdeki başvurular değiştirilmez.

Hücreleri taşırsanız, taşınan hücrelerdeki formüller ayarlanmaz. Bununla birlikte, taşınan hücrelere başvuran formüller ayarlanarak, yeni konumlarındaki hücrelere başvurmaları sağlanır.

İstediğiniz sonuçları alamadıysanız, özgün formüllerdeki başvuruları, ya göreceli ya da mutlak hücre başvurularına değiştirin. Sonra hücreleri yeniden kopyalayın. 

Yukarıdaki anlatılanlardan bu bölümde bahsetmek istediğimiz kısmı özetlemek gerekirse: Mutlak başvuruyu (sabit adres) kullanırsanız, hazırladığınız makroyu hep aynı hücrelere kopyalarsınız. Göreceli başvuruyu kullanırsanız, hazırladığınız makroyu seçtiğiniz herhangi bir hücreden başlatabilirsiniz.

Sabit adres tipine ait örnekleri anladınız. Şimdi sıra Göreceli adres tipine örnek vermeye geldi. Aslında her ikisi arasında makro oluşturmak açısından hiçbir fark yok. Tamamen birbirinin aynısı. Tek fark makroyu kaydederken, Kaydı Durdur araç çubuğundaki Göreceli Başvuru ikonuna tıklamak.

Şimdi basit bir Göreceli Başvuru tipinde makro hazırlayalım.

1-Araçlar menüsünden Makro komutunu, buradan da Yeni Makro Kaydet... komutunu tıklayın.

2-Açılan Makro Kaydet penceresindeki Makro adı kutusuna Göreceli  yazın. Tamam düğmesini tıklayın.

3-Ekrana gelen Kaydı Durdur araç çubuğundaki Göreceli Başvuru ikonuna tıklayın. İkonun basılı olduğuna dikkat edin.

4-Aynı adımları takip ederek Deneme makrosunun benzerini oluşturun.

5-Makro hazırlama işlemi bittiyse Kaydı Durdur ikonuna tıklayın ve kaydı durdurun.

Göreceli makronuzu da B2 hücresinde oluşturdunuz. Şimdi çalışma tablonuzdan herhangi bir hücreyi seçin ve daha önce öğrendiğiniz şekilde Göreceli makronuzu çalıştırın.  Biz D6 hücresini seçtik ve çalıştırdık. Aşağıdaki görüntüyü aldık.



Dikkat !!!
Bizim burada basit bir makro örneği hazırlatmamızın elbette ki önemli bir noktası var. O da şu: Hazırladığımız makroların Kod penceresindeki kodların daha rahat anlatabilmek ve daha rahat anlamanızı sağlayabilmek. Aksi takdirde çok uzun lir kod listesi olur ki, bunun da kodunu açıklamanın yeri Visual Basic programcılık diline aittir. Ama siz daha sonra isteğinize uygun makroları hazırlayabilirsiniz.        

Şimdi sıra hazırlamış olduğumuz makronun kodunu görüntülemeye geldi. Evet aslında aynı makroyu yazdık. Fakat, başvuru tipini değiştirdik. Bakalım Göreceli Başvuru ikonunu tıklamanız kod sayfasında ne gibi değişikliklere sebep olmuş.

Sub Göreceli()
' Göreceli Makro
' Makro Muhammed Temel Korkmaz tarafından kaydedildi.

   
ActiveCell.Offset(1, 1).Range("A1").Select
    ActiveCell.Columns("A:A").EntireColumn.ColumnWidth= 22.57
   
ActiveCell.FormulaR1C1 = "M. Temel Korkmaz"
   
ActiveCell.Select
   
Selection.Font.Bold = True
    Selection.Font.Italic = True
    Selection.Font.Underline = xlUnderlineStyleSingle

    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
       
.ShrinkToFit = False
        .MergeCells = False
    End With

   
With Selection.Interior
       
.ColorIndex = 1
       
.Pattern = xlSolid
    End With
    Selection.Font.ColorIndex = 2
End Sub

Aşağıda; Göreceli ve Mutlak başvuru arasındaki sadece farklı olan satırları karşılaştırdık. Bunlardan Kalın olarak yazdırılan üstte olup Göreceli başvuruya ait kod satırı, altta bulunan da Mutlak (sabit) başvuruya ait kod satırıdır.

ActiveCell.Offset(1, 1).Range("A1").Select
Range("B2").Select

ActiveCell.Columns("A:A").EntireColumn.ColumnWidth = 22.57
Columns("B:B").ColumnWidth = 22.57

ActiveCell.FormulaR1C1 = "M. Temel Korkmaz"
ActiveCell.FormulaR1C1 = "M. Temel Korkmaz"

ActiveCell.Select
Range("B2").Select

Yukarıda uzun metin halinde verdiğimiz yardım dosyası net olarak anlaşıldığında, bu başvuru kod satırları arasındaki fark da anlaşılacaktır. Yine de aşağıdaki tablolarda bu durumun izahı görsel olarak size sunulmuştur.



Destek
M.ÖZTÜRK - Y.KARAMAN
Bu siteyi, "Hayatını çocuklarının Ahlâklı ve Dürüst yetişmesi için harcamış olan Cefakar ve Fedakar, Canım ANNEM'e adadım."
Copyright © 1998-2011 M. Temel Korkmaz - Tüm hakları saklıdır.