Dim znači. Šta je dim i zašto je potreban ženi?

Već neko vrijeme među konceptima kućne elektrotehnike sve se češće čuje riječ dimmer. Šta je ovo uređaj? Za koje je svrhe namijenjen? Može li to biti još jedan hir? Ili zaista neophodna stvar u svakodnevnom životu? Mnogo je pitanja, na sve ćemo pokušati dati detaljne odgovore.

Svrha

Reč "dimmer" dolazi od engleskog "dim", što doslovno prevedeno na ruski znači "potamniti". No, sami Rusi često nazivaju dimmer dimerom, jer je to elektronički uređaj pomoću kojeg možete promijeniti električnu snagu (odnosno, podesiti je gore ili dolje).

Najčešće se takav uređaj koristi za kontrolu opterećenja rasvjete. Dimer je dizajniran da mijenja jačinu svjetlosti koju emituju LED lampe, kao i žarulje sa žarnom niti i halogene sijalice.

Najjednostavniji primjer dimmera je promjenjivi otpornik (ili reostat). Još u 19. vijeku, njemački fizičar Johann Poggendorff izumio je ovaj uređaj kako bi se mogao koristiti za regulaciju napona i struje u električnom kolu povećanjem ili smanjenjem otpora. Reostat je uređaj podesiv otpora i provodni element. Otpor se može mijenjati postepeno i glatko. Da bi se postigla niska jačina svjetlosti, potrebno je smanjiti napon. Ali otpor i struja će biti visoki, što će dovesti do jakog zagrijavanja uređaja. Dakle, takav regulator je potpuno neisplativ;

Autotransformatori se mogu koristiti i kao dimeri. Njihova upotreba je zbog njihove visoke efikasnosti u cijelom podesivom rasponu, proizvodit će se gotovo neiskrivljeni napon sa potrebnom frekvencijom od 50 Hz. Ali autotransformatori su prilično veliki, teški su i zahtijevaju znatan mehanički napor da bi ih kontrolirali. Osim toga, takav uređaj će biti skup.

Elektronski dimmer - ova opcija je najisplativija s ekonomske tačke gledišta. Kompaktan je i ima malo drugačiji princip rada. Razgovarajmo o tome detaljnije.

Aplikacija

Šta je dimer je manje-više jasno. Napon se dovodi do lampe, mijenjamo njen nivo i tako podešavamo svjetlinu lampe. Sada nekoliko riječi o tome kada i gdje se ovaj uređaj koristi.

Slažem se, često se javljaju situacije kada je potrebno smanjiti svjetlinu svjetla:

  • često je potrebno smanjiti protok rasvjete u spavaćoj sobi prije odlaska u krevet;
  • Neke dizajnerske sobe zahtijevaju promjene u uzorku svjetla;
  • Ponekad se unutrašnja rasvjeta prebacuje u tzv. standby mod kako bi se smanjila potrošnja energije.

U industrijskim i kućnim prostorijama LED svjetiljke su konfigurirane za različite načine potrošnje. Istovremeno se bira optimalna rasvjeta i zbog toga se postižu značajne uštede energije.

Što se tiče dizajnerskih ideja, sada je postalo moderno u velikim dnevnim sobama ili hodnicima koristiti sekundarno osvjetljenje pojedinih područja. Sekundarna rasvjeta je osmišljena do najsitnijih detalja, a uz pomoć dimera možete pojačati osvjetljenje i usmjeriti pažnju na neke detalje interijera (slika na zidu, prekrasna vaza postavljena u nišu, itd.) pomoć rasvjete, potrebna stvar izlazi u prostoriju prvog plana.

LED lampe, podesive pomoću dimera, omogućavaju vam da dobijete šareni efekat tokom nekih koncerata, reklama ili specijalnih događaja.

Dimer je veoma pogodan za kućne zabave. Kada gosti sjede za stolom, potrebno je jako osvjetljenje, ali tokom plesa možete ga prigušiti. Posebno je udobno i blagotvorno koristiti takav uređaj za vrijeme romantične večere ili spoja, kada nije potrebno da lampa bude upaljena punom snagom.

A ovo su samo neki od općih primjera. Svakako, svako ima svoju opciju za korištenje dimera. Dakle, ova stvar je neophodna, zgodna i isplativa, možete je instalirati kod kuće i preporučiti je svojim prijateljima.

Uređaj i princip rada

Sada, kako kažu, pogledajmo dimmer iznutra. Kakav je ovo uređaj i od kojih elemenata se sastoji? Na čemu se zasniva njegov princip rada?

Svi moderni elektronski dimeri imaju ključ u svom dizajnu kao glavni element (može se nazvati i prekidačem ili prekidačem), kojim upravljaju poluvodički tranzistor, triac ili tiristorski uređaji. Većina uređaja ne proizvodi sinusoidni signal na izlazu, elektronski ključ, takoreći, odsijeca dijelove sinusoida.

Da bi bilo jasnije, struja teče u električnoj mreži koja ima sinusni oblik. Da biste promijenili svjetlinu, trebate primijeniti podrezani sinusni val na lampu. Dvosmjerni tiristor odsijeca prednju ili zadnju ivicu sinusnog vala naizmjenične struje, čime se smanjuje napon koji napaja lampu.

Ovisno o tome koji je prednji dio sinusnog vala odsječen, podesiva metoda se razlikuje:

  • podešavanje prednje ivice;
  • podešavanje padajuće ivice.

Obje ove metode se koriste za upravljanje različitim lampama:

  1. Zatamnjenje LED i halogenih sijalica vrši se pomoću elektronskih transformatora, a podešavanje se vrši duž zadnje ivice.
  2. Kompaktne fluorescentne i LED sijalice napona od 220 V, kao i sijalice niskog napona, regulišu se pomoću elektromagnetnih transformatora i metodom vodećih ivica.

Obje ove metode su pogodne za žarulje sa žarnom niti.

Dizajn dimera također uključuje zaštitu od kratkih spojeva i pregrijavanja.

Budući da su dimeri sposobni da generišu elektromagnetne smetnje, da bi se smanjio njihov nivo, prigušnica ili induktivno-kapacitivni filteri su povezani serijski u kolo.

Za više informacija o tipičnom krugu zatamnjivanja, pogledajte ovaj video:

Prednosti i nedostaci

Prvi dimeri su bili mehanički kontrolisani i imali su jednu jedinu funkciju - da menjaju svetlinu lampe.

Moderni regulator ima niz drugih funkcija:

  1. Automatsko uključivanje i isključivanje.
  2. Može se kontrolisati daljinski putem radija, glasovne komande, akustične promjene (šum ili pljesak), preko infracrvene veze.
  3. Kontroler osvjetljenja osjetljiv na dodir omogućava vam da nesmetano uključite i isključite lampu. Zbog toga je moguće izbjeći iznenadne skokove struje kroz lampe, zbog čega potonje često pregore.
  4. Dimeri se koriste za simulaciju prisutnosti. Ovo je posebno zgodna funkcija koja će vam pomoći da "nepozvane goste" držite podalje od vašeg doma kada nikoga nema kod kuće. Postavljen je poseban program prema kojem dimer automatski uključuje i gasi svjetla u različitim prostorijama. Stvara se iluzija da su vlasnici kod kuće.

Kao i svaki tehnički uređaj, dimmer ne može biti sto posto univerzalan, ima svoje nedostatke:

  • izaziva elektromagnetne smetnje;
  • izlazni napon ima nelinearnu ovisnost o vrijednosti otpornika u kolu elektronskog dimmera;
  • Od njega ne mogu da rade fluorescentne lampe, kao ni lampe koje svetle kroz prigušnice;
  • izlazni napon elektronskih dimmera ima nesinusoidan oblik, tako da se ne preporučuje spajanje transformatora za smanjivanje na njega;
  • kada radite sa žaruljama sa žarnom niti, niska efikasnost.

Koje vrste dimera postoje?

Prema načinu podešavanja, postoji touch dimer, mehanički, akustični i daljinski.

Počnimo s najjednostavnijim - mehaničkim. Ako uzmemo u obzir vrstu izvedbe, možemo razlikovati sljedeće vrste dimmera:

  1. Modularni. Regulišu osvetljenje na javnim mestima (stepeništa, hodnici, ulazi). Ovaj tip uređaja se montira u razvodnu ploču.
  2. Monoblok. Instaliran je da prekine fazu kruga koji ide na rasvjetno opterećenje i obavlja funkcije prekidača.
  3. Blok verzija je kada je dimer montiran zajedno sa prekidačem (kao utičnica-sklopka).

Najčešće se u svakodnevnom životu koriste monoblok dimeri, koji se razlikuju u načinu upravljanja:

  • Okretanje. Ovaj dimer ima dugme koje se okreće. Ako ga postavite na krajnju lijevu poziciju, osvjetljenje se isključuje. Ako postupno okrećete dugme udesno, svjetlina lampe će se povećati.
  • Ključ. Ovaj uređaj je po izgledu vrlo sličan običnom prekidaču s dva ključa. U tom slučaju, jedan taster uključuje ili isključuje lampu, a drugi se koristi za podešavanje snage osvetljenja (držanjem tastera).
  • Okreni-guraj. Princip rada je isti kao i kod rotacionog uređaja, samo da bi se uključilo osvjetljenje, ručka je malo uvučena.

Kontroleri osvjetljenja osjetljivi na dodir sada su vrlo popularni, imaju prekrasan izgled i izgledaju skladno u svakom interijeru (posebno u stilu visoke tehnologije). Podešavanje se vrši dodirom dodirnih dugmadi.

Dimeri s daljinskim upravljačem smatraju se najprikladnijim. Ovo je zasluženo, jer pomoću daljinskog upravljača možete podesiti jačinu rasvjete s bilo kojeg mjesta u prostoriji.

Akustični prigušivači se najčešće koriste pri planiranju “pametne kuće”, gdje se rasvjetom može kontrolisati glasovnim komandama ili pljeskanjem rukama.

Dimeri se mogu podijeliti prema vrsti lampi kojima upravljaju:

  1. Najjednostavniji uređaji se koriste za žarulje sa žarnom niti i halogene žarulje, koje rade na naponu od 220 V. Ovdje je sve jednostavno - mijenja se napon i prilagođava se snaga sjaja niti.
  2. Kolo za halogene sijalice koje rade na naponu od 12 V ili 24 V mora imati opadajući transformator. Kada to nije moguće, odaberite regulator za vrstu transformatora koji se koristi (imaju posebnu oznaku - C za elektronski, RL za namot).
  3. LED lampe zahtijevaju ugradnju dimmera s impulsnom modulacijom trenutne frekvencije.

Štedne i fluorescentne lampe je teško regulisati. Stručnjaci generalno ne preporučuju ovo. Ako stvarno trebate kontrolirati takve žarulje, uključite elektronski starter u krug zatamnjivanja.

Za više informacija o zatamnjivanju različitih vrsta lampi pogledajte ovaj video:

Pa, pokušali smo da se upoznamo s takvim regulatorom svjetla kao što je dimmer. Nadamo se da sada manje-više razumijete šta je to i koji je princip rada. Što se tiče dijagrama povezivanja, dimeri se ugrađuju u krug ili umjesto prekidača ili u seriji s njim. Inače, ako ste od prvog razreda dobri s elektronikom, onda vam neće biti teško napraviti dimer vlastitim rukama.

Dobar dan drage ljepotice!

Opet sam sa tobom, Oksana Zubkova :)

A danas vam želim reći o nevjerovatnoj moći ne čudotvorne pilule ili skupe procedure. I ne o inozemstvu SUPERed. Danas ćemo pričati o... jednostavan kupus :) Ali što nikako nije jednostavno. I postoji u prirodi za potpunu zaštitu zdravlja žene i prirodne ravnoteže njenih hormona. Danas ćemo pričati o ovom JAKOM kupusu.

Dokazano je da su žene gotovo nekoliko puta podložnije raznim autoimunim bolestima od muškaraca. Čitava poenta je da nivo hormona estrogena direktno utiče na snagu ili slabost našeg imuniteta. Imune ćelije obično imaju receptore za estrogen, a upravo ti hormoni ih stimulišu da proizvode antitela u slučaju opasnosti po zdravlje organizma.

Ako posmatrate sebe

- zadržavanje tečnosti
- predmenstrualni sindrom
- obilne ili neredovne menstruacije
- povećanje grudi ili bolna osjetljivost
- ciste dojke i ciste jajnika
- migrene i glavobolje
- gubitak kose, proširene pore na licu
- ispupčen stomak
– endometrioza, fibroidi, problemi sa začećem
- neplodnost
- poteškoće sa gubitkom težine
- problemi sa prostatom, pivski stomak, rast grudi, smanjen libido kod muškaraca...

Onda znaj da je razlog 90% hormonalnih problema savremeni čovek jesu PSEUDOestrogeni - supstance napravljene ljudskom rukom, koje, kada uđu u naš organizam, on prepoznaje kao sopstvene hormone, estrogene.

PSEUDOestrogeni ili "lažni" estrogeni - Riječ je o sintetičkim hormonima koji sadrže kontracepcijske pilule, teške metale u zraku i hrani, hemijsko čišćenje stvari, većinu komercijalne kozmetike, farbe za kosu, plastiku, antibakterijski sapun, kafu, komercijalno meso, kao i „bezopasni“ drozd ( candida ). Oni su u stanju, čak i uz minimalan ulazak u organizam, da povećaju količinu estrogena nekoliko puta, narušavajući tako delikatnu ravnotežu hormona i desetine, stotine puta povećavajući šanse za razvoj raka.

"Kakve veze ima kupus s tim?" - pitate :) I pored toga što nam priroda daje jedinstveno rješenje za sve navedene probleme - bez sintetičkih hormona, tretmana, tableta i slično. Samo kupus! I možete biti sigurni da ćete lako i brzo preuzeti kontrolu nad nivoom “lošeg” estrogena.

Neće svi jesti kupus za doručak, ručak i večeru... A osim toga, zimi nema kupusa. sta da radim? Odgovor je, kao i uvijek, jednostavan. Izvadite supstancu DIM iz kupusa, stavite je u korisnu kapsulu i popijte sa čašom vode.


DIM – di-indol metan
je ekstrakt kupusa koji ima jedinstvenu sposobnost uklanjanja PSEUDOestrogena iz tijela, osiguravajući vam tako zdrave hormone, zaštitu od raka i snažan imunološki sistem.

DIMčini vaše tijelo vitkim, smanjujući postotak tjelesne masti i daje vam sjajan i lijep seks, jer poboljšava rad ne samo vaših hormona, već i reguliše zdravlje prostate kod muškaraca.

DIM – Hormonska pilula iz prirode!

DIM se nalazi u povrću krstaša, uključujući kelj, karfiol, prokulice, savoju, crveni kupus, kelerabu, brokulu i drugo slično zeleno povrće.

Bioaktivan DIM osim toga, ovo je najprirodniji način da poboljšate rad svojih hormona i vratite svoju težinu u normalu.

Ali to nije sve! Supstanca koja se nalazi u crvenom cvijeću - sulforafan – je onkoprotektor koji može suzbiti ćelije raka, pa čak i podstaći njihovo samouništenje. Sulforafan također aktivira obnavljanje proteina u ćelijama oštećenim malignim neoplazmama i pomaže u zaštiti organizma od djelovanja kancerogena i slobodnih radikala. Brojne studije su dokazale njegovu efikasnost u liječenju raka dojke.

Zato DIM dodatak prehrani– Vaša najbolja, 100% prirodna zaštita od raka!

Posljednji akordi o kojima se govori su umanjeni i uvećani.

Smanjeni akordi se pišu ili kao "dim" ili ponekad sa krugom (Cdim ili Co).

Dimni akordi se sastoje od sljedećih nota:

1., mol 3., umanjen 5., dupli belet 7. (dvostruki belet - za one koji razumeju)

(dvostruka sedmica je ista nota kao i durska šestica, ali u muzičkoj teoriji obično se piše kao dvostruka sedmica i ne pitajte zašto!)

Adim bi tada izgledao kao: A, C, Eb, Gb

Imajte na umu da su intervali između uzastopnih nota u prigušenom akordu SVE molske terce.

To znači da ako napravite dim akord za C, dobit ćete iste note kao i za Adima.

Drugim riječima, Adim = Cdim = Ebdim = Gbdim = A+C+Eb+Gb Dakle, kada svirate prigušen akord, pomjeranje ga tri praga gore ili dolje će vam dati isti akord!

Postoji i akord koji se zove polusmanjeni akord ili umanjeni 7. Obično ga napišem nešto poput E7-5 - drugi naziv za isti akord. Veoma je korisno znati različite nazive za isti akord.

Razlika između njega i "običnog" prigušenog akorda je u tome što je 7. u ovom akordu jednostavno ravan, a ne duplo ravan (usput rečeno, zato se i zove polusmanjeni).

Sastoji se od sljedećih koraka: 1., mol 3., mol 5., mol 7.

Prošireni akord se sastoji od sljedećih nota:

1., glavni 3., prošireni 5

Dakle, A aug izgleda ovako: A C# F
(intervali između susjednih nota su velike terce - tj. 4 polutona)

Obično se pišu kao "A aug" ili "A+" ili "A+5".

Zdravo, dragi čitaoci. U današnjem članku ćemo pogledati kako harmonično upotrijebiti umanjeni akord, kao i koji akordi se mogu njime zamijeniti.

O smanjenom akordu smo govorili u članku o sedmokordima - ovo je sedmokord, odnosno sastoji se od četiri zvuka. Zašto je manji? - pročitajte o tome u članku. O tome kako koristiti ovaj akord u harmoniji raspravljalo se u članku. U stvari, ima mnogo aplikacija - također smo zamijenili, na primjer, G7 dominantni sedmokord sa smanjenim akordima. Iz članka znate i o zanimljivostima ovih harmonija, koje značajno proširuju opseg njihove primjene na vratu gitare.

Danas ćemo naučiti još nešto zanimljivo što se također može koristiti.

Zamislimo da imamo harmoniju i ona sadrži, kao i obično, tonik – subdominantnu – dominantnu. A jedan od naših akorda je dur (ili durski sedmokord) ili čak dva, nije važno. Na primjer, tonika je C-maj, subdominanta je F-maj, a dominanta je G7. Usput, sjećate li se kako zamijeniti svaki od ovih akorda, koristeći značajke koje smo opisali u članku?

Razmotrit ćemo priliku da danas diverzificiramo tip durskog akorda. Ponekad koriste kombinaciju umanjenog akorda i C-maja naizmjenično sa C-smanjenim - zvuči zanimljivo. Možemo svirati i C#dim umjesto C-maja, odnosno zamjenjivi su.

Na ovaj način možemo promijeniti zvuk harmonije kao i uvijek. Međutim, kako smo došli do zaključka da su ovi akordi zamjenjivi? Šta im je zajedničko? Ovdje dolazi zabava. Ovo je vrlo slično onome što smo napisali u članku - gdje o tonalitetu trećeg stepena srodstva. Istina, u tom članku smo jednostavno pričali o njima, ali nismo razmatrali kako se to događa, sada ćemo to učiniti.

Kako to možemo objasniti? U stvari, možda ćete sami doći do zaključka da su C-maj i C#dim povezani akordi i da ih možete mijenjati jedni s drugima. Da biste to učinili, morate izvršiti neke manipulacije - pronaći medijanta Em od Cmaja.

pirinač. 1

Zatim pretvorite Em u Em6 i promijenite bas notu (tonik) u A (kao što smo učinili u članku).

pirinač. 2

A onda mijenjamo notu A u rezultirajućem A7 u A-diš, dobijajući C#dim (C-diš-smanjeno).

pirinač. 3

Ispostavilo se da su akordi Cmaj i C#dim u određenoj mjeri jednaki jedni drugima i stoga mogu djelovati u harmoniji, ili čak zamijeniti jedni druge.

pirinač. 4

Na ovaj jednostavan način (u otprilike tri koraka) možemo pronaći zamjene za durske akorde (ne samo za durske, već i za obične trozvuke i dominantne sedmokorde) i uspješno ih koristiti. Umanjeni akord u našem slučaju je dobro uzeti u sredini kompozicije kada je razvijate, jer zvuči napeto i jako je dobro preći iz njega u akorde koji imaju mekši i stabilniji zvuk.

Varijabla je kontejner u kojem VBA pohranjuje podatke. Detaljnije, to je kao kutija u koju možete nešto staviti za pohranu, a zatim po potrebi izvaditi. Samo u ovom slučaju pohranjujemo broj, niz ili druge podatke u varijablu, koje onda možemo izdvojiti iz nje i po potrebi koristiti u kodu.

Čemu služi varijabla? Za spremanje vrijednosti i primjenu kasnije u bilo koje vrijeme. Na primjer, iznos se upisuje u ćeliju A1, a klikom na dugme počinje ažuriranje izvještaja. Nakon ažuriranja izvještaja, iznos u A1 će se promijeniti. Potrebno je provjeriti iznos prije ažuriranja sa iznosom nakon i, ovisno o tome, poduzeti neku radnju. Varijabla će vam samo omogućiti da zapamtite vrijednost ćelije prije nego što se ažurira i da koristite upravo tu vrijednost nakon ažuriranja.

Zahtjevi za varijable:

Možete koristiti simbole slova i brojeva kao imena varijabli, ali prvo slovo u imenu varijable uvijek mora biti slovo. Upotreba tačaka, zareza, razmaka i drugih znakova interpunkcije osim donjih crta nije dozvoljena. Dužina imena ne smije biti veća od 254 karaktera. Takođe ne možete koristiti rezervisane konstante VBA editora kao imena za varijable. (na primjer Sub, Msgbox, ubound, Date, itd.). Takođe, mala slova nisu važna za varijable.

Sada pogledajmo glavne tipove podataka deklarirane u VBA koji se mogu pohraniti u varijablama:

Tip podataka Zauzima bajt u memoriji Granice vrijednosti
Byte 1 Integers from 0 prije 255
Boolean 2 Istinito ili False
Integer 2 Cijeli brojevi iz ( -32768 ) prije 32767
Dugo 4 Cijeli brojevi iz ( -2147483648 ) prije 2147483647
Single 4 Od ( –3.402823E+38) prije ( –1.401298E-45) i od 1.401298E-45 prije 3.402823E+38
Dvostruko 8 Od ±1,79769313486232E+308 prije ±4,94065645841247E-324
Decimala 12 Od ±79228162514264337593543950335 prije nema decimalnih mjesta ±7,9228162514264337593543950335 sa 28 decimala
Valuta 8 Od ( –922337203685477.5808 ) prije 922337203685477.5807
Datum 8 Od 01.01.100 prije 31.12.9999 (ne brkati sa datumima u Excelu - 01/01/1900 do 12/31/2078)
String 1 Od 0 prije 65400 znakova za fiksne stringove i nešto više od 2 milijarde za nizove promjenjive dužine
Objekat 4 Bilo koji objekat
Niz Određuje se brojem i veličinom elemenata -
Varijanta od 16 Bilo koji od ugrađenih tipova podataka

Kao što možete vidjeti iz tabele, Variant zauzima najviše memorije. Štaviše, ovo je ako pohranjuje numeričke podatke. Ako takva varijabla pohranjuje podatke tipa niza (tekst), tada će se mjeriti veličina zauzete memorije počevši od 22 bajta + dužina niza pohranjenog u varijabli. Što više memorije varijabla zauzima, to je duže potrebno za inicijalizaciju u memoriji i sporije će se kod izvršavati. Zbog toga je važno eksplicitno postaviti tip podataka pohranjenih u varijablu - to se zove deklarisati varijablu.

Decimalni tip podataka se više ne koristi, tako da deklarisanje varijable ovog tipa u VBA neće raditi - takav pokušaj će rezultirati sintaksičkom greškom. Za rad sa podacima tipa Decimal, varijabla mora u početku biti deklarirana kao Variant ili bez tipa (na primjer, Dim a), jer Tip podataka Variant je podrazumevani u VBA i prihvata bilo koji tip podataka.

Također možete dodijeliti druge tipove podataka varijablama koje nisu u gornjoj tabeli - to su tipovi koje podržava objektni model aplikacija na koje je VBA "povezan". Na primjer, ako unesete VBA iz Excela, biblioteka tipova modela objekata programa Excel je omogućena po defaultu i mnogi tipovi ovog modela objekta postaju dostupni za varijable. Mnogi od njih su svima poznati: radna sveska, radni list, opseg, ćelije, grafikon itd. One. To su knjige, listovi, ćelije, grafikoni. Postoji mnogo vrsta, za skoro svaki predmet i kolekciju. Nema smisla raspravljati o svemu ovdje. Mogu vam dati samo par linija koda:

Dim rRange as Range Set rRange = Range("A1") "dodijeljena referenca na ćeliju A1 trenutnog lista

Deklaracije varijabli su detaljno opisane u nastavku.
Više o pristupu rasponima iz VBA možete pročitati u ovom članku: Kako pristupiti rasponu iz VBA

Kako deklarisati varijable
U stvari, sve je vrlo jednostavno. To se radi pomoću operatora opsega: Dim, Public, Static i operatora dodjele As. Najčešći operater je Dim. Uzmimo to kao primjer. Sintaksa deklaracije:

[operator opsega] Ime_varijable As [tip podataka]

Vrlo česta greška prilikom deklarisanja varijabli koju čine početnici koji uče VBA:

Dim MyVar1, MyVar2, MyVar3 kao cijeli broj

Dim MyVar1, MyVar2, MyVar3 kao cijeli broj

Čini se da je na osnovu logike, svim varijablama dodijeljen tip podataka Integer. Ali ovo je pogrešna presuda. Tip Integer se dodeljuje samo poslednjoj varijabli za koju je "vezan" operatorom As - MyVar3. Sve ostale varijable su tipa podataka Variant. One. ako eksplicitno ne specificirate tip pohranjenih podataka za varijablu (tj. nemojte specificirati tip podataka za to), onda sam VBA takvoj promenljivoj dodeljuje tip podataka Variant, jer može pohraniti bilo koju vrstu podataka. A ovako izgleda ispravna dodjela tipa podataka:

Dim MyVar1%, MyVar2%, MyVar3%

Postoji samo šest tipova koji se mogu deklarirati na sličan način:
! - Samac
# - Dvostruko
$ - String
% - cijeli broj
& - Dugo
@ - Valuta
Na šta treba obratiti pažnju kada deklarirate varijable na ovaj način: između naziva varijable i znaka tipa ne bi trebalo biti razmaka.
Ja lično radije koristim prvi metod, tj. indikacija pune vrste. Čitljiviji je i razumljiviji. Ali ovo su moje preferencije i u vašim kodovima imate pravo da koristite metod koji vam odgovara - neće biti grešaka.

Sada pogledajmo operatore opsega (Dim, Public i Static):

  • Dim - ovaj operator se koristi za deklarisanje varijable čija će vrijednost biti pohranjena samo u proceduri unutar koje je ova varijabla deklarirana. Kada se neka procedura pokrene, takva varijabla se inicijalizira u memoriji. Njenu vrijednost možete koristiti samo u ovoj proceduri, a po završetku procedure varijabla se isprazni iz memorije (briše) i podaci o njoj se gube. Varijabla deklarirana na ovaj način se također poziva lokalna varijabla. Međutim, koristeći ovaj operator, možete deklarirati varijablu koja će biti dostupna u bilo kojoj proceduri u modulu. Varijablu je potrebno deklarirati izvan procedure - u oblasti deklaracije (čita se kao prvi red u modulu, nakon deklaracionih linija tipa - Option Explicit). Tada će vrijednost varijable biti dostupna u bilo kojoj proceduri samo modula u kojem je ova varijabla deklarirana. Takve varijable se nazivaju varijable nivoa modula.
  • Statički - ovaj operator se koristi za deklarisanje varijable čija je vrijednost namijenjena za korištenje unutar procedure, ali bez gubitka vrijednosti ove varijable po završetku procedure. Varijable ovog tipa se obično koriste kao kumulativni brojači. Takva varijabla se inicijalizira u memoriji prvi put kada se izvrši procedura u kojoj je deklarirana. Po završetku procedure, podaci za varijablu se ne učitavaju iz memorije, ali nisu dostupni u drugim procedurama. Čim ponovo pokrenete proceduru s ovom varijablom, podaci za takvu varijablu bit će dostupni u obliku u kojem su bili prije završetka procedure. Takva varijabla se učitava iz memorije tek nakon zatvaranja projekta. (knjige sa šifrom). U običnom govoru, takve varijable se češće nazivaju globalno(vjerovatno zbog činjenice da su ranije takve varijable bile deklarirane pomoću Globalnog operatora, koji je sada zastario i ne koristi se)
  • Public - ovaj operator se koristi za deklarisanje varijable čija će vrijednost biti pohranjena u bilo kojoj proceduri projekta. Ovako deklarirana varijabla mora biti deklarirana izvan procedure - u području deklaracije. Takva varijabla se učitava u memoriju kada se projekt učita (kada otvaram knjigu) i pohranjuje vrijednost dok se projekat ne isprazni (zatvaranje knjige). Možete ga koristiti u bilo kojem modulu i bilo kojoj proceduri projekta. Bitan: Potrebno je deklarisati varijablu na ovaj način striktno u standardnom modulu. Takve varijable se nazivaju varijable na nivou projekta.
    Za bolje razumijevanje gdje i kako deklarirati varijable na nivou projekta, dva mala primjera.
    Pogrešan oglas

    Opcija Explicit Sub main() Public MyVariable As String MyVariable = "Globalna varijabla" "prikaži trenutnu vrijednost varijable MsgBox MyVariable "pokušaj promijeniti vrijednost varijable Call sub_main "prikaži promijenjenu vrijednost varijable MsgBox MyVariable End Sub " dodatna procedura za promjenu vrijednosti pod varijable ChangeMyVariable() MyVariable = "Promijenila vrijednost" End Sub

    varijable neće biti vidljive u svim modulima svih procedura i funkcija projekta jer:
    1. Public operator nije dozvoljen unutar procedure (između Sub i End Sub), tako da će VBA definitivno izbaciti grešku kada pokuša da izvrši takvu proceduru - Nevažeći atribut u pod ili funkciji.
    2. Čak i ako se Public zameni sa Dim, to će već biti varijabla na nivou procedure i neće biti dostupna za druge procedure.
    3. Jer deklaracija je netačna - druga procedura (ChangeMyVariable) ne zna ništa o varijabli MyVariable i, naravno, neće je moći promijeniti.
    Tačna najava

    "iznad globalnih varijabli i konstanti mogu postojati samo deklaracije: Opcija Eksplicitna "prisilna deklaracija varijabli Opcija Base 1 "donja granica deklariranih nizova počinje od 1 Opcija Uporediti tekst "poređenje teksta bez obzira na velika i mala slova "globalna varijabla - prva linija, iznad svih procedura Javna moja varijabla kao string „dalje procedure i funkcije Sub main() MyVariable = "Globalna varijabla" "prikaži trenutnu vrijednost varijable MsgBox MyVariable, vbInformation, "www.site" "pokušava promijeniti vrijednost varijable Pozovite ChangeMyVariable "prikaži promijenjenu vrijednost varijable MsgBox MyVariable, vbInformation, "www.site" End Sub "dodatna procedura za promjenu vrijednosti varijable Sub ChangeMyVariable() MyVariable = "Promijenili su njegovo značenje" End Sub

    "Samo deklaracije mogu biti iznad globalnih varijabli i konstanti: Opcija Eksplicitna "prisilna deklaracija varijabli Opcija Base 1 "donja granica deklariranih nizova počinje od 1 Opcija Usporedi tekst "poređenje teksta bez obzira na velika i mala slova "globalna varijabla - prvi red, iznad svih procedura Javno MyVariable As String "dalje procedure i funkcije Sub main() MyVariable = "Globalna varijabla" "prikazuje trenutnu vrijednost varijable MsgBox MyVariable, vbInformation, "www.site" "pokušava promijeniti vrijednost varijable Call ChangeMyVariable "pokazuje promenjena vrednost varijable MsgBox MyVariable, vbInformation, "www ..procedura za promenu vrednosti varijable Sub ChangeMyVariable() MyVariable = "Promenila svoju vrednost" End Sub

  • Operatori opsega se također mogu primijeniti na procedure. Postoji još jedan operator opsega dostupan za procedure - Privatni. Ovako deklariranoj proceduri pristupa se samo iz modula u kojem je napisana i takva procedura nije vidljiva u dijaloškom okviru za pozivanje makroa( Alt+F8)

Kako pravilno imenovati varijablu:

"Šta je najteže biti programer? Smišljati imena za varijable." :-) Ali smisliti ime varijable nije tako lako. Možete im, naravno, dati imena kao što su: a, d, f, x, y itd. (Ja to ponekad radim i sam, ali ili u jednostavnim kodovima ili za posebno zamagljivanje koda). Ali vrijedi razmisliti o tome: kako ćete njima upravljati u velikom kodu? Kod reda 10 će i dalje tolerirati takva imena, ali za veće projekte ne bih preporučio rad s takvim varijablama u njima. I sami ćete se zbuniti oko toga koja je varijabla deklarirana i koji tip podataka može pohraniti i koja joj je vrijednost dodijeljena. Stoga je najbolje da svojim varijablama date smislena imena i slijedite konvencije o imenovanju varijabli. Kakav dogovor? Vrlo je jednostavno: ispred glavnog naziva varijable stavlja se prefiks, koji označava vrstu podataka koje namjeravamo pohraniti u ovu varijablu. Već sam govorio o dostupnim tipovima podataka iznad. Ispod je primjer tabele korespondencije prefiksa sa tipovima podataka:

Prefiks Vrsta pohranjenih podataka
b Boolean
bt Byte
i Integer
l Dugo
s Single
d Dvostruko
c Valuta
dt Datum
str String
obj Objekat
v Varijanta

Lično sam ga malo prepravio za sebe, jer... Neke od zapisa mi se čine oskudnim. Na primjer, označavam Double as dbl, i Single as sgl. Ovo mi se čini jasnije.

Koja je još jedna prednost eksplicitnog navođenja prefiksa podataka. VBA ima operatore kao što je Def, pomoću kojih možete odrediti zadani tip podataka za varijable čije prvo slovo imena spada u opseg specificiran u operatoru. Na primjer:

DefBool B-C Sub test() Dim bCheck, cCheck End Sub

Ali vjerujem da je jedno slovo za jednu vrstu sasvim dovoljno. Možete odrediti nekoliko Def operatora odjednom.

DefBool B DefStr S Sub test() Dim bCheck, sCheck End Sub

DefBool B DefStr S Sub test() Dim bCheck, sCheck End Sub

Ispod je kompletna lista operatora tipa i podataka koje svaki specificira:
DefBool- Postavlja tip na Boolean
DefByte- Postavlja tip bajta
DefCur- Postavlja vrstu valute
DefDate- Postavlja tip datuma
DefDbl- Postavlja tip Double
DefInt- Postavlja tip na Integer
DefLng- Postavlja dugi tip
DefObj- Određuje tip objekta
DefSng- Postavlja tip pojedinačno
DefStr- Određuje vrstu stringa
DefVar- Određuje tip Variant
Podrazumevano, VBA koristi naredbu DefVar za sve varijable.

Pa, važna stvar je direktno smisleno ime varijable. Ime varijable treba otprilike odražavati ono što će biti pohranjeno u njoj. Na primjer, kreirate izvještaj i trebate deklarirati dvije varijable: jedna je naziv lista, druga je naziv radne knjige. Možete to učiniti ovako: str1, str2. Ukratko, odlično. Ali ako razmislite o tome, kako možete razumjeti koja od ovih varijabli pohranjuje šta? Nema šanse. Morate pogledati kroz kod i zapamtiti koja je varijabla dodijeljena kojoj vrijednosti. Nije baš zgodno, zar ne? Šta ako postavite imena ovako: strBookName, strSheetName, čini se da je jasnije šta ćemo u njima pohraniti. Ovo je zgodno ne samo za vas kada radite s kodom, već i za druge ljude koji će možda koristiti vaš kod u budućnosti. Biće im zgodnije da pročitaju kod ako je pravilno formatiran i ako su varijable nazvane smisleno. I ne treba štedjeti na dužini imena - ime bi trebalo biti razumljivo. Bez fanatizma, naravno :-). Iako nam VBA omogućava da kreiramo varijable dužine do 254 karaktera, jednako je nezgodno čitati takvu promenljivu kao i sa jednim znakom. Ali ovdje sve ovisi o vašim željama i mašti.
Mali dodatak: Bolje je da se naviknete na imenovanje varijabli latiničnim (tj. engleskim alfabetom), jer Za VBA, engleski je "maternji" jezik i bolje ga je koristiti.

Mali primjer korištenja varijabli u kodovima:

Sub main() "deklariramo varijable sa dodjeljivanjem specifičnih tipova"Kao string - tekst „Dok je Long cijeli broj Dim sAddress As String , sNewAddress As String , sShName As String Dim lRow As Long Dim rRange as Range "dodijeljen tip varijable ćelija/opseg "dodijelio varijablu rRange referencu na trenutno odabranu ćeliju Postavite rRange = Izbor "promijenite odabir - odaberite ćeliju D9 Raspon ("D9"). Odaberite "dodijelite varijabli adresu odabranih ćelija sAdresa = Odabir.Adresa "dodijelite varijablu lRow vrijednost prvog reda odabranog područja lRow = Izbor.Red "prikaži poruku MsgBox "Adresa odabranog područja: "& sAddress, vbInformation, "www.site" MsgBox "Broj prvog reda: "& lRow, vbInformation, "www.site" "dodijelite drugoj varijabli vrijednost adrese ćelije A1 sNewAddress = "A1" "odaberite ćeliju specificiranu promjenljivom sNewAddres Raspon(sNovaAdresa).Odaberite MsgBox "Adresa odabranog područja: "& sNewAddress, vbInformation, "www.site" "odaberite prvobitno odabranu ćeliju pomoću varijable rRange rRange.Select MsgBox "Adresa odabranog područja: "& rRange.Address, vbInformation, "www.site" "postavite vrijednost varijable sShName = "excel-vba" "preimenujte aktivni list u ime navedeno od varijable ActiveSheet.Name = sShName End Sub

Sub main() "deklariše varijable sa dodjeljivanjem specifičnih tipova "Kao niz - tekst "As Long - integer Dim sAddress As String, sNewAddress As String, sShName As String Dim lRow As Long Dim rRange as Range "dodijelio tip ćelije/opseg varijabli " dodijelio varijablu rRange vezu na trenutno odabranu ćeliju Postavi rRange = Izbor "promijeni odabir - odaberite ćeliju D9 Opseg("D9").Odaberi "dodijeli varijabli adresu odabranih ćelija sAddress = Selection.Address "dodijelite varijablu lRow vrijednost prvog reda odabranog područja lRow = Selection .Row "prikažite poruku MsgBox "Adresa odabranog područja: " & sAddress, vbInformation, "www..site" "dodijelite vrijednost adresu ćelije A1 na drugu varijablu sNewAddress = "A1" "odaberite ćeliju specificiranu varijable sNewAddres Range(sNewAddress). Odaberite MsgBox "Adresu odabranog područja: " & sNewAddress, vbInformation, "www.site" "odaberite inicijalno odabrana ćelija pomoću varijable rRange rRange. Odaberite MsgBox "Adresa odabranog područja: " & rRange.Adresa, vbInformation, "www.site" "postavite vrijednost varijable sShName = "excel-vba" "preimenujte aktivni list u ime specificirano promjenljivom ActiveSheet.Name = sShName End Sub

Članak će vam pomoći da vidite korak po korak izvršavanje ovog koda: Hvatanje grešaka i otklanjanje grešaka VBA koda
Bitan! Ako je varijabli dodijeljena referenca ćelije (Set var = Range("A1")), tada je pristup varijabli identičan pristupu samoj ćeliji A1 kad god se to dogodi. Ova dodjela ne pamti svojstva ćelije prije ili poslije - varijabla pohranjuje referencu na određenu ćeliju i pristup je dostupan isključivo svojstvima ćelije u trenutnom trenutku. Da biste zapamtili vrijednost, boju ćelije, pa čak i adresu (kao i druga svojstva) prije promjene ćelije i primijenili ih čak i nakon promjene/premještanja same ćelije, morate točno zapamtiti svojstva ćelije u varijablama:

Sub main() Dim val, l_InteriorColor As Long, l_FontColor As Long Dim rRange As Range "dodijeljen tip varijable ćelija/opseg "dodijelio varijablu rRange referencu na aktivnu ćeliju Postavite rRange = ActiveCell "zapamti svojstva ćelije val = rRange.Value "value l_InteriorColor = rRange.Interior.Color"цвет заливки l_FontColor = rRange.Font.Color "цвет шрифта !} "kopirajte drugu ćeliju i zalijepite je umjesto aktivne ActiveSheet.Range("D1" ).Copy rRange "provjerite da rRange sada ima potpuno drugačija svojstva - poput D1 "rRaspon boje ispune: " "Raspon boje fonta: "& rRange.Font.Color & vbNewLine, vbInformation, "www.site" "dodijelite svojstva od onih pohranjenih u varijablama rRange.Value = val "vrijednost rRange.Interior.Color = l_InteriorColor "boja popune rRange.Font.Color = l_FontColor "boja fonta "provjerite da li su parametri rRange vraćeni prije kopiranja MsgBox "rRange Value: " & rRange.Value & vbNewLine & _ "rRaspon boje ispune: "& rRange.Interior.Color & vbNewLine & _ "Raspon boje fonta: "& rRange.Font.Color & vbNewLine, vbInformation, "www.site" End Sub

Sub main() Dim val, l_InteriorColor As Long, l_FontColor As Long Dim rRange As Range "dodijelio tip varijable ćelija/opseg "dodijelio varijablu rRange vezu na aktivnu ćeliju Postavi rRange = ActiveCell "zapamti svojstva ćelije val = rRange.Value "(!LANG :l_InteriorColor vrijednost = rRange.Interior.Color"цвет заливки l_FontColor = rRange.Font.Color "цвет шрифта "копируем другую ячейку и вставляем на место активной ActiveSheet.Range("D1").Copy rRange "проверяем, что rRange теперь имеет совершенно другие свойста - как у D1 MsgBox "Значение rRange: " & rRange.Value & vbNewLine & _ "Цвет заливки rRange: " & rRange.Interior.Color & vbNewLine & _ "Цвет шрифта rRange: " & rRange.Font.Color & vbNewLine, vbInformation, "www..Value = val "значение rRange.Interior.Color = l_InteriorColor "цвет заливки rRange.Font.Color = l_FontColor "цвет шрифта "проверяем, что rRange возвращены параметры до копирования MsgBox "Значение rRange: " & rRange.Value & vbNewLine & _ "Цвет заливки rRange: " & rRange.Interior.Color & vbNewLine & _ "Цвет шрифта rRange: " & rRange.Font.Color & vbNewLine, vbInformation, "www.сайт" End Sub!}

Ovo važi i za sve ostale objekte. One. one varijable čije su vrijednosti dodijeljene naredbom Set.

Konstante
Postoji i druga vrsta „varijabli“ - konstante. Ovo je ista varijabla, samo (kao što joj ime govori) ne može se mijenjati tokom izvršavanja koda, jer je konstantna vrijednost i njena vrijednost se dodjeljuje samo jednom - prije izvršavanja koda.

Const sMyConst As String = "Naziv mog programa"

Const sMyConst As String = "Ime mog programa"

Konstante se mogu dodijeliti istim tipovima podataka kao i varijablama. Za dodatni opseg/život konstanti, koristi se samo Public. Ako opseg nije naveden, konstanta će biti dostupna samo iz modula u kojem je deklarirana. Ovdje bih vam skrenuo pažnju na činjenicu da se Dim više ne koristi, jer Dim je identifikator samo za varijable. Nekoliko važnih razlika između deklariranja konstanti i deklariranja varijabli:

  • Kada deklarirate konstantu, morate eksplicitno naznačiti da je to konstanta koristeći ključnu riječ Const
  • odmah u trenutku deklaracije, morate dodijeliti vrijednost konstanti: = "Naziv mog programa"

U svim ostalim aspektima, deklaracija i upotreba konstanti je identična deklaraciji varijabli. Dozvolite mi da ukratko navedem par primjera.
Ako je konstanta deklarirana unutar procedure:

Sub TestConst() Const sMyConst As String = "Ime mog programa" MsgBox sMyConst "prikaži poruku s nazivom programa End Sub Sub TestConst2() MsgBox sMyConst "će uzrokovati grešku Varijabla nije definirana End Sub

Da biste koristili jednu konstantu u svim procedurama projekta (knjige), morate je deklarisati kao Public.

mob_info