Professional Documents
Culture Documents
Ramazanbaykal 23.09.2014 1M8X
Ramazanbaykal 23.09.2014 1M8X
Ramazan BAYKAL
1
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
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ı
2
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
3
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
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.
4
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
Properties
Özellikler anlamına gelen bu pencerede seçili olan form nesnesine ait özellikler ayarla-
nabilmektedir.
Value : Değer
Text : Metin
Height : Yükseklik
Width : Genişlik
End Sub
5
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
End Sub
UserForm2.Hide
End Sub
6
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
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
7
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
F5 ile çalıştırınız.
8
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
9
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
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.
10
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
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.
11
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
ToggleButton Kullanımı
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.
12
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
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.
13
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
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.
14
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
ScrollBar nesnesine tıklandıkça değer değişecektir. Bu değeri TextBox2 değeri olarak tanımlaya-
lım.
15
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
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.
16
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
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.
17
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
Onay kutusunun her iki durumunu da kontrol etmek isterseniz kodlar aşağıdaki şekilde hazır-
lamalısınız.
18
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
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.
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.
19
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
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.
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.
2X1=2
2X2=4
2 X 3 = 6 gibi
20
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
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.
2X1=2 3X1=3
2X2=4 3X2=6
2X3=6 3 X 3 = 9 gibi
21
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
22
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
Form Olayları
Activate : Form aktif olduğunda
Initialize : Başlatıldığında
Layout : Düzenlendiğinde
23
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
Scroll : Kaydırıldığında
Kontrol(Nesne) Olayları
AfterUpdate : Güncelleme sonrasında
Exit : Çıkıldığında
24
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
Scroll : Kaydırıldığında
25
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
Sync :Senkronize
26
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
Calculate : Hesaplandığında
Change : Değiştiğinde
27
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
Örnekler :
Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
MsgBox "Çift tıklama yaptınız"
End Sub
28
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
29
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
30
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
31
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
End If
End Sub
Private Sub UserForm_Initialize()
Open "c:\Personel.txt" For Random As #1 Len = Len(ALAN)
End Sub
32
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
33
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
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.
34
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
Ö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"
35
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
End Select
Kayıt al butonuna tıkladığınızda vize, final ve yazılacak satır numarası girilmesi gerekir.
36
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
37
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
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
38
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
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
takip edilir;
39
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
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() Sub hesap1() Sub hesap2()
hesap1 For i = 1 To 20 For i = 1 To 20
hesap2 Cells(i, 1) = i Cells(i, 2) = Cells(i, 1) ^ (1 / 2)
End Sub Next i Next i
End Sub End Sub
Sub graf2()
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Range("Sayfa1!$A$22:$B$27")
End Sub
Sub graf3()
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlPie
ActiveChart.SetSourceData Source:=Range("Sayfa1!$A$22:$B$27")
End Sub
40
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
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.
41
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
42
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
43
Makro Programlama Dersleri – Öğr. Gör. Ramazan BAYKAL
44