Bu siteye giriş yaparak Çerez kullanımını kabul etmiş oluyorsunuz. İşbu sitede; çerez olarak, sadece son giriş tarihiniz ve eğer üye olursanız oturum statünüz tutulacaktır. Bunlar dışında başka hiçbir bilgi tutulmamaktadır. Çerezler için detaylı bilgi için buraya tıklayınız.
ANLADIM

Yeni eklenen ve/veya güncellenen sayfaları görmek için buraya tıklayınız.

11.12.2019 tarihinde konuların altında test ve ödevler eklenmiştir. Güncel ödev ve test listesini buraya sayfasından görebilirsiniz.

Baş
Udemy
Konular
Son
VBAMakroTemeller3

Operatörler

Aritmetik Operatörler

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

  • "\" Mod işareti olup, bir tamsayılı bölme sonunda kalanı verir. Ör: 9 \ 6=3, başka bir örnek:8 \ 3 =2. \ işareti yerine doğrudan Mod kelimesi de yazılabilir. 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

TEST SORULARI

Son Sorumuz şuymuş:Bir metindeki tüm noktaları yoketmek istiyorsunuz. Hangi fonksiyonu kullanırdınız?
Soru:

A şıkkı:

B şıkkı:

C şıkkı:

D şıkkı:

Doğru Cevap Etiketler

İlişkili konuyu seç

Label
* Sorulara verilen yanlış cevaplardaki esprili yorumlarım için hoşgörünüze sığınıyorum.
* Test ve Ödevlerdeki bazı detaylar burada anlatılmamış olabilir. Bunları kendiniz araştırıp bulmalısınız.
* Birden çok konuya ait içeriği olan ödevler var. Algoritmik açıdan bakıldığın o an en uygun konuya uygun ödeve adreslenmiştir.
Dikkat! Bir soruya cevap verdikten sonra geri dönemezsiniz.
Soru No:12. Aşağıdakilerden hangisi satır sonu devam karakteridir?







ÖDEVLER

ÖdevNo:... Şu an için bu konu için ödev bulunmamaktadır. İletişim menüsünden örnek ödev sorularını bana iletebilirsin.
Çözüme bakın(Başka türlü de çözülebilir tabi, bu benim çözümüm.)




=YORUMLAR ve SORULAR=