VBA ve Excel, hesaplamaları yapmanıza yardımcı olacak yerleşik işlevlere sahiptir.
VBA’nın Excel’e eşdeğer bir işlevi varsa, yalnızca VBA işlevini kullanabilirsiniz.
Fonksiyonlar aşağıdaki 3 başlangıç ifadesiyle eklenebilir.
- Excel.WorksheetFunction.
- Application.
- VBA.
Excel (Türkçe) | Excel (İngilizce) | VBA karşılığı |
---|---|---|
MUTLAK | ABS | ABS |
EBOŞSA | ISBLANK | ISEMPTY |
UZUNLUK | LEN | LEN |
KÜÇÜKHARF | LOWER | LCASE |
S_SAYI_ÜRET | RAND | RND |
BUGÜN | TODAY | DATE |
TÜR | TYPE | TYPENAME |
BÜYÜKHARF | UPPER | UCASE |
Bir fonksiyon Nesne tarayıcıda 2 yöntemle aranabilir
Yöntem 1
Örneğin, BÜYÜKHARF fonksiyonunun karşılığı Nesne Tarayıcıdan, tüm sınıflar içinde, aşağıdaki gibi bulunabilir
Yöntem 2
Örneğin, BÜYÜKHARF fonksiyonunun karşılığı Nesne Tarayıcıdan, Strings sınıfı içinde, aşağıdaki gibi bulunabilir
Örnek:
Sub VBA_ve_Excel_Fonksiyonlari()
'Sayfanın kod adı
With Sayfa1
'bugünün tarihini almak
'bugünün tarihi aşağıdaki 3 yöntemle de alınabilir
.Range("B3").Value = Date
.Range("B4").Value = VBA.Date
.Range("B5").Value = VBA.DateTime.Date
'BÜYÜKHARF
'VBA. yazmaya gerek yoktur. Sadece UCase de yazılabilir
'VBA.Strings.UCase şeklide de yazılabilir
.Range("B6").Value = VBA.UCase(.Range("A6").Value)
'KÜÇÜKHARF
.Range("B7").Value = VBA.LCase(.Range("A7").Value)
'YAZIM.DÜZENİ
'VBA de yerleşik YAZIM.DÜZENİ fonksiyonu yok. Bunun yerine aşağıdaki gibi bir yöntem kullanılır
.Range("B8").Value = VBA.StrConv(.Range("A8").Value, vbProperCase)
.Range("B9").Value = Excel.Application.WorksheetFunction.Proper(.Range("A9").Value)
'Bir aralıktaki maksimum değeri bulmak:
Dim myRange As Range
Set myRange = .Range("A20").CurrentRegion
.Range("B15").Value = Excel.WorksheetFunction.Max(myRange)
End With
End Sub
Code language: VB.NET (vbnet)