• 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.
    • Karın kasları(-20) 20 değerini döndürür;
    • karın kasları(20) 20 değerini döndürür.
    Chr Parametrenin sayısal değerine karşılık gelen ANSI karakterini döndürür.
    • Chr(10) bir satır sonu döndürür;
    • Chr(97) bir karakter döndürür A.
    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:

    • DateAdd("d", 32, "01/01/2015") 01/01/2015 tarihine 32 gün ekler ve böylece 02/02/2015 tarihini döndürür.
    • DateAdd("ww", 36, "01/01/2015") 01/01/2015 tarihine 36 hafta ekler ve 09/09/2015 tarihini döndürür.
    Tarih Farkı Verilen iki tarih arasındaki belirtilen zaman aralıklarının sayısını hesaplar.
    • DateDiff("d", "01/01/2015", "02/02/2015") 01/01/2015 ile 02/02/2015 arasındaki gün sayısını hesaplar, 32 değerini döndürür.
    • DateDiff(“ww”, “01/01/2015”, “03/03/2016”) 01/01/2015 ile 03/03/2016 arasındaki hafta sayısını hesaplar ve 61 değerini döndürür.
    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.
    • InStr(1, “İşte aranan kelime”, “kelime”) 13 sayısını döndürür.
    • InStr(14, “İşte arama kelimesi ve işte başka bir arama kelimesi”, “kelime”) 38 sayısını 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.
    • IsDate(“01/01/2015”)İadeler Doğru;
    • IsDate(100)İadeler YANLIŞ.
    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.

    • Sol("abvgDeZicleMn", 4)"abcg" dizesini döndürür;
    • Sol("abvgDeZicleMn", 1)"a" dizesini döndürü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.

    • Orta("abvgDeZicleMn", 4, 5)"nerede" dizesini döndürür;
    • Orta("abvgDeZicleMn", 10, 2)"cl" dizesini döndürü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.

    • Sağ("abvgDeZicleMn", 4)"clmn" dizesini döndürür;
    • Sağ("abvgDeZicleMn", 1)"n" dizesini döndürü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.
    • Kare(4) 2 değerini döndürür;
    • Kare(16) 4 değerini 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
    itibaren
    ifade Null içeriyor

    <= (меньше или равно) 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
    ekonomik görevler

    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ı