Excel’de Makro Uygulamaları ve Visual Basic 1
Bu bölümde makroların tanımı, makro oluşturma, makro çalıştırma, makro yazım kuralları ve makrolarla temel işlemler yapma üzerinde durulmuştur. Makro kullanarak biçimlendirme yapmak, çalışma sayfası, satır ve sütun işlemleri yapmak örneklerle açıklanmıştır. VBA’yı tanıma ve Visual Basic Editor (VBE)’ün nasıl kullanılacağı açıklanmıştır. Tüm programlama dillerinde olduğu gibi Visual Basic’te de önemli olan değişkenler, karar yapıları ve döngülerle ilgili bilgi verilmiştir. Makro yazım kurallarının yanı sıra oldukça önemli bir konu olan makro güvenliğiyle alakalı olarak kullanıcıların bilmesi ve dikkat etmesi gereken hususlara da değinilmiştir. Ayrıca Diyalog fonksiyonlarıyla kullanıcıdan veri alma, verileri işleme ve kullanıcıya diyalog kutuları aracılığıyla mesaj verme işlemleri anlatılmıştır. Son olarak makroları kullanarak bir takım temel işlemlerin nasıl yapılacağı üzerinde durulmuştur. Çalışma sayfaları üzerinde çalışmak, hücreye yazı veya formül eklemek veya hücreyi biçimlendirmek gibi hususlar üzerinde de durulmuştur. Bu konuların daha iyi anlaşılmasını sağlamak için çok sayıda uygulamalar hazırlanmıştır. Genel olarak bu bölümde makrolar, uygulamalarla anlatılmaya çalışılmıştır. Öğrencilerin, bölüm genelinde verilen örnekleri uygulamaları ve bu örnekler üzerinde değişiklikler yaparak veya benzer örnekler bulup uygulamaları konunun daha iyi anlaşılmasını sağlayacaktır.
Makrolar ve VBA'ya Giriş
Makro nedir?: Excel programında kullanılmak amacıyla geliştirilmiş bir programlama dili olan Visual Basic for Applications (VBA) programlama dili aracılığıyla işlemleri otomatik gerçekleştiren yapıya Makro denir. Excelde zamanı verimli kullanmak ve kısa sürede çok iş yapmak için Makrolar kullanılmaktadır. Makro, Excel üzerinde yapılabilen işlemleri otomatik hâle getiren bir özelliktir. Makro kaydetme yöntemiyle veya Visual Basic for Applications (VBA) kodu yazarak makrolar oluşturulabilir. Makrolar kullanıcılara zaman kazandırmanın yanı sıra daha kullanışlı çözümler üretmelerine de olanak sağlar.
Makro kaydetme: Daha sonradan kullanacağımız işlemleri baştan yapmamak için işlemleri gerçekleştirmeden önce kaydetmemiz gerekmektedir. Makro kaydetme üç farklı şekilde yapılabilir. Geliştirici sekmesi kullanılarak formlar tasarlanabilir. Form denetimleri ve ActiveX denetimleri kullanılarak formlar geliştirilebilir. Ancak,yapılmak istenen her işlem, Makro Kaydet yöntemiyle gerçekleştirilemez. Örneğin, döngü işlemi için mutlaka kod yazılması gerekmektedir.
Makro nasıl çalıştırılır?: Makro, Alt + F8 tuşları kullanılarak makro listesinden seçilip çalıştırılabilir.
Visual Basic for Applications (VBA)
VBA, bir programlama dilidir. Genellikle makro olarak adlandırılır. VBA’nın çalışması için Excel programının ilgili bilgisayarda kurulu olması gerekir. VBA kullanarak Excel, Word, Access, Outlook ve Powerpoint uygulamalarına ulaşılabilir
Visual Basic Editor (VBE) Kullanımı
Makro kodları Excel programında arka planda çalışan Visual Basic Editor (VBE)’de yazılır. VBE hem VBA ile makro yazmaya olanak sağlar hem de VBA kodlarını hata ayıklama yapılarını kullanarak derler. Visual Basic programlama dilinde dört farklı hata ayıklama yapısı mevcuttur. Bunlar; sözdizim(syntax), derleme(compile), çalışma zamanı(run time) ve mantık(logic) hatalarıdır.
Visual Basic'te Temel Yapılar
Programlamanın temelini genel olarak değişkenler, kontrol yapıları ve döngüler oluşturmaktadır. Değişkenler, üzerinde işlem yapılan değerleri tutar. Karar yapıları, koşul ya da koşullara göre karar vermeyi sağlar. Döngüler ise tekrar eden benzer işlemleri gerçekleştirmek için kullanılır.
Değişkenler: Visual Basic’te değişken tanımlamak için Dim komutu kullanılır (Dim sayi As Integer).
Kontrol yapıları: Verilen şart ya da şartlar kontrol edilir (If) ve doğru olması durumunda işlem ya da işlemler yapılır. Şart veya şartlar doğru olmaması durumunda ise ya yapı sonlanır (End If) ya da yeni bir koşul eklenir (elseIf).
Döngüler: Tekrarlayan işlemleri gerçekleştiren yapılardır. For komutundan sonra sayaç değerinin başlangıç değeri “To” bitiş değeri ile ihtiyaç olması durumunda sayacın artış değeri yazılır. Sayacı kontrol etmek için ise Next kullanılır.
MsgBox ve InputBox diyalog kutuları: MsgBox, kullanıcıya bilgi göstermek için kullanılan yaygın bir VBA fonksiyonudur. Kullanıcının hangi düğmeye bastığını geri döndürür. Bu düğmeler; vbOk, vbYes, vbNo, vbCancel, vbAbort veya vbRetry olabilir. Diyalog kutularından veri girişi sağlayan fonksiyon InputBox fonksiyonudur. Kullanıcı tarafından girilen metni döndürür.
Makro Yazım Kuralları
Makrolar, genellikle Sub ile başlar ve End Sub ile biter. Public, Private ya da Static alt programları kullanıldığında Sub’dan önce alt program ismi eklenir. Eğer fonksiyon ise Function ile başlar ve End Function ile sona erer.
Makro Güvenliği
Makro içeren dosyalar XLSM ya da XLAM olabilir. Dolayısıyla bu tür dosyalar virüs içerme ihtimaline karşı Excel programı onay ister. Makrolar çoğu zararsız olsa da önemli bir güvenlik sorunu da oluşturabilirler. Dolayısıyla, Dijital olarak imzalanmış makrolar dışında tüm makroları devre dışı bırakmak gerekir.
Makrolarla Temel İşlemler Yapmak
Çalışma sayfası eklemek: Excel belgesine makro kullanarak çalışma sayfası eklemek mümkündür. Çalışma sayfası eklemek için Sheets.Add (Before, After, Count, Type) yapısı kullanılmaktadır. Before, hangi çalışma sayfasından önce ekleneceğini; After, hangi çalışma sayfasından sonra ekleneceğini; Count, eklenecek çalışma sayfası sayısını; Type ise eklenecek çalışma sayfasının tipini ifade etmektedir.
Hücreye yazı ve formül eklemek: İlk olarak Görünüm/ Makrolar/ Makro Kaydet seçilir ve makroya isim verilerek makro kaydedilir. Daha sonra ilgili işlemler tamamlanır ve tekrar aynı yöntemle Makro durdurulur. Formül yazmak için, FormulaR1C1, Formula, Cells(x,x) ve Range (x) kullanılabilir.
Hücreyi biçimlendirmek: Makro kullanarak Excel’de biçimlendirme yapılabilir. Font tipi, font boyutu, hücre rengi, italik vb. özellikler değiştirilebilir. Bu özellikleri değiştirirken her özellik için Selection.Font komutu yazılabilir ya da With Selection.Font … End With yapısı kullanılarak yapılabilir. Yapılan biçimlendirmeyi silmek için Clear komutu kullanılabilir.
Satır ve sütun işlemleri: Makro kullanılarak satır gizleme ya da gösterme, satır ekleme ya da silme, sütun gizleme ya da gösterme işlemleri gerçekleştirilebilir. Satır gizlemek için Not Rows() komutu kullanılır. Özellik olarak da EntireRow.Hidden kullanılır. Gizlenen satırları göstermek için ise True yerine False kullanılır.