EXCEL MAKRO NEDİR?
Makro Nedir sorusuna kısaca şöyle cevap verilebilinir; tek bir tık ya da tek tuşa basarak birden fazla işin yapılması için yazılmış komutlar dizisidir. Excel içerisinde yapılan işlemlerin yüzde 100'’üne yakın kısmını makro kodlarına yazarak otomatik yaptırabilirsiniz. Makro içerisinde hem komut hem fonksiyon hem de kendinizin oluşturduğu formülleri kullanabilirsiniz. Excel makro işlemleri için VBA (Visual Basic for Applications) dili kullanılır.
Makrolar genellikle şu durumlar için kullanılır;
- Sıkıcı ve tekrar gerektiren işleri yapmak için
- Uzun uzun yapılan işlerin bir defa yapılarak gerektiğinde kullanılması için
Makrolar sayesinde sıkıcı ve tekrarlayıcı işler daha kısa yapılır. Sıkıcı ve tekrar kısmını yazdığınız makro sayesinde bilgisayar halleder.
Peki makro ne zaman lazım olur. Ne zaman makro yazma gereği duyarız.
Buna sizin karar vermeniz gerekiyor. Şöyle düşünelim. Her gün yapılması gereken bir iş var. Bunu her gün 3-4 dakika vererek yapıyorsunuz. Böyle bir durumda bu işi yapan bir makro yazarak işin makro tarafından yapılması sağlanabilir.
Makro öğrenmek zor değildir. İşin içine girince bazı şeyler yerli yerine oturmaktadır. Uygulama yaptıkça ve kaynak araştırması yaptıkça, daha önce yazılmış Excel makro örneklerini inceledikçe Excel makro nedir sorusuna daha kolay cevap bulacaksınız.
Excel Hazır Makrolar
Excel hazır makrolar diye arama yapıldığında birçok makro koduna ulaşmak mümkündür. Hazır makro kodlarından ziyade makro mantığını anlayarak sizin kendinizin makro yazması en mantıklısıdır. Hazır makro kodları bazen tam istediğiniz gibi olmazlar onlar üzerinde işlem ve değişiklik yapılması gerekecektir. Hazır makro kodlarından birkaç tanesini inceleyelim.
Yukarıda iki tane hazır makro kodu vardır. Birincisi D3, D4, D5 hücrelerindeki dosya bilgilerine göre o dosyayı açar. İkincisi ise açık olan dosyanızı C sürücüsünde Yedek klasörünün içine yedek alır.
Sub Yedekle()
'dosyanızın istenilen yere yedek alır
Dosya_ismi = ActiveWorkbook.Name
ActiveWorkbook.SaveCopyAs "c:\yedek\ " & Dosya_ismi
ActiveWorkbook.Save
End Sub
Excel Makro Düzenlemek
Excel için makro yazmak kadar makro düzenlemekte önemlidir. Kullandığınız makroları bazen kendiniz oluşturursunuz bazen de hazır makroları düzenleyerek kendi işinize yaracak hale getirirsiniz. Bu durumda Excel makro düzenlemek ile alakalı biraz kaynak araştırması yapmak gerekiyor. Makro düzenlemesi yapmadan önce orijinal ve sorunsuz olan makro kodlarınızın yedeklerini mutlaka alınız. Bazen silinmemesi, değişmemesi gereken yerler oluyor, değişiklikten sonra makro çalışmaz oluyor. Böyle bir durum ile karşılaşmamak için makrolarınızın yedeğini alınız.
Elimizde yukarıdaki resimde olduğu gibi bir makro kodu var. Bu makro kodu 4 defa ofis data Excel eğitimi diye yazıyor. VBA ve diğer programcılık dillerini bilenler For Next döngüsünü bilirler. Verilen sayı kadar döngü dönerek döngünün içindeki işi yapar. Bizde makromuz bir değişken kullanarak 4 defa mesajın yazılmasını sağladık.
Makroyu çalıştırdığımız makrodaki komutlar işletildi. A1 hücresinden başlayarak 4 defa mesajı yazdı. Şimdi bu makroda bazı şeyleri değiştirelim.
Makro kodlarımız üzerine biraz eklemeler yaptık. Yeni eklenen kodlar ile makromuz artık A1 hücresinden mesaj yazmaya başlamıyor. Sizin vereceğiniz satır ve sütundan başlayarak yazıyor. Kaç adet yazacağını da siz belirliyorsunuz.
Sub mesajyaz()
' 4 defa ofis data excel eğitimi yazısını yazıyor
satir = [B2]
' B2 hücresindeki satirdan başlayacak
sutun = Range("B3")
'B3 hücresindeki sütundan başlayacak
kactane = [B4]
'kaç adet yazı çıkmasını istiyorsak
mesajne = [B5]
For i = 1 To kactane
ActiveSheet.Cells(i + satir, sutun).Value = mesajne
Next i
'
End Sub
Makro üzerine bir kod daha ekledik. Şimdi mesaj metnini de B5 hücresinden almaktadır. B5 hücresinde ne mesaj var ise o yazılmaktadır.
Yukarıdaki örnekte de görüldüğü gibi makrolar üzerinde değişiklik yapmak çok da zor değildir. Birazcık Excel bilgisi birazda VBA bilgisi excel makro düzenlemek işlemini yapabilirsiniz.
Excel Makro Kodları
Yazımızın yukarılarında da bahsettiğim gibi Excel ile VBA birlikteliğinden dolayı birçok makro kodu vardır. Bazı zamanlar gelir ki küçücük bir kod ile devasa işler hal olmaktadır. Aşağıda verilen makro kodları işinize yarayacak excel makro örnekleri arasında yer alacaklardır. Bu kodları makrolarınıza ekleyerek ve değiştirerek kullanabilirsiniz.
Sub degerata()
Worksheets("sayfa5").Activate
ActiveCell.Value = 35
End Sub
Yukarıdaki degerata makrosunda sayfa5’deki aktif hücrenin değerini 35 yapar makroyu çalıştırmadan önce fare hangi hücrede ise o hücrenin içeriği değişir.
Sub B5hucresikoyuyap()
Worksheets("sayfa5").Activate
Worksheets("sayfa5").Range("B5").Activate
ActiveCell.Font.Bold = True
End Sub
Yukarıdaki B5hucresikoyuyap makrosunda sayfa5’deki B5 hücresinin içeriği koyu(bold) yapılıyor
Sub hucreozelligi()
Worksheets("sayfa5").Activate
ActiveCell.CurrentRegion.Select
Selection.Style = "Currency"
End Sub
Yukarıdaki hucreozelligi makrosunda sayfa5’deki aktif hücre özelliği finansal(Currency) olarak değiştirilir.
ActiveSheet.Cells(4, 5).Select
-veya-
ActiveSheet.Range("C4").Select
Yukarıdaki iki kodda aynı birisinde hücre adı kullanılıyor. Diğerinde hücrenin satır ve sütun sayıları kullanılıyor.
ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select
ActiveSheet.Range("C2:D10").Select
ActiveSheet.Range("C2", "D10").Select
Yukarıdaki kodlar hepsi aynı işi yapar ve çalışma sayfanızda C2:D10 hücre aralığını seçmek için kullanılır.
Sub buyukhar() ' Belirtilen aralıktaki her bir hücreye tek tek git. For Each x In Range("A1:A5") ' Aralıktaki metni büyük harflere dönüştür. x.Value = UCase(x.Value) NextEnd Sub
Yukarıdaki makro örneğinde ise A1 hücresi ile A5 hücresi arasındaki bütün hücreler taranarak içindeki bilgiler büyük harf olarak yazılmaktadır. Dikkat edilirse büyük harfe çevirme kodu olan BÜYÜKHARF fonksiyonun İngilizcesi olan Ucase fonksiyonu kullanıldı. Makrolar da bazen buna benzer sorunlar yaşanıyor. Genellikle fonksiyonların İngilizcelerinin kullanılması gerekiyor.
Yukarıda örnekleri verilen makro kodları başta olmak üzere bütün makrolar visual basic kodlarıdır. Visual Basic programı ise Visual studio içerisinde yer alan bir programdır. visual studio örnek kodlar diye arama yapılarak makro kodlarına ulaşmanız mümkündür.
Excel Makro Dersleri
Excel programı kendi içerisinde bölümlere ayrıldığı gibi bir bölümünü de makrolar bölümü oluşturmaktadır. Makro konusu ileri Excel konuları arasındadır. Excel makro dersleri de kendi içerisinde bölümlere ayrılabilir. Belli başlı makro ders konuları şunlardır;
- Makro Kaydetmek
- Kaydedilen Makroyu Açmak
- Makroya Kısayol Tuşu Atamak
- Makroyu Bir Menü Öğesine Atamak
- Visual Basic Düzenleyicisini Açmak
- Makro içinde değişken kullanma
- Makro içinde döngü kullanma
- Makro içinde Karşılaştırma Operatörleri kullanımı
- Makro içinde Mantıksal Operatörler kullanımı
- If – else -EndIf Yapısının kullanımı
- makro içinde For – Next ve For Each Döngüsünün kullanımı
ilerledikce userform ve worksheet kullanımı ile ilgili makro kodlarının yazımı kullanılır.
İleri Excel
Her program gibi Excel’inde öğrenme seviyeleri vardır. Kış gelince televizyonlarda haberlerde falan “ileri sürüş teknikleri” diye haberler yaparlar. Her mesleğin her işin en üst seviyesi mevcuttur. Excel programında da ilerlemek isteniyorsa ileri Excel dersleri ile kendinizi yetiştirmeniz lazımdır. İleri sürüş teknikleri nasıl bir eğitmen gözetiminde ve trafikten arındırılmış yollarda yapılıyorsa ileri Excel konularını öğrenmek içinde bir kursa gitmeniz ve bir eğitimciden ders almanız gerekmektedir. ileri Excel konuları arasında yer alan makrolar ile çalışma meselesini de bu şekilde halledebilirsiniz.
Visual Basic
Microsoft firmasının geliştirmiş olduğu programlama dili olan Visual Basic yapısı gereği öğrenilmesi kolay diller arasındadır. Excel’de ve ofis programlarında makro ve program yapma üzerine ilerlemeyi düşünen herkesin Visual Basic programını öğrenmesi gerekmektedir. Excel ve makro konularında kendinizi geliştirmek için Visual Basic dersleri ve konularını güzel bir şekilde öğrenmeniz gerekiyor. Visual Basic öğrenmek için bu konuda eğitim veren kurslara gidebilirsiniz.