Excel'de bir çok Yerleşik Fonksiyon mevcuttur. Fakat bunlar bazen yapmak istediğiniz işi görmeyebilirler. Belki de siz kendinize özel bir program hazırlamak istiyorsunuz ve burada kullanmak istediğiniz bir fonksiyon Excel'de yok. O halde kendi Fonksiyonunuzu hazırlamalı ve Excel Çalışma Sayfasında kullanılabilir hale getirmelisiniz. İşte bu hazırladığınız fonksiyona Kullanıcı Tanımlı Fonksiyon denmektedir.
Ama bu o kadar da kolay bir iş değil. Öncelikle VBA kodlamanın ne olduğunu ve nasıl yapıldığını bilmelisiniz. Eğer bu sayfada iseniz ve bu satırları merakla okuyorsanız, demek ki bu konu hakkında biraz da olsa bilginiz var.
Şimdi kullanıcı tanımlı fonksiyon nasıl hazırlanır, bunun ön bilgilerini verelim.
... Öncelikle şunu bilmelisiniz ki, bu tür fonksiyonları hangi Çalışma kitabında hazırlayıp kaydetmişseniz, ancak o Çalışma Kitabında kullanabilirsiniz.
... Bir çalışma kitabı açın ve bu kitabı kaydedin.
... Daha sonra VBA Kod sayfasına geçin.
... Yeni bir Modül açın.
... Yazmak istediğiniz fonksiyonu
Functionfonksiyonun_adı (fonksiyonda kullanılan değişkenler)
...........
...........
...........
End Function
bloğu arasına yazın.
... Hazırladığınız fonksiyonu kaydedin. (Bir çok kullanıcı bu işlemi yapmadan çalıştırmaya çalışıyor. Tabi ki, yapamıyor, önce kayıt işlemi yapılmalı, daha sonra çalıştırılacak)
... Excel Çalışma Sayfasına geçin ve fonksiyonunuzu kullanmaya başlayın.
Aşağıda sizin için basit bir örnek olsun diye böyle bir Kullanıcı Tanımlı Fonksiyon hazırladık. Siz de bunu uygulamaya geçerek işe başlayabilirsiniz.
Örnek 1: Amaç: Öğrencinin yıl sonu not hesabı
Veriler: 1 vize ve 1 final notu var. Vize notunun %30'u final notunun ise %40'ı yıl sonu notuna etki edecek.
Kullanılacak Formül: 0.3*Vize + 0.7*Final
Modül sayfasına yazılacak Kod:
Function basari(vize As Integer, final As Integer)
basari = 0.3 * vize + 0.7 * final
End Function
Şimdi, her türlü önleme karşı yazdığınız bu kodu kaydedin. Bazı arkadaşlarımızın, bizim yukarıda yazdığımız kodu hemen alıp modül sayfasına kopyaladıklarını görüyor gibiyim. Tamam, bu da olur ama yazmak, kopyalamakla kıyaslanamayacak kadar iyidir. Eğer hep böyle kopyalama işine alışırsanız, VBA Kod sayfasındaki olayları anlamakta güçlük çekersiniz. Bu basit bir uyarıydı. Tabi ki bu arada siz Çalışma sayfasına geçtiniz. Bundan sonra yapılacak işlem çok kolay. Aşağıdaki şekilde görüldüğü gibi, herhangi bir hücreye gidin ve =basari(50;60) yazın ve Enter tuşuna basın. Sonucu göreceksiniz.
Yerleşik Fonksiyonlarda olduğu gibi, Kullanıcı Tanımlı Fonksiyonlarda da, ister doğrudan değişkenlere değer vererek yazarsınız, isterseniz değişken yerine değerin bulunduğu hücre adresini yazarsınız. Burada size yapabileceğimiz tavsiye, tabi ki, ikincisi olan hücre adresini yazmanızdır. Bu değişkenler, adı üzerinde olduğu gibi değişkendir. Sürekli değiştiğinde formülün içine girip yazmanız zor olacaktır. Yine de seçim size kalmış.
Yukarıda verdiğimiz örneği biraz daha geliştirelim.
Örnek 2:
Bu defa iki vize notu olsun ve yıl sonu başarı notuna bu vizelerin ortalaması eklensin.
Function basari(vize1 As Integer, vize2 As Integer, final As Integer)
vizeort = (vize1 + vize2) / 2
basari = 0.3 * vizeort + 0.7 * final
End Function