Excell VBA-Programlamaya Giriş-Karar Yapıları

Programlama yaparken dikkat etmemiz gereken en önemli hususlardan bir tanesi de döngüler ve karar yapılarını doğru bir şekilde oluşturmaktır. VBA programlama da bulunan çoğu yapı diğer programlama dilleri tarafından da desteklenmektedir. Bu yapıları kısaca özetlemek gerekirse 6 maddeye ayırabiliriz. Bu maddelerden bu yazımda karar yapılarını anlatacağım.

Daha fazlasını oku

Excell VBA-Alan Nesneleri ve Kullanımı

Ms Excell ne kadar da görsel olarak düşünürsek düşünelim aslında tam anlamıyla hücrelerin taşıdığı alan nesneleri üzerine kuruludur. Yaptığımız herhangi bir işlem bir hücreye değer girme vb. diğer işlemlerin hepsi aslında arka planda alan nesneleri üzerinde tutulmaktadır. VBA’ yı kullandığımızda bunları gayet iyi anlayacaksınız.  Bu alan nesneleri range, cells, offset, columns, value, font, text, count, interior, formula, address, select, activate, clear, clearformats nesneleridir

Daha fazlasını oku

Excell-VBA-Fonksiyonlar

Önceki yazımda modülleri ve değer döndürmeyen prosedürleri anlatmıştım. Bu yazımda ise değer döndüren prosedürleri yani fonksiyonları anlatmaya çalışacağım.

Fonksiyonlar adlandırılırken değişken isimlendirme kurallarına tabi tutulurlar. Genel olarak yazımı şu şekildedir;

Function FonksiyonAdı (Parametre as Tipi) as tipi

İşlemler….

                FonksiyonAdi= Parametre İşlem

Fonksiyon sonu

Öncelikle basit bir örnek yapıp anlatmaya çalışıyım.

Excell çalışma sayfamımızı  açtıktan sonra Alt+F11 tuşlarına basıp VBA pencerimizi çağırıyoruz Öncelikle eğer makronuz yoksa çalıştır tuşuna basarak yeni bir makro oluşturmanız gerekmekte. Daha sonrada. Sol üst tarafta Insert kısmına gelip Procedure diyoruz. Name kısmına fonksiyonu vereceğimiz adı yazıyoruz. Type olarakta function seçeneğini işaretliyoruz. Scope(Kapsam) alanından ise Public(Genel) veya Private(Özel) seçeneklerinden public ‘i seçiyoruz ve ok diyoruz.

                              

Bu Kodları yazıyoruz ve F5’e basıyoruz. Çalışma sayfasına gelip formüllerden işlev ekleye tıklıyoruz. Kategori olarak Kullanıcı Tanımlı’ yı seçiyoruz. Ardından fonksiyonumuz aşağıya çıkıyor. Onu seçtikten sonra karşımıza rakam1 ve rakam2 olarak gelmekte. Değerlerimizi girip işlemi bitiriyoruz.

Şimdide kdv hesaplayan bir fonksiyon yapalım. Öncelikle bir değerimiz olmalı değil mi. Yani bir paramız olacak ki onun kdv değerini hesaplayalım. Bunun için rnd komutundan yararlanıcaz ve 0 ile 1 arasında rastgele değerler üreticez. Bu sayıları 100 ile çarparsak 0 ile 100 arasında değerlerimiz olur. Sonrada B’ hücresine kdv oranını yani %18 ile yazdıran fonksiyonyu yazalım. Bir makro sayfası açıyoruz ve adını KdvFunctionkullan giriyoruz. Sonrasında aşağıdaki kodları yazıyoruz.

Insert procedüre kısmına gelip yeni bir fonksiyon oluşturuyoruz. Kdv’nin kaç olduğunu tanıtıyoruz ve aşağıdaki kodları giriyoruz.

Kodları girdikten sonra F5’e basıyoruz. Run diyoruz ve rastgele sayılarımız ve bu sayıların kdv hesapları yapılmış olarak karşımıza geliyor.

Ayrıca yazıya bir de Buradan ulaşabilirsiniz

Excell VBA-Modüller ve Prosedürler

Modüller, VBA makro kodları yazılan kod sayfalarıdır. Fonksiyonlar ve temel prosedürler ise çalıştırılacak kod parçaları oluşturabilecek iki yöntemdir. Modüller, çalışma sayfalarındaki yeni bir çalışma sayfası eklenmesi veya çalışma sayfasının kapatılması gibi olaylarla çalışmazlar. Modüller genel anlamda prosedürlerin tanımlanması için vardır.

VBA projelerinde gerekli fonksiyonların ve prosedür olarak bilinen temel prosedürlerin depolaması için en az bir modül bulunmalıdır. Yeni bir modül eklemek için Visual Basic düzenleyicisinin Insert sekmesinden Module seçildiğinde eklenen yeni modül ekrana gelecektir.

Modüllere temel prosedür ve fonksiyon prosedürleri girilebilir ve temel prosedür ve fonksiyon prosedürleri Public veya Private olarak tanımlanabilir. Public ve Private tanımlama arasındaki fark aynı çalışma kitabındakş diğer modüller tarafından prosedüre ulaşıp ulaşılamayacağıdır. Eğer kodu Private olarak tanımlamışsak sadece bulunduğu çalışma kitabındaki bulunduğu prosedürde kullanılabilirken, kod Public olarak tanımlanmışsa bulunduğu çalışma kitabındaki herhangi bir modüldeki diğer prosedürler tarafından da kullanılabilir. Eğer uygulamanın başka yerlerinde kullanılması düşünüllen bir prosedür varsa bu prosedür Private olarak tanımlanmalıdır.

Prosedür Nedir ?

Belirli bir işi yapmak için oluşturulmuş ve adlandırılmış kod bloklarıdır. Bazen kod yazarken aynı işlem için aynı kodu defalarca yazmak gerekir. Bu durumda kodu içeren prosedürü yazıp ihtiyaç halinde çağırmak birçok yarar sağlayacaktır. VBA dilinde 2 tür prosedür vardır; Değer döndüren ve Değer döndürmeyen prosedürler. 1.si Fonksiyonlardır bunu bir sonraki yazımda anlatacağım.

Basit bir prosedür örneği yapalım. Mesela bir sayının karekönü alan bir prosedür. Excell sayfamızı açıp Alt+F11 tuşuyla VBA düzenleyecisini açalım. Insert’e tıklayıp yeni bir Modül açalım ve aşağıdaki kodları yazalım.

Bunu yazdıktan sonra çalıştırmak için 2 farklı seçeneğimiz var. 1.si VBA düzenleyicisi üzerinden çalıştırmak. 2.si ise Worksheet üzerinden çalıştırmak. Öncelikle 1.sini yapalım. Üst tarafta gördüğünüz play tuşuna benzeyen yeşil tuşa veya F5 komutuyla programımız çalışabilir.

2. yöntemimizi uygulayalım. Bunun için bir nesne kullanalım ve o nesneye makro atayıp makromuzu o nesne üzerinden çalıştıralım. Öncelikle resmimizi excell çalışma sayfasına ekliyoruz. Resmin üzerine sağ tıklayıp makro ata diyoruz. Gelen pencereden istediğimiz makroyu seçiyoruz.