You are on page 1of 27

Microsoft EXCEL

"LER DZEY" Ders Notlar

NDEKLER

M I. MAKROLAR ............................................................................................................4
A. Makro Nedir...................................................................................................................................................... 4 B. Makro Trleri ................................................................................................................................................... 4

II. MAKRO GELTRME ............................................................................................5


A. Makro Gelitirmede Kullanlacak Admlar ................................................................................................... 5 B. Makro Iletiim Kutusu ..................................................................................................................................... 6 C. Makro Senaryolar ........................................................................................................................................... 7

D. MAKROYU ALITIRMA YNTEMLERI..............................................................7


1. Makroyu Microsoft Excel Tool Mensnden altrmak .............................................................................. 7 2. Makroyu bir dme,izim nesnesi yada grafik yardm ile altrmak. ......................................................... 8 3. Bir nesneye bir makro atama admlar ........................................................................................................... 8 4. Makroyu Klavye ksayolundan altrmak .................................................................................................... 8 5. Makroyu Ara ubuu butonundan altrmak............................................................................................. 8 6. Makroyu bir zel olaya bal olarak altrmak. ........................................................................................... 9 E. MAKRO DZENLENME ............................................................................................................................... 9 1. Create Macro yntemi ile Makro oluturmak. ............................................................................................. 12

III. EXCEL 97 VBA....................................................................................................14


A.Visual Basic Editr........................................................................................................................................ 14 1. zellikler Penceresi ...................................................................................................................................... 15 2. Proje Gezgini ................................................................................................................................................ 15 3. Kod Penceresi ............................................................................................................................................... 15 B. Bir Procedure'n Yaps.................................................................................................................................. 16 1. Genel Yordamlar .......................................................................................................................................... 16 2. Olay Yordamlar ........................................................................................................................................... 17 3. Fonksiyonlar ................................................................................................................................................. 18 C. Nesneler ........................................................................................................................................................... 19 1. zellikler ...................................................................................................................................................... 20 2. Nesnelerinin nemli zellikleri................................................................................................................... 20 3. Metotlar ........................................................................................................................................................ 21 4. Nesnelerin nemli Metotlar ........................................................................................................................ 21 D. Gsterim .......................................................................................................................................................... 22 1. A1 gsterimi ile hcre ve aralik.................................................................................................................... 22 2. ndeks Numaras Kullanarak Hcre Gsterimi............................................................................................ 22 3. Satr ve Stunlarn Gsterimi ....................................................................................................................... 23 4. Ksayol Gsterimin Kullanlmas ................................................................................................................. 24 5. Adlandrlm Hcrelerin Gsterimi ............................................................................................................. 24 6. Greceli Adresleme ...................................................................................................................................... 25 7. Range Nesnesi Kullanarak Hcre Gsterimi ................................................................................................ 26 8. alima Tablosundaki Btn Hcrelerin Gsterimi..................................................................................... 26 E. Temel Giri iki Deyimleri .......................................................................................................................... 26

1. MsgBox Deyimi ...................................................................................... Hata! Yer iareti tanmlanmam. 2. MsgBox Fonksiyonu................................................................................ Hata! Yer iareti tanmlanmam. 3. Giri Kutularnnn Kullanm.................................................................. Hata! Yer iareti tanmlanmam.

F. PROGRAM DENETIMI ........................... HATA! YER ARET TANIMLANMAMI.


1. Dngler .................................................................................................. Hata! Yer iareti tanmlanmam. 2. Do...Loop Deyimi .................................................................................... Hata! Yer iareti tanmlanmam. Dngnn Banda ve Sonunda Denetim .................................................... Hata! Yer iareti tanmlanmam. 3. Bir Koul Doru Oluncaya Kadar Dng................................................ Hata! Yer iareti tanmlanmam. 4. For...Next Deyimi .................................................................................... Hata! Yer iareti tanmlanmam. 5. Karar Yaplar .......................................................................................... Hata! Yer iareti tanmlanmam. 6. If...Then...Else Deyimi............................................................................. Hata! Yer iareti tanmlanmam. 7. Select Case Deyimi.................................................................................. Hata! Yer iareti tanmlanmam.

I. MAKROLAR
A. Makro Nedir Makro: Sk yaplan ileri otomatikletirir. Eer Microsft Excelde belirli ibir ii tekrarl olarak (yinelemeli) yapyorsanz, bu ii makro ile otomatik hale getirebilirsiniz. rnein her ay sonu yaptnz ilemler. Makro, belli bir ii yapmak zere her istediinizde altrabileceiniz bir Visual Basic modul iersine depolanm komutlar ve fonksiyonlar dizisidir. B. Makro Trleri Makrolar, oluturma yntemine gre iki grupta toplayabiliriz. Kayt (Record) Yntemi ile makro oluturma. Visual Basic Editr ile makro oluturma.

Makro kaydetmek tpk bir kasete mzik kaydetmeye benzer. Bir kez kaydedilen mzik nasl tekrar tekrar alnabiliyorsa bir kez kaydedilen makro da tekrar tekrar altrlabilir. Makro kaydetmeye yada yazmaya balamadan nce makronun yapaca ie gre kullanlacak komutlar ve admlar planlanmaldr. nk zellikle kayt makrosu oluturulurken bir hata yaplrsa hatay dzeltme admlar da kaydedilecektir. Her yeni bir makro kaydediinizde; makro, alma kitabna eklenen bir modl sayfasna saklanr. Visual Basic editr ile de makro dzenlenebilir. Visual Basic Editr ile makrolar, bir modlden dierine ya da alma kitaplar arasnda makro kopyalayabilir ve makro ya da modln adn deitirebilirsiniz .

II. MAKRO GELTRME


Bu blmde bir kayt makrosunun nasl yaratlaca, altrlaca ve yeniden dzenlemelerin yaplmas ilemleri anlatlmaktadr. Kayt makrolar daha nce de belirtildii gibi rutin ileri otomatik hale getiren ilem tanmlamalarndr. Veri zerinde yaplacak ilemler bir kez yaplrken makro olarak kayt edilir (record). Ardndan bu makro yeni veriler zerinde kullanlr. A. Makro Gelitirmede Kullanlacak Admlar Bu yntemi kullanmadan nce yapacamz iin admlarn ok iyi belirlemeliyiz hatta gerekiyorsa bir kenara adm adm not aln. Makro kaydetme: 1. Tools mensnden Macro komutunu ve Record New Macro komutunu sein . 2. Macro Name kutusuna makro iin bir ad yazn . rnein Kolon Topla.

Not: Makro adnn ilk karakteri harf olmaldr. Dier karakterler harf, rakam yada alt izgi karakteri olabilir. Makro adnda bolua izin verilmez ;boluk yerine alt izgi iareti kullanlabilir. 3. Store macro in kutusundan makroyu kaydetmek istediiniz yeri sein. Eer makronuzun Excelin her yerinde geerli olmasn istiyorsanz ; makronuzu XLStart klasrndeki, Personal Macro Workbook a kaydedin. Saklama yerleri: This Workbook: Bulunulan alma kitabna. New Workbook: Yeni bir alma kitabna Personal Macro Workbook: Sadece makrolarn bulunduu zel bir alma kitabna. Makronuzun bir aklama iermesi iin Description kutusuna aklamanz yazabilirsiniz. (Bu aklama makronun yapt i olabilir). 4. OK dmesine tklayarak makro kayr ilemine balanr. 5. Makroya kaydetmek istediiniz ilemleri yapn. Makro alrken baz hcreleri seecek yada bu hcrelerden giri k yapacaksa bu hcrelerin neye bal olarak seilecei ile ilikili bir n tanmlama yapmak gerekir. Yani 5

makronun eriecei hcreler makro altrld anda aktif olan hcreye bal olarak deiecekse (greceli adres kullanacaksa) Stop Recording Ara ubuundaki Relative References butonuna tklayp onu basl duruma getirin, ancak bir mddet sonra hcre adresleri nceki aktif hcrelerden atkilenmeyecekse bu durumda Relative Reference butonuna bir kez daha tklayarak onu baslmam duruma getirin. Bir makro iersinde hem mutlak hemde greceli adresleme tekniini birlikte kullanabilirsiniz. Her birinin etkisi kendisinden sonra yaplan eylemleri etkiler. 6. Kayd bitirmek iin Stop Recording dmesine tklayn.. Not: Makro kayt ederken genellikle temiz (hatasz) bir kullanm gerekir. Eer kayt srasnda hata yaplrsa bu hatalar makronun altrlmasnda da karmza gelir. Bunun dnda kayr ederken durum ubuunda Recording aklamas yer alr. B. Makro Iletiim Kutusu Kaydedilen makrolar altrmak, yendien dzenleme ve silmek iin makro iletiim kutusu kullanlr.

letiim kutusu seenekleri: Macro Name: Makronun adn ierir. Macros In : Listelenen makrolarn yer ald projeleri gsterir. Run: Seilen makroyu altrr. Step Into: Makronun ilk satrn gstererek iletim iin gstergeci bu satrn bana getirir. Edit: Makro kodunu aarak grlmesini ve dzenlenmesini salar. Create: Yeni bir makro yaratmak iin kod penceresi aar. Delete: Seilen makroyu projeden karr.

C. Makro Senaryolar Makrolarn kayt edilerek yaratlmas ve daha sonra istenildii kadar kullanlmas; gereksinimlere gre farkl ilerde kullanlmasn salar. rnein: Bir ay, rn toplamnn (ya da baka bir ilemin) dier bir rn ya da ay iin de uygulanmas. Bunun dnda yine her ay dzenlenen bte zetleme ileminin her ay otomatik olarak makro ile yaplmas. Bunun dnda biimleme ilemleri yapan makrolar, hesaplama ilemleri yapan makrolar, grafik izen makrolar, veriler zerinde toplu deiiklik yapan makrolar gibi makrolar yaratlr. rnek: 142 numaral ascii () karakterlerini i harfi ile deitiren makronun kaydedilmesi. 1. Tools mensnden Macro oradan da Record New Macroa tklaynz. Record macro iletiim kutusu grntlenecektir. Macro Name kutusuna makro ad olarak TurkceABC giriniz. Makroyu klavye ksayoluyla altrmak istiyorsanz, Shortcut key kutusuna bir harf giriniz. 2. Ok dmesine tklaynz. Edit mensnden Replace ya da Klavyeden Ctrl-H ksayolunu kullanarak deitirme komutunu altrnz. Find What kutusuna 142 (ALT+142) nolu ascii karakterini, Replace with kutusuna da i harfini giriniz . Replace All dmesine tklaynz. Sayfadaki tm ASCII 142 karakterlerinin yerine i harfleri yazlacaktr. 3. Stop Recording dmesini tklayarak, makro kaydn bitirin. D. Makroyu altrma Yntemleri Excelde hazladnz bir makroyu aadaki ortamlardan altra bilirsiniz. 1. Microsoft Excel Tool Mensnden 2. Dme araclyla 3. izilen bir nesne ya da grafik araclyla 3. Klavye ksayoldan 4. Ara ubuundan 5. zel olaylara bal olarak pucu: almakta olan bir makroyu durdurmak iin ESC ye basnz. 1. Makroyu Microsoft Excel Tool Mensnden altrmak 1. Tools mensnden, Macro mens oradan da istenine makro seilir. 2. Macro Name kutusunan, altrmak istediiniz makronun adn yazn.Yada altndaki listeden altrmak istediiniz makroyu sein. 3. Run dmesine tklayn.

2. Makroyu bir dme,izim nesnesi yada grafik yardm ile altrmak. alma kitabnzdaki bir butona ,izim nesnesine yada grafie bir makro atayabilirsiniz .Buton, izim nesnesi yada grafie tkladnzda bunlara atanm olan makrolar otomatik olarak alrlar 3. Bir nesneye bir makro atama admlar 1. Makronun atanaca nesneye tek tklayarak nesneyi sein. 2. Seili nesnenin zerinde iken sa tklayp alan ksayol mensnden Assign Macro ya tklayn. Varolan bir makroyu atamak iin Macro Name kutusuna nesneye atanacak makronun adn yazn ve OK dmesine tklayn. Eer yeni kayt makrosu kaydedip nesneye onu atamak istiyorsanz Record dmesine tklayn 4. Makroyu Klavye ksayolundan altrmak Bu ilem iki yoldan yaplr: 1. Makro (ilk defa) yaratlrken 2. Makro yaratldktan sonra 1. Tools mensnden Macro komutunu sein. 2. Macro Name kutusuna yeni makronun adn yazn. 3. Shortcut key kutusuna makro altrmak iin kullanacanz harfi yazn. Mevcut bir makroya bir ksayol tuu atamak istediiniz zaman: 1. Tools mensnden Macro komutunu sein. 2. Option dmesine tklayn. 3. Shortcut key kutusuna bir harf giriniz. Ksayol olarak CTRL + harf (kk harfler iin) veya CTRL+ SHIFT + harf (byk harf iin) tularna basabilirsiniz. Ksayol tuu olarak rakam yada zel karakter kullanamazsnz. Ksayol olarak tanmladnz anahtara eer nceden Excel tarafnfan bir makro atanmsa nceki tanmlama geersiz olacaktr. Tabiki sadece tanmladnz makronun geerli olduu alma kitaplarnda. 5. Makroyu Ara ubuu butonundan altrmak. Bir makroyu var olan yada kendi oluturacanz bir ara ubuundaki butondan altrabilirsiniz . Ara ubuuna Makro Atama Admlar 1. View mensnden Toolbars komutunu seilir. 2. Customize komutunu sein.

Makro atamak istediiniz ara ubuu grntde deilse Toolbar sekmesine tklayp grntlenmesini istediiniz ara ubuunun bandaki onay kutusunu fare ile tklayarak doldurun. 3. Commands sekmesine tklayp, Categories listesinden Macros blmne tklayn ve grntye gelen Custom Button nesnesini bir ara ubuunun zerine srkleyin. 4. Ara ubuunun zerine srklediiniz zel dme nesnesine sa tklayrak alan menden Assign Macro ya tklayn. 5. Macro Name kutusuna butona atamak istediniz makronun adn yazn. 6. Makroyu bir zel olaya bal olarak altrmak. Excelde bir olay meydana geldiinde bir makronun kendiliinden devreye girmesi iin makroya zel adlar verilebilir. Otomatik alan makro adlar ; Auto_Open: Bu makronun etkin olduu alma kitab alrken alr. Auto_Close: Bu makronun etkin olduu alma kitab kapatlrken alr. E. MAKRO DZENLENME Makro dzenlemek, Record macro yntemi ile kaydedilmi makrolar zerinde deiiklik yapmak ya da Create Macro yntemi ile yeni makro gelitirmeyi kapsar Record yntemi ile gelitirilmi makrolar dzenlemek iin: 1. Tools mensnden Macro, oradan da Macros seeneine tklayn .

2. stediiniz makroyu sein ve Edit dmesine basn. Bu gelen ekran VBA dilinde kod yazmak yada nceden yazlm makrolar tekrar dzenlemek amacyla kullanlan bir kod gelitirme ekrandr.

Makro kaydederken yapm olduunuz ilemlerin VBA dilindeki karlklar Sub Macro ad ve End Sub deyimleri arasnda greceksiniz. Bu blmde imdilik yapabileceimiz en basit ilem nceden kaydettiimiz. bir makronun ieriini deitirmek ve dzenlemektir. Not :Excel ve Makro modul sayfas arasnda gei iin Taskbar yada Klavyeden Alt-Tab ksayolunu kullanabilirsiniz . SheetEkle adyla kaydettiimiz makronun kodlar aadaki ekilde grnecektir. Sub SheetEkle() ' ' SheetEkle Macro ' Macro recorded 2/5/98 by sau9 ' ' Keyboard Shortcut: Ctrl+q ' Sheets.Add End Sub Balang olarak bu kodlar satr satr aklayp ne ie yaradklarn anlamaya alalm.

10

Sub Sheetekle() Bu satr makromuzun adnn Sheetekle olduunu gsteriyor. Sub deyimi bunun bir altprogram olduunu gsteriyor. Tek trnak () iareti ile balayan satrlar programn almasn etkilemez ancak program iersine yazlacak aklama satralar trnak iareti balamas gerekir. Sheet.Add Programn tek komut satr olan bu satr Sheet tipinde bir nesne ekleneceini gsteriyor. End sub ve programn bittii satr. Sheet.Add satrn Sheet.Delete olarak deitirip makromuzu bir kez de bu ekliye altralm . Tabi makroyu altrmadan nce Excel penceresine gemek gerekir. Dier bir rnek; Ascii karakterlerini Trke harfle deitiren makronun Edit Macro ortamnda dzenlenmesi. 1. Tools mensnden Macro oradan da macros a tklaynz 2. Macro name kutusundan TurkceAbc adl makroyu seip Edit dmesine tklaynz. 3. TurkceABC makrosu aadaki ekilde grntlenecektir. Sub TURKCEABC() ' ' TURKCEABC Macro ' Macro recorded 2/5/98 by sau9 ' ' Keyboard Shortcut: Ctrl+Shift+Q ' Cells.Replace What:=, Replacement:=i, LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False End Sub Yukardaki rnek sadece 142 nolu ascii karakterini deitirecek ekilde. Ancak ok saysada farkl karakterin deitirilmesi isteniyosa her biri iin teker teker kayt makrolar oluturmak zaman alr bunun iin elimizdeki bu kayt makrosu zerinde baz deiiklikler yaparak bu sorunu zelim. What = satr aranan karakteri, Replacement=i satr da yerine konacak karakteri gsterir.

11

Makromuzu aadaki ekle getirelim. Sub TURKCEABC() ' ' TURKCEABC Macro ' Macro recorded 2/5/98 by sau9 ' ' Keyboard Shortcut: Ctrl+Shift+Q ' Cells.Replace What:=, Replacement:=i, LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False Cells.Replace What:=, Replacement:=, LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False End Sub Excel penceresine geip makroyu altrn. 1. Create Macro yntemi ile Makro oluturmak. Tool mensnden Macro ya oradan Macrosa tklayn Macro Name kutusuna makroya vermek istediiniz (yeni) ad yazp Create butonuna tklayn.

Ardndan Visual Basic editr iinde:

12

Sub makroad() End Sub Alanlar grnecektir. Sub makroad() -bu ksmda kodlarnz yaznEnd Sub Not : Create yntemi ile oluturulan makrolar da aynen Record yntemi ile kaydedilen makrolar gibi altrlrlar.

13

III. EXCEL VBA


Visual Basic for Application (VBA), Microsoft Visual Basic programlama dilinin nesne temelli bir uyarlamasdr. Nesneler Microsoft uygulamalar tarafndan salanr. Visual Basic for Application, Excel iinde yer alr. Excel gibi dier uygulamalar da VBA destekler. Visual Basic bilen kullanclar VBAe almalar ok kolay olacaktr. Excel bilen kullanclar ise hem hem VBAi renecek hem de Visual Basici renecektir. VBA, gl ve kolay kullanlan bir makro dili olarak gelitirilmitir. Uzman ve yeni balayan kullanclar (kendi ileri ile ilgili) gereksinimlerini VBA ile kolayca zebilecektir. VBA sayesinde dier uygulamalarla da iletiim salanr. Birbirine balanabilen bu uygulamalar; Microsoft Excel, Microsoft Power Point, Microsoft Project ve Visual Basic ile yazlm uygulamalar. A.Visual Basic Editr Excel iinde bir makro ya da VBA kodu yazmak iin Visual Basic ara ubuu zerinde yer alan Visual Basic Editor kullanlr.

Eer daha nce Excel ya da Word ortamnda makro yazdysanz, Visual Basic Dzenleyicisi ilk bata daha nce grmediiniz pencereler ve dmelerle kark gelecektir. Not: Visual Basic Dzenleyici iindeki zel bir pencere hakknda bilgi almak iin, o pencereyi atktan sonra F1 tuuna basn.

14

1. zellikler Penceresi Bir zellik, bir nesnenin rengi ya da bal gibi bir karakteristiidir. Bir nesnenin boyu, rengi, yaz tipi bilgiler bu pencere araclyla dzenlenir. 2. Proje Gezgini Bir alma kitab, belge, ablon ya da sunumla ilikilendirilmi kodlarn hepsi alma kitab, belge, ablon ya da sunumla beraber otomatik olarak kaydedilen bir proje iinde saklanr. Visual basic dzenleyicinin iindeki, proje gezgini ile ak bulunan her alma kitab, belge, ablon ya da sunumun iindeki projeleri grebilir, deitirebilir ve aralarnda gei yapabilirsiniz. Proje gezgini penceresini isterseniz deiik yerlere yerletirebilir ya da boyutlarn deitirebilirsiniz. Proje gezgininde ak bulunan her alma kitab, belge, ablon ya da sunum iin bir proje vardr. Her proje iinde ise, olaylar temsil eden nesneleri bulacaksnz. Bu nesneler; Belgeler, alma kitaplar ve alma sayfalardr. Formlar: (Kullanc formlar olarak da adlandrlr) Kullanclarn veri girii ya da bilgi al verii iin kullanlan iletiim kutulardr. Standart Modller: zel bir nesne ya da bir formla ilikisi olmayan kodlan tarlar. Snf Modller: zel bir nesne tipinin kodunu tarlar. Referanslar: Dier projelere olan referanslar tarlar. Bir modl ya da form iindeki kodu grebilmek iin, nesneye tkladktan sonra, Proje gezgini penceresinin stndeki, Kod Grntle dmesine basn. Kod Grntle dmesi Bir nesne ya da formun kendisini grebilmek iin ise, nesneye tkadktan sonra, Proje gezgini penceresinin stndeki, Nesne Grntle dmesine basn. Nesne Grntle dmesi 3. Kod Penceresi Bir proje iindeki kodlar grebilmek iin, kodu tayan elemana tkladktan sonra, Proje Gezgini penceresinin st tarafnda bulunan Kodu Grntle dmesine basmanz gerekir. pucu: Kod penceresinde ayn anda birden fazla yordam grebilmek iin, Aralar, Seenekler mensndeki, Dzenleyici sekmesinden, Tam Modl Grnmn Varsay kontrol kutusunu sein. Her seferinde bir yordam grebilmek iin ise bu kontrol kutusunu temizleyin. Kod pencerenin st tarafnda bulunan Nesne (Object) ve Yordam (Procedure) listelerini kullanarak kodlar arasnda gei yapabilirsiniz. Nesne kutusundan, (Genel) zerine gelin ve Yordam kutusundan, zel bir olaya atanmam bir Yordam adna tklayn. Nesne kutusunda, bir nesneye tklayn, ardndan Yordam kutusundan, herhangi bir olay zerine basarak, o olaya atanm bulunan kodlar grn.

15

B. Bir Procedure'n Yaps Visual Basic dzenleyici ortamna yaratlacak olan program kokdu makro ya da procedure (yordam) olarak adlandrlr. Visual Basicte deiik trde yordamlar (procedure) kullanlr: Sub Function Property

Bir Sub yordam herhangi bir deer dndrmez. arlarak ya da bir olaya tepki olarak alr. Function yordamlar ise bir deer dndrler. rnein bir faiz hesabnn sonucunu dndrrler. Property yordamlar ise bir deer dndrler, atama yaparlar ve nesnelerin referanslarn dzenlerler. Bir Sub yordamnn yaps: [Private|Public][Static] Sub yordam ad (argmanlar) Deyimler End Sub Yordam altrldnda Sub ve End deyimleri arasnda kalan satrlar iletilir. Sub yordamlar standart modller, class modller ve form modlleri iinde yer alrlar. Sub yordamlar varsaym olarak btn modllerde Public tanmlanr. Bunun anlam bu yordamlarn uygulamann heryerinden (dier modllerden) arlabilmesidir. Argmanlar ise tanmlanan bir deiken gibidir. arlan yordamdan geen deerler olarak tanmlanr. Visual Basicte yordamlar (procedure) ikiye ayrlrlar: Genel yordamlar Olay yordamlar

1. Genel Yordamlar Bir genel procedure belli bir ilemi stlenen program parasdr. rnein bir dosyann almas ya da raporun bastrlmas iin kullanlabilir. Genel yordamlar dier yordamlardan arlrlar. Bylece belli bir ilevi olan bu birim programn her yerinden istenildii kadar arlarak kullanlr. Buna karn olay yordamlar ise kullancnn yaratt bir olay nedeniyle alr. Olay yordamlar kullanclarn hareketlerine tepki olarak arlrlar. rnein bir dmeye tklayarak bir ilemin balatlmas. yi bir programlama stratejisi iinde bir takm ortak grevler genel yordamlar olarak planlanmaldr. Bylece kod tekrarna gerek kalmaz.

16

Yaps: Sub yordam ad(arguments ) -deyimlerEnd Sub 2. Olay Yordamlar Olay yordamlar bir olayn (event) olumasna tepki olarak alrlar. Visual Basic nesneleri (formlar, metin kutular, dmeler, vb) belli olaylar tanrlar. Bylece olay olutuunda; o olay iin hazrlanm olay yordam alr. Bir komut dmesinin olaylar: Click: Tklama GotFocus: Odaklanma,zerine gelme. KeyDown: Bir tua basmak. MouseDown: Farenin bir tuuna basmak. Olay yordamlar, bir nesnenin alt tire ile olaylara bal olarak gelitirilir. Bu adlar Visual Basic kod editr tarafndan otomatik olarak ya da manuel olarak oluturulur. Yaps: Nesne_Olay rnek: Command1_Click Olay yordamlar Visual Basic nesnelerinin olaylarna bal olarak gelitirilirler: rnein Form1_load olay yordam bir formun almas srasnda alacak bir yordam, Command1_Click olay yordam da bir komut dmesine tklandnda alacak bir kod birimini gsterir. Yaps: Sub kontrol ad_olay ad(argmanlar ) -deyimlerEnd Sub Olay yordamlarnn adn kod editr iinde dorudan yazabileceiniz gibi Visual Basic tarafndan otomatik olarak koda eklenen yordam ve olay adlarn da kolayca kullanabilirsiniz. Bu ilem iin kod editr penceresinde nesne ve olay seilir. 1. Kod editr penceresinde Object kutusundan istediiniz nesneyi sein.

17

2. Procedure kutusundan isteiniz procedure sein. 3. Sub procedurenz hazr. Not: Burada procedurelarn adlaryla ilgili olarak nemli bir konuyu aklamak istiyorum. Bir komut dmesine bir olay yordam ekledikten sonra; rnein Command1_Click, zellikler tablosundan Name zellii ile kontroln ad deitirilirse Visual Basic bunu takip edemez ve eski procedure genel bir procedure olarak modl genel dzeyine atar. Bu durumda procedure yazlmadan nce adlandrma ileminin yaplmas gerekir. 3. Fonksiyonlar Visual Basic procedure'lar sadece Sub olarak dzenlenmez. Bir dier procedure yaps da Function olarak bilinen fonksiyonlardr. Bir procedure olarak dzenlenen fonskiyonlar belli bir ilemi kod olarak ieren ve bir deeri geri dndren program paralardr. Bir yordam olarak yaratlan fonksiyonlarn Sqr, Val gibi Visual Basicte hazr olarak bulunan fonksiyonlarla ilikisi yoktur. Fonksiyonlar kullanm bakmndan bir ilemi yapan ve istenildii yerde kullanlabilen bir kod birimidir. rnein bir faiz fonksiyonu istenildii program iinde istenilen yerde arlarak kullanlr. Bir fonksiyon yordamnn yaps: [Private|Public][Static] Function yordam ad (argmanlar) [As tip] -deyimlerEnd Function Fonksiyonlar ayr bir yordam olarak dzenlenirler. Fonskiyonlarn kullanmnda argmanlar nemlidir. Fonksiyonlar argmanlar alrlar, bir dizi ilem yaparlar ve sonucu dndrrler. Sub yordamlar ile Function yordamlar arasnda farklar unlardr: Bir fonksiyon deer dndrr ve genellikle bir eitliin sanda kullanlr. Bir sub ise belli bir ii yapar. lemi tamamlar bir deer ya da parametre ile kullanm zorunluluu yoktur.

Function UcretHes(deger1, deger2, deger3) -deyimlerEnd Function Yaps: Ucret = UcretHes(gun, baz, katsay)

18

Fonsiyon yordamlar bir deeri elde etmemizi salarlar. Fonksiyonlar deiken gibi veri tipine sahiptirler. Bu veri tipi dnecek verinin tipini belirler. Fonksiyonlar bir hesaplamann paras da olabilirler. Toplam = Ikramiye + UcretHes(gun, baz, katsay) / 360 rnein ap verilen bir dairenin alann hesaplayan bir fonskiyon ya da verilen dereceyi fahrenheite eviren bir fonksiyon gibi. rnek: Dereceyi Fahrenheit'e eviren fonksiyon Fonksiyonun tanm:
Function Fahrenheit(x) Fahrenheit = x * 9 / 5 + 32 End Function

Fonksiyonun kullanm:
Private Sub Command1_Click() Dim Deer As Integer Deer = InputBox(" ") MsgBox Fahrenheit(Deer) End Sub

C. Nesneler Nesne (obkect) alma tablosu (worksheet), sayfa (sheet), sayfa zerinde zerinde bulunan bir aralk, izim, grafik, bir dme nesne olarak adlandrlr. ekil: Microsoft Excel Nesneleri

Excel VBA'de ilevsel olan makrolar nesneler sayesinde yazlr. Nesneler (objects), Excel'de kontrol edilecek eyleri temsil eder. Bunlar Workbook (alma Tablosu), Rows (Satrlar), Cells (Hcreler), Charts (Grafik) vb bir ey olabilir.

19

Nesnelerle ilem yapmak iin iki nemli aracn bilinmesi gerekir. Bunlar: Methods (Metotlar) ve Properties (zellikler) dir. Metotlar nesnelerle yaplacak ilemleri tanmlar. rnein bir alann silinmesi uygun nesne (alan) ve uygun metot (silme ilemi) ile yaplr. zellikler ise nesnenin zelliklerini gsterir. rnein hcrenin renkli ya da italik olarak yazlmas gibi. Nesne Application Workbook Worksheet Range Chart Aklama Excel uygulamasnn geneli Excel alma Kitabnn tamam Bir alma Kitabndaki bir alma Tablosu Bir ya da daha ok hcre Bir alma Tablosundaki bir Grafik

Nesne tanmlanmasnda nesnenin kendini kapsayan ve kendi iindeki nesne ile birlikte yaplmasndan tam nesne tanmlamas ortaya kar: Application.Workbooks("butce").Worksheet("ocak").Range("a1") 1. zellikler Bir nesnenin zellii onun rengi, uzunluu gibi niteliklerini dzenlemek iin kullanlr: Range("A1").Font.Bold = True Cells(5,1).Font.Size = 34 2. Nesnelerinin nemli zellikleri Her nesnenin ok sayda zellii vardr. Aadaki tabloda yaygn kullanlan zellikler yer almaktadr: zellik ActiveCell ActiveSheet ActiveWorkbook Bold Italic Column Aklama Aktif pencerenin aktif hcresi Aktif alma Kitabnn aktif alma Tablosu Excel'deki aktif alma Tablosu Metnin harflerinin kaln grnmesi Metnin harflerinin yatk grnmesi Bir alandaki ilk kolonu tanmlayan say

20

Row ColumnWidth Hight Width RowHeight Selection Value

Bir alandaki ilk satr tanmlayan say Belirtilen alanda kolonlarn genilii Nesnenin ykseklii Nesnenin genilii Belirtilen alandaki satrlarn ykseklii Seilen alan ya da nesne Bir hcrenin iindeki deer

3. Metotlar Metotlar ise nesne-temelli programlamann ilemlerini (komutlarn) olutururlar. Her nesne olas ilemlerini metotlaryla tanmlar. Metotlarn kullanmnda nesne, ardndan nokta ile metot kullanlr. Nesne.Metot ActiveCell.Clear ActiveWorkbook.Close 4. Nesnelerin nemli Metotlar Her nesnenin ok sayda metotu vardr. Aadaki tabloda yaygn kullanlan metotlar yer almaktadr: Metot Add Clear Copy Delete Open Close Activate rnek: Range("A1:B5").Select Range("A1").Activate Range("A1:B5").Delete Range("B5").Value = "Ne haber?" Aklama Ayn tipte yeni bir nesne yaratr Belirtilen alann silinmesini salar Alann panoya (clipboard) kopyalanmasn salar. Belirtilen nesneyi siler alma Kitabn aar Belirtilen nesneyi kapatr Belirtilen nesneyi aktifletirir

21

D. Gsterim Excel zerinde ilem yaparken genellikle hcrelerdeki veriler kullanlr. Hcrelerle (cells) ilem yapmak iin hcreler iindeki deerleri gstermek gerekir. Bu ilem iin Range ve Cells metotlar kullanlr. Range (A1) Cells(1,1) Deerleri: Range (A1).Value Cells(1,1).Value 1. A1 gsterimi ile hcre ve aralik. Range metodunu kullanarak A1 gsterimi ile hcre y ada aralk seebilirsiniz. Aadaki altprogram A1:D5 aralndaki hcrelerin grnmnu koyu (bold) olarak deitirir. Sub AralkFormatla() Workbooks("Book1").Sheets("Sheet1").Range("A1:D5").Font.Bold = True End Sub Aadaki tablo Range metodu kullanarak Baz A1 gsterimi adreslemeler yaplmtr: Gsterim Range("A1") Range("A1:B5") Range("C5:D9,G9:H16") Range("A:A") Range("1:1") Range("A:C") Range("1:5") Range("1:1,3:3,8:8") Range("A:A,C:C,F:F") Anlam A1 hcresi A1 den B5 e kadar oklu aralk seimi A kolonu Birinci satr A dan C kolonuna kadar Birinci satrdan beinci satra kadar Birinci, nc, sekizinci satr A, C, ve F kolonlar

2. ndeks Numaras Kullanarak Hcre Gsterimi Satr ve stun index numaralarn kullarak tek bir hcre GSTERM iin Cell zelliini kullanabilirisiniz. Bu zellik ierii bir tek hcre olan bir aralk deerini dndrr. Aadaki rnekte Cells(6,1) , sheet1 zerindeki A6 hcresinin deerini Value zellii kullanarak 10 yapmaktadr. Sub DegerGir() Worksheets("Sheet1").Cells(6, 1).Value = 10 End Sub Cell zellii tanml bir aralk iesinde dng kurulaca zaman olduka kullanl olmaktadr. nk indeks numaras olarak bir deiken kullanlmasna izin vermektedir.

22

Aadaki rnekte sheet1 in A1 den A20 ye kadat olan hcrelerine 1 den 20 ye kadar saylar yazdrlmaktadr. Sub DegerGir() Dim counter As Integer For counter = 1 To 20 Worksheets("Sheet1").Cells(counter, 3).Value = counter Next counter End Sub Not: Eer bir aralk iersindeki hcreler zerinde ilem yapacaksanz bu durumdan Range zelliini kullannz. rnek: Aadaki rnekte deerleri artran bir makro yazarak sayfa zerinde dmeler araclyla altrn

3. Satr ve Stunlarn Gsterimi Tm satr yada tm kolonla almak iin Rows ya da Columns zelliklerini kullanmak gerekir. Bu zellikler ierii hcre aral olan bir aralk nesnesi ddrrler. Aadaki rnekte Rows(1) , birinci satr dndrr. ColorIndex zelliinin deeri 46 yaplp hcredeki metnin rengi krmz yaplmaktadr. Sub KirmiziYap() Worksheets("Sheet1").Rows(1).Font.ColorIndex = 46 End Sub Not: Yukardaki rnekte grdmz gibi altprogram adlarnda Trke harf kullanmyoruz. Aadaki tablo Satr ve Stun zelliklerini kullanarak, satr ve stun iaret etmeyi gstermektedir. Seim Rows(1) Rows Columns(1) Columns("A") Anlam Birinci satr alma kitabndaki btn satrlar Birinci kolon birinci kolon

23

Columns

alma kitabndaki tm kolonlar

Ayn anda birden fazla kolon ya da satrla alyorsanz, daha kolay eriim iin, Union metodunu kullanarak bir nesne deikeni tanmlaynz. Bu kolon ve satrlarn zelliklerini deitirmek istediinizde de nesne deikenini kullannz. Aadaki rnek alma kitabnn sheet1 birindeki birinci, nc, beinci satrlarn biimini Bold olarak deitirmektedir. Sub BirKacSatr() Worksheets("Sheet1").Activate Dim myUnion As Range Set myUnion = Union(Rows(1), Rows(3), Rows(5)) myUnion.Font.Bold = True End Sub 4. Ksayol Gsterimin Kullanlmas Range zelliinin yan sra ksayol gsteriminde keli parantez iinde A1 gsterimini ya da aralk adn kullanlabilir. Bu gsterimde Range ifadesini ya da trnak iaretlerini kullanmak zorunda deilsiniz. Aadaki rnek A1:B5 aralndaki hcre ieriklerini silmektedir. Sub ClearRange() Worksheets("Sheet1").[A1:B5].ClearContents End Sub Aadaki rnek MyRange olarak adlandrlm hcrelere 30 deerini atanaktadr. Sub SetValue() [MyRange].Value = 30 End Sub 5. Adlandrlm Hcrelerin Gsterimi Bu yntemde bir adres gsterimi Range zelliinin bir aralk ad ile birlikte kullanmndan meydana gelmektedir. Aadaki rnek MayBook.xls dosyasnda MyRange olarak gsterilen aral italik yapmaktadr. Sub AralkBicimle() Range("MyBook.xls!MyRange").Font.Italic = True End Sub Aadaki rnek Report.xls alma kitannda bulunan Sheet1 deki Sales aralnn etrafna ereve izmektedir. Sub FormatSales() 24

Range("[Report.xls]Sheet1!Sales").BorderAround weight:=xlthin End Sub Aralk semek iin goto metodunu dakullanabilirsiniz. Goto metodu hem alma kitabn ve alma tablosunu aktif eder ardndan da gsterilen aral seer. Aadaki rnek MyBook.xls alma kitabnda bulunan MyRange aralnn ieeriini silmektedir. Sub ClearRange() Application.Goto Reference:="MyBook.xls!MyRange" Selection.ClearContents End Sub Aadaki rnek aktif alma kitab iin ayn altprogramn nasl yazlabileceini gstermektedir. Sub ClearRange() Application.Goto Reference:="MyRange" Selection.ClearContents End Sub Adlandrlm aralkta bulunan hcreler boyunca dng rnei. Aadaki rnek adlandlm aralktaki herbir hcre iin dner ve deeri 50 den kk olan bir hcreye rastlarsa bu hcrenin yaz rengini sar yapar. Sub SariyaBoya() Const limit As Integer = 50 For Each c In Range("MyRange") If c.Value < limit Then c.Interior.ColorIndex = 27 End If Next c End Sub 6. Greceli Adresleme Baka hcre adreslerini referans kabul eden hcrelerle almann en yaygn yolu Offset zelliini kullanmaktr. Aadaki rnekte aktif alma tablosundaki aktif hcrenin bir satr aa satr sandaki hcre ift alt izgi ile biimlendirilmektedir. Sub Underline() ActiveCell.Offset(1, 3).Font.Underline = xlDouble End Sub

25

Not: Makro kaydederken greceli adresleme yapmak iin makro kayd srasnda Stop macro butonunun yanndaki Relative References butonuna tklayabilirsiniz. Hcre aral boyunca dnmek iin dng iersinde Cell zellii ile birlikte deiken kullanbilirsiniz. Aadaki rnekte 3. stunun 1 den 20. satrna kadar 5 ten 100 e kadar 5 er 5 er artan saylar yazdrlmaktadr. Counter deikeni burada hem satr index numaras hemde hcreye atanacak deerin hesaplanmasnda kullanlmtr. Sub Dongu() Dim counter As Integer For counter = 1 To 20 Worksheets("Sheet1").Cells(counter, 3).Value = counter * 5 Next counter End Sub 7. Range Nesnesi Kullanarak Hcre Gsterimi Range nesnesi iin bir nesne deikeni tanmlarsanz , deiken adn kullanarak aralk zerinde kolayca ilem yapabilrisiniz. Aadaki rnekte MyRange adl bir nesne deikeni tanmlayp deikene aktif alma kitannn Sheet1i zerindenki A1:D5 araln atanarak,tanmlanan aralk Rand() fonksiyonu kullanlarak rasgele saylarla doldurulmaktadr. Sub Random() Dim myRange As Range Set myRange = Worksheets("Sheet1").Range("A1:D5") myRange.Formula = "=RAND()" myRange.Font.Bold = True End Sub 8. alima Tablosundaki Btn Hcrelerin Gsterimi Eer Cell zelliini index numaras kullanmadan bir alma tablosu zerinden uygulasanz , bu zellik alma tablosundaki btn hcrelerin seili olduu bir nesne deeri dndrr. Aadaki rnek aktif alma kitabna bal Sheet1 iiindeki tm hcrelerin ieriini siler. Sub ClearSheet() Worksheets("Sheet1").Cells.ClearContents End Sub

26

NOT: Bu dokman Faruk ubuku tarafndan yazlmtr. Ticari amal kullanlamaz.

27

You might also like