Operatörler

Aritmetik Operatörler

Matematikte bildiğimiz 4 işlem operatörü VBA'de de aynen geçerlidir. Bunlara ek olarak;

  • "\" tam sayı bölme işareti olup, bir tamsayılı bölme sonunda böleni verir. Ör: 9 \ 6=1, başka bir örnek:14 \ 3 =4.
  • Mod operatrörü ise tamsayılı bölme işleminde kalanı verir. Ör: 9 Mod 6=3, 14 Mod 3= 2. Küçük bir sayının büyük sayıyla Mod'u küçük sayının kendisidir.
  • ^ işareti: Üs aldırır. 3^2=9
Karşılaştırma Operatörleri
Amaç Operatör Örnek
Eşit mi = If A=B then ....
Büyük mü > If A>B then ....
Küçük mü < If A<B then ....
Büyük eşit mi >= If A>=B then ....
Küçük eşit mi <= If A<=B then ....
Eşitsizlik <> If A<>B then ....

Özel yazımı olan bir kontrol şekli var, o da True/False kontrolü. Bu kontrolü yaparken direkt boolean tipli değişkenin kendisini yazarak sorgulayabiliriz. Ör:

                            
                                Sub bool_andor()
                                Dim a As Boolean
                                a = True

                                If a And (x = 0 Or y = 1) Then 'if a=True demek yerine
                                    MsgBox "Doğru"
                                Else
                                    MsgBox "yanlış"
                                End If

                                End Sub

                            
                        
Mantıksal Operatörler
Amaç Operatör Örnek
Ve And If A=B and A>0 then ....
Veya Or If A>B or A=0 then ....
Değil Not If Not obj Is Nothing then ....

Not operatörünün ilginç bir kullanımı da boolean tipli değişkenleri tersine döndürmek içindir. Özellikle toggle işlemlerinde(Ör:Bi düğmeye defalarca basıldığında True/False döngüsüne girme durumu) çok kullanılır.

                        
                                Sub bool_not()
                                Dim a As Boolean
                                a = True

                                a= not a ' a şimdi False oldu

                                End Sub

                            
                        
Birleştirme operatörleri

İki tür birleştirme operatörü var.

  • +: Bu operatör iki numerik ifadeyi toplarken iki string ifadeyi birleştirir.
  • &:Bu hem numerik hem string değişkenleri birleştirir

+ işareti kullanıldığında değişkenlerden biri string tipte olsa bile eğer içeriği sayı ise birleşme yerine toplama olur. Aşağıda örnekler mevcut.

                        
                                Sub birlestirme()
                                    Dim a As String
                                    Dim b As String
                                    Dim c As Integer
                                    Dim d As Integer
                                    Dim e As String
                                    a = "10"
                                    b = "20"
                                    c = 300
                                    d = 5000
                                    e = "volkan"

                                    Debug.Print "merhaba " + e 'iki string + ile birleşir
                                    Debug.Print "merhaba " & e 'iki string & ile birleşir
                                    Debug.Print a + b 'iki sayısal içerikli string + ile birleşir>1020
                                    Debug.Print a & b 'iki sayısal içerikli string & ile birleşir>1020
                                    Debug.Print a + c 'bir sayısal içerikli string ve bir numerik + ile toplanır>310
                                    Debug.Print a & c 'bir sayısal içerikli string ve bir numerik & ile birleşir>10300
                                    Debug.Print c + d 'iki numerik + ile toplanır>5300
                                    Debug.Print c & d 'iki numerik & ile birleşir>3005000
                                    'Debug.Print c + e 'hata verir, numerik ve sayısal içerikli olmayan string toplanamaz
                                End Sub

                            
                        
Değişkenleri kendisiyle toplama/birleştirme

Bir InputBox/MsgBox içindeki veya otomatik mailingdeki Body metni çok uzun ise bu metni parçalar halinde yazıp bunları sürekli kendisiyle birleştirerek ilerlemek yaygın bir yöntemdir.

                            
                                Sub satırgeçiş()

                                mesaj = "Müşteri segmenti için bir değer giriniz. " & vbCrLf
                                mesaj = mesaj + "Bireysel müşteriler için 1," & vbCrLf
                                mesaj = mesaj + "Ticari müşteriler için 2," & vbCrLf
                                mesaj = mesaj + "Kurumsal müşteriler için 3"

                                a = InputBox(mesaj)

                                End Sub

                            
                        

Bir başka örnek de şöyle olabilir

                        
                                Sub mailbodyornek()

                                bodymsj="Değeri arkadaşlarımız" & Chr(10) & Chr(10)
                                bodymsj=bodymsj+"........."
                                bodymsj=bodymsj+"........"
                                bodymsj=bodymsj+"........"

                                'Diğer kodlar
                                End Sub

                            
                        

Bir de sayısal değişkenlerin kendisiyle toplanması vardır. Bu yöntemi de özellike döngüsel yapılar içinde kullanırız. Değişkenin kendisini 1 ile toplayarak, değerini artırmış oluruz.

                        
                                Sub sayıartır()
                                Dim i As Integer

                                i=0

                                Do
                                  'Diğer kodlar
                                   i=i+1  'burada i'yi her defasında bir artırmış oluyoruz. Gelişmiş dillerdeki i++ ifadesinin aynısıdır
                                Loop Until i=100
                                End Sub