internet pencereler Android
Genişletmek

VBA excel operatörleri. VBA Mantıksal Operatörleri

VBA dili, öğrenilmesi ve günlük olarak kullanılması oldukça kolay ve hızlı olacak şekilde tasarlandı. VBA dili hem profesyonel programcılar hem de sıradan kullanıcılar için günlük rutin işleri otomatikleştirmek açısından kullanışlıdır. Amacınız ne olursa olsun: Günlük işlerinizi kolaylaştırmak veya verimliliğinizi artırmak için VBA, özellikle Microsoft Office uygulamalarıyla çalışmak üzere tasarlandığından bu amaçlar için kesinlikle en iyi dildir.

Operatör bilgisi, VBA'daki herhangi bir konuyu öğrenmek için gerekli bir temeldir; Dil öğrenmeye başlamadan önce operatörlere ve işlevlere yeterince zaman ayırmalısınız.

VBA Operatörleri

  • Uygulama Başlığını etkinleştir, bekle- Açık bir uygulamayı, başlık argümanında belirtilen başlık veya görev tanımlayıcıyla etkinleştirir
  • Bip sesi- ses sinyali
  • Çağrı adı, tartışmacı- İsim adı verilen bir prosedürün çağrılması. (Call anahtar sözcüğü isteğe bağlı olduğundan ve bir yordamı yalnızca adını kullanarak çağırabildiğinizden dolayı, bu ifade VBA programlamasında nadiren kullanılır)
  • ChDir yolu- Geçerli klasörü yol bağımsız değişkeninde belirtilen klasörle değiştirir
  • Dosya numarası listesini kapat- Geçerli sürücüyü, sürücü bağımsız değişkeni tarafından belirtilen sürücüye değiştirir
  • Sabit CONSTNAME- CONSTNAME adlı bir değişkeni sabit olarak bildirir
  • Tarih = tarih- Sistem tarihini, tarih argümanında belirtilen tarihle değiştirir
  • Adını beyan et- Dinamik bağlantı kitaplığından (DLL) bir prosedür bildirir
  • DefBool harf aralığı- Harf aralığı bağımsız değişkeninde belirtilen harflerle başlayan tüm değişkenler için Boolean'ı varsayılan veri türü olarak ayarlayan modül düzeyinde bir operatör (örneğin, DefBool A-F)
  • DefByte harf aralığı- Harf aralığı argümanında belirtilen harflerle başlayan tüm değişkenler için Bayt'ı varsayılan veri türü olarak ayarlar
  • DefCur harf aralığı- Harf aralığı argümanında belirtilen harflerle başlayan tüm değişkenler için Para Birimi'ni varsayılan veri türü olarak ayarlar
  • DefDate harf aralığı- Harf aralığına göre belirtilen harflerle başlayan tüm değişkenler için Tarihi varsayılan veri türü olarak ayarlar
  • DefDbl harf aralığı- Harf aralığı bağımsız değişkeninde belirtilen harflerle başlayan tüm değişkenler için Double'ı varsayılan veri türü olarak ayarlar
  • Kesin harf aralığı- Tamsayıyı, harf aralığı bağımsız değişkeninde belirtilen harflerle başlayan tüm değişkenler için varsayılan veri türü olarak ayarlar
  • DefLng harf aralığı- Harf aralığı argümanında belirtilen harflerle başlayan tüm değişkenler için Long'u varsayılan veri türü olarak ayarlar
  • DefObj harf aralığı- Harf aralığı argümanında belirtilen harflerle başlayan tüm değişkenler için Object'i varsayılan veri türü olarak ayarlar
  • DefSng harf aralığı- Harf aralığı bağımsız değişkeninde belirtilen harflerle başlayan tüm değişkenler için Tekli'yi varsayılan veri türü olarak ayarlar
  • DefStr harf aralığı- Harf aralığına göre belirtilen harflerle başlayan tüm değişkenler için String'i varsayılan veri türü olarak ayarlar
  • DefVar harf aralığı- Değişken türünü, harf aralığı bağımsız değişkeninde belirtilen harflerle başlayan tüm değişkenler için varsayılan veri türü olarak ayarlar
  • SilStting uygulama adı, bölüm, anahtar- Bölüm bölümünü veya anahtarını Windows kayıt defterinden kaldırır
  • Dim değişken adı- Varname adında bir değişken bildirir
  • Yapın:Döngü- Boole koşulu True olana kadar birden fazla ifade arasında döngü yapar
  • Anahtar Kelimeyi Sonlandır- Bir prosedürü, işlevi veya kontrol yapısını sonlandırır
  • Numaralandırma adı- Numaralandırılmış türde bir değişken bildiren modül düzeyinde bir operatör
  • Dizi listesini sil- Dinamik olarak ayrılmış bir dizideki belleği temizler veya sabit boyutlu bir diziyi yeniden başlatır
  • Hata hata numarası- Err nesnesini errornumber olarak ayarlayarak bir hatayı simüle eder
  • Olay prosedüradı(arglist)- Bir operatör yalnızca sınıf modülünde bulunabilir. Kullanıcı tanımlı bir olayı bildirir
  • Anahtar kelimeden çık- Bir prosedür, fonksiyon veya kontrol yapısından çıkış
  • FileCopy kaynağı, hedefi- Kaynak dosyayı hedef klasöre kopyalar (kaynak dosyanın adını değiştirebilirsiniz)
  • Her Biri İçin:Sonraki- Koleksiyonun her üyesi arasında geçiş yapın
  • İçin:Sonraki- Döngü sayacı belirli bir değere ulaşana kadar çeşitli ifadeler arasında döngü yapın
  • İşlev- Özel bir işlev prosedürünü bildirir
  • #dosyanumarası, varname'yi alın- Open deyimiyle açılan G/Ç dosyasından bir değişkeni okur
  • GoSub:Geri Dönüş- Prosedürde açıklanan alt programa girer ve çıkar. (Ayrı bir prosedür oluşturmak kodun anlaşılmasını kolaylaştıracağından bu ifadenin kullanılması önerilmez.)
  • Git satırı- Kontrolü satır etiketiyle işaret edilen kod satırına aktarır
  • Eğer:O halde:Diğer- Mantıksal bir testin sonucuna göre iki kod parçasından birini çalıştırır
  • ArayüzAdı, Sınıfı Uygular- Sınıf modülünde uygulanacak arayüzün veya sınıfın adını tanımlar
  • #dosyanumarası, varlist girin- Dosya G/Ç'sinden değişkenlere okur
  • Yol adını sonlandır- Dosya yol adını diskten kaldırır
  • Varname = ifade olsun- Varname değişkenini ifadeye ayarlar. Let anahtar sözcüğü isteğe bağlıdır ve neredeyse hiç kullanılmaz
  • Satır Girişi #dosyanumarası, var- G/Ç dosyasından bir satırı okur ve bunu bir dize değişkeninde saklar
  • Yük- Formu belleğe yükler ancak ekranda göstermez
  • #Dosya numarasını, kayıt aralığını kilitle- Dosya G/Ç erişimini kontrol eder
  • LSet dizevar = dize- Dizeyi, en soldaki karakterden başlayarak String türündeki bir değişkene yerleştirir. Bu durumda değişkenin boyutu değişmez.
  • LSet var1 = var2- Kullanıcı tanımlı bir türdeki değişkeni farklı ancak uyumlu, kullanıcı tanımlı türdeki bir değişkene kopyalar
  • Orta- Bir dize değişkenindeki belirli sayıda karakteri başka bir dizedeki karakterlerle değiştirir
  • OrtaB- Bir dize değişkenindeki karakterleri bayt bayt başka bir dizedeki karakterlerle değiştirir
  • MkDir yolu- Yol adında bir klasör oluşturur
  • Eski yol adını yeni yol adı olarak adlandırın- Bir dosya veya klasörün adını değiştirir
  • Hata Durumunda- Hataların nasıl ele alınacağını ayarlar
  • Açık:GoSub, Açık:GoTo- Bir ifadenin sonucuna göre kontrolü belirli bir dizeye aktarır
  • Yol adını aç:- G/Ç için bir dosya açar
  • Seçenek Tabanı 0|1- Diziler için varsayılan bir alt sınır (ilk öğenin numarası) ayarlar (modül düzeyinde)
  • Seçenek Metni Karşılaştır|İkili- Varsayılan dize karşılaştırma modunu (modül düzeyinde) tanımlar
  • Seçenek Açık- Programcıyı değişkenleri açıkça bildirmeye zorlar. Bu bildirimi modül düzeyinde girin
  • Seçenek Özel- Modülün kapalı olduğunu ve diğer modüllerde bulunan prosedürlerden erişilemeyeceğini belirtir. Modül düzeyinde bir operatör girin
  • #dosyanumarası yazdır- G/Ç dosyasına yazar
  • Özel isim- Varname değişkeninin özel olacağını ve yalnızca bildirildiği modülde kullanılabileceğini bildirir. Modül düzeyinde bir operatör girin
  • Mülk Alma- Bu özelliğin değerlerini kabul edecek bir mülkiyet prosedürü bildirir
  • Emlak Kiralama- Bir özellik prosedüründe bir özelliğe bir değer atar
  • Özellik Seti- Bir özellik prosedüründe bir nesneye referans ayarlar
  • Genel değişken adı- Modülde yer alan tüm prosedürler için varname değişkenine erişim sağlar
  • #dosyanumarası,varname yazın- Değişken adı değişkeninden I/O dosyasına veri yazar
  • RaiseEvent olay adı, bağımsız değişkenler- eventname adlı bir olayı başlatır
  • Numarayı rastgele seç- Rastgele sayı üretecini başlatır. Her seferinde farklı bir tohumla başlatmak için sayı bağımsız değişkenini atlayın
  • ReDim değişken adı- Dinamik dizi için belleği yeniden ayırır
  • Yorum bırak- VBA'ya ifadeyi takip eden metnin bir yorum olduğunu bildirir. Kesme işareti simgesi sıklıkla bu operatörün yerine kullanılır
  • Sıfırla- Daha önce Open deyimi tarafından açılmış olan tüm G/Ç dosyalarını kapatır
  • Sürdürmek- Bir hata oluştuktan sonra programın yürütülmesine hatanın oluştuğu satırdan devam edilir
  • RmDir yolu- Bir klasörü siler
  • RSet dizevar = dize- Karakterleri sağa hizalayarak bir dize değişkenine bir dize yazar
  • SaveSetting uygulama adı:- Windows kayıt defterinde ayarları oluşturur veya kaydeder
  • #dosyanumarası, konum ara- G/Ç dosyasındaki geçerli konumu ayarlar
  • Vaka Seç- Bir ifadenin değerine bağlı olarak bir grup ifadeyi çalıştırır
  • SendKeys dizesi, bekleyin- Dize tarafından belirtilen tuş vuruşlarını, sanki klavyeden girilmiş gibi aktif uygulamaya iletir
  • Nesne var = nesneyi ayarla- Nesne nesnesini, objectvar adlı bir nesne değişkenine atar
  • SetAttr yol adı, öznitelik- Yol adı bağımsız değişkeni tarafından belirtilen dosya için öznitelik bağımsız değişkeni tarafından belirtilen erişim niteliklerini (örneğin, vbReadOnly) ayarlar
  • Statik değişken adı- Varname değişkeninin, modül kodu yürütüldüğü sürece değerini koruyacağını (modül düzeyinde) bildirir
  • Durmak- VBA'yı duraklatma moduna geçirir
  • Alt- Bir prosedür bildirir
  • Zaman = zaman- Sistem saatini zaman argümanına ayarlar
  • Değişken adı yazın- Özel bir veri türü bildirir. (Yalnızca modül düzeyinde kullanılır)
  • Boşalt- Formu bellekten kaldırır
  • #dosya numarasının, kayıt aralığının kilidini açın- Bir G/Ç dosyası için erişim niteliklerini kaldırır
  • Bu sırada: Wend- Mantıksal koşul doğru olana kadar bir grup ifade arasında döngü yapar
  • Genişlik #dosyanumarası, genişlik- G/Ç dosyası için çizgi genişliğini ayarlar
  • İle:Şununla bitir- Belirli bir nesne için bir grup ifadeyi çalıştırır
  • #dosyanumarası yaz- G/Ç dosyasına veri yazar
imzaİsimTanım
= EşittirSol ve sağ işlenenler eşitse True değerini döndürür. Bunun bir atama operatörü aşırı yüklemesi olduğunu unutmayın.
<> Eşit değilSol ve sağ işlenenler eşit değilse True değerini döndürür.
> Daha iyiSol işlenen sağ işlenenden büyükse True değerini döndürür.
< Daha azSol işlenen sağ işlenenden küçükse True değerini döndürür.
>= Daha fazla veya eşitSol işlenen sağ işlenenden büyük veya ona eşitse True değerini döndürür.
<= Daha az veya eşitSol işlenen sağ işlenenden küçükse veya ona eşitse True değerini döndürür.
Dır-dir Referans sermayesiSol nesne başvurusu sağ nesne başvurusuyla aynı örnekse True değerini döndürür. Ayrıca her iki tarafta da Hiçbir Şey (boş nesne referansı) ile kullanılabilir. Not. Is operatörü, karşılaştırmayı gerçekleştirmeden önce her iki işleneni de Object'e zorlamaya çalışacaktır. Her iki taraf da ilkel tür ise veya Bir nesne (nesne olmayan bir alt tür veya vtEmpty) içermeyen bir Variant karşılaştırması, çalışma zamanı hatası 424 - "Nesne gerekli" ile sonuçlanacaktır. Herhangi bir işlenen diğerine aitse arayüz aynı nesne, karşılaştırma True değerini döndürecektir. Her iki örneğin de adilliğini kontrol etmeniz gerekiyorsa, o zaman Ve arayüz, ObjPtr(left) = ObjPtr(right) ObjPtr(left) = ObjPtr(right) kullanın.

Notlar

VBA sözdizimi, karşılaştırma operatörlerinin "zincirlenmesine" izin verir, ancak genel olarak bu yapılardan kaçınılmalıdır. Karşılaştırma her zaman aynı anda yalnızca 2 işlenen üzerinde soldan sağa doğru gerçekleştirilir ve her karşılaştırma bir Boole değeriyle sonuçlanır. Örneğin şu ifade...

A = 2: b = 1: c = 0 ifade = a > b > c

Bazı bağlamlarda b'nin a ile c arasında olup olmadığını test etmek olarak okunabilir. VBA'da bu şu şekilde değerlendirilir:

A = 2: b = 1: c = 0 ifade = a > b > c ifade = (2 > 1) > 0 ifade = Doğru > 0 ifade = -1 > 0 "CInt(Doğru) = -1 ifade = Yanlış

Object ile işlenen olarak kullanılan Is dışındaki herhangi bir karşılaştırma operatörü, Object'in varsayılan üyesinin dönüş değeri üzerinde gerçekleştirilecektir. Nesnenin varsayılan bir üyesi yoksa, karşılaştırma çalışma zamanı hatası 438 - "Nesne özelliğini veya yöntemini desteklemiyor." ile sonuçlanacaktır.

Nesne başlatılmazsa, karşılaştırma çalışma zamanı hatası 91 - "Nesne değişkeni veya Blok değişkeni kilitliyken" ile sonuçlanacaktır.

Hiçbir şey değişmez değeri Is dışında herhangi bir karşılaştırma işleciyle birlikte kullanılırsa, bu bir derleme hatasıyla - "Nesnenin yasa dışı kullanımı" ile sonuçlanacaktır.

Nesnenin varsayılan Nesnesi ise başka bir Nesne, VBA, ilkel bir tür döndürülene veya bir hata ortaya çıkana kadar sonraki her dönüş değerinin varsayılan öğesini sürekli olarak çağıracaktır. Örneğin, SomeClass'ın, ChildValue üyesi ChildValue üyesi olan ChildClass örneği olan varsayılan bir Value üyesine sahip olduğunu varsayalım. Karşılaştırmak...

Set x = Yeni SomeClass Debug.Print x > 42

Şu şekilde değerlendirilecektir:

Set x = Yeni SomeClass Debug.Print x.Value.ChildValue > 42

Eğer işlenen sayısal ise ve bir diğer işlenen bir String veya String alt tipinin bir Varyantı ise, sayısal bir karşılaştırma gerçekleştirilecektir. Bu durumda, eğer String bir sayıya eşlenemiyorsa, karşılaştırmanın sonucu çalışma zamanı hatası 13 - "Tür uyuşmazlığı" olacaktır.

Eğer ikisi birden işlenenler bir String veya String alt türünün bir Varyantıysa, dize karşılaştırması kod modülü parametrelerinin karşılaştırma parametresine göre gerçekleştirilecektir. Bu karşılaştırmalar karakter bazında yapılır. dikkat sembolik temsil Sayıyı içeren dize Olumsuz sayısal değerlerin eşleştirilmesiyle aynıdır:

Public Sub Örnek() Dim left As Variant Dim right As Variant left = "42" right = "5" Debug.Print left > right "Yazdırır False Debug.Print Val(left) > Val(right) "True End Sub'ı yazdırır

Bu nedenle sayısal eşitsizlik karşılaştırmaları yapmadan önce String veya Variant değişkenlerinin sayılara aktarıldığından emin olun.

İşlenenlerden biri Tarih ise, diğer işlenen sayısalsa veya sayısal bir türe dönüştürülebiliyorsa, temeldeki double üzerinde sayısal bir karşılaştırma gerçekleştirilir.

Diğer işlenen, geçerli yerel ayar kullanılarak Date öğesine dönüştürülebilecek bir String veya String alt türünün bir Varyantı ise, String, Date öğesine dönüştürülecektir. Geçerli yerel ayarda Date öğesine uygulanamazsa, karşılaştırmanın sonucu çalışma zamanı hatası 13 - "Tür uyuşmazlığı" olacaktır.

Double veya Single değerleri ile Boolean'ları karşılaştırırken dikkatli olunmalıdır. Diğer sayısal türlerin aksine, VBA'nın Double'da kayan noktalı sayı kullanarak bir karşılaştırma veri türünü destekleme davranışı nedeniyle sıfır olmayan değerler Doğru olarak kabul edilemez:

Public Sub Örnek() Dim Test As Double Test = 42 Debug.Print CBool(Test) "Prints True." True, Double'a yükseltilir - Test, Boolean'a dönüştürülmez Debug.Print Test = True "Prints False "Açık yayınlarla: Debug.Print CBool(Test) = True "Doğru Yazdırır Debug.Print CDbl(-1) = CDbl(True) "Doğru Son Alt Yazdırır

Tüm aritmetik operatörler, karşılaştırma operatörleri, mantıksal operatörler ve birleştirme operatörleri burada ayrıntılı olarak açıklanmaktadır. Bu operatörler hakkında bilmeniz gereken her şeyi toplamaya çalıştım. Her ifade bir örnekle birlikte verilmiştir. Açıklamalar benim tarafımdan standart Yardım'a VB5'ten çevrilmiştir.

Aritmetik operatörler

operatör ^ (üs)

Bu operatör bir sayının üssünü yükseltmek için kullanılır.

Sözdizimi:

sonuç = sayı^derece

Seçenekler:

sonuç
sayı
derece- gerekli; herhangi bir sayısal ifade

Notlar:

sayı yalnızca şu durumlarda olumsuz olabilir: derece- Bir tam sayı. Bir ifadede birden fazla ^ operatörü kullanılıyorsa hesaplama soldan sağa doğru yapılır. Sonuç türü genellikle Double'dır. Ancak eğer veya derece, veya sayı- O halde boş ifade sonuç ayrıca Boş.

Örnek:

Loş Değerim
MyValue = 2^2" 4 değerini döndürür.
Değerim = 2^3^3" Dönecek 512 (2^3=8, 8^3=512)
Değerim = (-5)^3" Dönecek -125.

Tavsiye:

Bir sayıyı sabit bir kuvvete yükseltmeniz gerekiyorsa, o zaman bir kuvvete yükseltmek yerine birden fazla operatör kullanmak daha iyidir - kendiniz karar verin, ifadenin hesaplanmasıyla bir milyonluk bir döngü gerçekleşir:

test1 = 2^8" 893 ms
test1 = 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 " 130 ms!

operatör * (çarpma)

İki sayıyı çarpmak için kullanılır.

Sözdizimi:

sonuç = 1 numara* 2 numara

Seçenekler:

sonuç- gerekli; herhangi bir sayısal değişken
1 numara- Mutlaka; herhangi bir sayısal ifade
2 numara- Mutlaka; herhangi bir sayısal ifade

Notlar:

Sonucun veri türü genellikle iki sayının en kesin türüyle aynıdır. Hassasiyet sırası en yüksekten en düşüğe Bayt, Tamsayı, Uzun, Tek, Para Birimi, Çift, Ondalık şeklindedir. Doğru, istisnalar var:

  • Tek ve Uzun çarpılırsa sonuç Çift olur
  • Veri türü ise sonuç- İfadenin sonucunu içermeyen Uzun Tek veya Tarih, daha sonra sonuç, Double içeren bir Variant'a dönüştürülür.

Eğer 1 numara veya 2 numara

Çarpma işlemindeki kesinlik sırası, toplama ve çıkarma işlemlerinde kullanılandan farklıdır.

Örnek:

Loş Değerim
Değerim = 2 * 2 " 4 değerini döndürür.
Değerim = 459,35 * Değerim " 495,35 * 4 değerini döndürür

operatör / (bölme)

İki sayıyı bölmek ve kayan nokta sonucu elde etmek için kullanılır.

Sözdizimi:

sonuç = 1 numara / 2 numara

Seçenekler:

sonuç- gerekli; herhangi bir sayısal değişken
1 numara- Mutlaka; herhangi bir sayısal ifade
2 numara- Mutlaka; herhangi bir sayısal ifade

Notlar:

Sonuç genellikle Double tipindedir. Doğru, istisnalar var:

  • Her iki ifade ifadesi de Bayt, Tamsayı, Tek türündeyse sonuç Tek olur. Ancak ifadenin boyutları Single kapsamına uymuyorsa hata oluşur.
  • Her iki ifade ifadesi de Bayt, Tamsayı veya Tek içeren Değişken türündeyse sonuç Tek Değişken olur. Ancak ifadenin boyutları Tek Varyant'a uymuyorsa Çift Varyant.
  • Sayılardan biri Ondalık türündeyse sonuç Ondalık olur.

Eğer 1 numara veya 2 numara- Boş, bu durumda basitçe sıradan bir 0 olarak yorumlanır.

Örnekler:

Loş Değerim
Değerim = 10 / 4" !} Dönecek 2.5.
Değerim = 10 / 3 " Dönecek 3.333333.

operatör \ (tam sayı bölümü)

İki sayıyı bölerek tam sayı sonucu elde etmek için kullanılır.

Sözdizimi:

sonuç = 1 numara \ 2 numara

Seçenekler:

sonuç- gerekli; herhangi bir sayısal değişken
1 numara- Mutlaka; herhangi bir sayısal ifade
2 numara- Mutlaka; herhangi bir sayısal ifade

Notlar:

Bu tür bir bölme gerçekleşmeden önce ifadeler Bayt, Tamsayı veya Uzun ifadelere yuvarlanır. Tipik olarak sonuç veri türü Bayt, Bayt değişkeni, Tamsayı, Tamsayı değişkeni, Uzun veya Uzun değişkendir. Herhangi bir kesirli kısım kesilir.

Ancak ifadelerden herhangi biri Null ise sonuç Null olur. Boş içeren herhangi bir ifade 0 olarak yorumlanır.

Örnekler:

Loş Değerim
Değerim = 11\4" Dönecek 2.
Değerim = 9\3" Dönecek 3.
Değerim = 100\3" Dönecek 33.

Mod operatörü (bölme kalanı)

İki sayıyı bölmek ve bölmenin kalanını elde etmek için kullanılır.

Sözdizimi:

sonuç = 1 numara Mod 2 numara

Seçenekler:

sonuç- gerekli; herhangi bir sayısal değişken
1 numara- Mutlaka; herhangi bir sayısal ifade
2 numara- Mutlaka; herhangi bir sayısal ifade

Notlar:

Bölme işleminde sağ noktalı sayılar yuvarlanır. Örneğin aşağıdaki ifadenin sonucu 5'tir:

A=19 Mod 6.7

Burada neler oluyor? Önce 6,7 sayısı 7'ye yuvarlanır. Daha sonra bölme işlemi gerçekleşir, 2,7 elde ederiz.... Bölmeden kalan = 5. (2*7 = 14, 19 - 14 = 5).

Sonuç genellikle Bayt, Bayt değişkeni, Tamsayı, Tamsayı değişkeni, Uzun veya Uzun içeren Değişken türündedir.

İfadelerden herhangi biri Null ise sonuç Null olur. Boş içeren herhangi bir ifade 0 olarak yorumlanır.

Örnekler:

Loş Sonucum
Sonucum = 10 Mod 5" Dönecek 0.
Sonucum = 10 Mod 3" Dönecek 1.
Sonucum = 12 Mod 4.3" Dönecek 0.
Sonucum = 12,6 Mod 5" Dönecek 3.

operatör + (ekleme)

İki sayıyı eklemek için kullanılır.

Sözdizimi:

sonuç = ifade1+ifade2

Seçenekler:

sonuç- gerekli; herhangi bir sayısal değişken
ifade1
ifade2- Mutlaka; herhangi bir ifade

Notlar:

+ operatörünü kullandığınızda dize eklemenin mi yoksa birleştirmenin mi gerçekleşeceğini belirleyemezsiniz. Birleştirme için karışıklığı önlemek ve kodu daha okunabilir hale getirmek için & operatörünü kullanın.

İfadelerden biri Variant değilse aşağıdaki kurallar uygulanır:

  • Her iki ifade de sayısal türdeyse (Bayt, Boolean, Tamsayı, Uzun, Tek, Çift, Tarih, Para Birimi veya Ondalık), bunlar eklenir.
  • Her iki dize ifadesi de birleştirme ise.
  • İfadelerden biri sayısal türdeyse ve diğeri Null dahil herhangi bir Variant değeriyse toplama işlemi gerçekleşir.
  • İfadelerden biri dize, diğeri ise herhangi bir Variant değeri ise birleştirme gerçekleşir.
  • İfadelerden biri Boş içeriyorsa, değiştirilmemiş ikinci ifade döndürülür.
  • İfadelerden biri sayısal tür, diğeri ise dize ise Tür uyuşmazlığı hatası oluşur.
  • Herhangi bir ifade Null ise sonuç da Null olur.

Her iki ifade de Variant ise aşağıdaki kurallar uygulanır:

  • Her iki ifade de sayı ise, o zaman toplanırlar.
  • Her iki ifade de dize ise, bunlar birleştirilir.
  • İfadelerden biri sayı, diğeri dize ise toplama işlemi gerçekleşir.

Sıradan toplama işleminde sonucun veri türü genellikle iki sayının en kesin türüyle aynıdır. Hassasiyet sırası Bayt, Tamsayı, Uzun, Tek, Çift, Para Birimi ve Ondalıktır. İstisnalar var:

  • Tek ve Uzun eklenirse sonuç Çift olur
  • Date türünde bir ifade başka bir ifadeyle eklenirse sonuç Date olur.

İfadelerden biri veya her ikisi de Null ise sonuç da Null olur. İfadelerin her ikisi de Boş içeriyorsa sonuç Tamsayı olur. Yalnızca bir tane varsa, sonuç olarak değişmeyen ikinci ifade döndürülür.

Örnekler:

Loş MyNumber, Var1, Var2
Numaram = 2 + 2 " Dönecek 4.
Numaram = 4257.04 + 98112 " Dönecek 102369.04.

Var1 = "34"
Var2 = 6 "Karma değişkenleri başlat
Numaram = Var1 + Var2 " Dönecek 40.

Var1 = "34"
Var2 = "6" "Dizelerle değişkenleri başlat
Numaram = Var1 + Var2 " Dönecek"346" (meydana geldi)
"birleştirme, ekleme değil!).

Tavsiye:

Ekleme operatörü (+) tarih eklemek için kullanılabilir; Tarih türü değişkenleri:

Loş d Tarih Olarak
d = DateSerial(2002, 8, 15) " tarih başlatma 08/15/2002
d = d + 15 " şimdi d 30.08.2002 tarihini içeriyor
"yani 15 gün ekledik

operatör - (çıkarma, işaret değişikliği)

İki sayı arasındaki farkı bulmak veya bir ifadenin işaretini değiştirmek için kullanılır.

Sözdizimi:

sonuç = ifade1- ifade2

-ifade

Seçenekler:

sonuç- gerekli; herhangi bir sayısal değişken
ifade- Mutlaka; herhangi bir ifade
ifade1- Mutlaka; herhangi bir ifade
ifade2- Mutlaka; herhangi bir ifade

Notlar:

İlk sözdiziminde iki sayı arasındaki farkı bulmak için "-" operatörüne ihtiyaç vardır. İkinci sözdiziminde işaretini değiştirmek için "-" kullanılmıştır. ifade.

Sonucun veri türü genellikle iki sayının en kesin türüyle aynıdır. Hassasiyet sırası Bayt, Tamsayı, Uzun, Tek, Çift, Para Birimi ve Ondalıktır. İstisnalar var:

  • Çıkarma işleminde Tek ve Uzun türleri yer alıyorsa sonuç Çift olur
  • Çıkarma işlemi Tarih türünde bir ifade kullanıyorsa,
    sonuç Tarih olur.
  • İki tarihin çıkarılması Double sonucunu verir.

İfadelerden biri veya her ikisi de Null ise sonuç da Null olur. İfadelerden biri Boş ise 0 olarak yorumlanır.

Toplama ve çıkarma işlemindeki kesinlik sırası, çarpma işleminde kullanılandan farklıdır.

Örnekler:

Loş Sonucum
Sonucum = 4 - 2 " Dönecek 2.
Sonucum = 459,35 - 334,90 " Dönecek 124.45.

Tavsiye:

Toplama operatörü gibi, çıkarma operatörü de iki tarih arasındaki farkı (gün olarak) hesaplamak için kullanılabilir:

Loş d1 Tarih Olarak
Dim d2 Tarih Olarak
Dim razn As Long
d1 = TarihSeri(1983, 10, 14)
d2 = TarihSeri(2002, 8, 15)
razn = d2 - d1 " gün farkı (6880).

Karşılaştırma Operatörleri

Belirli ifadeleri karşılaştırmak için kullanılır. 3 sözdizimleri vardır:

Sözdizimi:

sonuç = ifade1 karşılaştırma operatörü ifade2
sonuç = nesne1 Dır-dir nesne2
sonuç = astar Beğenmek örnek

Seçenekler:

sonuç gerekli; herhangi bir sayısal değişken
ifade Mutlaka; ifade edilen herhangi
karşılaştırma operatörü gerekli; herhangi bir karşılaştırma operatörü
bir obje gerekli; herhangi bir nesnenin adı
astar gerekli; herhangi bir dize ifadesi.
örnek gerekli; herhangi bir dize ifadesi veya harf ve sayı aralığı

Notlar:

Aşağıdaki tablo, karşılaştırma işleçlerinin bir listesini ve bir ifadenin sonucunu (Doğru veya Yanlış) belirleyen koşulları içerir.

Şebeke

Doğru ise

Yanlış ise

Eğer boşsa

< (меньше чем) ifade1 <
ifade2
ifade1 >=
ifade2

bir
itibaren
ifade Null içeriyor

<= (меньше или равно) ifade1 <=
ifade2
ifade1 >
ifade2
> (daha fazla) ifade1 >
ifade2
ifade1 <=
ifade2
>= (büyük veya eşit) ifade1 >=
ifade2
ifade1 <
ifade2
= (eşit) ifade1 =
ifade2
ifade1 <>
ifade2
<>(eşit değil) ifade1 <>
ifade2
ifade1 =
ifade2

Is ve Like operatörleri belirli işlevleri yerine getirir ve karşılaştırma tabloları gösterilenden farklıdır (bunlara aşağıda bakacağız).

İki ifade karşılaştırıldığında sayıların mı yoksa dizelerin mi karşılaştırılacağını belirlemek her zaman mümkün değildir. Aşağıda, her iki ifadenin de Variant dışında bir türde olması durumunda sonucun nasıl hesaplanacağı gösterilmektedir:

  • Her iki ifade de sayıysa (Bayt, Boolean, Tamsayı, Uzun, Tek, Çift, Tarih, Para Birimi veya Ondalık), sayılar karşılaştırılır.
  • Her iki ifade de dize ise, bir dize karşılaştırması gerçekleşir. (daha küçük olan satır, ilk ve sonraki harfleri daha küçük bir ascii koduna sahip olan satırdır).
  • İfadelerden biri sayı, diğeri sayı olarak yorumlanabilecek bir Varyant ise sayılar karşılaştırılır.
  • İfadelerden biri sayı, diğer Variant ise sayı olarak yorumlanamayan bir dize ise bir hata oluşur (Tür uyuşmazlığı).
  • İfadelerden biri bir dizeyse ve diğeri herhangi bir Variant değeriyse (Null olsa bile), bir dize karşılaştırması gerçekleşir.
  • İfadelerden biri Boş ve diğeri bir sayıysa, sayıların karşılaştırması gerçekleşir ve Boş 0 olarak değerlendirilir.
  • İfadelerden biri Boş ve diğeri bir dize ise, bir dize karşılaştırması gerçekleşir; burada Boş, boş dize "" olarak değerlendirilir.

Hem ilk ifade hem de ikincisi Variant türündeyse ifadeler, Variant'ın içerdiği veri türlerine göre karşılaştırılır:

  • Her iki Variant ifadesi de sayı içeriyorsa sayılar karşılaştırılır.
  • Her iki Variant ifadesi de dize içeriyorsa dizeler karşılaştırılır.
  • Variant ifadelerinden biri sayı, diğeri dize içeriyorsa, sayısal ifade dizeden küçüktür.
  • Variant ifadelerinden biri Boş, diğeri sayı ise Boş 0 olarak değerlendirilir.
  • Variant ifadelerinden biri Boş ve diğeri bir dize ise Boş, boş "" dizesi olarak değerlendirilir.
  • Her iki ifade de Boş ise eşit kabul edilir.

Bir Single değişkeni bir Double ile karşılaştırıldığında Double, Single'ın duyarlılığına yuvarlanır.

Para Birimi Tek veya Çift ile karşılaştırıldığında Tek veya Çift Para Birimi'ne dönüştürülür. Benzer şekilde, Ondalık Sayıyı Tek veya Çift ile karşılaştırırken Tek veya Çift, Ondalık sayıya dönüştürülür. Para Birimi için 0,0001'den küçük herhangi bir kesirli kısım kaybolabilir. Decimal için bu değer 1E-28'dir veya hata oluşabilir. Böylece kesirli kısım kaybolduğunda ifadeler eşit olarak yorumlanabilir, ancak aslında biri diğerinden farklı olacaktır. (küçük bir miktar da olsa).

Örnekler:

Loş Sonucum, Var1, Var2
Sonucum = (45< 35) " Dönecek YANLIŞ.
Sonucum = (45 = 45) " Dönecek Doğru.
Sonucum = (4<> 3) " Dönecek Doğru.
Sonucum = ("5" > "4") " Dönecek Doğru.

Var1 = "5": Var2 = 4 " VB'de iki nokta üst üste kullanabilirsiniz,
" ifadelerini ayırmak için.

Sonucum = (Değer1 > Var2) " Dönecek Doğru.

Var1 = 5: Var2 = Boş
Sonucum = (Değer1 > Var2) " Dönecek Doğru.

Var1 = 0: Var2 = Boş
Sonucum = (Var1 = Var2) " Dönecek Doğru.

karşılaştırma operatörü

Bu operatör nesne değişkenlerini karşılaştırmak için kullanılır.

Bu operatörün sözdizimi yukarıda verilmiştir.

Notlar:

Nesne1 ve nesne1 aynı nesneye başvuruyorsa sonuç Doğru olur, değilse Yanlış olur. İki değişken aynı nesneye birden fazla şekilde atıfta bulunabilir. Aşağıdaki örnekte A, B ile aynı nesneyi ifade eder:

A = B'yi ayarla

Aşağıdaki örnek, A ve B değişkenlerinin aynı nesneye (C) gönderme yapmasını sağlar:

A = C'yi ayarlayın
B=C'yi ayarla

Örnekler:

Loş MyObject, YourObject, ThisObject, _
DiğerObject, ThatObject, MyCheck

YourObject = MyObject'i ayarlayın "Nesnelere bağlantılar oluştur
ThisObject'i Ayarla = MyObject
ThatObject = OtherObject olarak ayarlayın
MyCheck = YourObject Is ThisObject " True değerini döndürür.
MyCheck = ThatObject Is ThisObject " False değerini döndürür.
" MyObject'in olduğunu varsayıyoruz<>DiğerNesne
MyCheck = MyObject Is ThatObject " False değerini döndürür.

dize karşılaştırma operatörü - Beğen

Benzer dize karşılaştırma operatörü, dizeleri karşılaştırmak için kullanılır.

Bu operatörün sözdizimi yukarıda zaten tartışılmıştı.

Yorum:

Bu operatör, bir String'i bir Model maskesine karşı test etmek için kullanılabilir. Bu çok güçlü bir operatördür ve neredeyse Perl'deki düzenli ifadelere benzer.

Yani bu operatör aşağıdaki gibi çalışır. Dize maskeyle eşleşiyorsa sonuç True olur. Değilse - Yanlış. İfadelerden biri Null ise sonuç da Null olur.

Like operatörünün davranışı, varsayılan dize karşılaştırma türüne bağlıdır. (Seçenek Karşılaştırma operatörü).

Tür İkili (yani ikili karşılaştırma) olarak ayarlanmışsa dizeler Ascii kodlarına göre karşılaştırılır (farklı kodlamalarda farklıdır). Tipik olarak aşağıdaki sıra kullanılır:

A< B < E < Z < a < b < e < z < А < К < Я < а < к < я

Tür Metin (metin karşılaştırması) olarak ayarlanmışsa. Bu karşılaştırmada sıralama öncekinden farklılaşır, burada büyük ve küçük harfler eşittir:

(A=a)< (А=а) < (B=b) < (E=e) < (К=к) < (Z=z) < (Я=я)

Like operatörünün en önemli işlevi bir stringin bir maskeye ait olup olmadığını kontrol etmektir. Maskede aşağıdaki özel malzemeler kullanılabilir. karakterler:

Herhangi bir tek karakter
* Sıfır veya daha fazla karakter
# Herhangi bir sayı (0–9).
Karakter listesine giren herhangi bir karakter
[!charlist] Karakter listesinde yer almayan herhangi bir karakter

Burada kısa bir not. Özel içeren bir maske üzerindeki bir dizenin kimliğini kontrol etmek için. (örneğin, dizenin [,?,#,],* sembollerini içerip içermediğini kontrol edin), ardından bunları köşeli parantez içine almanız gerekir. Bu şekilde ayrı bir parantez [ veya ] koyamazsınız.

Karakter listesini belirtirken kısa çizgi (-) kullanabilirsiniz. Örneğin A'dan Z'ye sırayı belirtmek için maske kullanmanız gerekir. Parantez içindeki her şey herhangi bir sınırlayıcı (boşluk, virgül vb.) içermemelidir, aksi takdirde bunlar da diziye dahil edilecektir.

Maske kullanarak kontrol yaparken başka önemli kurallar da vardır:

  • Sembol listesinin başındaki (!) işareti, bu listede yer almayan sembolleri aramanız gerektiğini belirtir. İşaretin kendisini bulmanız gerekiyorsa!, o zaman parantez [!] koymanız gerekir.
  • (-) bir karakter aralığını belirtmek için kullanılır.
  • Bir karakter aralığı belirtildiğinde ASCII kodlarında bu aralığın artması gerekir. Onlar. doğru maske olsun ya da olmasın.
  • Sıra, boş dize "" olarak yorumlanır.

Örnekler:

Loş Çekim
MyCheck = "aBBBa" Like "a*a" " True değerini döndürür.
MyCheck = "F" Like "" " True değerini döndürür.
MyCheck = "F" Like "[!A-Z]" " False değerini döndürür.
MyCheck = "a2a" Like "a#a" " True değerini döndürür.
MyCheck = "aM5b" Like "a#[!c-e]" " True değerini döndürür.
MyCheck = "BAT123khg" Like "B?T*" " True değerini döndürür.
MyCheck = "CAT123khg" Like "B?T*" " False değerini döndürür.

myString = "312T-87GD-8922"

Eğer myString "###-##-####" gibi Sonra ...

Dize birleştirme işleçleri

Aslında, Visual Basic'te dizeleri birleştirmek için yalnızca 2 işleç kullanabilirsiniz. Bunlar & ve +'dır. + operatörü yukarıda açıklanmıştır. & operatöründen bahsedelim.

dize birleştirme operatörü - &

İki ifadeyi birleştirmek için kullanılır.

Sözdizimi:

sonuç = ifade1 & ifade2

sonuç gerekli; Herhangi bir String veya Variant değişkeni
ifade1 Mutlaka; Herhangi bir ifade
ifade2 Mutlaka; Herhangi bir ifade

Notlar:

İfade bir dize değilse, bir Dizge Varyantına dönüştürülür. Sonuç veri türü yalnızca her iki ifadenin de String türünde olması durumunda String olur. Aksi takdirde sonuç String Variant olur. Her iki ifade de Null ise sonuç da Null olur. Ancak ifadelerden yalnızca biri Null değeri içeriyorsa boş dize "" olarak yorumlanır. Boş aynı zamanda boş dize "" olarak da yorumlanır.

Örnekler:

Loş MyStr
MyStr = "Merhaba" ve "Dünya"
" Dönecek"Merhaba Dünya" dizesi.
MyStr = "Kontrol Et" & 123 & "Kontrol Et"
" "CHECK 123 CHECK" dizesini döndürür.

Mantıksal operatörler

Bu en ilginç operatör grubudur. Programlarken bunların işleyişini ve uygulamasını bilmeniz gerekir (ve yalnızca Visual Basic'te değil).

Visual Basic'te bunlardan 6 tane var. Her operatöre ayrıntılı olarak bakalım.

Ve operatör

İki ifade üzerinde mantıksal çarpma işlemi yapmak için kullanılır.

Sözdizimi:

sonuç = ifade1 Ve ifade2

sonuç
ifade1 Mutlaka; Herhangi bir ifade
ifade2 Mutlaka; Herhangi bir ifade

Notlar:

Aşağıdaki tabloda And operatörünün nasıl çalıştığı gösterilmektedir:

İfade1 =

ve ifade2 =

O zaman sonuç =

Doğru Doğru Doğru
Doğru YANLIŞ YANLIŞ
Doğru Hükümsüz Hükümsüz
YANLIŞ Doğru YANLIŞ
YANLIŞ YANLIŞ YANLIŞ
YANLIŞ Hükümsüz YANLIŞ
Hükümsüz Doğru Hükümsüz
Hükümsüz YANLIŞ YANLIŞ
Hükümsüz Hükümsüz Hükümsüz

And operatörü aynı zamanda bir sayının bitlerini test etmek için de kullanılır. Bitler için And operatörü şu şekilde çalışır (soldan sağa bakıldığında)

0 0 0
0 1 0
1 0 0
1 1 1

Örnekler:

Loş A, B, C, D, MyCheck
MyCheck = A > B Ve B > C " Dönecek Doğru.
MyCheck = B > A Ve B > C " Dönecek YANLIŞ.
MyCheck = A > B Ve B > D " Dönecek Hükümsüz.
MyCheck = A ve B " Dönecek8 (bit karşılaştırması).

Son örneğe daha detaylı bakalım. 10 sayısı aşağıdaki gibi bitlerle temsil edilir (tetrad olarak, yani 4 bit):

Ve 8 sayısı şöyle:

And operatörünün bir sonucu olarak yukarıdaki tabloya göre şunu elde ederiz:

Onlar. 8. Bunu neden yaptık? Bunu A sayısının dördüncü bitinin ayarlanıp ayarlanmadığını kontrol etmek için yaptık. B'yi aldıktan sonra bu bitin ayarlandığını doğruladık.

Veya operatör

İki ifadenin mantıksal toplamasını gerçekleştirmek için kullanılır.

Sözdizimi:

sonuç = ifade1 Veya ifade2

sonuç gerekli; Herhangi bir sayısal (Boolean dahil) değişken
ifade1 Mutlaka; Herhangi bir ifade
ifade2 Mutlaka; Herhangi bir ifade

Notlar:

Aşağıdaki tabloda Veya operatörünün nasıl çalıştığı gösterilmektedir:

İfade1 =

ve ifade2 =

O zaman sonuç =

Doğru Doğru Doğru
Doğru YANLIŞ Doğru
Doğru Hükümsüz Doğru
YANLIŞ Doğru Doğru
YANLIŞ YANLIŞ YANLIŞ
YANLIŞ Hükümsüz Hükümsüz
Hükümsüz Doğru Doğru
Hükümsüz YANLIŞ Hükümsüz
Hükümsüz Hükümsüz Hükümsüz

Veya operatörü bir sayının belirli bitlerini ayarlamak için kullanılır. Bitler için Or operatörü şu şekilde çalışır (soldan sağa bakıldığında)

0 0 0
0 1 1
1 0 1
1 1 1

Sonuç kalın harflerle yazılmıştır.

Örnekler:

Loş A, B, C, D, MyCheck
MyCheck = A > B Veya B > C " Dönecek Doğru.
MyCheck = B > A Veya B > C " Dönecek Doğru.
MyCheck = A > B Veya B > D " Dönecek Doğru.
MyCheck = B > D Veya B > A " Dönecek Hükümsüz.
MyCheck=A Veya 5" Dönecek 15:

Son örneğe daha detaylı bakalım. 10 sayısı aşağıdaki gibi bitlerle temsil edilir (tetrad olarak, yani 4 bit):

Ve 5 numara:

Or operatörünün bir sonucu olarak yukarıdaki tabloya göre şunu elde ederiz:

Onlar. 15. Gördüğünüz gibi Or operatörünün kullanımı yalnızca karşılaştırma ifadelerinde değil aynı zamanda bir sayının belirli bitlerini ayarlamak için de çok kolay ve kullanışlıdır.

Xor operatörü

İki ifadenin mantıksal olumsuzluğunu gerçekleştirmek için kullanılır.

Sözdizimi:

sonuç = ifade1 Xor ifade2

sonuç gerekli; Herhangi bir sayısal (Boolean dahil) değişken
ifade1 Mutlaka; Herhangi bir ifade
ifade2 Mutlaka; Herhangi bir ifade

Notlar:

Aşağıdaki tabloda Xor operatörünün nasıl çalıştığı gösterilmektedir:

Xor operatörü bir sayının belirli bitlerini tersine çevirmek için kullanılır. Bitler için Xor operatörü şu şekilde çalışır (soldan sağa bakıldığında)

0 0 0
0 1 1
1 0 1
1 1 0

Sonuç kalın harflerle yazılmıştır. Xor, Or'dan yalnızca her iki bit bir olduğunda Xor'un 0 üretmesi bakımından farklılık gösterir. Xor operatörünün ilginç özelliği, iki kez kullanıldığında aynı sayıyı üretmesidir. Bu genellikle kriptografide kullanılır.

Örnekler:

Loş A, B, C, D, MyCheck
A = 10: B = 8: C = 6: D = Sıfır
MyCheck = A > B Xveya B > C " Dönecek YANLIŞ.
MyCheck = B > A Xveya B > C " Dönecek Doğru.
MyCheck = B > A Xveya C > B " Dönecek YANLIŞ.
MyCheck = B > D Xveya A > B " Dönecek Hükümsüz.
MyCheck = A X veya B " Dönecek 2

Xor operatörünü kullanmanın ilginç bir örneği, iki sayısal değişkenin değerlerini değiştirmektir:

Loş bir Kadar Uzun, b Kadar Uzun
bir = 4
b = 7
a = a Xveya b
b = a Xveya b
a = a Xveya b

Şimdi a değişkeni, b değişkeninin değerini içerir ve bunun tersi de geçerlidir.

Operatör değil

İki ifadenin mantıksal tersini gerçekleştirmek için kullanılır.

Sözdizimi:

sonuç= Hayır ifade

sonuç gerekli; Herhangi bir sayısal (Boolean dahil) değişken
ifade Mutlaka; Herhangi bir ifade

Notlar:

Aşağıdaki tabloda Not operatörünün nasıl çalıştığı gösterilmektedir:

Not operatörü tüm bitleri tersine çevirir ifade. Bitler için Not operatörü şu şekilde çalışır (soldan sağa bakıldığında):

0 1
1 0

Sonuç kalın harflerle yazılmıştır.

Örnekler:

Loş A, B, C, D, MyCheck
A = 10: B = 8: C = 6: D = Sıfır
MyCheck = Değil (A > B) " Dönecek YANLIŞ.
MyCheck = Değil (B > A)" Dönecek Doğru.
MyCheck = Değil (C > D) " Dönecek Hükümsüz.
MyCheck = A Değil " Dönecek-11 (tüm bitler ters çevrilmiş)

Son örneğe daha yakından bakalım. 10 sayısı bit olarak şu şekilde temsil edilir (bayt olarak, yani 8 bit):

Tüm bitleri ters çevirdikten sonra şunu elde ederiz:

Ve bu -11.

Denklem operatörü

İki ifade arasında mantıksal eşdeğerlik sağlamak için kullanılır.

Sözdizimi:

sonuç = ifade1 Denklem ifade2

sonuç gerekli; Herhangi bir sayısal (Boolean dahil) değişken
ifade1 Mutlaka; Herhangi bir ifade
ifade2 Mutlaka; Herhangi bir ifade

Notlar:

Aşağıdaki tabloda Eqv operatörünün nasıl çalıştığı gösterilmektedir:

Bitler için Eqv operatörü şu şekilde çalışır (soldan sağa bakıldığında)

0 0 1
0 1 0
1 0 0
1 1 1

Örnekler:

Loş A, B, C, D, MyCheck
A = 10: B = 8: C = 6: D = Sıfır
MyCheck = A > B Eşitlik B > C " Dönecek Doğru.
MyCheck = B > A Denklem B > C " Dönecek YANLIŞ.
MyCheck = A > B Eşitlik B > D " Dönecek Hükümsüz.
MyCheck = A Eşdeğeri B " Dönecek -3

Gösterim operatörü

İki ifadenin mantıksal çıkarımını gerçekleştirmek için kullanılır.

Sözdizimi:

sonuç = ifade1İmp ifade2

sonuç gerekli; Herhangi bir sayısal (Boolean dahil) değişken
ifade1 Mutlaka; Herhangi bir ifade
ifade2 Mutlaka; Herhangi bir ifade

Notlar:

Aşağıdaki tabloda Imp operatörünün nasıl çalıştığı gösterilmektedir:

İfade1 =

ve ifade2 =

O zaman sonuç =

Doğru Doğru Doğru
Doğru YANLIŞ YANLIŞ
Doğru Hükümsüz Hükümsüz
YANLIŞ Doğru Doğru
YANLIŞ YANLIŞ Doğru
YANLIŞ Hükümsüz Doğru
Hükümsüz Doğru Doğru
Hükümsüz YANLIŞ Hükümsüz
Hükümsüz Hükümsüz Hükümsüz

Bitler için Imp operatörü şu şekilde çalışır (soldan sağa bakıldığında)

0 0 1
0 1 1
1 0 0
1 1 1

Örnekler:

Loş A, B, C, D, MyCheck
A = 10: B = 8: C = 6: D = Sıfır
MyCheck = A > B Gösterim B > C " Dönecek Doğru.
MyCheck = A > B Gösterim C > B " Dönecek YANLIŞ.
MyCheck = B > A Gösterim C > B " Dönecek Doğru.
MyCheck = B > A Gösterim C > D " Dönecek Doğru.
MyCheck = C > D Gösterim B > A " Dönecek Hükümsüz.
MyCheck = B Gösterim A " -1 değerini döndürür

Dil talimatları (veya operatörler)– bunlar bazı eylemleri gerçekleştiren veya verileri tanımlayan program birimleridir.

İfade bir veya daha fazla anahtar kelime ve muhtemelen parametreler içerir. Aynı program satırında bulunan çeşitli ifadeler birbirinden iki nokta üst üste işaretiyle ayrılır. İfade çok uzunsa, alt çizgi _ karakterini kullanarak onu birden fazla satıra bölebilirsiniz.

HAKKINDA P düzenleyici atamalar

Atama operatörü, programın yürütülmesi sırasında bir değişkene yeni bir değer atamak için kullanılır. Atama işareti "=".

Örneğin, Şebeke:

x = Kare(5 + Tan(1,8)^2)

x değişkenine ifadenin değerini atar. Sağ tarafta yazılan ifadenin hesaplanması sonucunda gerçek bir sayı elde ederiz. Ancak x değişkenine atanacak değer, o değişkenin türünün nasıl bildirildiğine bağlıdır. Yani, x değişkeni Tek türündeyse sonuç 4.834464, Çift ise 4.83446368725481, Tamsayı ise 5 sonucu atanacaktır.

X değişkeninin veri türü bu ifadenin veri türüyle uyumlu olmalıdır. Atama sırasında bir türden diğerine örtülü dönüştürmeye ek olarak, Visual Basic, işlevleri kullanarak türleri dönüştürme yeteneği sağlar. Örneğin, fonksiyon CDbl verileri Double tipine dönüştürür, CInt– Tamsayı türüne, sıkı sıkıya bağlı– Uzun tipe, CSng– Tek tipe, CStr– String vb. yazmak için

CInt ve Clng işlevleri sonucu yuvarlar. Ayrıca bir sayının kesirli kısmı 0,5 ise en yakın çift sayıya yuvarlama yapılır.

Atama operatörü yalnızca bir değişkene değer atamanıza değil, aynı zamanda VBA nesnelerinin özelliklerinin değerlerini de ayarlamanıza olanak tanır. Örneğin, operatör

Satırlar("1:1").Yazı tipi. Kalın = Doğru

Çalışma sayfasının ilk satırındaki yazı tipini kalın yapar.

SATIR SONU

Kombinasyon<Пробел> + <Знак подчеркивания>satırın sonunda bir sonraki satırın bir önceki satırın devamı olmasını sağlar. Bu arada şunu da unutmamalıyız:

§ String sabitlerini sarmalayarak kıramazsınız

§ Aynı satırın yediden fazla devamına izin verilmez

§ Satırın kendisi 1024 karakterden fazlasını içeremez

Örnek.

Yanlış aktarım Doğru aktarım

Satır = "_ için Visual Basic Satır = "Visual Basic" _

Uygulamalar" ve "Uygulamalar için"

YORUMLAR

Bir programda (") sembolünü satırın sonuna kadar takip eden metin, derleyici tarafından göz ardı edilir ve bir yorumdur. Yorumlar, programa açıklamalar ve açıklamalar eklemek için kullanılır. Yorumlar, bir programda hata ayıklarken faydalıdır: izin verirler hata ayıklama sırasında program satırlarını geçici olarak devre dışı bırakmanız gerekir.

Koşullu Şebeke

Bir koşullu ifade, koşul ifadesinin değerine bağlı olarak belirli talimatları (ifadeleri) yürütür. Durumu kontrol etmeye yönelik blok diyagram şuna benzer:

Pirinç. 1. Dallanma eksik olabilir (bu yapıya bypass da denir).

Pirinç. 2. Koşullu ifadenin iki söz dizimi biçimi vardır: satır ve blok.

Küçük harf formu

Eğer durum Daha sonra [ operatörler_if_true]

Şekil 2'de sunulan algoritma. 1, küçük harfle şu şekilde yazılacaktır:

Eğer durum Daha sonra operatörler_if_true Başka operatörler_if_false

Şekil 2 girişe karşılık gelir

Eğer durum Daha sonra operatörler_if_true

Şekil 3 girişe karşılık gelir

Eğer durum Sonra başka operatörler_if_false

Formu engelle

Eğer durum-1 Daha sonra

[operatörler_if koşulu–1_true]

[operatörler_if_all_conditions_false]]

If ve ElseIf bölümlerinde listelenen koşullar ilişkisel ifadeler veya mantıksal ifadelerdir. Koşullardan biri karşılandığında, ona karşılık gelen Then anahtar sözcüğünü takip eden ifadeler yürütülür ve geri kalan ifadeler göz ardı edilir (yani, başka test yapılmaz ve kontrol, End If ifadesini takip eden ifadeye aktarılır). Mantıksal koşullardan hiçbiri doğru değilse, o zaman operatörler_if_all_önceki_koşullar_false veya bu kısım atlanırsa, koşullu ifadenin ardından kontrol program satırına aktarılır.

If ifadesinin blok biçimi şu durumlarda tercih edilir:

Bir koşul karşılandığında veya karşılanmadığında, birkaç ifade yürütülür (bu durumda satır formu da kullanılabilir, ancak satır çok uzun olacak ve program daha az anlaşılır olacaktır);

Birkaç koşul sırayla kontrol edilir ve bir sonraki koşul karşılandığında sonraki koşulların kontrol edilmesi uygun değildir (bu nedenle ElseIf anahtar kelimesi kullanılır).

Örnek

Şirket toptan alıcılara indirim sağlıyor.

Siparişin bilinen hacmine göre maliyetini belirlemek gerekir.

Sipariş maliyetini hesaplamak için aşağıdaki işlevi kullanırız:

Genel Fonksiyon Order_Cost(Miktar As Long) Double Olarak

Miktar ise<= 999 Then

Sipariş_maliyeti = Adet * 5

ElseIf Miktarı<= 1999 Then

Sipariş_maliyeti = Adet * 4,8

Sipariş_maliyeti = Adet * 4,75

Bu durumda IF operatörünün küçük harf formunu kullanmak mümkündü:

Genel Fonksiyon Order_Cost1(Miktar As Long) Double Olarak

Miktar ise<= 999 Then Стоимость_заказа1 = Количество * 5

Miktar >= 1000 ise ve Miktar<= 1999 Then Стоимость_­ заказа1 = Количество * 4.8

Miktar >= 2000 ise Order_Cost1 = Adet * 4,75

Satırların uzun olması ve herhangi bir sipariş hacmi için tüm kontrollerin sırayla yapılması (ilk prosedür küçük sipariş hacimleri için daha hızlı çalışır) gibi dezavantajların yanı sıra, program doğru ve belki de daha net bir şekilde yazılır.

Ancak koşullardan birinin karşılanması (veya karşılanmaması) durumunda diğerlerinin kontrol edilemeyeceği örnekler vermek mümkündür.

Örneğin, koşullar ortak olarak karşılandığında bazı operatörlerin çalıştırılması gerekir: http://po-teme.com.ua/images/adIIIin/image014_e652e49476c6f0eb9cf40b68cc090828.gif" alt="" width="56" height="27 src="> Kontroller için operatörünü kullanın.

Eğer x>0 ve y ise

o zaman x negatifse, sqr işlevi çağrılırken bir hata oluşacaktır (kök negatif bir sayıdır).

Bu hata tasarımın kullanılmasıyla önlenebilir.

Eğer x > 0 ise O halde y ise< Sqr(x) Then

Girişin son biçiminde Else anahtar sözcüğü varsa son If ifadesini ifade eder.

Seçim operatörü

Vaka Seç ifade

[talimatlar_başka]]

İfade parametresi herhangi bir sayısal veya dize ifadesidir. Mantıksal bir koşulu değerlendirmek yerine ifadenin değeri, parametre tarafından belirtilen değerlerin her biriyle karşılaştırılır. ifade_listesi-N.

Karşılaştırma için değerler dahil ifade_listesi-n, şu şekilde belirtilebilir:

– değerler;

– formdaki değer aralığı başlangıç ​​değeriİle final_value;

– Is formundaki karşılaştırma ifadeleri karşılaştırma_operatörü değeri;

– listelenen ifade türlerinden herhangi birinin listesi (ayırıcı – virgül).

Bir talimat isteğe bağlı sayıda Case bloğu içerebilir. Koşulların hiçbiri doğru değilse Case Else bloğundaki ifadeler yürütülür.

Örneğin, koşul üçün üzerinde bir puan ise bu koşul şu şekilde yazılabilir: Durum 4, 5 veya Durum >3 veya Durum >= 4 veya Durum 4 ila 5.

Not. Is anahtar sözcüğünü girmenize gerek yoktur; otomatik olarak eklenecektir.

Örnek

Yukarıdaki örnekte Select Case yapısı kullanılarak indirimli fiyat şu şekilde çözülebilir:

Genel Fonksiyon Order_Cost2(Miktar As Long) Double Olarak

Koli Adedi Seçiniz

Order_cost2 = Adet * 5

Vaka 1000 - 1999

Order_cost2 = Adet * 4,8

Vaka >= 2000

Order_cost2 = Adet * 4,75

Tipik olarak, karşılaştırma işlemleri, döngü operatörlerinde, operasyonların ilerleyişi hakkında bazı kararlar almak için kullanılır.

Herhangi bir karşılaştırma işleminin sonucu bir Boole değeridir: Doğru, Yanlış.

Bir karşılaştırma ifadesindeki her iki işlenen de aynı veri türüne sahipse VBA, bu tür için basit bir karşılaştırma gerçekleştirir.

Bir karşılaştırma ifadesindeki her iki işlenenin de belirli türleri varsa ve türler uyumlu değilse VBA, tür uyuşmazlığı hatası verir.

Bir karşılaştırma ifadesindeki işlenenlerden biri veya her ikisi de Variant türünde değişkenlerse, VBA, Variant türünü uyumlu bir türe dönüştürmeye çalışır.

Dize karşılaştırması

Dizeleri ilişkisel işleçlerle karşılaştırırken VBA, her dizeyi soldan sağa karakter karakter karşılaştırır.

VBA'da, bir dize diğerine yalnızca her iki dize de tamamen aynı karakterleri tamamen aynı sırada içerdiğinde ve her iki dize de aynı uzunlukta olduğunda eşittir. Örneğin, "abcd" "abcd" "abcd" dizeleri birbirine eşit değildir çünkü VBA, dizeleri karşılaştırırken baştaki veya sondaki boşluk karakterlerini göz ardı etmez.

Değişken uzunluktaki dizeleri karşılaştırırken dikkatli olmalısınız.

İkili ve metin dizesi karşılaştırması

Metni saklamak için bilgisayar, görüntülenen her karakterin benzersiz bir numaraya sahip olduğu bir şema kullanır. Alfabedeki tüm harflerin kendine özgü sayıları vardır. Tipik olarak, büyük harfler küçük harflere göre daha küçük sayılara sahiptir. Belirli bir harfe veya simgeye karşılık gelen sayıya denir karakter kodu.

Dize bilgilerinin ikili karşılaştırmasını gerçekleştirirken VBA, her karakter için bir sayının ikili eşdeğerini kullanır. Bu karşılaştırma yöntemine denir ikili veya ikili ve varsayılan karşılaştırma yöntemidir.

Çünkü büyük harfler daha düşük ikili sayılara sahiptir, büyük harfler küçük harflerden önce alfabetik olarak sıralanır. Bu nedenle, dizelerin ikili karşılaştırması sırasında "ABV" dizisi "abc" dizesinden daha küçük olacaktır.


Dizeleri metinsel olarak karşılaştırırken VBA, karakterlerin ikili eşdeğerini kullanmaz ve büyük ve küçük harf arasında "ayırt etmez". Bir metin karşılaştırmasında "abc" dizisi "ABC" dizisine eşittir.

Bir dize karşılaştırma yöntemi seçmek için Option Compare yönergesini kullanın.


Seçenek Karşılaştır


Bu direktif modül bildirim alanında olmalıdır.

Dize birleştirme

Bir stringin diğerine eklenmesine denir dize birleştirme.

Dize birleştirme, görüntülenecek bir mesaj oluşturma prosedüründe çeşitli kaynaklardan dizeler oluşturmak için yaygın olarak kullanılır. VBA'da dize birleştirme için iki operatör bulunur.

Birleştirme operatörü (&)

VBA'daki (&) operatörü yalnızca dize birleştirme için kullanılır.

Sözdizimi


İşlenen_1 & İşlenen_2 [& İşlenen_3..]


İşlenen_N herhangi bir geçerli dize veya sayısal ifadedir (dizeye dönüştürülür).

Dize birleştirme sonucunun veri türü String'dir.

Bir dize birleştirme ifadesindeki işlenen Boş veya Boş ise, VBA bu işleneni sıfır uzunlukta bir dize (karakter içermeyen bir dize) olarak yorumlar.

Not! Birleştirme işleminin sembolü (&), değişken adından bir boşlukla ayrılmalıdır çünkü aksi takdirde VBA, karakteri Uzun tür tanım karakteri olarak yorumlayabilir.

Dize birleştirmede toplama operatörü

Dizeleri birleştirmek için (+) operatörünü de kullanabilirsiniz.

Bu operatör (&) operatörüyle aynı sözdizimine ve gereksinimlere sahiptir. Ancak VBA'da (+) operatörünün asıl amacının aritmetik toplama olduğunu anlayın. Bu nedenle, program kodunun okunmasında belirsizliği önlemek amacıyla, dize birleştirme için (&) operatörünün kullanılması önemle tavsiye edilir.

Operasyon öncelikleri

Program kodundaki ifadelerin çoğu karmaşıktır (bileşik), yani. iki veya daha fazla ifadeden oluşur.

VBA, karmaşık ifadeleri değerlendirirken şu kurallara uyar:

  • Bir ifadenin parantez içine alınmış kısımları her zaman önce değerlendirilir;
  • Operatör hiyerarşisine bağlı olarak özel işlemler gerçekleştirilir (aşağıdaki tablo);
  • Operatör hiyerarşisi eşitse soldan sağa doğru değerlendirilir.
Şebeke