Vba hat operatörleri. VBA ifadeleri. Katlanan virüslerin hesaplanmasındaki işlemler için öncelikler

Burada, tüm aritmetik operatörler, eşleşen operatörler, mantıksal operatörler ve birleştirme operatörlerinin açıklandığı bildirilmektedir. Bu operatörler hakkında bilmeniz gerekenlerin hepsini denedim. Deri operatör maє poposu. Standart Help a VB5'ten çevirinin açıklamaları tarafımdan yapılmıştır.

Aritmetik operatörler

operatör ^ (adım bağlantısı)

Adımların adım numarası için atama operatörü.

Sözdizimi:

sonuç = numara^adımlar

parametreler:

sonuç
numara
adımlar- obov'yazkova; sayısal viraz gibi ol

Saygı duymak:

numara daha olumsuz olabilirsin, sadece o ruh halindeyken, eğer adımlar- bütün sayı. Bir şeye gelince, ^ operatörlerinin sayısı galip gelir, o zaman operatörlerin sayısı sağda hesaplanır. Sonuç türünü çağırın - Çift. Ancak, ne kadar adımlar, veya numara- Boş viraz, o zaman sonuç boş etiketleyin.

popo:

loş Değerim
Değerim = 2^2" 4. Dönüş.
Değerim = 2^3^3" dönüş 512 (2^3=8, 8^3=512)
Değerim=(-5)^3" dönüş -125.

Lütfen:

Sonraki adımdaki numarayı aramanız gerekiyorsa, operatör sayısını kazanmak daha iyidir - çarpan, daha düşük olan - adıma giden adım, kendiniz karar verin, bir milyonun döngüsü geçerek sayımın üzerinden geçer:

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

operatör * (çoğul)

İki sayıyı çarpmanın zaferi.

Sözdizimi:

sonuç = 1 numara* 2 numara

parametreler:

sonuç- ayakkabıların viskoz; sayısal bir değişiklik olmak
1 numara- Obov'yazkovo; sayısal viraz gibi ol
2 numara- Obov'yazkovo; sayısal viraz gibi ol

Saygı duymak:

Sonucun veri türü, iki sayının en doğru türü ile aynıdır. Hassasiyet sırası, en yüksekten en düşüğe - Bayt, Tamsayı, Uzun, Tek, Para Birimi, Çift, Ondalık. Gerçek, є suçluyor:

  • Single ve Long'u çarparsanız, sonuç Double olur.
  • ne tür bir danich sonuç- Sonucun kendisinin dönüştürülemediği Uzun Tek veya Tarih, ardından Double'nin yerini almak için sonuç Variant'a dönüştürülür.

Yakscho 1 numara veya 2 numara

Vіdmіnniy vіd çokluğu açısından doğruluk sırası sessizdir, bu da eklemelerde puanlanır ve vіdnіmannі.

popo:

loş Değerim
Değerim = 2*2” 4. Dönüş.
Değerim = 459.35 * Değerim "(!LANG:(!LANG: 495.35*4 çevirin

operatör / (podіl)

İki sayının yarısı için zafer ve sonucu bir kayan noktadan alın.

Sözdizimi:

sonuç = 1 numara / 2 numara

parametreler:

sonuç- obov'язковий; будь-яка числова змінна !}
1 numara- Obov'yazkovo; sayısal viraz gibi ol
2 numara- Obov'yazkovo; sayısal viraz gibi ol

Saygı duymak:

SonuçÇağrı Çift yazabilir. Gerçek, є suçluyor:

  • Bayt, Tamsayı, Tek türünü bulabilirseniz, sonuç Tek'tir. Prote, örneğin, viraz Tek kareye sığmaz, affı vardır.
  • Varyant türünü yenmek, Bayt, Tamsayı veya Tek intikam almak mümkünse, sonuç Tek Varyanttır. Ancak bu tür genişletmeler Tekli, Çiftli Varyant kapsamına girmez.
  • Sayılardan biri Decimal türündeyse sonuç Decimal olur.

Yakscho 1 numara veya 2 numara- Null, basitçe orijinal 0 olarak yorumlanır.

Uygulamak:

loş Değerim
Değerim = 10/4" !} dönüş 2.5.
Değerim = 10/3" dönüş 3.333333.

operatör \ (tamsayı ile eşleşti)

İki sayının yarısını kazanmak ve tüm sonucu almak.

Sözdizimi:

sonuç = 1 numara \ 2 numara

parametreler:

sonuç- ayakkabıların viskoz; sayısal bir değişiklik olmak
1 numara- Obov'yazkovo; sayısal viraz gibi ol
2 numara- Obov'yazkovo; sayısal viraz gibi ol

Saygı duymak:

Bundan önce, böyle bir alan beklendiği için vraziler Byte, Integer veya Long vraziv'e yuvarlanır. Sonuç Bayt, Bayt değişkeni, Tamsayı, Tamsayı değişkeni, Uzun veya Uzun değişken için veri türünü belirtin. Bir parçanın oluşup oluşmadığı.

Ancak, bir Null varsa, sonuç Null olur. İster viraz olsun, intikam almak Boş 0 olarak yorumlanır.

Uygulamak:

loş Değerim
Değerim = 11\4" dönüş 2.
Değerim = 9\3" dönüş 3.
Değerim = 100\3" dönüş 33.

mod operatörü

Rozpodіlu için zafer, otrimannya fazlasının rozpodіlu ile karşı karşıya olduğu iki sayı.

Sözdizimi:

sonuç = 1 numara mod 2 numara

parametreler:

sonuç- ayakkabıların viskoz; sayısal bir değişiklik olmak
1 numara- Obov'yazkovo; sayısal viraz gibi ol
2 numara- Obov'yazkovo; sayısal viraz gibi ol

Saygı duymak:

Rozpodіlі sayılar olduğunda, iktidar noktası yuvarlanır. Örneğin, saldıran bir virazunun sonucu daha pahalıdır 5:

A=19 Mod 6.7

Burada neler oluyor? Arkada, 6.7 sayısı 7'ye yuvarlanır, sonra sıralanır, 2.7 alırız. Boşluktaki fazla = 5. (2 * 7 = 14, 19 - 14 = 5).

Sonuç, Byte, Byte varyantı, Tamsayı, Tamsayı varyantı, Uzun veya Uzun anlamına gelen Varyant türünde olabilir.

Sanki bir Null ise, sonuç Null olur. İster viraz olsun, intikam almak Boş 0 olarak yorumlanır.

Uygulamak:

loş Sonuçlarım
MyResult = 10 Mod 5" dönüş 0.
MyResult = 10 Mod 3" dönüş 1.
MyResult=12 Mod 4.3" dönüş 0.
MyResult = 12.6 Mod 5" dönüş 3.

operatör + (ilave)

İki sayı eklemek için zafer.

Sözdizimi:

sonuç = viraz1+viraz2

parametreler:

sonuç- ayakkabıların viskoz; sayısal bir değişiklik olmak
viraz1
viraz2- Obov'yazkovo; viraz ol

Saygı duymak:

+ operatörünü kazanırsanız, satır ekleyerek veya birleştirerek ne olacağını belirleyemezsiniz. Birleştirme için, karışıklığı gidermek ve kodun okunmasını kolaylaştırmak için & operatörünü kullanın.

Varyantlardan biri Varyant değilse, aşağıdaki kurallar geçerli olacaktır:

  • Sayısal bir türü (Byte, Boolean, Integer, Long, Single, Double, Date, Currency veya Decimal) sıralayabiliyorsanız, onu katlamanız gerekir.
  • Bir sıradaki viraziye hakaret gibi - birleştirme.
  • Değişkenlerden biri sayısal türdeyse ve Null dahil bir Variant değeriyse, ek girdi gerekir.
  • Değişkenlerden yalnızca biri bir satırsa ve Variant değeriyse, birleştirme gereklidir.
  • Eğer virazivlerden biri Empty'nin intikamını alırsa, virazı değiştirmeden diğerine döner.
  • Farklardan biri sayısal bir tür olabileceğinden ve sonraki satırda bir tür uyumsuzluğu affı var.
  • Tıpkı Viraz Null gibi - Null ile aynı sonuç.

Virazi Varyantı sizi rahatsız ettiyse, aşağıdaki kurallar geçerli olacaktır:

  • Yakscho virazi numaralarını rahatsız ediyor - pis koku artıyor.
  • Sıranın virazisinden rahatsızsanız, koku birleşir.
  • Rakamlardan sadece biri farklı ve bir sonraki satır eklenecek.

Nihai katlama için, sonuca verilen veri türü, iki sayının en doğru türü ile aynıdır. Saldırı doğruluğunun sırası Bayt, Tamsayı, Uzun, Tek, Çift, Para Birimi ve Ondalık şeklindedir. Є suçlamak:

  • Single ve Long eklerseniz, sonuç Double olur.
  • Tarih türüyle, başka bir şekilde iki kez eklerseniz, sonuç bir Tarih olur.

Biri veya diğeri Null virazi ise, sonuç da Null olur. Nasıl alınıp intikam alınır Boş, sonuç Tamsayı. Sadece bir tane ise, sonuç başka bir viraz tarafından değiştirilmez.

Uygulamak:

loş Numaram, Var1, Var2
Numaram = 2 + 2" dönüş 4.
Numaram = 4257.04 + 98112" dönüş 102369.04.

var1="34"
Var2 = 6 İlk değişiklikler
MyNumber = Var1 + Var2" dönüş 40.

var1="34"
Var2="6" Satırlardaki ilk değişiklikler
MyNumber = Var1 + Var2" dönüş"346"
"Birleştirme, ekleme değil!").

Lütfen:

Katlama operatörü (+) tarihleri ​​katlamak için kullanılabilir. Tarih türünü değiştirme:

loş Tarih olarak
d = TarihSeri(2002, 8, 15) tarih başlatma 15.08.2002
d=d+15 Şimdi 30.08.2002 tarihinin intikamını almak için
Tobto 15 gün ekledik

operatör - (görünür, işaret değişikliği)

Vikoristovuetsya znahodzhennya raznitsi için iki sayıyı veya ayrıca virüsün işaretini değiştirmek için.

Sözdizimi:

sonuç = viraz1- viraz2

-Viraz

parametreler:

sonuç- ayakkabıların viskoz; sayısal bir değişiklik olmak
virüs- Obov'yazkovo; viraz ol
viraz1- Obov'yazkovo; viraz ol
viraz2- Obov'yazkovo; viraz ol

Saygı duymak:

İlk sözdiziminde, iki sayıyı ayırt etmek için "-" operatörü gereklidir. Başka bir sözdiziminde "-", y'nin işaretini değiştirmek için değiştirilir. virüs.

Sonucun veri türü, iki sayının en doğru türü ile aynıdır. Saldırı doğruluğunun sırası Bayt, Tamsayı, Uzun, Tek, Çift, Para Birimi ve Ondalık şeklindedir. Є suçlamak:

  • Tek ve Uzun tipinin kaderini alırsanız, sonuç Çift olur
  • Kural olarak, galip gelenler Date tipi ile galip gelir,
    o zaman sonuç Tarih olur.
  • İki tarihe bakıldığında, sonuç olarak Double verir.

Biri veya diğeri Null virazi ise, sonuç da Null olur. İfadelerden biri Boş olsa da 0 olarak yorumlanır.

Toplama ve ikinci sırada doğruluk sırası, çoğul olarak puanlanan sessizdir.

Uygulamak:

loş Sonuçlarım
Sonuçlarım = 4 - 2" dönüş 2.
Sonuçlarım = 459,35 - 334,90" dönüş 124.45.

Lütfen:

Ek ödeme operatörü olarak, para çekme operatörü iki tarih arasında perakende (gün) hesaplaması için bloke edilebilir:

loş d1 Tarih olarak
Dim d2 Tarih Olarak
Dim farklı uzun
d1 = DateSerial(1983, 10, 14)
d2 = TarihSeri(2002, 8, 15)
razn = d2 - d1 Gün cinsinden perakende satış (6880).

operatörler

povnyannya deyakih viraziv için Vykoristovuyutsya. Mayut 3 sözdizimi:

Sözdizimi:

sonuç = viraz1 düzenleme operatörü viraz2
sonuç = nesne1 Dır-dir nesne2
sonuç = sıra Sevmek srazok

parametreler:

sonuç ayakkabıların viskoz; sayısal bir değişiklik olmak
virüs obov'yazkovo; bir ifade gibi ol
düzenleme operatörü ayakkabıların viskoz; maçın operatörü olmak
nesne ayakkabıların viskoz; im'ya ne tür bir nesne
sıra obov'yazkova; bir ifade satırı gibi ol.
srazok ayakkabıların viskoz; ister sıralı bir viraz, ister bir dizi harf ve sayı olsun

Saygı duymak:

Ardından, kuralın sonucunun atandığı (Doğru veya Yanlış) bu akla göre operatörlerin bir listesini bulmak için tablo gelir.

Şebeke

doğru, yakscho

yanlış, yakscho

boş, yakscho

< (меньше чем) viraz1 <
viraz2
viraz1 >=
viraz2

tek başına
H
viraziv intikam Null

<= (меньше или равно) viraz1 <=
viraz2
viraz1 >
viraz2
> (daha düşük) viraz1 >
viraz2
viraz1 <=
viraz2
>= (birden fazla) viraz1 >=
viraz2
viraz1 <
viraz2
= (Rivno) viraz1 =
viraz2
viraz1 <>
viraz2
<>(iyi değil) viraz1 <>
viraz2
viraz1 =
viraz2

Operatörler Is ve Like belirli işlevleri seçer ve şimdi tablo üzerine gelindiği gibi hizalanır (aşağıya bakın).

Eğer iki virazi sıraya girerse, her zaman neyin sıralanacağına, sayılara mı yoksa sıralara mı karar veremezsiniz. Aşağıdakiler, Varyant türünde suçun türe göre sıralanabilmesi için sonucun nasıl hesaplanacağını gösterir:

  • Sayılar sıralansa da (Byte, Boolean, Integer, Long, Single, Double, Date, Currency veya Decimal), sayılar sıralanır.
  • Sanki sıranın virazisine hakaret ediyormuş gibi, sıraların dizilişi gözlemleniyor. (küçük satır ilkidir, sonraki harf daha küçük ascii kodudur).
  • Ayetlerden biri sayı ise, sayı olarak yorumlanabilecek Varyant değilse, sayılar eşittir.
  • Bir sayıysa ve sayı olarak yorumlanamayan bir Varyant satırı değilse, bir af (Tür uyuşmazlığı) gerekir.
  • Değişkenlerden yalnızca biri bir satırdaysa ve bu, Variant (name Null) değeri olsaydı, o zaman bir satırda görünürdü.
  • Türlerden biri Boş ise ve sayı ise sayılar eşit, Boş ise 0 olarak kabul edilir.
  • Boş satırlardan biri ve sonraki satır, ardından satır satırları gibi, Boş satır da boş bir satır "" olarak görülür.

Variant türü virazlanacak ilk ve diğeri ise, Variant'ın intikamını almak için bu tür verilerle karşılaştırmak mümkündür:

  • Yakshcho suçu Varyant virazi m_styat numaraları, vіdbuvaєtsya pіvnyannya numaraları.
  • Yakshcho suçu Varyant virazi m_stya satırları, vіdbuvaєtsya vіvnyannya ryаkіv.
  • Varyantlardan biri sayıyı, aksi halde sırayı ayırırsa, viraz sayısı satırdan daha azdır.
  • Varyantlardan biri Boş ve başka bir sayı Boş, 0 olarak kabul edilir.
  • Boş satırdaki ve sonraki satırdaki seçeneklerden biri olarak, Boş boş bir satır "" olarak görüntülenir.
  • Virazi Empty'ye hakaret ediyormuş gibi, koku eşit görünüyor.

Single, Double olarak değiştirilirse Double, Single hassasiyetine yuvarlanır.

Para Birimi Tek veya Çift'e eşitse, Tek veya Çift Para Birimi'ne dönüştürülür. Yani Decimal'i Single veya Double ile eşleştirirseniz, Single veya Double Decimal'e dönüştürülür. Para Birimi için, menşanın bir parçası olsun, 0001'in altı kullanılabilir. Decimal için değer 1E-28'dir veya af uygulanabilir. Bu şekilde, bir av tüfeği parçasının kullanılmasıyla, gerçekten bir ve aynı bakmak isteseniz bile, virazi eşit olarak yorumlanabilir. (Hoch i küçük bir değerde).

Uygulamak:

loş MyResult, Var1, Var2
Sonuçlarım = (45< 35) " dönüş YANLIŞ.
Sonuçlarım = (45 = 45)" dönüş doğru.
Sonuçlarım = (4<> 3) " dönüş doğru.
MyResult = ("5" > "4")" dönüş doğru.

Var1="5": ​​​​Var2=4 VB'de iki katına çıkabilirsiniz,
alt bölüm operatörleri için.

MyResult = (Var1 > Var2)" dönüş doğru.

Var1=5: Var2= Boş
MyResult = (Var1 > Var2)" dönüş doğru.

Var1 = 0: Var2 = Boş
MyResult = (Var1 = Var2)" dönüş doğru.

eşleşme operatörü

Bu operatör, nesnelerin hizalanması için muzafferdir.

Bu operatörün sözdizimi daha fazla belirtilmiştir.

Saygı duymak:

Nesne1 ve nesne1 aynı nesne tarafından kullanılıyorsa, sonuç Doğru, değilse Yanlış olur. Yollar ile dekilkom nesnesine iki değişiklik uygulanabilir. Saldıran popo A, B ile aynı nesneye zorlanır:

A=B olarak ayarla

A ve B değişiklikleri aynı nesneye uygulanacak şekilde saldıran popoya saldırın - C:

A = C ayarlayın
SetB=C

Uygulamak:

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

YourObject = MyObject olarak ayarlayın nesneler üzerinde kuvvet yaratırız
ThisObject = MyObject olarak ayarla
ThatObject = OtherObject olarak ayarla
MyCheck = Nesneniz Bu Nesnedir, Doğru Olur.
MyCheck = ThatObject Bu Nesnedir, False Döner.
Varsayalım ki MyObject<>DiğerNesne
MyCheck = MyObject Is ThatObject Yanlış Dönüyor.

satır kaydırma operatörü - gibi

Satır hizalama operatörü Satır hizalama için kazançlar gibi.

Bu operatörün sözdizimi yukarıda zaten gözden geçirilmiştir.

Saygı duymak:

Bu operatör, bir Dizeyi bir Model maskesine dönüştürmek için bükülebilir. Tse daha dar bir operatördür, analog olabilir normal virüsler Perl.

Otzhe, pratsyuє tsey bu şekilde cevap veriyor. Satır maskeyle eşleşirse sonuç True olur. Yakscho nі - Yanlış. Null virüslerinden sadece biri aynı Null'un sonucudur.

Operatörün davranışı Standart sıra hizalama tipine girmeyi sever. (Seçenek Karşılaştırma ifadesi).

Binary türü (yani iki çift) ayarlanmışsa, satırlar aynı Ascii kodlarına hizalanır (farklı kodlarda fark yoktur). Ses muzaffer böyle bir dizi:

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

Metin (metin sırası) türü de yüklenir. Böyle bir dizi için, dizi önde patlar, işte 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, maske satırının doğru olup olmadığının yeniden kontrol edilmesidir. Kitlede bu tür spesiyalleri kazanabilirsiniz. semboller:

Yakky okremy sembolü
* Sıfır veya daha fazla karakter
# Bir sayı olup olmadığı (0-9).
Bir çeşit okremy sembolü ol
[!charlist] Liste listesine girmeyen bir tür liste ol

Burada çok az saygı var. Direk üzerindeki sıranın geçerliliğini gözden geçirmek için, özelin intikamını almak için. semboller (tobto. ters, örneğin, chi є bir dizi sembol [,?, #,], *), onları kare yaylara koymak gerekir. Aynen öyle okrem yay [abo] koymak mümkün değil.

Bir karakter listesi belirtmek için bir tire (-) de ekleyebilirsiniz. Örneğin, sıralamayı A'dan Z'ye ayarlamak için bir maske seçmeniz gerekir. Zincirlerdeki her şey, herhangi bir bölümün (boşluk, com, vb.) İntikamından suçlu değildir, aksi takdirde koku da diziye dahil edilir.

Maskeyi tekrar kontrol ettikten sonraki önemli kurallar:

  • (!) Listede yer almayan shukat sembolleri hakkında konuşulması gereken semboller listesinin koçanındaki işaret. İşaretin kendisini bilmeniz gerekiyorsa!, kemerleri [!] koymak gerekir.
  • (–) bir dizi karakter tanımlamak için ilahiyi söyleyin.
  • Bir dizi karakter belirtilirse, artan ASCII kodlarından VIN sorumludur. Tobto. doğru maske, ama hayır.
  • Sıra boş bir satır "" olarak yorumlanır.

Uygulamak:

loş MyCheck
MyCheck = "aBBBa" "a*a" gibi "Doğruya Dön.
MyCheck = "F" Gibi "" " Doğru Olun.
MyCheck = "F" "[!A-Z]" gibi "Yanlış Çevir.
MyCheck = "a2a" "a#a" gibi "Doğruya Dön.
MyCheck = "aM5b" "a#[!c-e]" gibi "Doğruya Dön.
MyCheck = "BAT123khg" "B?T*" gibi "Doğruya Dön.
MyCheck = "CAT123khg" "B?T*" gibi "Yanlış Çevir.

myString = "312T-87GD-8922"

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

Satır birleştirme operatörleri

Aslında, Visual Basic'te satırları birleştirmek için yalnızca 2 operatörü bağlayabilirsiniz. Tse & ta +. + operatörü yukarıda açıklanmıştır. & operatöründen bahsedelim.

dizi birleştirme operatörü - &

İki virüsün birleştirilmesi için zafer.

Sözdizimi:

sonuç = viraz1 & viraz2

sonuç ayakkabıların viskoz; Dize veya Varyant Değişimi Olsun
viraz1 obov'yazkovo; viraz ol
viraz2 obov'yazkovo; viraz ol

Saygı duymak:

Viraz art arda değilse, bir String Variant'a dönüştürülür. Sonucun veri tipi sadece String'dir, eğer rahatsız edici ise String tipini kullanabilirsiniz. Aksi takdirde sonuç bir Dize Varyantıdır. Kural olarak, Virazi Null, sonuç da Null'dur. Ancak, Null değerinin intikamını almanın yollarından yalnızca biri olarak, boş bir satır "" olarak yorumlanır. Boş ayrıca boş bir satır "" olarak yorumlanır.

Uygulamak:

loş MyStr
MyStr = "Merhaba" ve "Dünya"
" dönüş"Merhaba Dünya" satırı.
MyStr = "Yankı" & 123 & "Yankı"
"Satırı çevir" Perevіrka 123 Perevіrka ".

Mantıksal operatörler

Tse naytsіkavіsha grup operatörü. Programlandığınızda, robotun çalışmasından siz sorumlusunuz ve bu zastosuvannya'dır (ayrıca, yalnızca Visual Basic'te değil).

Visual Basic 6 adettir. Rozglyanemo deri operatörü bildirdi.

ve operatör

İki viraz üzerinde mantıksal çarpma için zafer.

Sözdizimi:

sonuç = viraz1 Ve viraz2

sonuç
viraz1 obov'yazkovo; viraz ol
viraz2 obov'yazkovo; viraz ol

Saygı duymak:

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

Yakscho viraz1 =

, A viraz 2 =

Bu sonuç =

Doğru Doğru Doğru
Doğru YANLIŞ YANLIŞ
Doğru Boş Boş
YANLIŞ Doğru YANLIŞ
YANLIŞ YANLIŞ YANLIŞ
YANLIŞ Boş YANLIŞ
Boş Doğru Boş
Boş YANLIŞ YANLIŞ
Boş Boş Boş

And operatörü ayrıca bit sayısını kontrol etmek için de kullanılır. Bitler için, And operatörü gelen sırayla çalışır (sağdaki kötülüğe hayret edin)

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

Uygulamak:

loş A, B, C, D, MyCheck
MyCheck=A>B Ve B>C" dönüş doğru.
MyCheck=B>A ve B>C" dönüş YANLIŞ.
MyCheck=A>B Ve B>D" dönüş Boş.
MyCheck = A ve B" dönüş8 (bit sırası).

Poponun geri kalanı rapor tarafından incelenir. 10 sayısı saldırgan bir rütbe gibi görünüyor (zoshita gibi, yani 4 vuruş):

Ve 8 numaralı eksen şu şekildedir:

Operatörün çalışmasının bir sonucu olarak Ve yukarıdaki tablonun yardımıyla şunları alıyoruz:

Tobto. 8. Neye önem verdin? Yeniden düşünmek için soyulduk, A sayısının çeyrek bitlerinin eklemeleri nelerdir? Otrimavshi B, biz perekonalis, scho tsey biraz kurulum.

Veya operatör

Vykoristovuetsya, iki viraziv'in mantıklı bir şekilde katlanması için.

Sözdizimi:

sonuç = viraz1 Veya viraz2

sonuç ayakkabıların viskoz; Be-yaka sayısal (Boolean dahil) değişikliği
viraz1 obov'yazkovo; viraz ol
viraz2 obov'yazkovo; viraz ol

Saygı duymak:

Aşağıdaki tablo, Or operatörünün nasıl çalıştığını gösterir:

Yakscho viraz1 =

, A viraz 2 =

Bu sonuç =

Doğru Doğru Doğru
Doğru YANLIŞ Doğru
Doğru Boş Doğru
YANLIŞ Doğru Doğru
YANLIŞ YANLIŞ YANLIŞ
YANLIŞ Boş Boş
Boş Doğru Doğru
Boş YANLIŞ Boş
Boş Boş Boş

Veya operatörü, bir sayının ilk bitlerini ayarlamak için kazanır. Bitler için, Or operatörü saldırgan bir sırada çalışır (sağdaki hayret verici kötülük)

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

Sonuç görüldü kalın tip.

Uygulamak:

loş A, B, C, D, MyCheck
MyCheck=A>B Veya B>C" dönüş doğru.
MyCheck=B>A Veya B>C" dönüş doğru.
MyCheck=A>B Veya B>D" dönüş doğru.
MyCheck=B>D Veya B>A" dönüş Boş.
MyCheck = A Veya 5" dönüş 15:

Popo raporunun geri kalanına bir göz atalım. 10 sayısı saldırgan bir rütbe gibi görünüyor (zoshita gibi, yani 4 vuruş):

Ve 5 numara:

Operatörün çalışmasının bir sonucu olarak Veya belirtilen tablonun yardımıyla şunları alırız:

Tobto. 15. Bachite gibi, Or operatörünün de sadece eşitleme durumunda değil, aynı zamanda sayının ilk bitlerini ayarlamak için manuel olarak kazanması da kolaydır.

Xor operatörü

İki viraziv'in mantıksal geçişi için zafer.

Sözdizimi:

sonuç = viraz1 Xor viraz2

sonuç ayakkabıların viskoz; Be-yaka sayısal (Boolean dahil) değişikliği
viraz1 obov'yazkovo; viraz ol
viraz2 obov'yazkovo; viraz ol

Saygı duymak:

Aşağıdaki tablo, Xor operatörünün nasıl çalıştığını gösterir:

Xor operatörü, bir sayının şarkı vuruşlarını tersine çevirmek için tersine çevrilir. Savaşlar için, operatör Xor saldırgan bir rütbede çalışır (sağdaki kötülüğü hayrete düşürüyor)

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

Vizyonların sonucu kalın yazı tipiyle yazılmıştır. Xor içinde titrer Or, sadece tim, eğer tek bir kişi tarafından rahatsız edilirseniz Xor 0 görür. Xor operatörü yetkililerin kontrolündedir, daha sonra yogik tıkanıklık durumunda aynı sayıyı görürsünüz. Tse genellikle kriptografiyi kazanır.

Uygulamak:

loş A, B, C, D, MyCheck
A=10: B=8: C=6: D=Boş
MyCheck=A>B X veya B>C" dönüş YANLIŞ.
MyCheck=B>A X veya B>C" dönüş doğru.
MyCheck=B>A X veya C>B" dönüş YANLIŞ.
MyCheck=B>D Xveya A>B" dönüş Boş.
MyCheck=A X veya B" dönüş 2

Tsіkavim poposu operatörünün ikamesi Xor є iki sayısal değişkenin değerlerinin değişimi:

karartmak Uzun, b Kadar Uzun
bir = 4
b = 7
a = a X veya b
b = a X veya b
a = a X veya b

Şimdi, b ve navpaki değişikliğinin anlamını intikam almak için a'yı değiştirin.

operatör değil

İki ayetin mantıksal olarak tersine çevrilmesinin yaratılması için zafer.

Sözdizimi:

sonuç= değil virüs

sonuç ayakkabıların viskoz; Be-yaka sayısal (Boolean dahil) değişikliği
virüs obov'yazkovo; viraz ol

Saygı duymak:

Aşağıdaki tablo, Not operatörünün nasıl çalıştığını gösterir:

Operatör Tüm bitleri ters çevirmez virazi. Bitler için, Operatör Gelmeyen sırada çalışmıyor (sağdaki hayret verici):

0 1
1 0

Vizyonların sonucu kalın yazı tipiyle yazılmıştır.

Uygulamak:

loş A, B, C, D, MyCheck
A=10: B=8: C=6: D=Boş
MyCheck = Değil(A>B)" dönüş YANLIŞ.
MyCheck = Değil(B>A)" dönüş doğru.
MyCheck = Değil(C>D)" dönüş Boş.
MyCheck = A Yok" dönüş-11 (tüm bitler ters çevrilir)

Kalan poponun raporuna bakalım. 10 numara saldırgan bir rütbe gibi görünüyor (bir bayt gibi, yani 8 savaş):

Tüm savaşları tersine çevirdikten sonra şunları alırız:

Bir tse ben є -11.

denklem operatörü

İki virüsün mantıksal denkliğinin yaratılması için zafer.

Sözdizimi:

sonuç = viraz1 eşdeğer viraz2

sonuç ayakkabıların viskoz; Be-yaka sayısal (Boolean dahil) değişikliği
viraz1 obov'yazkovo; viraz ol
viraz2 obov'yazkovo; viraz ol

Saygı duymak:

Aşağıdaki tablo, Eqv operatörünün nasıl çalıştığını gösterir:

Bitler için, Eqv operatörü saldırgan bir düzende çalışır (sağdaki kötülüğü hayrete düşüren)

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

Uygulamak:

loş A, B, C, D, MyCheck
A=10: B=8: C=6: D=Boş
MyCheck=A>B Eqv B>C" dönüş doğru.
MyCheck=B>A Eqv B>C" dönüş YANLIŞ.
MyCheck=A>B Eqv B>D" dönüş Boş.
MyCheck = A Equv B " dönüş -3

imp operatörü

İki ayetin mantıksal bir imasının yaratılması için zafer.

Sözdizimi:

sonuç = viraz1 imp viraz2

sonuç ayakkabıların viskoz; Be-yaka sayısal (Boolean dahil) değişikliği
viraz1 obov'yazkovo; viraz ol
viraz2 obov'yazkovo; viraz ol

Saygı duymak:

Aşağıdaki tablo, Imp operatörünün nasıl çalıştığını gösterir:

Yakscho viraz1 =

, A viraz 2 =

Bu sonuç =

Doğru Doğru Doğru
Doğru YANLIŞ YANLIŞ
Doğru Boş Boş
YANLIŞ Doğru Doğru
YANLIŞ YANLIŞ Doğru
YANLIŞ Boş Doğru
Boş Doğru Doğru
Boş YANLIŞ Boş
Boş Boş Boş

Savaşlar için İmp operatörü bir saldırı rütbesinde çalışır (sağdaki harika)

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

Uygulamak:

loş A, B, C, D, MyCheck
A=10: B=8: C=6: D=Boş
MyCheck=A>B İmp B>C" dönüş doğru.
MyCheck=A>B İmp C>B" dönüş YANLIŞ.
MyCheck=B>A İmp C>B" dönüş doğru.
MyCheck=B>A İmp C>D" dönüş doğru.
MyCheck=C>D İmp B>A" dönüş Boş.
MyCheck=B İmp A" -1 dönüş

VBA Operatörleri: Aritmetik, Mantık, Eşleştirme, Atama

Operatör - tse namemensha zdatna vykonuvatsya bir VBA koduna. Operatör değişikliği deşifre edebilir, VBA derleyici seçeneğini ayarlayabilir veya programı devre dışı bırakabilir.

VBA'da toplam 7 aritmetik işleç vardır. Aşağıdakiler standarttır: ekle (+), ekle (-), çarp (*), alt (/) ve üç tane daha:

  • · Adımlara (^), örneğin 2 ^ 3 = 8;
  • · Cіlіsny podіl (). podіlyaє diğerinde ilk sayı, vіdkidayuchi (yuvarlama değil) kısmı vurdu. Örneğin, 52 = 2;
  • Modülün arkasında Podіl (Mod). Podіlyaє diğerinin ilk numarası, fazlalığı rozpodіlu'ya çeviriyor. Örneğin, Mod 5 = 1.

VBA'daki atama operatörü eşittir işaretidir. Şu şekilde yazabilirsiniz:

ve belki daha da basit:

Bir diğeri için, eşitlik işaretini eşitlik operatörüyle karıştırmayın.

viraz

"nVar değerini 10 olarak ayarla" anlamına gelir ve satır şöyle görünür:

o zaman tse "nVar değişikliğinin değeri 10'a eşit olduğu için" anlamına gelir.

Bir değişiklik olarak, nesneyi tanımak, diğer yöntemlerle mücadele etmek gerekir.

VBA'da toplam 8 dizi operatörü vardır:

  • Özkaynak (=), örneğin, If (nVar = 10);
  • daha fazla, daha düşük ve daha az, daha düşük (> i
  • Birden fazla veya daha az birden az (>= і
  • sağlıklı değil (
  • · Por_vnyannya nesneleri (Is). Nesnelerin aynı nesne veya farklılık üzerinde değiştirildiğini gösterir, örneğin, If(obj1 is obj2);
  • Beğen (Beğen). Por_vnyuє ryadkovyj ob'єkt vyznaє, chi şablona uygun şablondur.

Tutarlılık operatörleri her zaman doğru veya yanlış olur - doğru olan doğru ve yanlış olan yanlıştır.

Eşleşen dize değerleri için Troch'lar:

  • · Satır değerlerinin eşit olması durumunda kayıt ters çevrilir;
  • · Probіli değer satırları da sigortalıdır;
  • · metin satırları daha fazla/daha küçük olanlarla değiştirildiğinde, sadece iki sembol kodunun yerini kısaltmalar alır - ister büyük ister küçük olsun. Alfabedeki sırayı tersine çevirmeniz gerekiyorsa, Option Compare Text komutu ile hızlandırabilirsiniz.

Beğen operatörü hakkında rapor verin. Gösterişli sözdizimi benziyor

Viraz1 Viraz2 gibi

Viraz1'in bir VBA metinsel Viraz olduğu ve Viraz2'nin Like operatörüne iletilen bir şablon olduğu durumlarda. Bu şablon için özel ikame sembolleri eklenebilir (böl. Tablo 1)

Sekme. LIKE operatörü için 1 joker karakter

Daha sık olarak, birçok zihnin yeniden doğrulanması saatinde, mantıksal operatörler galip gelir:

  • · VE - mantıksal I, suçlu ama gerçek suçlar;
  • · VEYA - mantıklı ASG, tek bir zihin istiyorsanız doğru olabilir;
  • · DEĞİL - mantıksal olarak kopyalanır, bu da zihnin hibnası gibi DOĞRU olur;
  • · XOR - mantıksal suçlama. E1 XOR E2 durumunda, DOĞRU'yu çevirin, ya E1 = DOĞRU veya E2 = DOĞRU, aksi takdirde YANLIŞ;
  • · EQV - aynı değere sahip olabildikleri için DOĞRU olan iki virüsün denkliği;
  • · IMP - ima, YANLIŞ, ayrıca E1 = DOĞRU ve E2 = YANLIŞ, aksi takdirde - DOĞRU'ya çevirin.

AND, OR, NOT, diğer mantıksal operatörlerin nadiren durduğunu unutmayın.

VBA programları birleştirme operatörlerini kullanabilir. VBA'da iki - + veya & vardır. Muzaffer başlamanız tavsiye edilir &, bunun için:

  • · vikoristanny & satırdaki sayısal değerlerin otomatik dönüşümünü gerçekleştirdiğinde - affa gerek yoktur;
  • · Alternatif operatör + Null türündeki değerlere bir satır değeri eklediğinde Null verilir. popo:

MsgBox "Mesaj uyarısı" & vUserName

İstifleme operatörlerinin sırası, yuvarlak kollar yardımıyla ayarlanabilir.

3 . Değişiklikler ve veri türleri

VBA değişikliği, değişiklik değişikliği seslendirme, Seçenek Açık, adlandırma kuralları, VBA veri türleri, değişiklik değişiklik değerleri

Değişiklikler - değiştirilen verileri toplamak için kaplar. Pratik bir program onlarsız vazgeçilmezdir. Basit olması için vestiyerdeki numarayı değiştirebilirsiniz - "dolap" a bazı veriler koyarsınız, numarayı görürsünüz. Yeni bir veri sayısına ihtiyacınız varsa, "bir numara verdiniz" ve geri aldınız. VBA değişikliklerine sahip robotik bir popo şöyle görünebilir:

loş Tamsayı olarak nMyAge

nMyAge = nMyAge + 10

nMyAge'i Tamsayı Olarak Karartın

Satır nasıl deşifre edilir:

Dim - değişikliğin tüm görünürlük alanı. VBA, değişikliğin kapsamını tanımlamak için 4 anahtar kelimeyi geçti:

  • · Dim - daha fazla vipadkіv'de vikoristovuєtsya. Modül bildirim alanında Dim gibi değiştirirseniz, tüm modül için kullanılabilir, ancak prosedürde - robotik prosedürün sadece bir saati için;
  • · Özel - VBA'da sesli değişiklikler olması durumunda, Dim ile aynı anlama gelir;
  • · Genel - bu değişiklik, modülün genel alanında bildirdiğiniz gibi, bu projenin tüm modüllerindeki tüm prosedürler için geçerli olacaktır. İşlemin ortasında її oyu verdiyseniz, Dim/Private gibi davranacaktır;
  • · Statik - bu tür değişiklikler yalnızca işlemin ortasında yapılabilir. Değişikliklerin sayısı sadece prosedürün ortasında, sessizlerin kokusunda, prosedürün farklı döngüleri arasındaki değerini prote znachiyut'ta görülür. Herhangi bir değerin birikimi için ses vikoristovuyutsya. Örneğin:

Statik nVar1 Tamsayı Olarak

nVar1= nVar1 + 1

Özel canlılar olmadığından, Dim algılama kapsamını seçmek gerekir.

Sessiz (nMyAge) için başka bir kelime, tanımlayıcı (daha basit kazhuchi, im'ya) değişikliğidir. VBA'da ad seçme kuralları birçok öğe için aynıdır (değişiklikler, sabitler, işlevler ve prosedürler, vb.). İsim:

  • · Suçlu pochanatis z harfleri;
  • · Noktalama işaretlerinin boşluklarının ve sembollerinin intikamını almak suç değildir (vinyatok - güvence sembolü);
  • · maksimum uzunluk - 255 sembol;
  • · Mevcut görüş alanında benzersiz suçlu buti (rapor - uzak);
  • · ayrılmış kelimeler (editörün kod editöründe farklı bir renkle gösterilen şeyler) seçilemez.

VBA programları oluştururken, adlandırma uğruna nesnelere hangi adların atanacağı kurallarına uyulması önerilir. Çoğu zaman, Çirkin iyilik şöyle adlandırılır (Microsoft programcılarından biri olan Ugrian, Ugrian for Nationality'den Charles Simonyi'nin onuruna):

  • · Іm'ya zmіnnoї küçük harflerle yazılmış bir önekle başlayabilir. Ön ek, değişikliğinizden ne alınması gerektiğini gösterir:
    • o str (veya s) - Dize, karakter değeri;
    • o fn (veya f) - işlev;
    • o c (veya tüm harfleri büyük yap) - bir sabit;
    • o b - Boolean, mantıksal değer (doğru veya yanlış);
    • o d - tarih;
    • o nesne (veya o) - nesneye gönderme;
    • o n - sayısal değer.
  • · Depo sözcüğündeki işlevlerin, yöntemlerin ve dış görünümün adları büyük harften türetilebilir:

Mesaj Kutusu objDocument.Name

Alt CheckDateSub()

· içinde erken sürümler VB'de Const kelimesi yoktu - tüm sabitler değişiklik olarak atandı ve vіdmіnu їх üzerine büyük harflerle, son eki koydukları kelimelerin arasına yazılmışlardı: COMPANY_NAME

Pek çok programcı, sabitleri ve bir seferde tanımlamak için böyle bir kılavuz kullanır (Const anahtar sözcüğünün seçimi artık genel olsa da - rahatsız edici bölümde gösterilecektir).

İftiramızın üçüncü kısmı - As Integer - yılanımızın veri türünün bir göstergesidir. Veri türü belirlenir, gördüğünüz gibi değişikliğimizde kaydetmek mümkün olacaktır.

VBA aşağıdaki veri türlerine sahiptir:

Sayılar (bayt - 0'dan 255'e kadar tam sayı, tamsayı - -32768'den 32767'ye tam sayı, uzun - büyük sayı, para birimi (19 pozisyonlu büyük onuncu sayı, Komi'den sonraki 4 pozisyon dahil), ondalık (29'lu onuncu sayı pozisyonlar), tek ve çift - kayan bir kütük ile değer (iki kat daha fazla));

Saygı duymak! Değişikliği Decimal türüyle seslendirmeye çalışmak (örneğin, Dim n As Decimal) sözdizimsel bir af ile sonuçlandı. Decimal türüyle pratik yapma yeteneğinden yararlanmak için, ilk sesi Varyant olarak değiştirmeniz gerekir veya bunun yerine türü olmayan bir ses (Dim n) olarak Varyant veri türünün parçaları VBA tarafından kazanılır. promosyonlar için.

  • · satırlar (dize değişken uzunluk (yaklaşık 2 milyar karaktere kadar) ve sabit uzunluk (yaklaşık 65400 karaktere kadar);
  • · Tarih ve saat (tarih - 01.01.100 ile 12.31.9999 arası);
  • mantıksal (boolean - yalnızca True ve False değerlerini kaydedebilirsiniz);
  • · Nesne (nesne - bellekte bir nesne olup olmadığı konusundaki çabadan tasarruf edin);
  • · Varyant - diğer veri türleri olsun ya da olmasın kaydedebileceğiniz özel bir veri türü.

Veri türlerini kazanmak mümkündür, ancak bunları Type yardımı için başın arkasına atamak gerekir. Coristuvach (klasik popo - posta endeksi) tarafından tanıtılacak değerin ek bir yeniden doğrulanması olarak muzaffer veri türlerini seslendirin.

Değişiklik için veri türlerinin seçimiyle ilişkili gerçek anlar:

  • · sıcak ilke-- Seçilen değeri tutabilecek en küçük veri türünü seçin. Yakshcho є yakіs sumnіvi - daha büyük bir haraç türü seçin, böylece aflar kaybolur;
  • · Örneğin, değişken bir koma (tekli ve çift) olan veri türlerini kazanmamak daha iyidir. p align="justify"> Bu tür verilerle çalışma daha sık yapılmalıdır, ayrıca yuvarlaklık için eşitleme ile ilgili sorunlar olabilir;
  • · Mümkün olsa da, Varyant türüyle hızlanmamak daha iyidir. Bu tür hala diğer türlerden birinin VBA'sı tarafından indüklenir, ancak daha fazla belleğe ihtiyacı vardır. Ek olarak, böyle örtük bir aydınlanma saatinde, aflar suçlanabilir;
  • · Değişiklik belirtilirse, türe atanan karakterin adını (% - tamsayı, $ - String, vb.) seçmek mümkündür. Örneğin, popomuzda Dim nVar 1 As Integer satırını yorumlamak ve diğer satıra şunu yazmak gerekir:

nVar1% = nVar1% + 1

Böyle bir pidkhid sonuna kadar tavsiye edilmez.

Değişiklikler seslendirildiğinde, її türünü belirtmemek mümkündür. Örneğin, seslendirmemiz şöyle görünebilir: Dim nVar1

Herhangi bir değişiklik için, değişiklik Variant ile otomatik olarak seslendirilecektir.

Prensip olarak, VBA değişiklik bildirilmeden uygulanabilir. Örneğin, bu kod

nVar1= nVar1 + 1

bol bol pratik yapın. Programı її seslendirmeden muzaffer bir şekilde değiştirir değiştirmez, otomatik olarak yeni bir tane oluşturulacaktır. türü değiştir Varyant. Dilin değişimini sağır edin! І gerekli veri tipini kiminle söylemenin gerekli olduğu. Niye ya:

  • · af sayısı kısa ömürlüdür: koçan üzerindeki program, yanlış türün değerini değiştirmek için alınmalıdır (örneğin, sayısal bir satırın değiştirilmesi);
  • · Nesnelerle çalışırken, özellikler için ipuçları ve başka yollarla, nesnenin gerekli tiple değiştirilmesini dile getirdiysek. Örneğin, Excel'de iki kod seçeneği aynı şekilde çalışır:

ilk seçenek:

loş oWbk Çalışma Kitabı Olarak

oWbk = Workbooks.Add() olarak ayarlayın

diğer seçenek:

oWbk = Workbooks.Add() olarak ayarlayın

Ale, oWbk nesnesinin yöntemlerinin başka bir kişiye göre daha uygulanabilir olduğunu iktidara ima eder.

Bilinen tüm perakendeciler, değişimin zaferlerini bariz bir iftira olmadan çitle çevirmeye başladı. Kimin için hızlandırabilirsin özel ekip Derleyici (yalnızca modül seslendirme dağıtımında mevcuttur) Seçenek Explicit

ve düzenleyici penceresinde (menü Araçlar -> Seçenekler, Düzenleyici sekmesi) Değişken Bildirimleri Gerektir bayrağını ayarlayarak, otomatik olarak kapatıldıklarında tüm modüller için aynı komutu ekleyebilirsiniz.

Illustrate, şimdi basit bir örnek üzerinde kokuyu akıtabilirsiniz:

Görünüşte, kod günlük problemler için suçlanmaz ve sadece birer birer gösterir. Gerçekten, bir süredir boş görüyorum. Nedeni daha kolay gizlenir: üçüncü sırada n - İngilizce N harfi değil, Rusça P harfi. Editörün gözünde, onları güçlendirme kodu daha da katlanabilir. Aynı zamanda, böyle bir kodu oluşturan VBA derleyicisi, Variant veri türü ile boş bir değere sahip olacak yeni bir değişiklik yaratır. Böyle bir affın tezahürü için şarkı dolu bir saat gerekebilir.

İyi bir kural, kokunun gerekli olup olmadığı değil, değişikliği daha sonraki bir tarihte sağır etmektir. Tse, daha okunabilir ve net bir şekilde planlanmış bir program oluşturmanıza olanak tanır.

Değişimin sesini bir satırda seslendirebilirsiniz, örneğin:

Dim n1 As Integer, s1 As String

Değişikliğe bir değer atamak şöyle görünür:

Değişikliğin temel değerini artırmak gerekirse, komut şöyle görünebilir:

nVar1 = nVar1 + 1

Her iki uçta da denklik işareti "eşit" değil, atamak anlamına gelir.

Sonraki hafıza adımını değiştirmek için bir değer atarken:

· Dize değerleri her zaman patinin dibinde bulunur:

sVar1 = "Merhaba";

"ızgaralarda" tarih/saat değerleri kullanılır - pound sembolleri:

dVar1 = #05/06/2004#

Saygılarımla, böyle bir "açık şekilde" bir tarih/saat değeri atarken, standartın ABD'de benimsenmesini kazanırız: bu durumda 05 - ay, 06 - gün. Bu değerin Vіdobrazhennya'sı (örneğin, vіknі povіdomlennya'da) koristuvach bilgisayarındaki bölgesel ayarlara yatırılacaktır.

On altıncı bir değer iletmek istiyorsanız, önüne &H ile gelin:

Şimdiki değişikliklerde neyin intikamı alınmalı?

  • · Değişen tüm sayısal veri türleri 0'a sahip.
  • · Değiştirme sıralarında - "" (sıfır yıl dizisi).
  • · Sabit karakterli satırlar için - ASCII 0 karakterli bir dizi karakter (karakterler ekranda görüntülenmez).
  • · Varyant boş değerlere sahip.
  • · Nesnede - hiçbir şey (aynı nesneye gönderme yoktur).

Kısa teorik ifadeler

1. VBA film programlamanın sözdizimi ve semantiği

Bir film programının sözdizimi, uygun şekilde yapılandırılmış bir program (belge) tarafından bir parça olarak saygı duyulan alfabedeki sembol kombinasyonlarını tanımlayan bir kurallar dizisidir.

Hareketin ana sözdizimsel ilkeleri şunlardır:

  • VBA büyük/küçük harfe duyarsızdır;
  • kodu satırın sonuna kadar yorumlamak için tek bir ayak (") seçilir veya REM komutu;
  • ayağın dibindeki direğin hatasının sembolik anlamı (");
  • VBA'daki herhangi bir adın maksimum uzunluğu (değişiklikler, sabitler, prosedürler) – 255 karakter;
  • yeni bir operatörün başlangıcı - yeni bir satıra aktarılır (C, Java, JavaScript'te olduğu gibi muzaffer olmadığı virgüllü bir nokta);
  • döşemek maksimum dozhina satır yok (düzenleyicide arka arkaya yalnızca 308 karakter olmasını istiyorum). Bir sıradaki bir grup operatör iki bölüme ayrılmıştır:
    MsgBox "1'i Değiştir" : MsgBox "Kontrol 2"
  • okuma kolaylığı için, bir sonraki onay işaretinin ek bir sorunu için fiziksel satırların serpiştirilmesini mantıklı bir satırda birleştirebilirsiniz:
    MsgBox "Koristuvach bildirimi" _
    &vKullanıcıAdı

Filmin semantiği, kelimelerin anlamının anlamıdır. Programlamada - operatörlerin anlamının değeri, mov'un ana yapıları çok küçüktür.

Şebeke- tse naimenscha zdatna vykonuvatsya bir VBA koduna. Operatör değişikliği deşifre edebilir, VBA derleyici seçeneğini ayarlayabilir veya programı devre dışı bırakabilir.

aritmetik VBA'da toplam 7 operatör bulunmaktadır.

Chotiri standardı: ekleme (+), vіdnіmannya (-), çoğul (*), subdil (/) ve üç tane daha:

  • ayaklardaki bağlantılar (^). Örneğin, 2^3 = 8;
  • tsilisny podіl (\). podіlyaє diğerinde ilk sayı, vіdkidayuchi (yuvarlama değil) kısmı vurdu. Örneğin, 52 = 2;
  • modülün arkasında rozpodіl (Mod). Podіlyaє diğerinin ilk numarası, fazlalığı rozpodіlu'ya çeviriyor. Örneğin, Mod 5 = 1.

VBA'daki atama operatörü eşittir işaretidir. Şu şekilde yazabilirsiniz:

nVar = 10 olsun
ve belki daha da basit:
nvar = 10

Eşittir işaretini eşittir operatörüyle karıştırmayın. Zamanın geri kalanı "değişen nVar değerini 10'a ata" anlamına gelir ve hala şöyle görünür: Eğer (nVar = 10), o zaman "değişen nVar'ın değerini 10'a değiştirmek" anlamına gelir.

operatörler VBA'da toplam 8 vardır:

  • kıskançlık (=). Örneğin, If (nVar = 10);
  • daha fazla, daha düşük (>) ve daha az, daha düşük (10);
  • az veya çok pahalı (>=) ve daha az veya daha az (= 10);
  • sağlıklı değil (). Örneğin, If(nVar10);
  • nesnelerin sırası (Is). Değişim nesnelerinin aynı nesneye mi yoksa farka mı uygulanacağına bağlıdır. Örneğin, If (obj1, obj2'dir);
  • benzerlik (beğenmek). Por_vnyuє ryadkovyj ob'єkt vyznaє, chi şablona uygun şablondur.

Operatörler dönüyor Doğru(ki bu doğrudur) aksi halde YANLIŞ(Yakscho Hibne'yi sertleştirir).

Daha da sıklıkla, birçok zihnin yeniden doğrulanma saati muzafferdir. mantıksal operatörler:

  • Ve - daha mantıklı I. gerçek suçlardan suçlu;
  • Veya - daha mantıklı ABO. Tek bir zihin istiyorsanız doğru olabilir;
  • Değil - mantıksal olarak üstü çizili. Umov'un affı gibi Doğruya Dön;
  • Xor mantıklı bir suçlama. E1 X veya E2 durumunda Doğru'ya dönün, bu nedenle E1 = Doğru veya E2 = Doğru, aksi takdirde - Yanlış;
  • Eqv - aynı değere sahip olabildikleri için True olan iki virüsün denkliği;
  • Imp - ima, E1 Imp E2 Yanlış'a döner, bu nedenle E1 = Doğru ve E2 = Yanlış, aksi halde - Doğru.

hakkında anma Ve, Veya, Değil, Diğer mantıksal operatörler nadiren kazanır.

Değişiklikler- değiştirilen verileri kaydetmek için kaplar. Pratik bir program onlarsız vazgeçilmezdir. Basit olması için vestiyerdeki numarayı değiştirebilirsiniz - vestiyerde bazı veriler koyarsınız, koğuşta numarayı görürsünüz. Yeni bir veri sayısına ihtiyacınız varsa, "bir numara verdiniz" ve geri aldınız.

Cilt değişikliği olabilir. Zvernennya, im'ya üzerinde zminnoy vіdbuvaєtsya'ya. VBA'da ad seçme kuralları birçok öğe için aynıdır (değişiklikler, sabitler, işlevler, prosedürler, vb.):

  • Harflerden başlayabilirim;
  • noktalama işaretlerinin boşluklarının ve sembollerinin intikamını almak suç değildir (vinyatok - bir güvence sembolü);
  • maksimum uzunluk - 255 karakter;
  • mevcut kapsamda benzersiz olabilir
  • ayrılmış sözcükler (kod düzenleyicinin penceresinde maviyle vurgulananlar) seçilemez.

VBA programları oluştururken, adlandırma uğruna, nesnelerin adlarının uygulandığı kurallara uyulması önerilir. Çoğu zaman, Çirkin iyilik şöyle adlandırılır (Microsoft programcılarından biri olan Ugrian, Ugrian for Nationality'den Charles Simonyi'nin onuruna):

  • Im'ya değişikliği küçük harflerle yazılmış bir ön ekten başlayabilir. Ön ek, değişikliğinizden ne alınması gerektiğini gösterir:
    str (veya s) – Dize, karakter değeri;
    fn (veya f) – işlev;
    alt prosedür;
    c (veya ismin tüm harfleri harika) - devamlı(değişiklik uğruna, VBA programının bir sonraki saati için değiştirilmeyen veri kaydetme kabı);
    b - Boolean, mantıksal değer (Doğru veya Yanlış);
    d – tarih;
    obj (veya o) – nesneye gönderme;
    n - sayısal değer;
  • Depo sözcüğündeki işlevlerin, yöntemlerin ve dış görünümün adları büyük harften türetilebilir:
    MsgBox objMyDocument.Name
    Alt CheckDateSub()

veri tipi bir programlama dili olup olmadığına dair temel anlayışa getirmek. Veri türü, bir değer (değişen veya sabit) gibi kişisel olmayan kabul edilebilir değerleri tanımlar, bu kişisel olmayan diy, bir değerle simgelemek mümkündür.

2. Temel VBA Veri Türleri

VBA aşağıdaki veri türlerine sahiptir:

  • sayılar:
    bayt- 0'dan 255'e kadar tam sayı, tasarruf için gerekli 1 bayt hafıza;
    tamsayı- girişlerin tam sayısı -32 768 ila 32 767, 2 bayt ;
    Uzun- çok sayıda giriş -2 147 483 648 ila 2 147 483 647, 4 bayt ;
    Para birimi(kuruş) - Komi'den sonra 4 pozisyon da dahil olmak üzere 19 pozisyonlu büyük onuncu sayı
    (Video -922337203685477.5808 - 922337203685477.5807), 4 bayt,
    sberigannya sayıları için vikoristovuetsya, eğer doğruluk daha da önemliyse, kuruş birimlerini hesaplarken ne olur;
    Ondalık- 29 pozisyonlu daha da fazla onuncu sayı (0'dan 28 pozisyona kadar kazanabilirseniz), 8 bayt;
    Bekarі Çift- kayan virgül ile değer ( 4 ve 8 bayt)
    (negatif değerler için -3.402823 10 38 ila -1.401298 10 -45 arasında
    Single için pozitif değerler için 1.401298 10 -45 ila 3.402823 10 38 arasında ve
    negatif değerler için -1.79769313486232 10 308 - -4.94065645841247 10 -324 içinde
    Double için pozitif değerler için);
  • sıra ( Sicim sabit nokta (yaklaşık 2 milyar karaktere kadar) ve sabit nokta (yaklaşık 65.400 karaktere kadar);
  • tarih ve saat ( Tarih- 01.01.100'den 31.12.9999'a kadar), 8 bayt;
  • mantıklı ( Boole- sadece True ve False değerlerini kaydedebilirsiniz), 2 bayt;
  • nesne ( Nesne- zberіgaє possilannya bellekteki herhangi bir nesne olabilir);
  • varyant- veri türü olsun, kaydedebileceğiniz özel bir veri türü, 16 bayt +1
Veri türleri, film anahtar sözcükleri ile tanımlanır (ve VBA düzenleyicisi yazıldıktan sonra görülür). Üstünde farklı şekiller bu izin verilen farklı işlemler. VBA'nın üç ana işlem türü vardır:
  • matematiksel, sayılar üzerinde çağrışım, їх sonuç є sayılar;
  • sadece bir sayıya kadar zastosovuvatisya olabilen işlem, sonuçları mantıksal bir tür değeridir;
  • mantıksal, mantıklı ayetlerde vikoristovuyutsya ve bunların sonucu mantıksal anlamdır.

3. İşlem öncelikleri

Öncelik Operasyon
1
2
3
4
5
6
7
8
9
10
11
12
Wiklik fonksiyonları ve pranga
^
- (İşaret değişikliği)
*, /
\
mod
+, –
>, <, >=, <=, <>, =
Değil
Ve
Veya
Xor

4. Matematiksel fonksiyonlar

İşlev Dönüşen önem
karın kasları (<число>) Bir sayının modülü (mutlak değer)
atn(<число>) arktanjant
çünkü(<число>) Kosinüs
tecrübe(<число>) Adımların göstergelerinin doğal logaritmasının tabanının birleşiminin sonucu olan üs
Kayıt(<число>) doğal logaritma
Rnd(<число>) Aralıklı Vipadkove numarası Galmuy