Professional Documents
Culture Documents
2excelVBA Kurs Not2
2excelVBA Kurs Not2
VBA
(VISUAL BASIC FOR APPLICATONS)
VBA
VBA
5-Dme, Ara ubuunda yerini aldnda, hem otomatik olarak seili olduuna dikkat
edin, hem de tam bu esnada zelletir penceresindeki Seimi Deitir dmesinin aktif hale
geldiine dikkat edin.
6-zel Dme ikonu seiliyken, Seenei Deitir dmesine tklayn. Alan menden
Makro Ata komutunu sein.
Makro Ata... (Assign Macro) komutunu setiinizde ekrana Makro Ata penceresi gelecektir.
Bu pencerenin daha nce hazrlam olduunuz makrolarnz altrmak, dzenlemek vs..
iin kullandnz Makro penceresine benzediine dikkat edin.
VBA
VBA
2.
Bunu kullann
A10
A10:A20
B15:E15
5:5
5:10
H:H
H:J
Mutlak Bavuru: Bir formlde, forml ieren hcrenin konumuna baklmadan, hcrenin
tam adresi, mutlak bavuru $A$1, $B$1 vs. biimini alr.
Greceli Bavuru: MS Excele forml ieren hcreden balayarak baka bir hcreyi nasl
bulacan syleyen, A1 gibi hcre bavurusu. Greceli bavuru kullanma, kiiye bulunduu
yerden balayarak nereye gideceini aklayan ynergelere benzer. rnein; iki blok yukar
ve bir blok dz gidin gibi.
VBA
10
imdi sra hazrlam olduumuz makronun kodunu grntlemeye geldi. Evet aslnda ayn
makroyu yazdk. Fakat, bavuru tipini deitirdik. Bakalm Greceli Bavuru ikonunu
tklamanz kod sayfasnda ne gibi deiikliklere sebep olmu.
Sub Greceli()
'
' Greceli Makro
' Makro .. '
VBA
11
VBA
12
VBA
13
VBA
14
Deiken Tipi
Integer
Long
Single
Double
Currency
String
VBA
15
VBA
16
Subroutine ve Fonksiyonlar
Moduler programlamann temeli olan iki kavram altprogram (subroutine) ve fonksiyon
aadaki ekilde tanmlanr :
[Private | Public | Friend] [Static] Sub isim[(parametre listesi)]
[komutlar]
[Exit Sub]
[komutlar]
End Sub
Eer bir sub program private ise sadece o modl ierisinden arlabilir, public ise dardan
baka bir modlden arlabilir .Friend ise o proje iinden arlabilir.
Static parametresi ise o sub program kapatlsa bile iinde yaratlan lokal deikenler silinmez
ve sabit kalr.
Fonksiyonlar sub programlara benzemekle birlikte geriye bir deer dndrmektedir.
[Public | Private | Friend] [Static] Function fonsiyonad[(parametrelistesi)] [As type]
[komutlar]
[fonksiyonad= expression]
[Exit Function]
[komutlar]
[fonksiyonad = expression]
End Function
VBA
17
Sadece OK buttonu
vbOKCancel
OK ve Cancel
vbAbortRetryIgnore
vbYesNoCancel
vbYesNo
Yes ve No
vbRetryCancel
Retry ve Cancel
vbCritical
16
vbQuestion
32
vbExclamation
48
Uyar ! ikonu
vbInformation
64
Bilgi konu.
vbDefaultButton1
lk buton varsaylan
vbDefaultButton2
256
vbDefaultButton3
512
nc buton varsaylan
vbDefaultButton4
768
vbApplicationModal
vbSystemModal
4096
VBA
18
16384
VbMsgBoxSetForeground 65536
vbMsgBoxRight
524288
vbMsgBoxRtlReading
Aklama
vbOK
OK
vbCancel
Cancel
vbAbort
Abort
vbRetry
Retry
vbIgnore
Ignore
vbYes
Yes
vbNo
No
VBA
19
20
12- Aktif hcrenin zerindeki iki hcrenin deerleri toplanr ve sonu aktif olan hcreye
yazlr.
Sub toplama()
t1 = ActiveCell.Offset(-1, 0).Value
t2 = ActiveCell.Offset(-2, 0).Value
ActiveCell.Value = t1 + t2
End Sub
13- Seili hcrelerdeki biimleri siler.
Selection.ClearFormats
14- Seili hcreleri aa teler.
Range("A1:A5").Select 'A1 ile A5 arasndaki hcreler seilir.
Selection.Insert Shift:=xlDown 'Seimi aa kaydrr. Burada sadece seili olan 5 adet hcre
aa kaydrlr.
15- Seili hcrelere ait hm satr telemek.
Range("A1:A5").Select
Selection.EntireRow.Insert '14. koddan farkl olarak seili olan hcrelere ait 1 ila 5 arasndaki
tm satrlar 5 satr aa telenir.
16- Seili hcrelere ait tm stunu telemek.
Range("D6:E7).Select
selection.EntireColumn.Insert
17- Ak olan Excel alma Kitabnn belirtilen sayfasndaki istenen hcreye deer atar.
Workbooks("Kitap1.xls").Worksheets("Sayfa1").Range("A1").Value = 3
18- Yaplan seimlerde bo olmayan hcre saysn verir.
Sub hucresayisi()
Dim kontur As Integer
kontur = Application.CountA(Selection)
MsgBox "Seimdeki dolu hcrelerin says:" & kontur
End Sub
19- 18. maddedeki kodlamada 'CountA' da bulunan 'A' kaldrlrsa seimde sadece ka
hcrede say (rakam) varsa onlarn adedini verir.
Application.Count(Selection)
20- Seili hcrelerin saysn verir.
Selection.Count
21- Seimin satr saysn verir.
Selection.Rows.Count
22- Seimin stun saysn verir.
Selection.Columns.Count
23- Deiik blgelerdeki seili alanlarn stun saysn verir.
VBA
21
22
Yada aadaki resimlerde olduu gibi, bir hcredeki bilgiyi yine fare yardm ile baka bir
hcreye tayabilirsiniz.
Evet bu tr yntemler her zaman faydal olmutur. Ama bir program yaptnz ve son
kullancnn bu yntemleri kullanmasn istemiyorsunuz. Tabi buna her zaman hakknz var. O
halde aadaki makro kodunu yazn.
Sub SuruklemeyiEngelle()
Application.CellDragAndDrop = False
End Sub
Burada CellDragAndDrop, Application nesnesinin bir zelliidir. Bu makroyu altrdnz
Excel dosyasnda hcrelerin Drag (Srkle) ve Drop (Brak) olayn engellemi olursunuz.
Makroyu altrn ve deneyin. Hcrelerin tanamayacan greceksiniz.
Bu zellii iptal etmek iin ise True deerini kullanmalsnz.
VBA
23
RNEK UYGULAMALAR
Word Programn Rapor Arac olarak Kullanmak
Bu uygulamada kullanc farkna varmadan Worde belirli bir yaz kullanlarak arka planda
dkm alnmaktadr. Apllication nesnesinin (oWord ) visible zelliinin varsaylan deeri
false olduu iin word ekranda gzkmez. Ancak gzkmesini istersek bu zellik true
yaplmaldr.
VBA
24
VBA
25
26
VBA
27