Fonksiyon prosedürleri bir değer döndürebilir. Bu sayede aynı excel fonksiyonları gibi (düşeyara, eğersay…vb) kendi fonksiyonlarınızı yazabilirsiniz.
İçerik
Notlar
(Application.Volatile True) kodunu kullanarak hücredeki bir değer her değiştirildiğinde Excel’i yeniden hesaplama yapmaya zorlayabilirsiniz.
CTRL + ALT + F9 tüm fonksiyon prosedürlerini yeniden hesaplamaya zorlar.
Fonksiyon Prosedürleri Örnekleri
Aşağıdaki makro kodu güncel yıldan seçili yılı çıkarır. Değişken değeri tarihtir. Geri döndürülen değer Long’tur.
Public Function makro_yil(Tarih As Date) As Long
makro_yil = Year(Date) - Year(Tarih)
End Function
Code language: VB.NET (vbnet)
Aşağıdaki makro kodu güncel yıldan seçili yılı çıkarır ve isteğe bağlı olarak yazı eklenebilir. Formül yazı içerebileceği için geri döndürülen değer Variant’dır.
Public Function makro_yil2(Tarih As Date, Optional Yazi As String) As Variant
If VBA.IsMissing(Yazi) Then
makro_yil2 = Year(Date) - Year(Tarih)
Else
makro_yil2 = Year(Date) - Year(Tarih) & " " & Yazi
End If
End Function
Code language: VB.NET (vbnet)
Aşağıdaki makro kodu güncel tarihten seçili tarihi çıkarır, kalan ay ve yıl sayısını gösterir. Formül yazı içerdiği için geri döndürülen değer String’dir.
Function makro_yas_hesabi(Tarih As Date) As String
Dim aylar As Long
Dim yillar As Long
aylar = Month(Date) - Month(Tarih)
yillar = Year(Date) - Year(Tarih)
If aylar < 0 Then
yillar = yillar - 1
aylar = 12 - VBA.Abs(aylar)
End If
makro_yas_hesabi = yillar & " yıl, " & aylar & " ay"
End Function
Code language: VB.NET (vbnet)