Kullanıcı Tanımlı Fonksiyon Yazmak İçin
Bir fonksiyon, bir veya birden fazla girdi bilgisi
(parametre) alır, amaca yönelik işlem yapar, en az ve en fazla tek bir sonuç
verir. Fonksiyonun bu özelliği, fonksiyonlar ile ilgili gönderimimde belirttiğim
gibi matematikte de aynıdır. (Fonksiyonlar ile ilgili diğer temel bilgiler için
bu gönderimim okunabilir.)
Yapılacak İşlemler (Ana Hatlarıyla)
Bu amaçla önce bir fonksiyon oluşturma ortamımız olacak.
Bu fonksiyona bir veya birden fazla parametre almasını
sağlayacağız.
Bu parametreleri kullanıp amaca göre işlemler yapacağız.
Bu işlemlerden sonra en az ve en fazla tek bir sonuç elde
edeceğiz.
Sistem, fonksiyonu çağıran yere bu sonucu çıktı olarak gönderecek.
Yukarıda genel olarak
sözünü ettiğimiz işlemleri, şimdi adım adım görelim:
Fonksiyonu oluşturma ortamımızı elde etmek için #Excel
programında Alt-F11 yapalım. Açılan ekrandaki şerit menüden Insert seçeneğini
seçelim. Açılan listede Module seçeneğini işaretleyelim. Program yazma için bir
beyaz sayfa açılacaktır.
Bu sayfada öncelikle yazdığımızın fonksiyon olduğunu
‘Function’ terimiyle belirteceğiz ve fonksiyona bir isim vereceğiz.
Bir fonksiyon, If kontrolü, vs. yazdığımızda bunların bir
bitiş satırı olmalı. Bu bitiş satırları örneğin ‘Function’ için ‘End Function’,
‘If’ için ‘End If’ şeklinde olmalı.
Tabii bir fonksiyondan bahsettiğimize göre fonksiyonun
parametresini, birden fazlaysa parametrelerini bir parantez içinde
belirteceğiz. (Bu parametrelerin veri tipleri de söz konusudur, ama burada
kullanmadan konumuza devam edeceğiz.)
Bu amaçla yazacağımız
başlık satırı şöyle olacak:
Function <Fonksiyon-Adı> (<Parametre1>, <Parametre2>,
…)
Fonksiyon işlem satırlarını bu ‘Function’ – ‘End Function’
bloğu içine yazacağız.
Şimdi şöyle bir örnek yazalım: Bu örnekte, parametrede
seçilen hücreden alınan Karne Notunun 50 ile karşılaştırılması ve 50’den büyük
veya eşitse fonskiyonun yazıldığı hücreye ‘Geçti’, değilse ‘Kaldı’ yazması
olsun. Burada söz edilen karşılaştırma ile ilgili ‘If’ deyiminin yapısı, If ile
ilgili gönderimimde bahsettiğim gibidir.
Söz konusu fonksiyonun
yazılışı şöyledir:
Function KarneDurumu(KarneNotu)
If KarneNotu >= 50
Then
KarneDurumu =
"Geçti"
Else
KarneDurumu =
"Kaldı"
End If
End Function
Fonksiyonu bu şekilde
oluşturduktan sonra, kaydetmeden önce şekilde olduğu gibi deneyelim:
Bu fonksiyonu daha sonraları kullanmak amacıyla kaydetmek için Ctrl-S yapalım, açılan ekrandaki Kayıt Türü alanında ‘Excel Eklentisi (*.xlam)’ seçeneğini seçelim ve Eklenti dosyamıza isim verip kaydedelim. Bu dosya sizin kendinize ait Kullanıcı klasörüne ilişkin AddIns klasörüne kaydolacaktır.
Bu dosyanın Excel programınız tarafından kullanılabilmesi
için bu eklentinin programınıza yüklenmesi gerekmektedir. Bu amaçla Dosya
menüsündeki Seçenekler seçeneğine ait ekranı açın. Açılan bu ekranda soldaki
menüden Eklentiler seçeneğini işaretleyin. Bu menünün sağındaki formun sol
altındaki Yönet alanında Excel Eklentileri seçiliyken Git düğmesini tıklayın. Açılan
mini ekranda, daha önce kaydettiğiniz eklentiyi bulun ilgili seçim alanını
işaretleyin.
Unutmayalım, kullanıcı tanımlı fonksiyonla üretilmiş bilgiler, dosya bu eklentinin bulunmadığı bir bilgisayara gönderildiğinde bu bilgisayarda görünmeyecektir. Bu amaçla o bilgisayara da bu eklentinin yüklenmesi gerekmektedir.