If you can't read please download the document
Upload
tranque
View
245
Download
2
Embed Size (px)
Citation preview
Makro Programlama Dersleri r. Gr. Ramazan BAYKAL
1
MAKRO PROGRAMLAMA DERS NOTLARI
Excel ierisinde kaydedilen visual basic programlama komutlaryla alarak program
gelitirme faaliyetine makro programlama denilmektedir. Bu derste Excel alma say-
fasnda makro kaydederek ve kodlar inceleyerek makro programlarn anlamaya al-acaz. Form tasarlama, bileenleri ekleme, modl ekleme, kod yazma ilemleri yapa-
caz. Form elemanlar zelliklerini reneceiz.
Makro Programlama Dersleri r. Gr. Ramazan BAYKAL
2
Makrolar altrma ayar
Makrolar gvenlik nedeniyle varsaylan olarak devre d braklmaktadr. Makrolarn
altrlmas iin etkinletirmek gereklidir. lem admlar aadaki gibidir.
Dosya mens
Excel seenekleri
Gven merkezi
Gven merkezi ayarlar butonu
Makro ayarlar
Tm Makrolar etkinletir seimi
Tamam butonuyla ilemi bitiriniz.
Ayrca makro bulunan Excel alma kitabnz kaydederken dosya tr seimi yapa-
rak da altrmanz mmkndr. Tr Makro erebilen Excel alma Kitab
Makro Programlama Dersleri r. Gr. Ramazan BAYKAL
3
rnek uygulama i Kazan Tablosu
Bir firmadaki iilerin alt gn saysna gre kazancn hesaplayan bir makro ya-
znz.
Gnlk creti makro program ierisinde gun=70 olarak tanmlaynz. Hesaplamalar
buna gre yaparak kazan tablosunu oluturunuz.
Makro Programlama Dersleri r. Gr. Ramazan BAYKAL
4
Form ve Form Bileenleri
Program ara yz hazrlamak iin formlara ihtiya vardr. Formlar zerine eitli nes-
neler yerletirilerek ara yz ierii tanmlanr. Microsoft Visual Basic kod penceresinde
Insert mensnden UserForm satr tklanarak form eklenir. Form eklenince otomatik
olarak Toolbox (ara kutusu) grnr hale gelmektedir. Aada bir form ve zerine
baz nesneler (Controls) eklenmitir. Form bileenlerine kontroller de denilmektedir.
Label
Etiket anlamna gelen bu nesne ile form zerine istediiniz konuma metin ekleyebilir-
siniz. Eklediiniz metni zellikler penceresinden yaz tipi ile bykln, grnm-
n deitirmeniz mmkndr.
TextBox
Metin kutusu anlamna gelen bu nesne ile form zerine istediiniz konuma metin giri
kutusu ekleyebilirsiniz. Eklediiniz giri kutusuna girilecek olan metni zellikler pen-
ceresinden yaz tipi ile bykln, grnmn deitirmeniz mmkndr.
CommandButton
Komut butonu anlamna gelen bu nesne ile form zerine istediiniz konuma komut
butonu ekleyebilirsiniz. Eklediiniz komut butonu zerine girilecek olan metni zellik-
ler penceresinden belirleyip, yaz tipi ile bykln, rengini ve grnmn dei-
tirmeniz mmkndr.
Makro Programlama Dersleri r. Gr. Ramazan BAYKAL
5
Properties
zellikler anlamna gelen bu pencerede seili olan form nesnesine ait zellikler ayarla-
nabilmektedir.
Caption : Balk veya grnecek metin
Font : Yaz tipi zellikleri
ForeColor : n renk, yaz rengi
BackColor : Arka renk, zemin rengi
Name : Nesneye verilecek isim
Value : Deer
Text : Metin
Height : Ykseklik
Width : Genilik
Private Sub CommandButton1_Click()
TextBox3.Value = TextBox1.Value * TextBox2.Value
End Sub
Makro Programlama Dersleri r. Gr. Ramazan BAYKAL
6
Private Sub CommandButton2_Click()
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
End Sub
Private Sub CommandButton3_Click()
UserForm2.Hide
End Sub
Makro Programlama Dersleri r. Gr. Ramazan BAYKAL
7
Form zellikleri
Name : Form ad
BackColor : Form rengi
BorderStyle : Pencere kenarl stili
Caption : Pencere bal
Enabled : Kullanlabilirlik (True, False)
Font : Yaz tipi zellikleri
ForeColor : Metin rengi
Height : Form ykseklii
Left : Formun ekrann sol kenardan uzakl
MouseIcon : Fare simgesi
MousePointer : Fare iaretisi
Picture : Form yzeyine resim ekleme
PictureAlignment : Form yzeyine eklenen resmin hizalanmas
PictureSizeMode : Form yzeyine eklenen resmin boyutlandrma modu
PictureTiling : Form yzeyine eklenen resmi deme (True, False)
ScrollBars : Kaydrma ubuklar
StartUpPosition : Formun balang pozisyonu
Top : Formun ekrann st kenardan uzakl
WhatThisButton : Bu nedir butonu ekler (True, False)
Width : Formun genilii
Zoom : Formu bytme/kltme yzdesi
Alr liste kutusu yapma
Makro Programlama Dersleri r. Gr. Ramazan BAYKAL
8
Form zerine Bir adet Label ve Bir adet comboBox yerletiriniz.
Sayfa1de ders isimlerini nceden yaznz.
ComboBoxRowSource zelliine Sayfa1!A1:A10 yaznz.
ComboBoxText zelliineDers seimi yapnz : ifadesini yaznz.
Label iin Ders seimi ifadesini Caption olarak belirtiniz.
F5 ile altrnz.
Makro Programlama Dersleri r. Gr. Ramazan BAYKAL
9
Liste kutusu yapma
Form zerine Bir adet Label ve Bir adet ListBox yerletiriniz.
Sayfa1de ders isimlerini nceden yaznz.
ListBoxRowSource zelliine Sayfa1!A1:A10 yaznz.
Label iin Ders seimi ifadesini Caption olarak belirtiniz.
F5 ile altrnz.
Makro Programlama Dersleri r. Gr. Ramazan BAYKAL
10
MultiPage yapma
Form zerine bir adet MultiPage, Pageler ierisine birka tane CheckBox yerletiriniz.
Page1 Caption zelliini Zorunlu Dersler olarak deitiriniz.
Page2Caption zelliini Semeli Dersler olarak deitiriniz.
CheckBoxcaptionlarn ders isimleri olarak belirleyiniz. F5 tuuyla altrnz.
Makro Programlama Dersleri r. Gr. Ramazan BAYKAL
11
GrupBox ve OptionButton hazrlama
Form zerine bir adet GrupBox yerletiriniz. Caption zelliine Eitim Durumu yaz-
nz.
GrupBox ierisine drt adet OptionButton yerletiriniz. Caption zelliine lkokul, Or-
taokul, Lise, niversite kelimelerini yaznz.
Form zerine bir adet Label yerletiriniz. Caption zelliine Tahsil Durumu yaznz.
Font zelliinde yaz boyutunu 12 ve kaln seiniz.
Form zerine bir adet TextBox yerletiriniz. Font zelliinde yaz boyutunu 12 ve kaln
seiniz.
Form zerine bir adet CommandButton yerletiriniz. Caption zelliine Kaydet yaz-
nz. Font zelliinde yaz boyutunu 11 ve kaln seiniz.
CommandButton1 nesnesi altna yazlacak kodlar u ekildedir:
Private Sub CommandButton1_Click()
Range("B1").Value = TextBox1.Text
End Sub
OptionButton nesneleri iin yazlacak kodlar u ekildedir:
Private Sub OptionButton1_Click()
TextBox1.Text = "Zayf"
End Sub
Makro Programlama Dersleri r. Gr. 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 Kullanm
Deitirici dmeleri anlamnda kullanlr.
Form zerine bir adet ToggleButton yerletiriniz. Caption zelliine Resmi Gizle yaz-
nz.
Form zerine bir adet Image yerletiriniz. Picture zelliini kullanarak bir resim seiniz.
ToggleButton altnda altrlacak kodlar u ekilde olmaldr:
Makro Programlama Dersleri r. Gr. 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 Gster"
End If
End Sub
ToggleButtona tkladnzda resmi gizliyor veya gsteriyor. Her seferide buton zerindeki me-
tin duruma uygun olarak deiiyor. Seilen resim Image erevesinden byk veya kk olma-
s durumunda stretch zellii ile ereveye gre boyutlandrabilirsiniz.
Image1.PictureSizeMode=1- fmPictureSizeModeStretch gibi.
Makro Programlama Dersleri r. Gr. Ramazan BAYKAL
14
SpinButton ve ScrollBar Kullanm
SpinButton, deer deitirici olarak bilinen bir form nesnesidir. zerindeki aa/yukar veya
saa/sola doru ok iaretlerine tklayarak deer deitirilir. Balang deeri belirlenebilir. Mi-
nimum ve Maksimum deerler belirlenebilir. Orientation zellii ile pozisyonu deiebilir.
Balangta SpinButton deeri Minimum 0, Maximum 100 dr. stenirse bu deerler -10/+10
gibi deitirilebilir.
ScrollBar, kaydrma ubuu olarak bilinen bir form nesnesidir. zerindeki aa/yukar veya
saa/sola doru ok iaretlerine tklayarak deer deitirilir. Balang deeri belirlenebilir. Mi-
nimum ve Maksimum deerler belirlenebilir. Orientation zellii ile pozisyonu deiebilir.
Balangta ScrollBar deeri Minimum 0, Maximum 32767 dir. stenirse bu deerler -100/+100
gibi deitirilebilir.
rnek uygulamada form zerine bir adet SpinButton, bir adet ScrollBar, iki adet label nesnesi,
iki adet TextBox nesnesi yerletirelim. Label nesnelerinin Caption zelliini ekran grntsn-
deki gibi deitirelim. TextBox nesnelerinin BackColor zelliini kullanarak renklendirelim.
SpinButton nesnesine tklandka deer deiecektir. Bu deeri TextBox1 deeri olarak tanm-
layalm.
Makro Programlama Dersleri r. Gr. Ramazan BAYKAL
15
ScrollBar nesnesine tklandka deer deiecektir. Bu deeri TextBox2 deeri olarak tanmlaya-
lm.
imdi sra geldi kod yazmaya:
SpinButton nesnesine tklandka altrlacak procedure aadaki gibi olmaldr.
Private Sub SpinButton1_Change()
TextBox1.Value = SpinButton1.Value
End Sub
Scrol