44
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL 1 MAKRO PROGRAMLAMA DERS NOTLARI Excel içerisinde kaydedilen visual basic programlama komutlarıyla çalışarak program geliştirme faaliyetine makro programlama denilmektedir. Bu derste Excel çalışma say- fasında makro kaydederek ve kodları inceleyerek makro programlarını anlamaya çalı- şacağız. Form tasarlama, bileşenleri ekleme, modül ekleme, kod yazma işlemleri yapa- cağız. Form elemanları özelliklerini öğreneceğiz.

MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

  • Upload
    dokiet

  • View
    342

  • Download
    17

Embed Size (px)

Citation preview

Page 1: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

1

MAKRO PROGRAMLAMA DERS NOTLARI

Excel içerisinde kaydedilen visual basic programlama komutlarıyla çalışarak program

geliştirme faaliyetine makro programlama denilmektedir. Bu derste Excel çalışma say-

fasında makro kaydederek ve kodları inceleyerek makro programlarını anlamaya çalı-şacağız. Form tasarlama, bileşenleri ekleme, modül ekleme, kod yazma işlemleri yapa-

cağız. Form elemanları özelliklerini öğreneceğiz.

Page 2: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

2

Makroları çalıştırma ayarı

Makrolar güvenlik nedeniyle varsayılan olarak devre dışı bırakılmaktadır. Makroların

çalıştırılması için etkinleştirmek gereklidir. İşlem adımları aşağıdaki gibidir.

Dosya menüsü

Excel seçenekleri

Güven merkezi

Güven merkezi ayarları butonu

Makro ayarları

Tüm Makroları etkinleştir seçimi

Tamam butonuyla işlemi bitiriniz.

Ayrıca makro bulunan Excel çalışma kitabınızı kaydederken dosya türü seçimi yapa-

rak da çalıştırmanız mümkündür. Türü Makro İçerebilen Excel Çalışma Kitabı

Page 3: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

3

Örnek uygulama – İşçi Kazanç Tablosu

Bir firmadaki işçilerin çalıştığı gün sayısına göre kazancını hesaplayan bir makro ya-

zınız.

Günlük ücreti makro programı içerisinde gun=70 olarak tanımlayınız. Hesaplamaları

buna göre yaparak kazanç tablosunu oluşturunuz.

Page 4: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

4

Form ve Form Bileşenleri

Program ara yüzü hazırlamak için formlara ihtiyaç vardır. Formlar üzerine çeşitli nes-

neler yerleştirilerek ara yüz içeriği tanımlanır. Microsoft Visual Basic kod penceresinde

Insert menüsünden UserForm satırı tıklanarak form eklenir. Form eklenince otomatik

olarak Toolbox (araç kutusu) görünür hale gelmektedir. Aşağıda bir form ve üzerine

bazı nesneler (Controls) eklenmiştir. Form bileşenlerine kontroller de denilmektedir.

Label

Etiket anlamına gelen bu nesne ile form üzerine istediğiniz konuma metin ekleyebilir-

siniz. Eklediğiniz metni özellikler penceresinden yazı tipi ile büyüklüğünü, görünümü-

nü değiştirmeniz mümkündür.

TextBox

Metin kutusu anlamına gelen bu nesne ile form üzerine istediğiniz konuma metin giriş

kutusu ekleyebilirsiniz. Eklediğiniz giriş kutusuna girilecek olan metni özellikler pen-

ceresinden yazı tipi ile büyüklüğünü, görünümünü değiştirmeniz mümkündür.

CommandButton

Komut butonu anlamına gelen bu nesne ile form üzerine istediğiniz konuma komut

butonu ekleyebilirsiniz. Eklediğiniz komut butonu üzerine girilecek olan metni özellik-

ler penceresinden belirleyip, yazı tipi ile büyüklüğünü, rengini ve görünümünü değiş-

tirmeniz mümkündür.

Page 5: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

5

Properties

Özellikler anlamına gelen bu pencerede seçili olan form nesnesine ait özellikler ayarla-

nabilmektedir.

Caption : Başlık veya görünecek metin

Font : Yazı tipi özellikleri

ForeColor : Ön renk, yazı rengi

BackColor : Arka renk, zemin rengi

Name : Nesneye verilecek isim

Value : Değer

Text : Metin

Height : Yükseklik

Width : Genişlik

Private Sub CommandButton1_Click()

TextBox3.Value = TextBox1.Value * TextBox2.Value

End Sub

Page 6: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

6

Private Sub CommandButton2_Click()

TextBox1.Text = ""

TextBox2.Text = ""

TextBox3.Text = ""

End Sub

Private Sub CommandButton3_Click()

UserForm2.Hide

End Sub

Page 7: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

7

Form Özellikleri

Name : Form adı

BackColor : Form rengi

BorderStyle : Pencere kenarlığı stili

Caption : Pencere başlığı

Enabled : Kullanılabilirlik (True, False)

Font : Yazı tipi özellikleri

ForeColor : Metin rengi

Height : Form yüksekliği

Left : Formun ekranın sol kenardan uzaklığı

MouseIcon : Fare simgesi

MousePointer : Fare işaretçisi

Picture : Form yüzeyine resim ekleme

PictureAlignment : Form yüzeyine eklenen resmin hizalanması

PictureSizeMode : Form yüzeyine eklenen resmin boyutlandırma modu

PictureTiling : Form yüzeyine eklenen resmi döşeme (True, False)

ScrollBars : Kaydırma çubukları

StartUpPosition : Formun başlangıç pozisyonu

Top : Formun ekranın üst kenardan uzaklığı

WhatThisButton : Bu nedir butonu ekler (True, False)

Width : Formun genişliği

Zoom : Formu büyütme/küçültme yüzdesi

Açılır liste kutusu yapma

Page 8: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

8

Form üzerine Bir adet Label ve Bir adet comboBox yerleştiriniz.

Sayfa1’de ders isimlerini önceden yazınız.

ComboBoxRowSource özelliğine Sayfa1!A1:A10 yazınız.

ComboBoxText özelliğine“Ders seçimi yapınız :” ifadesini yazınız.

Label için Ders seçimi ifadesini Caption olarak belirtiniz.

F5 ile çalıştırınız.

Page 9: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

9

Liste kutusu yapma

Form üzerine Bir adet Label ve Bir adet ListBox yerleştiriniz.

Sayfa1’de ders isimlerini önceden yazınız.

ListBoxRowSource özelliğine Sayfa1!A1:A10 yazınız.

Label için Ders seçimi ifadesini Caption olarak belirtiniz.

F5 ile çalıştırınız.

Page 10: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

10

MultiPage yapma

Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox yerleştiriniz.

Page1 Caption özelliğini “Zorunlu Dersler” olarak değiştiriniz.

Page2Caption özelliğini “Seçmeli Dersler” olarak değiştiriniz.

CheckBoxcaptionlarını ders isimleri olarak belirleyiniz. F5 tuşuyla çalıştırınız.

Page 11: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

11

GrupBox ve OptionButton hazırlama

Form üzerine bir adet GrupBox yerleştiriniz. Caption özelliğine “Eğitim Durumu” yazı-

nız.

GrupBox içerisine dört adet OptionButton yerleştiriniz. Caption özelliğine “İlkokul, Or-

taokul, Lise, Üniversite” kelimelerini yazınız.

Form üzerine bir adet Label yerleştiriniz. Caption özelliğine “Tahsil Durumu” yazınız.

Font özelliğinde yazı boyutunu 12 ve kalın seçiniz.

Form üzerine bir adet TextBox yerleştiriniz. Font özelliğinde yazı boyutunu 12 ve kalın

seçiniz.

Form üzerine bir adet CommandButton yerleştiriniz. Caption özelliğine “Kaydet” yazı-

nız. Font özelliğinde yazı boyutunu 11 ve kalın seçiniz.

CommandButton1 nesnesi altına yazılacak kodlar şu şekildedir:

Private Sub CommandButton1_Click()

Range("B1").Value = TextBox1.Text

End Sub

OptionButton nesneleri için yazılacak kodlar şu şekildedir:

Private Sub OptionButton1_Click()

TextBox1.Text = "Zayıf"

End Sub

Page 12: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

12

Private Sub OptionButton2_Click()

TextBox1.Text = "İdare eder"

End Sub

Private Sub OptionButton3_Click()

TextBox1.Text = "İyi"

End Sub

Private Sub OptionButton4_Click()

TextBox1.Text = "Çok iyi"

End Sub

ToggleButton Kullanımı

Değiştirici düğmeleri anlamında kullanılır.

Form üzerine bir adet ToggleButton yerleştiriniz. Caption özelliğine “Resmi Gizle” yazı-

nız.

Form üzerine bir adet Image yerleştiriniz. Picture özelliğini kullanarak bir resim seçiniz.

ToggleButton altında çalıştırılacak kodlar şu şekilde olmalıdır:

Page 13: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

13

Private Sub ToggleButton1_Click()

If ToggleButton1.Value = False Then

Image1.Visible = True

ToggleButton1.Caption = "Resmi Gizle"

Else

Image1.Visible = False

ToggleButton1.Caption = "Resmi Göster"

End If

End Sub

ToggleButtona tıkladığınızda resmi gizliyor veya gösteriyor. Her seferide buton üzerindeki me-

tin duruma uygun olarak değişiyor. Seçilen resim Image çerçevesinden büyük veya küçük olma-

sı durumunda stretch özelliği ile çerçeveye göre boyutlandırabilirsiniz.

Image1.PictureSizeMode=1- fmPictureSizeModeStretch gibi.

Page 14: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

14

SpinButton ve ScrollBar Kullanımı

SpinButton, değer değiştirici olarak bilinen bir form nesnesidir. Üzerindeki aşağı/yukarı veya

sağa/sola doğru ok işaretlerine tıklayarak değer değiştirilir. Başlangıç değeri belirlenebilir. Mi-

nimum ve Maksimum değerler belirlenebilir. Orientation özelliği ile pozisyonu değişebilir.

Başlangıçta SpinButton değeri Minimum 0, Maximum 100 dür. İstenirse bu değerler -10/+10

gibi değiştirilebilir.

ScrollBar, kaydırma çubuğu olarak bilinen bir form nesnesidir. Üzerindeki aşağı/yukarı veya

sağa/sola doğru ok işaretlerine tıklayarak değer değiştirilir. Başlangıç değeri belirlenebilir. Mi-

nimum ve Maksimum değerler belirlenebilir. Orientation özelliği ile pozisyonu değişebilir.

Başlangıçta ScrollBar değeri Minimum 0, Maximum 32767 dir. İstenirse bu değerler -100/+100

gibi değiştirilebilir.

Örnek uygulamada form üzerine bir adet SpinButton, bir adet ScrollBar, iki adet label nesnesi,

iki adet TextBox nesnesi yerleştirelim. Label nesnelerinin Caption özelliğini ekran görüntüsün-

deki gibi değiştirelim. TextBox nesnelerinin BackColor özelliğini kullanarak renklendirelim.

SpinButton nesnesine tıklandıkça değer değişecektir. Bu değeri TextBox1 değeri olarak tanım-

layalım.

Page 15: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

15

ScrollBar nesnesine tıklandıkça değer değişecektir. Bu değeri TextBox2 değeri olarak tanımlaya-

lım.

Şimdi sıra geldi kod yazmaya:

SpinButton nesnesine tıklandıkça çalıştırılacak procedure aşağıdaki gibi olmalıdır.

Private Sub SpinButton1_Change()

TextBox1.Value = SpinButton1.Value

End Sub

ScrollBar nesnesine tıklandıkça çalıştırılacak procedure aşağıdaki gibi olmalıdır.

Private Sub ScrollBar1_Change()

TextBox2.Value = ScrollBar1.Value

End Sub

Kodlar yazılıp çalıştırıldığında aşağıdaki görüntüye ulaşabilirsiniz. Değerleri fareyle değiştiriniz.

ScrolBar üzerindeki değer noktasını fareyle tutup çekerek de değeri değiştirmek mümkündür.

Page 16: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

16

For Döngüsü Bir işlemi tekrarlamak için oluşturulan programlama yapısıdır. Bir değişken, başlangıç ve bitiş

değerleri belirlenmelidir.

Aşağıdaki form tasarımını yapalım. Yazdır butonu altına gerekli kodları yazalım.

Örnek olarak girilen bir metni yineleme sayısı kadar tekrarlayarak hücrelere yazdıralım.

Kodlar şu şekilde olmalıdır:

PrivateSub CommandButton1_Click()

For i = 1 To TextBox1.Value

Range("A" & i).Value = TextBox2.Value

Next i

EndSub

Page 17: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

17

If sorgusu Bir değişkeni veya bir durumu sorgulamak için kullanılan programlama yapısıdır.

Aşağıdaki form tasarımını yapalım. Yazdır butonu altına gerekli kodları yazalım.

Örnek olarak onaylanmış dersleri hücrelere yazdıralım.

Kodlar şu şekilde olmalıdır:

PrivateSub CommandButton1_Click()

If CheckBox1.Value = True Then

Range("D1").Value = CheckBox1.Caption

EndIf

If CheckBox2.Value = True Then

Range("D2").Value = CheckBox2.Caption

EndIf

If CheckBox3.Value = True Then

Range("D3").Value = CheckBox3.Caption

EndIf

If CheckBox4.Value = True Then

Range("D4").Value = CheckBox4.Caption

EndIf

EndSub

Page 18: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

18

Onay kutusunun her iki durumunu da kontrol etmek isterseniz kodlar aşağıdaki şekilde hazır-

lamalısınız.

Private Sub CommandButton1_Click()

If CheckBox1.Value = True Then

Range("D1").Value = CheckBox1.Caption

Else

Range("D1").Value = ""

End If

If CheckBox2.Value = True Then

Range("D2").Value = CheckBox2.Caption

Else

Range("D2").Value = ""

End If

If CheckBox3.Value = True Then

Range("D3").Value = CheckBox3.Caption

Else

Range("D3").Value = ""

End If

If CheckBox4.Value = True Then

Range("D4").Value = CheckBox4.Caption

Else

Range("D4").Value = ""

End If

End Sub

Page 19: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

19

Bir adet ToggleButton kullanarak derslerin hepsini seçebilir veya hiç birini seçmeyebilirsiniz.

Aşağıdaki kodları ToggleButton altına yazarak buton adını değiştirebilir veya onay kutularının

tümünü onaylayıp kaldırabilirsiniz.

Private Sub ToggleButton1_Click()

If ToggleButton1.Value = True Then

ToggleButton1.Caption = "Hiç Birini Seçme"

CheckBox1.Value = True

CheckBox2.Value = True

CheckBox3.Value = True

CheckBox4.Value = True

Else

ToggleButton1.Caption = "Tümünü Seç"

CheckBox1.Value = False

CheckBox2.Value = False

CheckBox3.Value = False

CheckBox4.Value = False

End If

End Sub

Burada öğrendiğiniz makro programlama kodlarıyla derslerin hepsini veya dilediğiniz birkaçını

onaylayarak ders kaydı yapabilirsiniz.

Çift görünümlü buton başlığının hangi durumda nasıl olması gerektiğine dikkat ediniz.

Page 20: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

20

Çarpım tablosu oluşturma

2’den 9’a kadar sayılar için çarpım tablosu komutları aşağıdadır. Sadece çarpım sonuçlarını

gösterir.

2, 4, 6, 8, 10, 12, 14, 16, 18 gibi sayılar

verecektir.

Private Sub UserForm_Click()

s = 3

Range("B1").Value = "ÇARPIM TABLOSU"

Range("B2").Value = "______________"

For i = 2 To 9

For j = 1 To 9

Range("B" & s).Value = i * j

s = s + 1

Next j

Next i

End Sub

Tablo görünümünde tek sütunda hazırlamak için değişken değerlerini ve aritmetik operatörleri

de görüntülemek gerekecektir.

2 X 1 = 2

2 X 2 = 4

2 X 3 = 6 gibi

Private Sub UserForm_Click()

s = 3

Range("B1").Value = "ÇARPIM TABLOSU"

Range("B2").Value = "------------------------"

For i = 2 To 9

For j = 1 To 9

Range("B" & s).Value = i & " X " & j & " = " & (i * j)

s = s + 1

Next j

Next i

End Sub

Page 21: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

21

Tablo görünümünde çok sütunda hazırlamak için değişken değerlerini ve aritmetik operatörleri

de görüntülemek istendiğinde kod yazılımı aşağıdaki gibi olmalıdır.

2 X 1 = 2 3 X 1 = 3

2 X 2 = 4 3 X 2 = 6

2 X 3 = 6 3 X 3 = 9 gibi

Private Sub CommandButton1_Click()

s = 3

st = 2

Range("D1").Value = "Ç A R P I M T A B L O S U"

Range("D2").Value = "--------------------------------------------"

For i = 2 To 9

For j = 1 To 9

Cells(s, st).Value = i & " X " & j & " = " & (i * j)

s = s + 1

Next j

s = 3

st = st + 1

Next i

End Sub

Page 22: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

22

Makro kodlarıyla bir butondan herhangi bir programı çalıştırma

Çalıştırılabilen dosya adlarını kullanarak bu işlem Shell komutuyla yapılmaktadır.

Örneğin hesap makinası programını çalıştıralım.

Gerekli kod şöyle olmalıdır:

Private Sub CommandButton1_Click()

Shell "C:\WINDOWS\system32\Calc.exe", vbNormalFocus

End Sub

Not Defteri programı için gerekli kod ise aşağıdaki gibidir.

Private Sub CommandButton1_Click()

Shell "C:\WINDOWS\system32\notepad.exe", vbNormalFocus

End Sub

Page 23: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

23

Form Olayları

Activate : Form aktif olduğunda

AddControl : Kontrol eklendiğinde

BeforeDragOver : Sürüklemeden önce

BeforeDropOrPaste : Bırakma veya yapıştırmadan önce

BeforeUpdate : Güncellemeden önce

Click : Fare tek tıklandığında

Change : Değerde değişiklik olduğunda

DblClick : Fare çift tıklandığında

DeActivate : Form pasif olduğunda

DropButtonClick : Butonu tıklayıp bıraktığında

Error : Hata ile karşılaştığında

Initialize : Başlatıldığında

KeyDown : Tuş aşağı indiğinde

KeyPress : Tuşa basılı durumda

KeyUp : Tuş yukarı kalktığında

Layout : Düzenlendiğinde

MouseDown : Fare sol tuşuna basıldığında

MouseMove : Fare üzerine geldiğinde

MouseUp : Basılan fare sol tuşu bırakıldığında

QueryClose : Sorgu kapandığında

Page 24: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

24

RemoveControl : Kontrol kaldırıldığında

Resize : Form boyutu değiştirildiğinde

Scroll : Kaydırıldığında

Terminate : Form kapatıldığında

Zoom : Büyütme/Küçültme yapıldığında

Kontrol(Nesne) Olayları

AfterUpdate : Güncelleme sonrasında

BeforeDragOver : Sürüklemeden önce

BeforeDropOrPaste : Bırakma veya yapıştırmadan önce

Click : Fare tek tıklandığında

DblClick : Fare çift tıklandığında

Enter : Enter tuşuna basıldığında

Error : Hata olduğunda

Exit : Çıkıldığında

KeyDown : Tuşa aşağı indiğinde

KeyPress : Tuşa basılı durumda

KeyUp : Tuş yukarı kalktığında

MouseDown : Fare sol tuşuna basıldığında

MouseMove : Fare üzerine geldiğinde

Page 25: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

25

MouseUp : Basılan fare sol tuşu bırakıldığında

Scroll : Kaydırıldığında

SpinDown : Aşağı dönüş yapıldığında

SpinUp : Yukarı dönüş yapıldığında

Çalışma Kitabı olayları

Activate : Çalışma kitabı aktif olduğunda

AddinInstall : Eklenti kurulduğunda

AddinUninstall : Eklenti kaldırıldığında

AfterSave : Kaydettikten sonra

AfterXmlExport : XML olarak veri dışarı aktarıldıktan sonra

AfterXmlImport : XML olarak veri içeri aktarıldıktan sonra

BeforeClose : Kapatmadan önce

BeforePrint : Yazdırmadan önce

BeforeSave : Kaydetmeden önce

BeforeXmlExport : XML olarak veri dışarı aktarıldıktan önce

BeforeXmlImport : XML olarak veri içeri aktarıldıktan önce

DeActivate : Çalışma kitabı pasif olduğunda

NewChart : Yeni grafik sayfası eklendiğinde

NewSheet : Yeni çalışma sayfası eklendiğinde

Page 26: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

26

Open : Çalışma kitabı açıldığında

PivotTableCloseConnection : Özet tablo bağlantısı kapandığında

PivotTableOpenConnection : Özet tablo bağlantısı açıldığında

RowSetComplete :Satır eylemi tamamlandığında

SheetActivate :Çalışma sayfası aktif olduğunda

SheetBeforeDoubleClick : Çalışma sayfasında çift tıklama yapıldığında

SheetBeforeRightClick : Çalışma sayfasında Farenin sağ tuşuna basıldığında

SheetCalculate : Çalışma sayfası hesaplandığında

SheetChange : Çalışma sayfası değiştiğinde

SheetDeActivate : Çalışma sayfası pasif olduğunda

SheetFollowHyperlink : Çalışma sayfasında köprü izlendiğinde

SheetPivotTableAfterValueChange : Özet tablosu değeri değiştikten sonra

SheetPivotTableBeforeAllocateChange : Özet tablosu ayırma değişikliğinden önce

SheetPivotTableBeforeCommitChange : Özet tablosu değişikliği tamamlamadan önce

SheetPivotTableBeforeDiscardChange : Özet tablosu değişikliği atılmadan önce

SheetPivotTableChangeSync : Özet tablosu uyumu değiştiğinde

SheetPivotTableUpdate : Özet tablosu güncellendiğinde

SheetSelectionChange :Seçim değiştiğinde

Sync :Senkronize

WindowActivate : Pencere etkinleştiğinde

WindowDeActivate : Pencere pasifleştiğinde

Page 27: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

27

Çalışma Sayfası olayları

Activate : Sayfa aktif olduğunda

BeforeDoubleClick : Çift tıklamadan önce

BeforeRightClick : Farenin sağ tuşuna basmadan önce

Calculate : Hesaplandığında

Change : Değiştiğinde

DeActivate : Pasif olduğunda

FollowHyperlink : Köprü izlendiğinde

PivotTableAfterValueChange :Özet tablo değeri değiştikten sonra

PivotTableBeforeAllocateChange : Özet tablosu ayırma değişikliğinden önce

PivotTableBeforeCommitChange : Özet tablosu değişikliği tamamlamadan önce

PivotTableBeforeDiscardChange : Özet tablosu değişikliği atılmadan önce

PivotTableChangeSync : Özet tablosu uyumu değiştiğinde

PivotTableUpdate : Özet tablosu güncellendiğinde

SelectionChange : Çalışma sayfası seçildiğinde

Page 28: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

28

Örnekler :

Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

MsgBox "Çift tıklama yaptınız"

End Sub

Private Sub UserForm_Resize()

MsgBox UserForm1.Width

End Sub

Private Sub UserForm_Terminate()

MsgBox "programı kapattınız."

End Sub

Private Sub TextBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As

Single, ByVal Y As Single)

MsgBox "1. Text kutusu üzerindesiniz"

End Sub

Private Sub Label1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As

Single, ByVal Y As Single)

MsgBox "1. Etiket üzerindesiniz"

End Sub

Private Sub CommandButton2_Click()

UserForm1.Zoom = TextBox1.Value

End Sub

Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer,

ByVal X As Single, ByVal Y As Single)

MsgBox "1. Komut Butonu üzerindesiniz"

End Sub

Private Sub Workbook_Open()

UserForm1.Show

End Sub

Page 29: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

29

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Can-

cel As Boolean)

UserForm1.Show

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'MsgBox "sayfa1 seçildi"

End Sub

Soldaki formda textbox1 içine

gireceğimiz sayısal değer oranına

göre büyütme/küçülme yapılıyor

Ayrıca Label, CommandButton

veya TextBox üzerine fareyle

gelindiğinde algılamakta ve me-

saj kutusunda gerekli mesaj ve-

rilmektedir.

Çalışma kitabı açıldığında bu

form otomatik olarak ekrana

getirilmektedir.

Page 30: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

30

Personel kayıt programı

Bu program açılan bir text dosyasına kişi bilgileri kaydı yapar. Kayıt üzerinde bul-değiştir işlem-

leri yapar. C sürücüsünde Personel.txt isimli bir metin dosyanız bulunmalıdır.

Kayıt Formu tasarımını hazırlamak için;

4 adet Label, 4 adet TextBox ve 3 adet CommandButton kullanılacaktır. Captionları resimdeki

gibi değiştirin. Button ve form isimlerini değiştirin. (Name=buldegistir, frmkaydet gibi.)

Bul değiştir Formu tasarımını hazırlamak için;

4 adet Label, 4 adet TextBox, 1 adet SpinButton ve 4 adet CommandButton kullanılacaktır.

Captionları resimdeki gibi değiştirin

Page 31: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

31

Bul değiştir formu için makro kodları aşağıdadır;

Private Sub SpinButton1_SpinDown()

If TextBox1 = Empty Then

TextBox1 = 1

ElseIf TextBox1 < 2 Then

TextBox1 = 1

Else

TextBox1 = TextBox1 - 1

End If

End Sub

Private Sub SpinButton1_SpinUp()

If TextBox1 = Empty Then

TextBox1 = 1

Else

TextBox1 = TextBox1 + 1

Page 32: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

32

End If

End Sub

Private Sub UserForm_Initialize()

Open "c:\Personel.txt" For Random As #1 Len = Len(ALAN)

End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

If CloseMode <> 1 Then Cancel = 1

End Sub

Kaydet formu için makro kodları aşağıdadır;

Private Sub kaydet_Click()

ALAN.adsoyad = TextBox2.Text

ALAN.gorev = TextBox3.Text

ALAN.ikamet = TextBox4.Text

Put #1, TextBox1, ALAN

TextBox1 = TextBox1 + 1

TextBox2 = ""

TextBox3 = ""

TextBox4 = ""

TextBox2.SetFocus

End Sub

Private Sub UserForm_Initialize()

TextBox1.Locked = True

TextBox2.SetFocus

Open "c:\Personel.txt" For Random As #1 Len = Len(ALAN)

TextBox1 = LOF(1) / Len(ALAN)

TextBox1 = TextBox1 + 1

End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

If CloseMode <> 1 Then Cancel = 1

End Sub

Text dosyasına aşağıdaki gibi kayıt yapılacaktır.

Page 33: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

33

Otomatik resim değiştirme

Örnek olarak resim formatında 3 adet elimizde bulunsun. Sayfaya bir adet image yerleştirmeniz

gerekmektedir. Bir hücreye resim adı yazıldığında otomatik olarak Image yenilensin istiyoruz.

Sayfada değişiklik olduğunda makro kodları yeniden çalıştırılmalıdır.

res1.jpg res2.jpg res3.jpg

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

On Error Resume Next

Image1.Picture = LoadPicture("D:\Yedek3\ex-makro\" & Cells(1, 1).Value & ".jpg")

If Err.Number = 53 Then

MsgBox "Dosya Bulunamıyor!"

Image1.Picture = LoadPicture("D:\Yedek3\ex-makro\dosyayok.jpg")

End If

End Sub

Page 34: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

34

A1 hücresine res1, res2, res3 yazarak Enter tuşuna basıldığında resim değişecektir. Resimler

buradaki kodlara göre D:\Yedek3\ex-makro klasöründe bulunmaktadır. Değişiklik yaparak iste-

diğiniz klasördeki resimleri görüntüleyebilirsiniz.

Çalışma sayfasına kontrol eklemek

Çalışma sayfasına kontrol(nesne) eklemek için şu adımları takip ediniz:

Geliştirici sekmesine geçiniz.

Denetimler grubundan ekle simgesini açınız.

Eklemek istediğiniz kontrole tıklayınız.

Sayfa üzerinde kontrolünüzü fareyle çizerek oluşturunuz.

Boyutlarını, başlığını vs. değiştirmek için tasarım moduna geçmeniz gerekir.

Page 35: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

35

Örnek Çalışma

Kayıt Al butonu hazırlayarak, giriş kutusu yardımıyla notları alalım. Hesapla butonu yardımıyla

girilen vize ve finalin ortalamasını, harf notunu ve GEÇER/TEKRAR durumunu yazdıralım.

Sub Kayıtyap()

vize = InputBox("Vize notu ?")

final = InputBox("Final notu ?")

kac = InputBox("Kaçıncı satıra yazılacak ?")

Cells(kac, 1).Value = vize

Cells(kac, 2).Value = final

End Sub

Sub Düğme1_Tıklat()

'

' Düğme1_Tıklat Makro

' Makro abc tarafından 28.01.2002 tarihinde kaydedildi.

kyt = InputBox("Kayıt Sayısı ?")

For i = 1 To kyt

Cells(i, 3).Value = 0.4 * Cells(i, 1).Value + 0.6 * Cells(i, 2).Value

hh = Cells(i, 3).Value

Select Case hh

Case Is >= 90

Cells(i, 5).Value = "AA"

Case Is >= 80

Cells(i, 5).Value = "BB"

Case Is >= 70

Cells(i, 5).Value = "CC"

Case Is >= 60

Cells(i, 5).Value = "DC"

Case Is >= 50

Cells(i, 5).Value = "DD"

Case Is >= 40

Cells(i, 5).Value = "FD"

Case Is >= 30

Cells(i, 5).Value = "FF"

Page 36: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

36

End Select

If Cells(i, 3).Value > 59 Then

Cells(i, 4).Value = "GEÇER"

Else

Cells(i, 4).Value = "Tekrar"

End If

Next i

End Sub

Kayıt al butonuna tıkladığınızda vize, final ve yazılacak satır numarası girilmesi gerekir.

Page 37: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

37

Hesaplama yaptırmak için satır numarası girmeniz gerekiyor. Örneğin 4 gibi.

Page 38: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

38

FONKSİYON HAZIRLAMA

Bir Excel çalışma kitabında fonksiyon hazırlamak ve tüm çalışma kitaplarında çalıştırmak için

XLA türünde kaydetmeniz gerekmektedir. Bu türde kaydedilen dosyalar ADDINS klasörüne

kaydedilecektir.

ADDINS (EKLENTİ) NEDİR?

Eklenti demektir. Tanımlı fonksiyonlar bulunan özel tanımlanmış dosyalardır. Örneğin Öğrenci

notlarını harf notuna dönüştürmek için fonksiyon yazılarak bu fonksiyon bütün çalışma kitapla-

rında kullanılabilir.

EKLENTİLERİ KULLANIMA AÇMAK

Eklentileri kullanıma açmak için Geliştirici sekmesinde bulunan Eklentiler simgesine tıklayınız ve

kaydettiğiniz eklenti dosyanızı işaretleyiniz.

FONKSİYON HAZIRLAMA

Function KUPKOK(SAYI As Integer)

KUPKOK = SAYI ^ (1 / 3)

End Function

Function Puan(Notu As Integer)

Select Case Notu

Case Is > 100: Puan = "Yanlış girilen not"

Case Is >= 90: Puan = "AA"

Case Is >= 85: Puan = "BA"

Case Is >= 75: Puan = "BB"

Case Is >= 70: Puan = "CB"

Case Is >= 60: Puan = "CC"

Case Is >= 55: Puan = "DC"

Case Is >= 50: Puan = "DD"

Case Is >= 40: Puan = "FD"

Case Is >= 0: Puan = "FF"

Case Else: Puan = " Yanlış girilen not "

End Select

End Function

Page 39: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

39

EXCEL DOSYASI AÇILDIĞINDA FORM EKRANA GETİRME

Excel dosyası açıldığında form ekrana getirmek için aşağıdaki gibi bir prosedürü kullanmalıyız.

Private Sub Workbook_Open()

UserForm1.Show

End Sub

EXCEL AÇILDIĞINDA OTOMATİK OLARAK DOSYA AÇMA

Bir çalışma kitabının (Excel dosyasının) Excel programı açılınca otomatik olarak açılması için

XLSTART klasörüne kaydedilmesi gerekir. Bu klasörün yolu şöyle olabilir;

C:\Program Files\Microsoft Office\Office14\XLSTART

MAKRO KODLARINA ŞİFRE KONULMASI

Makro kodlarını korumak için şifre ko-

nulması istenebilir. Bunun için şu adımlar

takip edilir;

VBA penceresine geçilir.

Tools menüsü açılır.

VBAProject Properties satırı tık-

lanır.

Protection sekmesine geçilir

Lock Protect for viewing onayla-

nır.

Password (Şifre) yazılır.

Confirm Password (Tekrar Şifre)

yazılır.

Tamam tıklanarak çıkılır.

Page 40: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

40

BİR PROSEDÜR İÇERİSİNDE BAŞKA PROSEDÜR ÇALIŞTIRMA

Bir prosedür içerisinde başka prosedür çalıştırmak mümkündür. Bunun için sadece prosedür

adı kullanılr. Prosedürler altprogram (Sub) veya fonksiyon(function) olabilir. Aşağıdaki örnekte

hesap1 adlı alt programda 1. Sütunda 1-20 arası satırlara i değeri yazdırılıyor. Sonra hesap2

adlı altprogramda 1. Sütunda 1-20 arası satırlarda bulunan değerlerin karekökleri 2. Sütuna

yazdırılıyor. Son olarak hesap isimli alt programda hesap1 ve hesap2 adlı altprogramlar

çağrılıyor.

Sub hesap() hesap1 hesap2 End Sub

Sub hesap1() For i = 1 To 20 Cells(i, 1) = i Next i End Sub

Sub hesap2() For i = 1 To 20 Cells(i, 2) = Cells(i, 1) ^ (1 / 2) Next i End Sub

GRAFİK EKLEME KODU

Sütun grafiği ekleme kodu aşağıdaki gibi yazılmalıdır.

Sub graf2()

ActiveSheet.Shapes.AddChart.Select

ActiveChart.ChartType = xlColumnClustered

ActiveChart.SetSourceData Source:=Range("Sayfa1!$A$22:$B$27")

End Sub

Pasta grafiği ekleme kodu aşağıdaki gibi yazılmalıdır.

Sub graf3()

ActiveSheet.Shapes.AddChart.Select

ActiveChart.ChartType = xlPie

ActiveChart.SetSourceData Source:=Range("Sayfa1!$A$22:$B$27")

End Sub

Page 41: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

41

X-Y Dağılım grafiği ekleme kodu aşağıdaki gibi yazılmalıdır.

Sub graf1()

ActiveSheet.Shapes.AddChart.Select % Grafik ekleniyor.

ActiveChart.ChartType = xlXYScatterLines % Grafik türü belirtiliyor.

ActiveChart.SetSourceData Source:=Range("Sayfa1!$A$1:$B$17") % Veri alanı belirleni-

yor.

End Sub

X-Y Dağılım Grafiği butonuna atanan makroyu çalıştırmak için tıklamak gerekmektedir.

Page 42: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

42

Page 43: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

43

SAYFAYA BUTON EKLEME

Geliştirici sekmesine geçiniz.

Denetimler grubunda bulunan Ekle simgesini açınız.

Burada Form denetimlerinden Düğme simgesini seçiniz.

Sayfada istediğiniz yere düğmeyi çiziniz.

Page 44: MAKRO PROGRAMLAMA DERS NOTLARI - Hitit …web.hitit.edu.tr/dersnotlari/ramazanbaykal_31.12.2013_5N2Y.pdf · Form üzerine bir adet MultiPage, Pageler içerisine birkaç tane CheckBox

Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL

44

BUTONA MAKRO ATAMA

Düğme üzerinde sağ tuşa basınız.

Makro Ata satırına tıklayınız.

Kayıtlı olan bir makro seçiniz.

Tamam butonuna tıklayınız.