Makro

Makro Excel'in arkaplanı olarak görülen ve kod yazarak işlemlerimizi gerçekleştirdiğimiz bölümdür. Kısaca vba diye adlandırılan visual basic for application programlama dilinde yazılır.

Excel'de makro menüsünü kullanabilmek için öncelikle geliştirici sekmesini aktif hale getirmeliyiz. Bunun için;

Dosya -> Seçenekler  -> Şeridi Özelleştir -> Geliştirici sekmesine tıklanmalıdır.

makro1

 

 

 

 

 

 

makro2

 

Burada makro kaydet butonu ile Excel'de yaptığımız işlemin kodunun Excel tarafından yazılmasını sağlayabiliriz. Ama bizim asıl amacımız kod kısmını öğrenmek olmalıdır. 🙂

Kod kısmına ulaşmak için "geliştirici" menüsünden Visual Basic butonuna tıklayabileceğiniz gibi Alt + F11 tuşlarına da beraber basabilirsiniz.

Böylelikle Visual Basic ekranına ulaşmış oluyoruz.

NOT: Makro olan Excel sayfasını kaydetmek için farklı kaydet dedikten sonra kayıt türü olarak "Makro İçerebilen Excel Sayfası" olarak kaydetmemiz gerekmektedir.

 

Visual Basic Sayfasına Genel Bakış

makromenu

Butona Makro Atama

Butona makro atamak için Excel Sayfasına öncelikle bir şekil çiziyoruz.  (Ekle Menüsünden -> Şekiller) . Çizdiğimiz şekile sağ tıklayarak "Makro Ata" seçelim.

makro3Yeni  tıklayalım.

Visual Basic ekranına aşağıdaki kodları yazalım.

makro5

Tüm kodlar Sub ile End Sub arasına yazılır.

Dikdörtgen_Tıklat():Dikdörtgen isimli şeklimize tıkladığımızda çalışacak kod

MsgBox : Mesaj Kutusu oluşturmak için kullanılır. Parantez ve çift tırnak arasına yazılanlar mesaj kısmında gözükür.

makro4

Yazdığımız kodu çalıştırmak için Visual Basic ekranında iken F5 e(veya Makro Çalıştırma Butonuna) basıyoruz. Excel sayfasından çalıştırmak için ise çizdiğimiz şeklimize tıklamamız yeterli.

Butona Köprü Ekleme

Şeklimize sağ tıklayarak Makro Ata ile istediğimiz klasörü veya dosyayı açmak için makro kodu link verebiliriz.

Visual Basic ekranına yazmamız gereken kod:

link.JPG

Çift tırnak içerisine ilgili dosyanın konumunu yazmamız gerekir.(Birinci örnekte Google Chrome dosya konumu iken, ikinci örnek masaüstünde bulunan word dosyasının konumudur.)

UserForm Oluşturma

Makro ekranında Userform eklemek için Insert Menüsünden Userform'a tıklanır.

userform

Karşımıza gelen Userform ekranı bizim üzerinde görsel değişiklikler yapabildiğimiz form ekranıdır. Toolbox ise Userform'un üzerine ekleyeceğimiz araçlar bulunmaktadır.

Toolbox açmak için;  toolbox.JPG kullanılır.

Toolbox

tool

tool1tool3tool2

Combobox:

tox

Seçim listeleri oluşturmak için kullanılır. En bilindik örneklerinden bir tanesi internet üzerinden bir form doldururken doğum yerini seçtiğimiz liste kutusudur. Bunun için toolbox dan combobox'ı seçtikten sonra istediğimiz büyüklükte combobox userform üzerine çiziyoruz. İçerisine veri eklemek için 2 tane seçeneğimiz bulunmaktadır.

Birinci Yöntem:(Excel üzerinden veri çekmek)

Bunun için; Userform üzerinde Combobox seçili iken sol taraftaki Properties Panelinden Rowsource kısmına excel de hazırladığımız listenin olduğu sayfa adını ve ilgili hücrelerin aralığı yazılır.

rowsource

İkinci Yöntem:(İlgili makro kodunu yazmak)

Bunun için; Userform üzerine çift tıklıyoruz. Kod kısmına aşağıdaki kodları yazıyoruz.

Private SubUserForm_Activate()
ComboBox1.AddItem ("Ayşe")
ComboBox1.AddItem ("Ahmet")
ComboBox1.AddItem ("Ayten")
ComboBox1.AddItem ("Büşra")
ComboBox1.AddItem ("Burak")
ComboBox1.AddItem ("Yaşar")
End Sub

Tüm kodlarınSub ile Başlayıp End Sub ile bittiğini belirtmiştik. UserForm_Activate() kodu ise Userform açıldığı anda ne yapılacağının belirtildiği kısımdır. Böylelikle Userform açıldığında Combobox'a  AddItem(combobox'a veri eklemek için kullanılır.) ile yazılan isimler eklenecektir.

Properties Window

Properties Panelini açmak için View Menüsünden Properties Window tıklanır.

Properties Paneli Userform ve Userform üzerinde kullanılan araçlar için kullanılan özellikleri içermektedir. Boyutlandırma, rengini değiştirme gibi.

En sık kullanılanlar:

  • (Name):  Seçili aracın ismini ifade eder. İlgili aracın kod yazarken kullandığımız ismidir.
  • BackColor: Seçili aracın arkaplan rengini değiştirmek için kullanılır. System ve Palette  menüsü bulundur. Palette menüsünde daha fazla renk seçenekleri bulunur.
  • BackStyle: Seçili aracın arkaplan rengini kaldırmak için kullanılır.
  • Caption: Userfomun ismini değiştirmek veya seçili araca yazı yazmak için kullanılır.
  • Font: Yazının boyutunu ve yazı tipini ayarlamak içindir.
  • ForeColor : Yazı rengini ayarlamak içindir.
  • Height:  Çizilen aracın veya Userform'un boyutunu ayarlamak içindir.
  • Locked
  • Picture: (None) ifadesine tıklandığında sağ taraftaki tıklanır ve eklenecek resim seçilir.
  • PictureAlignment: Resmi hizalamak için kullanılır.(sağ üst(TopRight) , orta(center) , sol alt (BottomLeft) gibi)
  • PictureSizeMode: Resmin tam ekran olarak veya büyütülmüş olarak ekranı kaplamasını sağlar.
  • RowSource:  Combobox veya Listbox gibi araçlara veri kaynağını göstermek için kullanılır.
  • Width: Çizilen aracın veya Userform'un enini ayarlamak içindir

Sayfa Ekleme

sayfaekle Şekil-1

Project Panelinden Modules klasörünün altındaki Module 1 çift tıklayarak makro alanımızı açıyoruz. Şekil-1'de sağ taraftaki kodları ekliyoruz. Çift tırnak arasına sayfamıza vermek istediğimiz ismi yazıp F5 ile makromuzu çalıştırıyoruz. Excel'e belirtilen isimde sayfa eklendiğini görüyoruz.

Worksheets: Çalışma kitabı                    Add: Yeni sayfa ekle                       Name: İsimlendir

Sayfalar Arası Veri Aktarımı

Excel'de bir sayfadan diğerine verilerin otomatik taşınmasını isteyebiliriz. Bunun için kullanacağımız kod dizisi;

Sheets("bir").Cells(1,"A")=Sheets("iki").Range("B2")

Bu kod ile bir isimli sayfamızdaki A1 hücresine; iki isimli B2 hücresindeki değeri atamış oluyoruz. Burada hücre isimleri için hem "range" hemde "cells" ifadesini kullanabiliriz.

Userform' dan Veri Aktarımı

kayit

Resim 1 deki Userform da kullanıcı tarafından girilen verilerin Excel'deki belirlenen sayfaya aktarımı için;

kod1kod2

Burada dikkat edilmesi gereken nokta araçların isimleridir. (textbox1, combobox3 gibi). Daha sonra sayfa ve ilgili hücre ile eşleştirme yapılıyor. Sayfaya kayıt yapılırken sabir bir hücre adı vermek yerine (Cells(1,"A") veya Range("A1") gibi) yer isimli değişken kullanılmıştır. Şimdi değişken kullanımına bakalım..

Değişken Tanımlama

Yukarıda ki kodumuzda ilgili hücre numarası yerine değişken kullandık; bunun sebebi sabit bir satır numarası kullandığımızda her yeni kaydın aynı hücreye yazılmasıdır. Fakat böyle olduğunda hep elimizde bir kayıt olacaktır. Birden fazla kaydın belirli bir düzen halinde Excel'e aktarılması için döngü içerisinde değişkeni sürekli arttırmamız gerekir.

degiskenkodu

Satır Silme

Excel'e veri aktarabildiğimiz gibi aktardığımız veriyi silmek de isteyebiliriz. Bunun için;

sil1

sil

Yukarıdaki örneğimizde değişkenle aktardığımız verilerden Tc Kimlik numarası ile çağırdığımız veriyi silmek için aktif olan satırı seç ve sil komutları kullanılır.

Toolbox Araçları Arası İşlemler

not

Bir öğrencinin notlarının hesaplanması için oluşturulan Userform'da Hesapla, Temizle ve Kaydet isimli üç butonumuz bulunmaktadır. Hesapla butonu Textbox1 (1.Sınav) ile Textbox2 (2.Sınav) girilen notların hesaplamasını yaptırmak içindir. Burada 1.Sınav notunun % 40 'ını ,  2.Sınav notunun % 60 'ının alınmasını istediğimizde;

hesapkodu

Durum karşısında bulunan Textbox5'de not durumuna göre başarılı veya başarısız yazmasını istediğimizde;

ifelse

Temizle Butonu ise Textboxlardaki değerleri temizlemek için tasarlanmıştır. Tıkladığımızda Textboxların içlerinin boşalmalarını sağlamak için;

temizlekodu

 

 

 

 

Makro” üzerine 3 yorum

  1. Hasan dedi ki:

    Anlatım tarzını beğendim. Eline emeğine sağlık. Buna benzer başka anlatımların varsa okumak istiyorum. Var mı acaba.

    Beğen

Yorum bırakın