Macros Nədir?
Macros - Visual Basic dilində yazılmış proqramdır. Bu proqram dilini bilməklə
siz bir çox monoton (darıxdırıcı) və dəyərli vaxtınızın xeyli hissəsini alan
işlərinizi avtomatlaşdırmaq imkanına sahib olacaqsınız. Əgər nəzərə alsaq ki,
vaxt puldur onda ən azından siz pullarınızı itirməmiş olursunuz. Bununla yanaşı
bu yolla qənaət etdiyinz vaxtı (pulları) digər sahələrin inkişafına nəzarətə sərf
edə (xərcləyə) bilərsiniz.
Makrosu kimlər yaza bilər?
a)Təkcə proqramçılar
b)Yoxsa istəyən hər kəs bunu bacara bilər
Cavab əlbətdə ki, çox sadədir istəyən
hər bir kəs bunu bacara bilər. Proqram dilinin çoxfunksiyalılığı sizə mürəkkəb
görsənməsin. Ən azından sizə lazım olan bazis bilikləri əldə etməklə işinizdəki
müəyyən məsələləri avtomatlaşdıra bilərsiniz. Zaman keçdikcə isə əvvəllər sizə
mürəkkəb (anlaşılmaz) görünən məqamlar indi çox sadə bir əməliyyat kimi görünməsinin
şahidi olacaqsınız.
Bəs bu proqram dilini öyrənmək bizə nə qazandıracaq? Birincisi- ən önəmlisi
dəyərli olan vaxtımızı qazanırıq, ikincisi isə- yeknəsəq işlərimizdən birdəfəlik
azad oluruq.
Bəs bu əldə edəcəyimiz bazis biliklərə nələr daxildir? və ilkin olaraq nələri
bilmək lazımdır?
*İlk olaraq makrosun harada və necə yazlmasnı bilməliyik. Bunun üçün excel
səhifəsini yükləyirsiniz sonra "Alt+F11” sıxılır, daha sonra isə alətlər
panelindən "İnsert/Module” seçməklə modulumuzu əlavə edirik. Yazacağımız makros
bu modulun içərisində olacaq. Modulumuz artıq hazırdır indi isə "Excel” proqramında ilk "VBA”-mızı (Macros-u) yaza bilərik. İlk olaraq yazacağımız makrosun adını təyin etməliyik. Bunun
üçün "sub” yazırıq sonra "adı” təyin edirik və mötərizə açılır-bağlanır daha
sonra "Enter” sıxılır (bu zaman "End sub” yazısı avtomatik olaraq görsənir) və
budur nəhayət kodumuzu yaza bilərik. Bu aşağıda göstərilən strukturda həyata
keçirilir.
sub Salam_VBA()
Msgbox "Hello
MyExcelWorld”
End sub
Burada "Salam_VBA”- makrosumuzun adını, "Msgbox "Hello MyExcelWorld””- VBA
kodumuzu "End sub”-isə prosesin başa çatmasını göstərir. Bu VBA kodunu icra etmək
üçün "Alt+F8” sıxılır açılan pəncərədən "Macro name”-də "Salam_VBA” görsənəcək
və "Run” sıxmaqla bu kodu icra etmiş oluruq.
*İkincisi-VBA-da hazırda və yaxud əvvəl yazdığımız
kodların icra edilməsi. Exceldə VBA redaktorunda mövcud olan əvvəlcədən
yazılmış hər hansı bir kodu işə salmaq üçün "Alt+F8” sıxılır sonra icra
olunacaq "VBA” komandası seçilərək Run edilir. Digər usul isə "Alt+F11”
sıxılaraq icra edəcəyiniz "VBA” kodu activləşdirilməsi sonra isə "F5”-in sıxılmasıdır,
əgər ardıcıllığı addım-addım görmək istəyirsinizsə onda "F8”-i hər dəfə
sıxmaqla prosesi izləyə bilərsiniz. Bundan başqa "Alt+F8” vasitəsilə açılan pəncərədən
də "Step Into”-ya keçərək "F8”-lə
prosesin gedişatını izləmək mümkündür. Addım-addım prosesin icrası sizə hansı
kodun hansı əməliyyatı icra etdiyini izləməyə imkan verəcək.
*Üçüncüsü-bir neçə bazis əməliyyatları yerinə yetirən
kodlarla tanışlıq. Bu bazis macro korlara misal olaraq: Range(), Cells(), Msgbox, Offset(),PasteSpecial, Call, If … Then, For Each ... in ..., Exit sub və s göstərmək
olar.
Range()-vasitəsilə siz istədiyiniz diopozonları
Select, Copy, Cut, Clear və s edə bilərsiniz (məsələn; "Range("A1”).Select” yazmaqla).
Cells()-vasitəsilə isə siz yuxarıda Range() üçün
sadalanan əməliyyatları hər hansı bir xana üçün tətbiq edə bilərsiniz. (məsələn:
"Cells(1,1).Copy” yazmaqla)
Call-Mövcud excel səhifənizdə əvvəlcədən
yazılmış olan hər hansı bir makrosu çağırmaq (işə salmaq) üçün istifadə olunur.
(məsələn: ”Call Salam_VBA” yazmaqla)
If … Then- isə müəyyən şərtlərə əməl
edilməsi yolu ilə prosesin ardıcıllığının müəyyən edilməsidir. Bu kodun sonluğu
"End if”-lə yekunlanır. Msələn:
If Range("A1”).Value=1
Then
Msgbox "Hello MyExcelWorld”
End if
For Each ... in ...-bu
kod isə prosesin dövrü olaraq təkrarlanması zamanı istifadə olunur. Yəni məsələn
"Sheet1”-dən başlayaraq "Sheet10”-a kimi müəyyən eyni bir əməliyyatı yerinə
yetirmək istəyirsiniz. Onda bu koddan istifadə olunur (prosesin hamısını ayrıca
"Sheet1” sonra "Sheet2” … "Sheet10” üçün bir-bir yazmamaq üçün).Bunun isə sonluğu "Next”-dir (yəni məsələn
növbəti səhifəyə keç). Məsələn bütün səhifələrdə "A1” xanasındakı məlumarları silmək lazımdır. Bunun üçün:
For
Each Sehife in Worksheets ‘Bu
setrdeki emeliyyat her bir sehifenin nezere alinmasi uchundur
Sehife.Activate ‘Bu yazilish sehifeni aktivleshdirir
Range("A1”).Clear ‘Bu ise "A1”-xanasindaki
melumatlari silir (Delete edir)
Next Sehife ‘Neyayet
"Next” komandasi ise burada sehifede bir dovr emeliyyati
‘basha vurduqdan sonra diger sefifeye
kechmeye imkan verir
Exit sub-bu kod isə daxil edildiyi yərə
qədər əməliyyatın icra edilməsinə imkan verir. Məsələn müəyyən şərtlərin ödənilməməsi
şəraitində siz əməliyyatın dayanacağını bildirən pəncərənin peyda olması və
sonra prosesin dayanmasını bu kod vasitəsilə icra edə bilərsiniz. Məsələn:
If Range("A1") = 1 Then ‘ Burada sherte gore "A1” xanasinda 1
yazilibsa onda "Shert odenmir" yazisi chixir sonra emeliyyat dayanir
MsgBox "Shert odenmir" ‘Bildirish penceresi
Exit Sub ‘Emeliyyat dayandirilir
Else ‘Bu ise eger ele deyilse onda
novbeti setrdeki Range("A1”).Copy-emeliyyatinina kechir.
Range("A1").Copy
End If
Gördüyünü kimi bu cür sadə bir
prosesi bilməklə siz artıq ilkin proqramınızı yazmağa hazırsınız. Uğurlar! |