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
VBE'deki Bazı Komutlar - M. Temel Korkmaz
Deneme olarak hazırlamış olduğunuz makronun Kod penceresini açmak için Araçlar>Makro>Makrolar... komutunu tıkladığınızda Makro penceresinde iki adet Makro adının olduğunu göreceksiniz. Bunlardan ilki daha önce hazırlamış olan “Aylar”, ikincisi de yeni hazırlanan “Deneme” makrosudur. Bu çalışma kitabı için hazırladığınız bütün makrolar bu pencerede otomatik olarak harf sırasına göre sıralanacaktır. Siz Deneme makrosunu seçin ve Düzenle düğmesine tıklayın. Deneme makrosuna ait Kod penceresi açılacaktır. Biz kod penceresindeki bilgilerin aynısını aşağıya aldık.

Sub Deneme_Makro()
' Deneme_Makro Makro
' Makro xxx tarafından xx.xx.xxxx tarihinde kaydedildi
   
Range("B2").Select
    Columns("B:B").ColumnWidth = 22.57
   
ActiveCell.FormulaR1C1 = "M. Temel Korkmaz"
   
Range("B2").Select
    Selection.Font.Bold = True
    Selection.Font.Italic = True
    Selection.Font.Underline = xlUnderlineStyleSingle

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

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

Şimdi yukarıdaki makro kodundaki satırların bize neler anlattığını kısaca açıklayalım.

Sub De neme_Makro()

Bildiri deyimi. Visual Basic programında kullanılan yordam ve alt programlar Sub deyimi ile başlar. Burada “Deneme” adlı programın başladığı bildirilmektedir.

'Deneme Makro

Genelde Kod penceresinde yeşil olarak görüntülenen bu satırlar (‘) kesme işareti ile başlıyorsa, programa ait olmayan fakat program hakkında açıklayıcı bilgi veren satırlardır.

Range("B2").Select

B2 hücresinin seçildiğini belirtir. Her hücre seçiminde bu satır görüntülenir ve başka bir hücrenin seçildiği satıra gelene kadar yapılan işlemler, bu hücreye ait olan işlemlerdir.

Columns("B:B").ColumnWidth = 22.57

B sütununun (sadece hücre değil), sütun genişliğinin 22.57 değerine kadar arttırıldığını ya da daraltıldığını anlatır. Geçerli sütun genişliğinin 8.43 birim olduğunu EXCEL TAM ÇÖZÜM SERİSİ’nin 1. KİTAP’ında anlatmıştık. Bu ifadeye göre sütunu genişletmiş olduk.

ActiveCell.FormulaR1C1 = "M. Temel Korkmaz"

R1C1 formundaki seçilmiş olan aktif hücreye girilen veriyi anlatır.

Range("B2").Select

Makroyu hazırlarken 6. Adımda Eter tuşuna basılmıştı. Daha sonra tekrar B2 hücresi seçilmişti. Burada Enter tuşunun görevi hücreye girilen bilgiyi (veriyi) onaylamaktır. Fakat bizim şu an kullandığımız Excel’in Seçenekler penceresinde, Seçimi Enter tuşundan sonra taşı onay kutusu Aşağı seçili olduğu için, Enter’den sonra seçim bir aşağı hücreye geçmişti. Bunun için herhangi bir komut satırı yazılmadı, fakat ikinci defa B2 seçildiğinde yani fare tıklandığında, bu defa bu satır koda eklenmiş oldu.

Selection.Font.Bold = True

B2 hücresine yazılan isme ait yazıtipinin (fontun) Bold (kalın) olarak seçildiğini Doğru’ (True) lar. Bu seçimin zıddı False (yanlış) olur.

Selection.Font.Italic = True

B2 hücresine girilen isme ait fontun Italic (eğik) olarak seçildiğini doğrular.

Selection.Font.Underline = xlUnderlineStyleSingle

B2 hücresindeki seçili metnin altının düz bir çizgiyle çizilmiş olduğunu ifade eder.  

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

With–End With deyimi, kontrollere ait özelliklerin değiştirilmek istenmesi ya da bir metod çağrıldığı zaman, kontrol adının verilmesinde kolaylık sağlar. Kontrollere ait elemanların birden fazlasının özellikleri değiştirilmek istendiğinde kullanımda rahatlık sağlar.

Örneğimizin 14. adımında fare ile Ortala ikonunu tıklayın demiştik. İşte tam bu sırada üzerinde uğraştığımız hücreye ait bilginin özelliğini değiştirmek istediğimizde with özelliği devreye program bloğu olarak girdi.

With ile bloğun başladığı End With ile de bittiği anlaşılır.

HorizontalAlignment = xlCenter

Hücredeki verinin yatay hizasının (HorizontalAlignment) hücre içinde ortalandığını (xlCenter) anlatan satırdır.

VerticalAlignment = xlBottom

Hücredeki verinin dikey hizasının (VerticalAlignment) hücrenin altında (xlBottom) olduğunu anlatan satırdır. Biz hücre içinde sadece bu kadar değişiklik yaptığımız için diğerleri sıfır değerini yada False değerini aldılar. Vertical satırında değişiklik yapmadığımız halde bunun da blok içerisinde gösterildiğini gördünüz.

With Selection.Interior
  .ColorIndex = 1
  .Pattern = xlSolid
End With

Yukarıdaki program bloğunu da hücrenin içinin dolgu rengiyle boyandığını ve bu rengin renk indeksindeki (ColorIndex) 1. renk olan siyahın olduğu anlatılır.

Selection.Font.ColorIndex = 2

Hücre içerisindeki bilginin yani fontun renk kutusundaki 2 numaralı renge (beyaza) atandığını anlatan satır.

Evet, buraya kadar olan kısımda, oluşturduğunuz makronun Visual Basic kod haline dönüştüğünü anlamış oldunuz. Her ne kadar ilk etapta bu işin nasıl olduğunu anlamasanız da, şimdilik işimizin kodlarla olduğunu kavradınız. Ayrıca şunu da hemen fark ettiniz: Kod yazarak makro oluşturmak, makro kaydetmekten daha uzun ve zahmetli. Hem de hata yapma olasılığı var. Tabi ki bu düşünce, yukarıda anlattığımız türdeki makrolar için geçerli. Oysa, mükellef bir program hazırlamak için kod yazmayı mutlaka öğrenmek gerekir.
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.