DUYURULAR
Yeni eklenen ve/veya güncellenen sayfaları görmek için buraya tıklayınız.
Güncel ödev ve test listesini görmek için buraya tıklayınız.
Sitede yapılan iyileştirmeler ve hata düzeltmelerine ait tüm bilgilendirmeleri görmek içinburaya tıklayınız.
Matematikte bildiğimiz 4 işlem operatörü VBA'de de aynen geçerlidir. Bunlara ek olarak;
Ö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
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
İki tür birleştirme operatörü var.
+ 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
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
Arkadaşlar sizlerden küçük bir ricam olacak. Eğer sitemi beğeniyorsanız Udemy'deki ücretsiz olan VBA-1 eğitimimi alıp 4.5 veya 5 şeklinde puanlayabilir misiniz. Normalde böyle bir ricada bulunmak istemezdim ama bazı 'ruh hastaları' eğitimimi alıp izlemeden 1 puan veriyorlar. Kimisi de 1-2 ders izleyip 1 puan veriyor. Eksiklerim olabilir ama 1 puanı hakeden bir eğitim değil bu. Bu tür hareketler ortalama puanımı çok düşürdüğü için sizden böyle bir ricada bulunmak isterim. Şimdiden teşekkürler.