Excel VBA'daki Operatörler

VBA'da değişkeni çalıştırmak için kullandığımız işaret ve anahtar kelimelere VBA Operatörleri denir. Örneğin, aşağıdaki satırlarda =, +, >, & satırları operatörlerdir.

sub Examp() a= 12 b= 10 c= a+b debug.print "a ve b'nin toplamı şudur" & c end sub 

Herhangi bir programlama dilinde beş tür operatör vardır, bu nedenle VBA'da
1. Atama Operatörü
2. Aritmetik Operatör
3. Karşılaştırma Operatörü
4. Mantıksal Operatör
5. Birleştirme Operatörü

Excel VBA'daki her bir Operatör türüne bir göz atalım.

1. Atama Operatörü (=)

Bu, herhangi bir programlama dilinde kullanacağınız ilk operatördür. VBA'da değişkenlere değer atamak için kullanılır. "=" (eşittir).

Excel VBA'da değişkenlere değer atamak için bu operatörü kullanıyoruz. Ayrıca VBA'da bir karşılaştırma operatörü olarak kullanılır. Bu eğitimde daha sonra bunun hakkında konuşacağız.

Basit bir örnek

sub test() a=10 Range("A1").value=a end sub 

Yukarıdaki örnekte, önce "a" değişkenine değer atamak için "=" atama operatörünü, ardından "a" değerini Aralık("A1") değerine atamak için "=" operatörünü kullanıyoruz.

2. Aritmetik Operatörler

Aritmetik operatörler, çocukluğumuzdan beri basit hesaplamalar yapmak için kullandığımız operatörlerle aynıdır. Excel VBA'da bu operatörler, değişkenler ve sayılar üzerinde hesaplamalar yapmak için kullanılır. Onlar:

(+) Aritmetik Toplama:Bu operatör, iki veya daha fazla sayı veya iki veya daha fazla değişkenin değerini eklemek için kullanılır. Aşağıdaki satırlar iki değişkenin değerlerini toplar ve "A1" Hücresine yazdırır.

Alt Test() a=10 b=12 Aralık("A1").değer=a+b Alt Bitiş

A1'de 22 olacaktır. Bu operatör aynı zamanda bir birleştirme operatörü olarak da çalışır. Hem a hem de b dize değerlerine sahip olacaksa, + operatörü bir birleştirme operatörü olarak çalışacaktır. Nasıl olduğunu yazının devamında göreceğiz.

(-) Aritmetik Çıkarma:Bu operatör, bir değeri başka bir değişken değerinden çıkarmak için kullanılır. Aşağıdaki satır, a'nın değerini b'den çıkarır ve "A1" Hücresine yazdırır.

Alt Test() a=10 b=12 Aralık("A1").değer=b-a Alt Bitiş

Sayfadaki A1'de 2 olacaktır.

(*) Aritmetik çarpma:Bu operatör, iki veya daha fazla sayının veya iki veya daha fazla değişkenin değerinin çarpımı veya çarpımını almak için kullanılır. Aşağıdaki satırlar iki değişkenin değerlerini çarpar ve "A1" Hücresine yazdırır.

Alt Test() a=10 b=12 Aralık("A1").değer=a*b Alt Bitiş

A1 hücresi 120 değerine sahip olacaktır.

(/) Aritmetik Bölme:Bu operatör, bir değeri diğerinden ayırmak için kullanılır. Aşağıdaki satır, b değerini a değişkenine böler ve bunu "A1" Hücresine yazdırır.

Alt Test() a=10 b=12 Aralık("A1").değer=b/a Alt Bitiş

A1 hücresi 1.2 değerine sahip olacaktır.

(Mod) VBA'da Aritmetik Kalan Operatörü: Çoğu PL kalanını almak için % (modül) kullanırken, VBA'da anahtar kelimeyi kullanırız Mod. Bu operatör, bir değeri diğerinden böldükten sonra hatırlatıcıyı almak için kullanılır. Aşağıdaki satır, b değerini a değişkenine böler ve hatırlatıcı değerini A1 hücresine yazdırır.

Alt Test() a=10 b=4 Aralık("A1").değer=bir Mod b Alt Bitiş 

A1 hücresi 2 değerine sahip olacaktır.

(^) Aritmetik Üstel:Bu operatör, bir değerin üssünü diğerine almak için kullanılır. Aşağıdaki satırlar bize üstel 4 için 3 değerini verir.

Alt Test() a=3 b=4 Aralık("A1").değer=a^b Alt Bitiş

A1 hücresi 81 (3x3x3x3) değerine sahip olacaktır.

VBA'daki bu operatörler BODMAS kuralına uyar. VBA'da sadece 6 aritmetik operatör vardır. + gibi iki tür operatör gibi davranan bazı operatörler vardır. Bu eğitimde ilerledikçe onlar hakkında bilgi edineceksiniz.

3. Karşılaştırma Operatörleri

VBA'da iki değeri karşılaştırmak istediğimizde karşılaştırma operatörlerini kullanırız. Karşılaştırma operatörünün sonucu her zaman Boole'dir. Eğer ifade doğruysa sonuç TRUE olur. İfade yanlışsa, değer False'dır. Bu operatörler, VBA'da karar vermede sıklıkla kullanılır. Bakalım neymişler:

(=) Eşittir:Evet, = (eşittir) işareti VBA'da karşılaştırma operatörü olarak da kullanılır. İki değişkenin eşit olup olmadığını kontrol etmek istediğimizde bu karşılaştırma operatörünü kullanırız.

Sub Test() a=3 b=4 Eğer a=b ise 'yanlış MsgBox "a ve b eşittir" döndürür. 'bu idam edilmeyecek. Else MsgBox "a ve b eşit değil" End IF End Sub

Yukarıdaki örnekte If ifadesini kullanıyoruz ve a ve b değerlerinin eşit olup olmadığını kontrol ediyoruz. Açıkça değiller. Bu nedenle, Else ifadesi yazdırılır.

Sadece ifadeyi kullanarak kontrol edebilirsiniz.

a=3 b=4 hata ayıklama.yazdır a=b

Bu, hemen pencerede False yazdıracaktır.

(<) Küçüktür:Soldaki değerin sağdaki değerden küçük olup olmadığını kontrol etmek için kullanılır.

Alt Test() a=3 b=4

Yukarıdaki örnekte, a'nın değerinin b'den küçük olup olmadığını kontrol ediyoruz. Bu Doğru olduğundan, if ifadesi yürütülür ve Else yürütülmez.

Sadece ifadeyi kullanarak kontrol edebilirsiniz.

a=3 b=4 hata ayıklama.yazdır a<>

Bu, hemen pencerede True yazdıracaktır.

(<=) Küçüktür veya Eşittir:Bu, soldaki değerin sağdaki değerden küçük veya ona eşit olup olmadığını kontrol etmek için kullanılır.

Sub Test() a=4 b=4 Eğer a<=b ise 'True MsgBox'ı döndürür "A, b'den küçük veya eşittir." 'bu idam edilecek. Else MsgBox "A, b'ye eşit veya küçük değil." 'bu idam edilmeyecek. End IF End Sub

Yukarıdaki örnekte, a'nın değerinin b'den küçük olup olmadığını kontrol ediyoruz. Bu Doğru olduğundan, If ifadesi yürütülür ve Else yürütülmez.

Sadece ifadeyi kullanarak kontrol edebilirsiniz.

a=4 b=4 hata ayıklama.yazdır a<-b

Bu, hemen pencerede True yazdıracaktır.

(>) Büyüktür:Bu, soldaki değerin sağdaki değerden büyük olup olmadığını kontrol etmek için kullanılır.

Sub Test() a=3 b=4 Eğer a>b ise 'Yanlış MsgBox "A, b'den büyüktür." 'Bu idam edilmeyecek. Else MsgBox "A, b'den büyük değil." 'Bu uygulanacaktır. End IF End Sub

Yukarıdaki örnekte, a'nın değerinin b'den büyük olup olmadığını kontrol ediyoruz. Bu Yanlış olduğundan, if ifadesi yürütülmez ve Else yapar.

Sadece ifadeyi kullanarak kontrol edebilirsiniz.

a=3 b=4 hata ayıklama.yazdır a>b

Bu, hemen pencerede False yazdıracaktır.

(>=) Büyüktür:Bu, soldaki değerin sağdaki değerden büyük veya eşit olup olmadığını kontrol etmek için kullanılır.

Sub Test() a=3 b=4 Eğer a>=b ise 'Yanlış MsgBox'ı döndürür "A, b'ye eşit veya büyüktür." 'Bu idam edilmeyecek. Else MsgBox "a, b'den büyük veya ona eşit değil." 'Bu uygulanacaktır. EĞER'i sonlandır

Yukarıdaki örnekte, a'nın değerinin b'den büyük veya ona eşit olup olmadığını kontrol ediyoruz. Bu Yanlış olduğundan, if ifadesi yürütülmez ve Else yapar.

Sadece ifadeyi kullanarak kontrol edebilirsiniz.

a=3 b=4 hata ayıklama.yazdır a>=b

Bu, hemen pencerede False yazdıracaktır.

() Eşit değil:Bu, soldaki değerin sağdaki değere eşit olup olmadığını kontrol etmek için kullanılır.

Alt Test() a=3 b=4 Eğer ab ise 'True MsgBox'ı döndürür "A, b'ye eşit değildir", 'Bu yürütülecektir. Else MsgBox "a ve b eşittir." 'Bu idam edilmeyecek. End IF End Sub

Yukarıdaki örnekte, a'nın değerinin olup olmadığını kontrol ediyoruz. eşit değil B. Bu Doğru olduğundan, If ifadesi yürütülür ve Else olmaz.

Sadece ifadeyi kullanarak kontrol edebilirsiniz.

a=3 b=4 hata ayıklama.yazdır ab

Bu, hemen pencerede True yazdıracaktır.

Yukarıdaki altı operatör, iki değeri veya değişkeni karşılaştırmak için kullandığımız için karşılaştırma operatörleri olarak adlandırılır. VBA'da karar vermek için onları VBA'da çok kullanacaksınız.

4. Mantıksal Operatörler

Mantıksal operatörler, bir veya daha fazla değişken üzerinde mantıksal işlemler yapmak için kullanılır. Bu tür işlemlerin sonucu her zaman DOĞRU veya YANLIŞ ile sonuçlanır. Mantıksal operatörler genellikle (her zaman değil) birden fazla koşulu kontrol etmek için kullanılır.

VBA'da kullandığımız mantıksal operatörler aşağıdadır:

VBA VE Operatör( Ve veya *): VBA AND operatörü, solundaki ve sağındaki koşulların True olduğundan emin olmak için kullanılır. Koşullardan herhangi biri Yanlış ise, tüm ifade Yanlış ile sonuçlanır. AND işlemleri için And anahtar sözcüğünü veya * (yıldız) işaretini kullanırız.

Aşağıdaki ifadeyi kontrol edin:

Alt Test() a = 10 b = 20 a < 15 Ve b < 15 ise MsgBox "a ve b her ikisi de 15'ten küçük." 'Bu idam edilmez. Else MsgBox "a veya b 15'ten büyük veya eşittir." 'Bu idam edilir. End If End Sub 

Yukarıdaki snippet'i çalıştırdığımızda, ikinci if ifadesi yürütülmez. Çünkü soldaki ilk ifade doğru, sağdaki ifade ise Yanlış. Bu nedenle, tüm ifade False döndürür.

Çoğu dilde, & sembolü VE operatörü olarak kullanılır, ancak VBA'da kullanılmaz. VBA'da her iki koşulun da doğru olduğundan emin olmak için çarpma operatörünü * (yıldız) VE operatörü olarak kullanabilirsiniz.

Yukarıdaki örnekte, aynısını yapmak için aşağıdaki if ifadesini kullanabilirsiniz.

Eğer (a < 15) * (b < 15) O zaman

Koşullu ifadeleri ayırmak için parantez kullanmanız gerekir. Aksi takdirde yapılan açıklamalar BODMAS kuralına uygun olacak ve sonuç hatalı olacaktır.

S1: Aşağıdaki ifadenin çıktısı ne olacaktır? Aşağıdaki yorumlar bölümünde bana bildirin:

debug.print a10 VE a=(b/2) VE a<>

a'nın değeri 15 ve b'nin 30 olduğu zaman. Aşağıdaki yorum bölümüne yazınız.

VBA VEYA Operatörü (Veya veya +): VEYA operatörü, Sol koşulun DOĞRU veya Sağ koşulun DOĞRU olduğundan emin olmak istediğimizde kullanılır. İki koşuldan herhangi biri doğruysa sonuç doğru olacaktır. İki boole ifadesi arasında OR anahtar sözcüğünü kullanırız. VEYA işlemi için + (artı) işaretini de kullanabilirsiniz. + işaretini kullanırken ifadeleri netleştirmek için parantezleri doğru kullandığınızdan emin olun.

Aşağıdaki kodu inceleyin:

Alt Test() a = 10 b = 20 a < 15 Veya b < 15 ise MsgBox "a veya b 15'ten küçük." 'Bu idam edilir. Else MsgBox "Ne a ne de b 15'ten küçük." 'Bu idam edilmez. End If End Sub

Yukarıdaki kodu çalıştırdığımızda ilk mesaj geliyor ve ikinci mesaj atlanıyor. Çünkü a 15'ten küçüktür ve b değildir. Çıktıyı doğru olarak almak için VEYA operatörüyle True olması yalnızca bir koşul gerektirir.

Açıklamayı şu şekilde yazıyorsunuz:

(a < 15) + (b < 15) ise

S2: Aşağıdaki ifadenin çıktısı ne olacaktır? Aşağıdaki yorumlar bölümünde bana bildirin:

debug.print a10 Veya a=(b/2) veya a<>

a'nın değeri 10 ve b'nin 5 olduğu durumlarda aşağıdaki yorum kısmına yazınız.

VBA NOT Operatörü (Değil): Not operatörü, boole değerini tersine çevirmek için kullanılır. Diğer bir deyişle, Not operatörüne sahip ifade, yalnızca önceki ifade False ise True döndürür. Örneğin, Doğru İfadeden önce Not anahtar sözcüğünü kullanırsanız, bu False ile sonuçlanır ve bunun tersi de geçerlidir. VBA'da, Olumsuz bir şeyin Doğru veya Yanlış (?) olup olmadığını kontrol etmek için anahtar kelime.

Alt test() a = 10 b = 10 a = b Değilse O halde MsgBox "a ve b eşit değil." Else MsgBox "a ve b her ikisi de eşittir."'Bu, End If End Sub'da yürütülür

Yukarıdaki kodda, ifadea = b değilfalse döndürür. Başlangıçta a=b doğrudur, ancak daha önce Not kullandığımız için sonuç ters çevrilir ve ifade Yanlış'a dönüşür. Yukarıdaki örnekte, ondan önceki tek ifadeleri kullandık. Not operatöründen önce istediğiniz kadar ifadeniz olabilir. Sadece parantez içine alın.

S3: Aşağıdaki ifadenin çıktısı ne olacaktır? Aşağıdaki yorumlar bölümünde bana bildirin:

debug.print a10 Or Not (a=(b/2) * a<>

a'nın değeri 10 ve b'nin 5 olduğu durumlarda aşağıdaki yorum kısmına yazınız.

5. Birleştirme Operatörleri ( & veya +)

Bu operatörler, dizeleri birleştirmek için kullanılır. & sembolü, metinleri birleştirmek için kullanılır. Dizeleri birleştirmek için önerilen operatördür. Ancak, birleştirmek için + işaretini de kullanabilirsiniz.

Artı işareti, yalnızca her ikisi de dize olduğunda iki değişkeni birleştirir. Dizelerden herhangi biri dize dışıysa, + işareti bir toplama operatörü olarak çalışır.

Aşağıdaki koda bakın:

Sub test() a="Exceltip" b=" is number " c= 1 d= 2 Debug.print a & b & c 'bu, "Exceltip is number 1" yazdıracak Debug.print a + b & c & d ' bu, "Exceltip 12 numaradır 'Debug.print a + b + c' bu bir hata olacaktır. End Sub

Yukarıdaki kodda, ilk iki satır gayet iyi çalışacaktır. Sayılarla metin eklemeye çalıştığımız için üçüncü satırda bir hata oluşacaktır. Sayıları birleştirmek için her zaman & (amp) kullanırız.

VBA'da Çok İşlevli Operatörler

Yukarıdaki örnekler aracılığıyla, farklı durumlarda farklı şekilde çalışan birçok operatör olduğunu öğrenmiş olmalısınız.

+ işareti sayılarla çalışırken toplama operatörü olarak çalışır. Boole değerleriyle çalışırken artı işareti VBA'da Or operatörü olarak çalışır. Dize değerleriyle kullanıldığında artı operatörü, bir birleştirme operatörü olarak çalışır. Aşağıdaki satırlar geçerlidir:

Debug.Print 10+20 ' 30 yazdırır. + toplama operatörü olarak çalışır. Debug.Print (1020) ' True yazdırır. + Veya operatörü olarak çalışır. Debug.Print "10" + "20" '1020 yazdırır. + işareti birleştirme operatörü olarak çalışır. 

Yıldız (*) işareti, işlenenler sayısal olduğunda çarpma operatörü olarak çalışır. İşlenenler boole olduğunda, yıldız işareti Ve Operatörü olarak çalışır.

Aşağıdaki kod satırları gayet iyi çalışıyor.

Debug.Print 10*20 ' 200 yazdırır. * çarpma operatörü olarak çalışır. Debug.Print (1020) ' False yazdırır. + işareti, And operatörü olarak çalışır. 

Evet beyler, bunların hepsi VBA'daki operatörlerle ilgili. Umarım yardımcı olmuştur. VBA'daki operatörlerle ilgili herhangi bir şüpheniz varsa, aşağıdaki yorum bölümünde sorun.

VBA'daki If ElseIf İfadesi|In If ElseIf ifadesinde, sonraki koşul yalnızca önceki koşul düştüğünde kontrol edilir. Bir koşul eşleştirildiğinde, o bloktaki kod yürütülür ve kontrol If bloğundan çıkar.

Excel VBA Değişken Kapsamı | VBA'nın da kapsam belirleyicileri vardır. Bu kapsam belirteçleri, Excel VBA'da bir değişkenin görünürlüğünü/kapsamını ayarlamak için kullanılabilir.

VBA Select Case State | Select Case Statement'lar, kontrol edilecek çok fazla koşulunuz olduğunda kullanışlıdır. Bunlar, birden çok If ElseIf ifadesinin mükemmel ikameleridir.

Microsoft Excel'de VBA'da Döngü Kullanma | VBA'daki döngüler, kod tekrarı olmadan benzer bir görevi tekrar tekrar yapmamızı sağlar. Excel VBA'da 3 tür döngü vardır.

ByRef ve ByVal Argümanları |Bir argüman farklı bir alt veya fonksiyona ByRef argümanı olarak iletildiğinde, gerçek değişkenin referansı gönderilir. Değişkenin kopyasında yapılan herhangi bir değişiklik orijinal argümana yansır.

Excel VBA Durum Çubuğunda Bir Mesaj Görüntüleme Excel'deki durum çubuğu bir kod izleyicisi olarak kullanılabilir. VBA kodunuz uzun olduğunda ve VBA'yı kullanarak birkaç görev yaptığınızda, ekranın titrediğini görmemek için ekran güncellemesini genellikle devre dışı bırakırsınız.

Microsoft Excel 2016'da VBA Kullanarak Uyarı Mesajlarını Kapatın|Bu kod yalnızca VBA uyarılarını devre dışı bırakmakla kalmaz, aynı zamanda kodun zaman verimliliğini de artırır. Nasıl olduğunu görelim.

Popüler Makaleler:

Verimliliğinizi Artıracak 50 Excel Kısayolu | Görevinizde daha hızlı olun. Bu 50 kısayol, Excel'de daha da hızlı çalışmanızı sağlayacaktır.

Excel'de DÜŞEYARA İşlevi | Bu, farklı aralıklardan ve sayfalardan değer aramak için kullanılan excel'in en çok kullanılan ve popüler işlevlerinden biridir.

Excel 2016'da EĞERSAY | Bu şaşırtıcı işlevi kullanarak değerleri koşullarla sayın. Belirli bir değeri saymak için verilerinizi filtrelemeniz gerekmez. Gösterge tablonuzu hazırlamak için Countif işlevi gereklidir.

Excel'de SUMIF İşlevi Nasıl Kullanılır | Bu, başka bir gösterge panosu temel işlevidir. Bu, belirli koşullardaki değerleri özetlemenize yardımcı olur.

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave