Metodik talimatlar ve görevler. VBA Dize Operatörleri ve Vba Negatif Karşılaştırma Operatörleri
VBA mantıksal ifadeleri, bir prosedürde karmaşık karar kriterleri oluşturmak amacıyla bireysel mantıksal ifadelerin sonuçlarını birleştirmek için kullanılır (Tablo B.3).
Tablo B.3 - VBA Mantıksal Operatörleri
Mantıklı |
Sözdizimi |
İsim/Açıklama |
||
Şebeke |
||||
El ve E2 |
bağlaç. Hem E1 hem de E2 ise doğrudur |
|||
Doğru, Aksi takdirde Yanlış |
||||
El veya E2 |
Ayrılık. Eğer biri varsa doğrudur |
|||
veya her ikisi de (E1 ve E2) |
||||
True'ya eşit; aksi takdirde - Yanlış |
||||
El değil |
İnkar. E1 anlamlı ise doğrudur |
|||
değer Yanlış; El ise yanlış |
||||
Doğruya eşit |
||||
El Xor E2 |
İstisna . E1 ve E2 ise doğrudur |
|||
farklı anlamlara sahiptir; aksi takdirde - |
||||
El Eşdeğeri E2 |
Denklik. E1 varsa doğrudur |
|||
E2 ile aynı değerdedir; |
||||
aksi takdirde - Yanlış |
||||
El İmp E2 |
İma. E1 olduğunda yanlış |
|||
Doğru'ya eşittir ve E2 Yanlış'a eşittir; aksi takdirde |
||||
doğru. |
||||
Bu tablodaki E işlenenleri, karşılaştırma operatörü gibi herhangi bir geçerli Boolean sonuç ifadesidir.
Karmaşık İfadeleri Değerlendirirken İşlem Öncelikleri
Karmaşık (bileşik) ifade (karmaşık ifade) - iki veya daha fazla ifadenin birleşiminden oluşan herhangi bir ifadedir. Tablo B.4, gruplara göre işlemleri azalan öncelik sırasına göre içerir; yani grup ne kadar aşağıda yer alırsa, içinde belirtilen işlemler o kadar geç gerçekleştirilir. Bu sırayı değiştirmek için parantez kullanılır. Aynı seviyedeki işlemler ifadede yazılma sırasına göre soldan sağa doğru gerçekleştirilir.
Tablo B.4 - VBA İşlem Öncelikleri
Şebeke |
Yorumlar |
Üs alma, en yüksek öncelik |
|
Tekli eksi - bir sayının işaretini değiştirme |
|
Çarpma ve bölme eşit önceliğe sahiptir; onlar sen- |
|
Tam sayıya göre bölme |
|
Tamsayı bölümünün kalanı |
|
Toplama ve çıkarma eşit önceliğe sahiptir; onlar sen- |
|
ifadede soldan sağa göründükleri şekilde sayılırlar |
|
Herhangi bir dize birleştirme, herhangi bir işlemden sonra gerçekleştirilir. |
|
Bir ifadede ve herhangi bir ifadeden önce aritmetik işlemler |
|
karşılaştırma veya mantıksal işlemler |
|
<, <=, >, >=, |
Tüm karşılaştırma operatörleri eşit önceliğe sahiptir ve siz |
ifadede soldan sağa göründükleri şekilde sayılırlar. |
|
Operatörleri gruplamak için parantez kullanın. |
|
ifadelerdeki karşılaştırma hendeği |
|
zeka oyunu |
Not And Or Xor Eqv Im p - en düşük önceliğe sahip |
operatörler |
|
Ek C VBA Matematik İşlevleri
VBA, Tablo B.1'de gösterilen standart bir matematiksel işlevler seti sağlar.
Tablo B.1 - VBA Matematik İşlevleri
İade / eylem |
||
N'nin mutlak değerini döndürür |
||
N açısının kosinüsü, burada N, ölçülen açıdır. |
||
Bir açının sinüsünü döndürür; N, ölçülen açıdır |
||
radyan |
||
Bir açının tanjantını döndürür; N - radyan cinsinden açı |
||
N'nin yay tanjantını radyan cinsinden bir açı olarak verir |
||
N kuvvetine yükseltilmiş e sabitini döndürür (e - |
||
bu doğal logaritmanın temelidir ve (at- |
||
yaklaşık) 2,718282'ye eşittir |
||
N'nin tamsayı kısmını döndürür. Fix sayıyı yuvarlamaz ancak |
||
negatif, Fix en yakın negatifi döndürür |
||
N'den büyük veya ona eşit katı tam sayı |
||
N'nin tamsayı kısmını döndürür. Int sayıyı yuvarlamaz ancak |
||
herhangi bir kesirli kısmı atar. Eğer N ise |
||
negatif, Int en yakın negatifi döndürür |
||
N'den küçük veya N'ye eşit katı tam sayı |
||
N'nin doğal logaritmasını verir |
||
Rasgele bir sayı döndürür; argüman değil- |
||
zorunlu. Yalnızca Rnd işlevini kullanın |
||
VBA rastgele sayı üretecini başlattıktan sonra |
||
Rastgeleleştirme operatörü tarafından oturdu |
||
Bir sayının işaretini döndürür: N negatifse -1; |
||
N pozitifse 1; 0 eğer N 0 ise |
||
N.VBA ekranlarının karekökünü döndürür |
||
N negatifse yürütme hatası |
||
İşlenen N herhangi bir sayısal ifade anlamına mı geliyor? kabul edilebilir
Trigonometrik fonksiyonların (sinüs, kosinüs ve tanjant) argümanı derece olarak değil radyan cinsinden verilir. Ters trigonometrik fonksiyon A t n (x), programa, tanjantı x aritmetik ifadesinin değerine eşit olan -π / 2'den π / 2'ye kadar radyan cinsinden açının değerini döndürür.
Bir açının radyan ve derece ölçüleri arasındaki ilişki π ≈ 3,14159265358979323846 irrasyonel sayısıyla ifade edilir.
Radyan= |
Derece × π |
Derece= |
Radyan × 180 |
Dereceyi radyana dönüştürmek için yerleşik Excel işlevini de kullanabilirsiniz - Application.Radians(x), burada x açıdır
radyan cinsinden verilmiştir.
Mantisin 15 haneli doğruluğu ile π sabitinin sayısal değerini elde etmek için yerleşik Excel Application.Pi () işlevini veya VBA ark tanjant işlevini kullanabilirsiniz.
Pi=Application.Pi() veya Pi=4*Atn(1)
Trigonometrik fonksiyonların yazılmasına örnekler
Excel'de VBA kodu yazarken her adımda bir dizi yerleşik operatör kullanılır. Bu operatörler matematiksel, string, karşılaştırma ve mantıksal operatörlere ayrılmıştır. Daha sonra, her bir operatör grubuna ayrıntılı olarak bakacağız.
Matematiksel Operatörler
Ana VBA matematik operatörleri aşağıdaki tabloda listelenmiştir.
Tablonun sağ sütunu, parantezlerin yokluğunda varsayılan operatör önceliğini gösterir. Bir ifadeye parantez ekleyerek VBA ifadelerinin yürütülme sırasını istediğiniz gibi değiştirebilirsiniz.
Dize Operatörleri
Excel VBA'daki temel dize operatörü birleştirme operatörüdür & (birleştirmek):
Karşılaştırma Operatörleri
Karşılaştırma işleçleri, iki sayıyı veya dizeyi karşılaştırmak ve türünde bir boole değeri döndürmek için kullanılır Boolean(Doğru ya da yanlış). Ana Excel VBA karşılaştırma operatörleri bu tabloda listelenmiştir:
Mantıksal operatörler
Mantıksal işleçler, karşılaştırma işleçleri gibi, türünde bir boole değeri döndürür Boolean(Doğru ya da yanlış). Excel VBA'nın ana mantıksal operatörleri aşağıdaki tabloda listelenmiştir:
Yukarıdaki tabloda VBA'da bulunan tüm mantıksal operatörler listelenmemektedir. Mantıksal işleçlerin tam listesi Visual Basic Geliştirici Merkezi sitesinde bulunabilir.
Yerleşik İşlevler
VBA'da kod yazarken kullanılabilecek birçok yerleşik işlev vardır. Aşağıda en sık kullanılanlardan bazıları listelenmiştir:
İşlev | Aksiyon |
---|---|
karın kasları | Verilen sayının mutlak değerini döndürür.
|
Chr | Parametrenin sayısal değerine karşılık gelen ANSI karakterini döndürür.
|
Tarih | Geçerli sistem tarihini döndürür. |
Ekleme Tarihi | Verilen tarihe belirli bir zaman aralığı ekler. İşlev sözdizimi: TarihEkleme( aralık , sayı , tarih ) Tartışma nerede aralık verilen süreye eklenen zaman aralığının türünü belirler tarih argümanda belirtilen miktarda sayı . Argüman aralık aşağıdaki değerlerden birini alabilir:
|
Tarih Farkı | Verilen iki tarih arasındaki belirtilen zaman aralıklarının sayısını hesaplar.
|
gün | Belirtilen tarihte ayın gününe karşılık gelen bir tamsayıyı döndürür. Örnek: gün(“29/01/2015”) 29 sayısını döndürür. |
Saat | Belirli bir zamandaki saat sayısına karşılık gelen bir tamsayıyı döndürür. Örnek: Saat(“22:45:00”) 22 sayısını döndürür. |
InStr | Argüman olarak bir tam sayı ve iki dize alır. Aramayı bir tamsayı tarafından verilen konumda başlatarak, ikinci dizenin birinci dizedeki oluşum konumunu döndürür.
Not: Sayı argümanı belirtilmeyebilir; bu durumda arama, fonksiyonun ikinci argümanında belirtilen dizenin ilk karakterinden başlar. |
int | Verilen sayının tamsayı kısmını döndürür. Örnek: Dahili(5.79) sonuç 5'i döndürür. |
Tarih | İadeler Doğru Verilen değer bir tarih ise veya YANLIŞ– tarih değilse.
|
Hata mı | İadeler Doğru Verilen değer bir hata ise veya YANLIŞ– eğer bu bir hata değilse. |
Kayıp | İsteğe bağlı prosedür bağımsız değişkeninin adı, işleve bağımsız değişken olarak iletilir. Kayıpİadeler Doğru söz konusu prosedür bağımsız değişkeni için hiçbir değer iletilmediyse. |
Sayısaldır | İadeler Doğru verilen değer bir sayı olarak ele alınabiliyorsa, aksi halde şunu döndürür: YANLIŞ. |
Sol | Verilen dizenin başlangıcından itibaren belirtilen sayıda karakteri döndürür. İşlev sözdizimi şu şekildedir: Sol( astar , uzunluk ) Nerede astar orijinal dizedir ve uzunluk dizenin başından itibaren sayılan, döndürülecek karakter sayısıdır.
|
Len | Bir dizedeki karakter sayısını döndürür. Örnek: Len("abcdej") 7 sayısını döndürür. |
ay | Verilen tarihin ayına karşılık gelen bir tamsayıyı döndürür. Örnek: Ay(“29/01/2015”) 1 değerini döndürür. |
Orta | Verilen dizenin ortasından belirtilen sayıda karakteri döndürür. İşlev sözdizimi: Orta( astar , Başlangıç , uzunluk ) Nerede astar orijinal dizedir Başlangıç- çıkarılacak dizenin başlangıcının konumu, uzunlukçıkarılacak karakter sayısıdır.
|
Dakika | Verilen süredeki dakika sayısına karşılık gelen bir tamsayıyı döndürür. Örnek: Dakika("22:45:15") 45 değerini döndürür. |
Şimdi | Geçerli sistem tarihini ve saatini döndürür. |
Sağ | Verilen dizenin sonundan itibaren belirtilen sayıda karakteri döndürür. İşlev sözdizimi: Sağ( astar , uzunluk ) Nerede astar orijinal dizedir ve uzunluk verilen dizenin sonundan itibaren sayılarak çıkarılacak karakter sayısıdır.
|
Saniye | Belirtilen süredeki saniye sayısına karşılık gelen bir tamsayıyı döndürür. Örnek: İkinci(“22:45:15”) 15 değerini döndürür. |
kare | Bağımsız değişkende iletilen sayısal değerin karekökünü döndürür.
|
Zaman | Geçerli sistem saatini döndürür. |
Ubound | Belirtilen dizi boyutunun üst simgesini döndürür. Not:Çok boyutlu diziler için isteğe bağlı bir bağımsız değişken, hangi boyutun döndürüleceği dizini olabilir. Belirtilmemişse varsayılan 1'dir. |
Tüm aritmetik, karşılaştırma, mantıksal ve birleştirme operatörleri burada ayrıntılı olarak açıklanmaktadır. Bu operatörler hakkında bilinmesi gereken her şeyi toplamaya çalıştım. Her operatöre bir örnek sağlanır. 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çindir.
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 tamsayıdır. Aynı ifadede birden fazla ^ operatörü kullanılıyorsa değerlendirme soldan sağa doğru yapılır. Genellikle sonuç türü Double'dır. Ancak eğer veya derece, veya sayı- O halde boş ifade sonuç Boş da.
Örnek:
Loş Değerim
MyValue = 2^2" değeri 4 değerini döndürecektir.
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 güce yükseltmeniz gerekiyorsa, o zaman birkaç operatör kullanmak daha iyidir - tek bir üstel yerine çarpma, kendiniz karar verin, geçen ifadenin hesaplanmasıyla bir milyon geçişten oluşan bir döngü:
test1 = 2^8" 893ms
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 büyükten en küçüğ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 bir Uzun Tekli veya Tarih, ardından sonuç, Çift içeren bir Varyant'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ılanlardan farklıdır.
Örnek:
Loş Değerim
MyValue = 2 * 2 ", 4 değerini döndürecektir.
Değerim = 459,35 * Değerim " 495,35 * 4 değerini döndürecek
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 de Bayt, Tamsayı, Tek türündeyse sonuç Tek olur. Ancak ifadenin boyutları Single kapsamına uymuyorsa hata oluşur.
- Her iki ifade de Bayt, Tamsayı veya Tek içeren Değişken türündeyse sonuç Tek Değişken olur. Ancak ifadenin boyutları Single kapsamına uymuyorsa Double Variant.
- Sayılardan biri Ondalık türündeyse sonuç Ondalık olur.
Eğer 1 numara veya 2 numara- Boş, basitçe normal 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:
Böyle bir bölme gerçekleşmeden önce ifadeler Bayt, Tamsayı veya Uzun ifadelere yuvarlanır. Genellikle sonucun 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ölmenin geri kalanı)
İki sayıyı bölerek bölmenin kalanını almak 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 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ı toplamak 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 ne olacağını, eklemeyi veya dize birleştirmeyi belirleyemezsiniz. Birleştirme için yanlış anlamaları önlemek ve kodu daha okunaklı 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 birinin sayısal türü varsa ve diğerinin Null dahil herhangi bir Variant değeri varsa toplama işlemi gerçekleşir.
- İfadelerden biri bir 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.
Normal toplama için 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ç bir 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ştirilmemiş 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 "Karışık değişkenleri başlat
MyNumber = Var1 + Var2" dönecek
40.
var1 = "34"
Var2 = "6" " Değişkenleri dizelerle başlat
MyNumber = Var1 + Var2" dönecek"346" (oldu)
"birleştirme, ekleme değil!").
Tavsiye:
Ekleme (+) operatörü tarih eklemek için kullanılabilir; Tarih türündeki değişkenler:
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 y'nin 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şlemi Tek ve Uzun türlerini içeriyorsa 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 cinsinden) hesaplamak için kullanılabilir:
Loş d1 Tarih Olarak
Dim d2 Tarih Olarak
Loş olduğu sürece farklı
d1 = TarihSeri(1983, 10, 14)
d2 = TarihSeri(2002, 8, 15)
razn = d2 - d1 " gün farkı (6880).
Karşılaştırma Operatörleri
Bazı 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; herhangi bir ifade
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 bir dizi harf ve sayı
Notlar:
Aşağıdaki tablo, karşılaştırma işleçlerinin bir listesini ve bir ifadenin sonucunun belirlendiği koşulları (Doğru veya Yanlış) içerir.
Şebeke |
eğer doğruysa |
Yanlış ise |
Eğer boşsa |
< (меньше чем) | ifade1 < ifade2 |
ifade1 >= ifade2 |
bir |
<= (меньше или равно) | ifade1 <= ifade2 |
ifade1 > ifade2 |
|
> (büyüktür) | 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 karşılaştırmanın sayı mı yoksa dize mi olacağını belirlemek her zaman mümkün olmuyor. Aşağıda, her iki ifadenin de Variant dışında bir türe sahip 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ı karşılaştırması gerçekleşir.
- Her iki ifade de dize ise, bir dize karşılaştırması gerçekleşir. (daha küçük olan dize, ilk ve sonraki harfleri daha küçük bir ascii koduna sahip olan dizedir).
- İfadelerden biri sayı, diğeri sayı olarak yorumlanabilecek bir Varyant ise sayılar karşılaştırılır.
- İfadelerden biri sayı, diğeri sayı olarak yorumlanamayan bir Variant dizesi ise bir hata oluşur (Tip 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 ise dize içeriyorsa sayısal ifade, dize ifadesinden 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.
Single değişkeni Double ile karşılaştırıldığında Double, Single 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, aksi halde hata oluşabilir. Böylece kesirli kısmın kaybıyla ifadeler eşit olarak yorumlanabilir, ancak gerçekte biri diğerinden farklı olacaktır. (küçük de 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,
" operatörleri 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ı C nesnesine gönderme yapmasını sağlar:
A = C'yi ayarlayın
SetB=C
Örnekler:
Loş MyObject, YourObject, ThisObject, _
DiğerObject, ThatObject, MyCheck
YourObject = MyObject'i ayarlayın " nesne referansları oluştur
ThisObject'i Ayarla = MyObject
ThatObject = OtherObject olarak ayarlayın
MyCheck = YourObject Is ThisObject " True değerini döndürecektir.
MyCheck = ThatObject Is ThisObject ", False değerini döndürecektir.
" 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ışı, dize karşılaştırmasının varsayılan türüne bağlıdır. (Seçenek Karşılaştırma ifadesi).
İkili tür ayarlanmışsa (yani ikili karşılaştırma), dizeler Ascii kodlarına göre karşılaştırılır (farklı kodlamalarda farklıdır). Genellikle 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. Böyle bir karşılaştırmayla sıra öncekinden farklıdı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 dizenin bir maskeye ait olup olmadığını kontrol etmektir. Maskede aşağıdaki özel ürünler kullanılabilir. karakterler:
Herhangi bir tek karakter
* Sıfır veya daha fazla karakter
# Herhangi bir rakam (0-9).
Karakter listesindeki herhangi bir karakter
[!charlist] Karakter listesinde olmayan herhangi bir karakter
Burada küçük bir not var. Özel içeren bir maske üzerindeki bir dizenin sahipliğini kontrol etmek için. semboller (örneğin, dizede [,?,#,],* sembolleri olup olmadığını kontrol edin), o zaman from öğesini 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 bir sıra belirtmek için maske kullanırsınız. Parantez içindeki her şey herhangi bir ayırıcı (boşluk, virgül vb.) içermemelidir, aksi takdirde bunlar da diziye dahil edilecektir.
Maske doğrulaması için başka önemli kurallar da vardır:
- Karakter listesinin başındaki (!) işareti, bu listede yer almayan karakterleri 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, artan ASCII kodları olmalıdır. Onlar. doğru maske, ama hayır.
- 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şleci kullanabilirsiniz. & 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. Sonucun 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 dize "Merhaba Dünya".
MyStr = "Kontrol Et" & 123 & "Kontrol Et"
" "Doğrula 123 Doğrula" dizesini döndürür.
Mantıksal operatörler
Bu en ilginç operatör grubudur. Programlarken onların çalışmalarını ve uygulamalarını bilmeniz gerekir (ve yalnızca Visual Basic'te değil).
Visual Basic'te bunlardan 6 tane var. Her operatörü ayrıntılı olarak ele alalım.
Ve operatör
İki ifadede 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 = |
Bu 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ü ayrıca 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ın)
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 yakından bakalım. 10 sayısı bit cinsinden şu şekilde temsil edilir (tetrad olarak, yani 4 bit):
Ve 8 sayısı şöyle:
And operatörünün çalışması sonucunda yukarıdaki tabloya göre şunu elde edeceğiz:
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ığından emin olduk.
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 = |
Bu 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ın)
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 yakından bakalım. 10 sayısı bit cinsinden şu şekilde temsil edilir (tetrad olarak, yani 4 bit):
Ve 5 numara:
Or operatörünün çalışması sonucunda 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ın)
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 de 1 olduğunda Xor'un 0 üretmesi açısından farklılık gösterir. Xor operatörü, iki kez uygulandığında aynı sayıyı üretmesi açısından ilginçtir. 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 X veya 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ğerlerinin değişimidir:
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 doğru):
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 eşdeğer 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ın)
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şdeğeri B>C" dönecek doğru.
MyCheck=B>A Eşitliği B>C" dönecek YANLIŞ.
MyCheck=A>B Eşdeğeri B>D" dönecek Hükümsüz.
MyCheck = A Eşit B " dönecek
-3
imp operatörü
İki ifadenin mantıksal çıkarımını yapmak için kullanılır.
Sözdizimi:
sonuç = ifade1 imp 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 = |
Bu 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ın)
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 İmp C>B" dönecek doğru.
MyCheck=B>A İmp 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 dönecek
Dil talimatları (veya operatörler) bazı eylemleri gerçekleştiren veya verileri tanımlayan program birimleridir.
Bir ifade bir veya daha fazla anahtar kelimeden ve isteğe bağlı olarak parametrelerden oluşur. Aynı program satırında bulunan çeşitli ifadeler birbirinden iki nokta üst üste işaretiyle ayrılır. İfade çok uzunsa, kaydırma için _ alt çizgi karakterini kullanarak onu birkaç satıra bölebilirsiniz.
HAKKINDA P editörödenekler
Atama ifadesi, 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)
ifadenin değerini x'e atar. Sağ tarafta yazılan ifadeyi değerlendirdiğimizde reel bir sayı elde ederiz. Ancak x değişkenine atanacak değer, bu değişkenin türünün nasıl bildirildiğine bağlıdır. Dolayısıyla, x değişkeni Tek türündeyse sonuç 4.834464, Çift ise 4.83446368725481 ve Tamsayı ise 5 olarak 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 dili, işlevleri kullanarak türleri dönüştürme yeteneği sağlar. Örneğin, fonksiyon CDBL verileri çift türe dönüştürür, CInt– Tamsayı yazmak için, sarılmak– Uzun yazmak için, csng– Tek tipe, CStr- String vb. yazmak için
CInt ve Clng işlevleri sonucu yuvarlar. Bu durumda 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 ayarlamanıza da 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ını 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. Bunu yaparken şunu hatırlamanız gerekir:
§ Dize sabitlerini sarmalamayın
§ Aynı satırın yediden fazla devamına izin verilmez
§ Dizenin kendisi 1024'ten fazla karakter içeremez
Örnek.
Yanlış aktarım Doğru aktarım
String = "Visual Basic for _ String = "Visual Basic" _
Uygulamalar" ve "Uygulamalar için"
YORUMLAR
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ı sağlar.
Koşullu Şebeke
Koşullu operatör, koşul ifadesinin değerine bağlı olarak belirli talimatları (operatörleri) yürütür. Durumu kontrol etmeye yönelik akış şeması şuna benzer:
Pirinç. 1. Dallanma eksik olabilir (böyle bir yapıya bypass da denir).
Pirinç. 2. Koşullu operatörün iki söz dizimi biçimi vardır: satır içi 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
blok şekli
Eğer koşul-1 Daha sonra
[operatörler_if koşulu–1_true]
[ifadeler_if_all_conditions_false]]
If ve ElseIf bölümlerinde listelenen koşullar ilişkisel veya boolean ifadelerdir. Koşullardan biri karşılandığında, eşleşen Then anahtar sözcüğünü takip eden ifadeler yürütülür ve ifadelerin geri kalanı göz ardı edilir (yani başka bir kontrol gerçekleştirilmez ve kontrol, End If ifadesini takip eden ifadeye aktarılır). Mantıksal koşullardan hiçbiri doğru değilse, o zaman ifadeler_if_all_önceki_koşullar_false veya bu bölü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:
Koşul karşılandığında veya karşılanmadığında, birkaç ifade yürütülür (bu durumda küçük harf formu da kullanılabilir, ancak satır çok uzun olacaktır 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 önerilmez (ElseIf anahtar sözcüğü bunun için kullanılır).
Örnek
Şirket toptan alıcılara indirim sağlıyor.
Siparişin bilinen hacmine göre maliyetini belirlemek gerekir.
Siparişin maliyetini hesaplamak için aşağıdaki işlevi kullanırız:
Kamu Fonksiyonu OrderCost(Miktar Uzunluğu) 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 ifadesinin küçük harf biçimini de kullanabilirsiniz:
Genel Fonksiyon Order_Cost1(Miktar Uzunluğu) Double Olarak
Miktar ise<= 999 Then Стоимость_заказа1 = Количество * 5
Sayı >= 1000 ise ve Sayı<= 1999 Then Стоимость_ заказа1 = Количество * 4.8
Miktar >= 2000 ise SiparişMaliyeti1 = Adet * 4,75
Satırların uzun olması gibi eksiklikleri dikkate almazsak ve herhangi bir sipariş hacmi için tüm kontroller sırayla yapılırsa (ilk prosedür küçük sipariş hacimleri için daha hızlı çalışır), o zaman program doğru ve belki de daha görsel olarak yazılır.
Ancak koşullardan birinin karşılanması (veya karşılanmaması) durumunda diğerlerinin kontrol edilemediği durumlara örnekler verilebilir.
Örneğin, koşullar bir arada karşılandığında bazı ifadelerin yürütülmesi gerekir: kontroller kullanım operatörünü
Eğer x>0 ve y ise o zaman negatif bir x değeriyle, sqr işlevi çağrılırken bir hata meydana gelecektir (kökün altında negatif bir sayı vardır). Bu hata inşaat kullanılarak önlenebilir. Eğer x > 0 ise O halde y ise< Sqr(x) Then Son gösterimde Else anahtar sözcüğü varsa bu son If ifadesini ifade eder. İfadeyi seçin 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 değerleri dahil ifade listesi-n, şu şekilde verilebilir: – değerler; – formdaki değer aralığı başlangıç değeriİle bitiş_değeri; – 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 ifadede herhangi bir sayıda Case bloğu bulunabilir. Koşulların hiçbiri doğru değilse Case Else bloğunun ifadeleri 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 kelimesi çıkarılabilir, kendisi eklenecektir. Örnek Yukarıda tartışılan indirimli fiyat örneği, Vaka Seçimi yapısı kullanılarak aşağıdaki ş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 Bir VBA programı bir dizi ifadeden oluşur. Programlamada takip edilmesi gereken bir takım kurallar vardır. Yani tek bir satıra birden fazla ifade yerleştirebilirsiniz. Aynı satırdaki ifadelerin arasına iki nokta üst üste konur. Herhangi bir satır, birinci satırın sonuna "Boşluk" + "Alt Çizgi" (_) karakterleri yerleştirilerek ikiye bölünebilir; bu durumda ikinci satır, birincinin devamı sayılacaktır. Yorumlar programın okunmasını kolaylaştırmak için kullanılır. VBA'da yorum girmenin iki yolu vardır: satırın herhangi bir yerine yerleştirilebilen kesme işareti (') kullanmak ve kesme işareti yerine ayrılmış Rem sözcüğünü kullanmak. 1. Loş Operatör değişken türlerini bildirmek içindir. 1. Tamsayı Olarak Dim A - A değişkeni bir tamsayı olarak bildirilir, yani. yalnızca tam sayı değerlerini saklayacak
. 2.
Dim D Tarih Olarak - D değişkeni tarihleri saklamak için bildirildi.
3.
Dim Soyadı, Ad As String – değişkenler bildirilir. Soyadı ve Adı, metin depolamaya yöneliktir.
4.
Dim B(12) Tam Sayı Olarak - 12 tam sayıdan oluşan tek boyutlu bir dizi (vektör) bildirilir ve varsayılan olarak dizinin ilk öğesi B(0) ve sonuncusu B(12) olur.
5.
Dim B(3,3) Tekli Olarak – gerçek sayılardan oluşan iki boyutlu 3x3'lük bir dizi (matris) bildirilir.
Değişken türü belirtilmezse, varsayılan olarak Değişken türü kullanılır. Ancak belirli bir değişken tipinin belirtilmesi programın daha güvenilir olmasını sağlar ve çalışmasını hızlandırır çünkü VBA'nın her erişildiğinde bildirilmemiş bir değişkeni tanımak için zaman harcaması gerekmez. M dizisinin boyutu önceden bilinmiyorsa ve program sırasında belirlenirse, diziyi açıklarken eleman sayısı belirtilmez ve dizi şu şekilde tanımlanır: Dim M() Tamsayı Olarak Dizi elemanlarının sayısını (örneğin N) belirledikten sonra operatörünü yazmanız gerekir. 2. atama operatörü Bir değişkene değer atamak için kullanılır. Sözdizimi: Değişken (veya nesne özelliği) = ifade. 1. a \u003d 5 - 5 değerini atamak için A değişkeni
; 2. b = "Yönetici" - değişken b atamak"Yönetici" anlamına gelir; Adres=E-Tablolar("Kuruluşlar").Hücreler(2,2) – Geçerli çalışma kitabının Organizasyon sayfasında bulunan B2 hücresinin içeriğini Adres değişkenine atayın;
LastName=UserForm1.TextBox1.Text - değişken UserForm1 kullanıcı formunun TextBox1 alanının içeriğinin atanacağı soyadı.
Ö İfadeyle/Sonla programcıyı aynı nesnenin adının çok sayıda tekrarından kurtarır. Sözdizimi: Nesne ile operatör1 operatör2 operatörN Örneğin, bir dizi ifade yerine UserForm1.TextBox1.Text = Tarih UserForm1.TextBox2.Text = " " UserForm1.ComboBox1.Text = " " bu şekilde yazılabilir TextBox1.Text = Tarih .
TextBox2.Text = " " .
ComboBox1.Text = " " KEP Sayfa 1'de A sütununa ikinci satırdan başlayarak 'çalışan oranları' kaydedilir. ComboBox1 açılan kutusunu UserForm1'de doldurun ‘Programın ilk satırı Sayfa 1’de A sütunundadır’ dolu hücrelerin sayısı sayılır, sonuç ‘N değişkenine atanır’ N=Application.CountA(Sayfalar("Sayfa1").Aralık("A:A")). D=”A2:A”&Cint(N) Sheets("Sheet1").Range(D).Name="Oranlar" TextBox1.Text = Tarih .
TextBox2.Text = " " .
ComboBox1.Text = " " .
ComboBox1.Rowsource = "Ücretler" 1. Koşullu If/Then/Else İfadesi- belirli bir durumu kontrol etmenize ve kontrolün sonuçlarına bağlı olarak bir veya başka bir işlemi gerçekleştirmenize olanak tanır Sözdizimi: Eğer durum Daha sonra operatörler1 [ Başka operatörler2] Koşul doğruysa ifade1 yürütülür, aksi takdirde ifade2 yürütülür. Ayrıca blok olarak yazılan karmaşık bir koşullu operatörün kullanılmasına da izin verilir: Eğer durum1 Daha sonra operatörler1 ElseIf durum2 Daha sonra operatörler2 operatörler3 Soyadı=.TextBox1.Text Soyadı ="" ise MsgBox"Soyadı girmediniz" REM 1 numaralı onay kutusu işaretlenirse müşteriye %5 indirim sağlanır. ' Tutar - müşteri tarafından ödenen para miktarı ‘ Ürünün maliyeti Maliyet değişkeninde saklanır UserForm1.CheckBox1.Value = Doğru ise O zaman Tutar=Maliyet-Maliyet*0,05 Aksi takdirde Tutar=Maliyet 1) REM Tarifenin belirlenen tarife ve Zaman'ın çalışılan saat olduğunu varsayalım. Zaman ve hız sırasıyla TextBox1 ve TextBox2'deki giriş alanlarına girilir. Maaş 'Tarife*Zaman formülü kullanılarak hesaplanır. 'Hesaplanan maaş' şeklinde çıktı verecek bir program yazalım. Label4 - maaşın değerini çıkarmak için hazırlanmış bir etiket If IsNumeric(TextBox1.Text)=True Ve _ IsNumeric(TextBox2.Text)=Doğru O halde Tarife=TextBox1.Text Zaman=TextBox2.Text Label4.Caption=Tarife*Zaman İlk örnekte bir numaralı kullanıcı formuyla çalışma yapılıyor. değişken Soyadı bir numaralı giriş alanının içeriği atanır. Daha sonra giriş alanına herhangi bir şeyin girilip girilmediği (değişkenin boş olup olmadığı) kontrol edilir. Soyadı). Değişken ise Soyadı boşsa bir mesaj kutusu görüntülenecektir. İkinci örnekte REM kelimesiyle başlayan ilk satırlar ve kesme işaretleri değişkenlerin amacını açıklayan yorumlardır. Koşullu operatör, müşteri tarafından ödenen tutarı belirler. Üçüncü örnek, giriş alanlarına sayıların girilip girilmediğini kontrol eder. Sayılar iki alana girilirse giriş alanlarının değerleri değişkenlere atanır ve tarifenin zamanla çarpılması sonucu elde edilen değer etikete atanır. 1) Koşulsuz atlama operatörü git Program içerisinde belirtilen satıra geçişi ayarlamak için tasarlanmıştır. Sözdizimi: Dizeye Git Gerekli dize argümanı herhangi bir satır etiketi veya satır numarası olabilir. If IsNumeric(TextBox1.Text)=False O halde Git Hatası Hata: MsgBox "Sayıları girerken hata oluştu!" Yukarıdaki örnek, bir numaralı giriş alanına bir sayının girilip girilmediğini kontrol eder. Sayı girilmediği takdirde Error yazan satıra geçiş yapılır ve ekrana mesaj gelir. 2) Döngü ifadesi İçin/Kime/Sonraki tekrarlanan parçaları programlamak için tasarlanmıştır; Döngüsel algoritmaları açıklamak. Sözdizimi: İçin değişken=M1 İle M2[ adım M3] operatörler M1, M2, M3 ifadelerdir. Döngü ifadesi, değişken (sayaç) belirtilen adım M3 ile başlangıç değeri M1'den son değer M2'ye değişirken bir grup ifadenin yürütülmesini tekrarlar. Adım belirtilmemişse 1 olduğu varsayılır. Soyadı = Sayfalar("Çalışanlar").Hücreler(I,1) UserForm1.ComboBox1.AddItem Soyadı Yukarıdaki örnekte, Çalışanlar çalışma sayfasının, bir numaralı UserForm'un bir numaralı birleşik giriş kutusunda listelenecek çalışanların adlarının ilk sütununa sahip olduğu varsayılmaktadır. Programın çalışma algoritması: 1) Değişken I'e 2 değeri atanır. 2) Soyadı değişkenine “Çalışanlar” sayfasında bulunan A hücresinin (I, 1) değeri atanır. (Döngü ilk çalıştırıldığında bu A(2,1) hücresidir) 3) Soyadı değişkeninden bir öğe ComboBox1 açılan kutusunun listesine eklenir. 4) I değişkeninin değerine 1 eklenir (adım belirtilmemişse 1 olduğu varsayılır). I değerinin 10'u (M3=10 örneğinde I değişkeninin son değeri) aşıp aşmadığı kontrol edilir. I değeri 10'dan küçük veya ona eşitse 2-4. adımlar gerçekleştirilir, aksi takdirde döngü sona erer. Böylece yukarıdaki program ComboBox1'in açılan kutu listesini verilerle doldurmanıza olanak tanır. Çözümde kullanılan ana algoritmalar Aşağıdaki örnekte ana algoritmaları ele alacağız. Sözleşme kapsamındaki işin yürütülmesine farklı departmanlardan çalışanlar katıldı. Tabloda, "Sayfa 1" sayfasında, her çalışanın çalıştığı saat sayısına ilişkin veriler sunulmaktadır (Şekil 8). Şekil 8. Çalışılan saat sayısına ilişkin veriler şirket çalışanları
ekonomik görevler