Excel’de Makro Uygulamaları ve Visual Basic 2
Bu bölümde, Visual Basic programlama dilinin temel yapıları olan değişkenler, karar yapıları ve döngüler, uygulamalarla desteklenerek detaylıca açıklanmaya çalışılmaktadır. Değişken kavramının ne olduğu ve değişkenin nasıl tanımlanacağı öğrenilmeden döngüler veya kontrol yapıları gibi yapıların anlaşılması veya VBA’da uygulama yapılması mümkün değildir. Programlamada bir işlemin veya işlemlerin istenen sayıda tekrar etmesi istenildiğinde döngülerin kullanılması gerekmektedir. Ayrıca hangi durumda veya durumlarda işlem veya işlemlerin yapılacağı da kontrol yapıları ile kontrol edilir. Bu açıdan her iki yapı da önemlidir. Bu bölümde, yapılan makro uygulamalarıyla konunun daha iyi anlaşılması amaçlanmaktadır. Bir diğer önemli bir yapı olan fonksiyonların nasıl kullanılacağı, nasıl fonksiyon oluşturulacağı ve ayrıca Excel fonksiyonlarının makrolarda nasıl kullanılacağı açıklanmaktadır. Fonksiyonlar ise gönderilecek her türlü değerin daha önce tanımlanan süreçten geçmesini sağlayan ve sonucu veren yapılardır. Bu yapılar aynı işlem için tekrar tekrar kod yazma zorunluluğunu ortadan kaldırıyor.
Visual Basic'te Temel Yapılar
Değişken nedir ve nasıl tanımlanır?: Değişken, içinde değer taşıyan yapılardır. Başka bir deyişle değişken tanımlamak, bilgisayar hafızasında yer ayırtmaktır. Dolayısıyla ayırdığımız hafıza, içine atadığımız değeri kaydetmektedir.
Karar Yapıları
Programlamada en önemli konulardan bir tanesi karar verme yapılarıdır. Karar yapısı olarak If … Then… ElseIf veya Select Case yapısı kullanılabilir.
If … then else/elseif … end if: Verilen koşula göre karar verilmesini sağlar. Koşulun doğru olması durumunda istenen işlemin yapılmasını sağlar. If’ten sonra koşul yazılır ardından then yazılır. Alt satıra geçilerek yapılacak işlem/işlemler tanımlanır. Verilen koşul sağlanmadığı durumlarda yapılacak işlemler else ile end if arasına yazılır. İkiden fazla koşul olması durumunda ise else’den önce istenildiği kadar elseif eklenerek altına yapılacak işlem yazılabilir.
Select case ... end select: If … Then… ElseIf yapısına alternatif olarak Select Case yapısı kullanılabilir. Select case’ten sonra ilgili degisken yazılır. Select case ile end select arasındaki blokta her değer aralığı için; case aralık_başlangıcı to aralık_bitişi yazılır ve hemen altına yapılacak işlem/işlemler yazılır.
Döngüler
Programlamada bir diğer önemli konu döngülerdir. Tekrarlayan işlemleri gerçekleştirebilmek için döngüleri kullanmak gerekmektedir.
For … to … next: For … to …next döngüsü başlangıç ve bitiş değerleri belli olduğu durumlarda kullanılır. For’dan sonra değişken=başlangıç_değeri to bitiş_değeri yazılır ve alt satırda/satırlarda işlem/işlemler yazılır. Son satırda da next değişken yazılarak yapı sonlandırılır.
Do while … loop: Do while … loop döngü yapısı, bir koşul doğru olduğu sürece döngüsel işlemin devam etmesini sağlayan yapıdır. For … to…next yapısında başlangıç ve bitiş değeri tanımlanırken; Do while… loop yapısında ise başlangıç ve bitiş değeri tanımlanmaz, koşula göre işlem tekrarlanmaktadır.
Fonksiyon Oluşturma
Fonksiyon, önceden tanımlanmış ve belirli bir işlemi yapıp değer döndüren yapılardır. Excel VBA ile fonksiyonlar yazılabilir, ancak bu fonksiyonlar hücre değerlerini değiştiremezler. Fonksiyon oluşturmak için Function komutu kullanılır.
VBA'de Excel Fonksiyonlarını Kullanma
VBA’da Excel fonksiyonları, WorksheetFunction komutuyla İngilizce olarak kullanılabilir. Ancak kullanılacak excel fonksiyonunda hücre adresleri parantez içinde Range fonksiyonuyla yazılmalıdır.
VBA'da Nesneler
Excel VBA’da hücre (cells), çalışma sayfası (worksheet), çalışma kitabı (workbook), uygulama (application) ve grafik (chart) nesneleri kullanılabilir.
Range: Range nesnesi bir ya da birden fazla hücreye ulaşmayı sağlar. Range nesnesinin onlarca özelliği ve metodu vardır.
Cells: Cells nesnesi tek bir hücreye ulaşmayı sağlar.
Worksheet: Çalışma sayfası olarak nitelendirilen Worksheet nesnesi kullanılarak birçok olay gerçekleştirilebilir. Bu olaylar; Activate, BeforeDoubleClick, BeforeRightClick, Calculate, Change, DeActivate ve SelectionChange şeklindedir.
Workbook: Çalışma kitabı olarak nitelendirilen Workbook nesnesi kullanılarak birçok olay gerçekleştirilebilir. Bu olaylar; Activate, BeforeClose, BeforePrint, BeforeSave, Open, DeActivate ve SheetChange şeklindedir.
Application: Application nesnesi birçok özellik, metod ve olaya sahiptir. Application nesnesi kullanılarak Excel uygulamasının özelliklerine ulaşılabilir.
VBA'da Form Kontrolleri
User Form: UserForm, kullanıcıdan bilgi almak veya vermek amacıyla kullanılan nesnedir. UserForm aracılığıyla daha görsel ve InputBox ile MsgBox fonksiyonlarından daha kullanışlı veri alışverişi yapılabilir. Visual Basic Editör (VBE) ara yüzünde UserForm eklemek için Insert menüsünden UserForm seçeneği kullanılır.
Chart Nesnesi: VBA’da Chart nesnesi kullanılarak oldukça kolay bir şekilde grafikler oluşturulabilir. Cells nesnesiyle grafiği oluşturulacak alan seçilir ve AddChart yöntemiyle grafiğin tipi (xlLine, xlPie, vb.), grafiğin oluşturulacağı alan, grafiğin boyutu gibi özellikler belirlenir.