If...Then...Else ve Select Case koşullarını kontrol etmenin yanı sıra aşağıdaki kontrolleri de kullanabiliriz:
IsNumeric (önceki derste kullandığımız işlev), değer bir sayıysa TRUE (TRUE) değerini, - bir sayı değilse FALSE (FALSE) değerini döndürür:
If IsNumeric(Range("A1")) = True Then 'DEĞER SAYI İSE...
Aşağıdaki kod öncekiyle aynı etkiyi yaratır (yapının kendisi bir durum kontrolü olduğundan = True'yu eklememize gerek yoktur):
If IsNumeric(Range("A1")) = True Then 'DEĞER SAYI İSE...
Bir değerin sayı olup olmadığını kontrol etmek istiyorsak bunu iki şekilde yapabiliriz:
If IsNumeric(Range("A1")) = False Then 'DEĞER BİR SAYI DEĞİLSE...
If Not IsNumeric(Range("A1")) Then 'DEĞER BİR SAYI DEĞİLSE...
IsNumeric'e benzer birkaç fonksiyona daha bakalım:
If IsDate(Range("A1")) Then 'DEĞER TARİH İSE...
If IsEmpty(Range("A1")) Then 'BOŞ İSE...
If var_object Is Nothing Then 'NESNE TANIMLANMADIYSA...
Bir değişkenin türüne göre komutları yürütmek için VarType fonksiyonunu kullanmamız gerekecek.
"=" işaretini girdiğimiz anda değişken türlerinin listesi görünecektir:
If VarType(my_variable) = vbInteger Then 'EĞER my_variable değişken türü Integer ise ...
Sabitlerin değerleri:
Devamlı | Değer |
---|---|
vbEmpty | 0 |
vbNull | 1 |
vbInteger | 2 |
vbLong | 3 |
vbSingle | 4 |
vbDouble | 5 |
vbCurrency | 6 |
vbDate | 7 |
vbString | 8 |
vbObject | 9 |
vbError | 10 |
If VarType(my_variable) = vbInteger Then 'EĞER my_variable değişken türü Integer ise ... 'Şununla aynıdır: If VarType(my_variable) = 2 Then 'EĞER my_variable değişken türü Integer ise ...
Biraz önce aşağıdaki kod parçasını kullanmıştık:
my_variable = "Example 12345" If my_variable = "Example 12345" Then '=> DOĞRU (TRUE)
Bu durumda iki bant aynıdır ancak değişkenin "12345" değerini içerip içermediğini kontrol etmek istersek; diğer karakterleri dikkate almadan o zaman Like komutunu ve aradığımız değerin öncesinde ve sonrasında * (yıldız) operatörünü kullanmalıyız.
Operatör * (yıldız işareti) şu şekilde çözülür: herhangi bir karakter veya karakter kümesi:
my_variable = "Example 12345" If my_variable Like "*12345*" Then '=> DOĞRU (TRUE)
# operatörünün (karma) kodu şu şekilde çözülür: 0'dan 9'a kadar herhangi bir tek sayısal karakter:
my_variable = "Example 12345" If my_variable Like "Example 12###" Then '=> DOĞRU (TRUE)
Şebeke? (soru işareti) şu şekilde çözülür: herhangi bir tek karakter:
my_variable = "Example 12345" If my_variable Like "?xample?1234?" Then '=> DOĞRU (TRUE)
Ayrıca belirli karakterleri veya bir dizi karakteri de aynı şekilde kullanabiliriz:
my_variable = "Example 12345" If my_variable Like "[DEF]xample 1234[4-7]" Then '=> DOĞRU (TRUE)
Şebeke! (ünlem işareti) ['den sonra eklenirse şu anlama gelir: köşeli parantez içine alınmayan herhangi bir karakter:
my_variable = "Example 12345" If my_variable Like "[!GHIJ]xample 1234[!6-9]" Then '=> DOĞRU (TRUE)