Dim означає. Що таке дим і навіщо він потрібний для жінки

З деяких пір серед понять побутової електротехніки все частіше на слуху з'являється слово димер. Що це за пристрій? З якою метою призначено? Може бути чергове дурощі? Чи справді необхідна у побуті річ? Запитань дуже багато, постараємось на все дати докладні відповіді.

Призначення

Слово «діммер» походить від англійської «dim», що у дослівному перекладі російською мовою означає «затемняти». Але самі російські димер часто називають ще світлорегулятором, тому що він є електронним пристроєм, за допомогою якого можна змінювати електричну потужність (тобто регулювати у більшу або меншу сторону).

Найчастіше за допомогою такого пристрою керують освітлювальним навантаженням. Регулятор освітлення призначений для зміни яскравості світла, що випромінюють світлодіодні лампи, а також лампи розжарювання та галогенні.

Найпростішим прикладом диммер є змінний резистор (або реостат). Ще в 19 столітті німецький фізик Йоганн Поггендорф винайшов цей пристрій, щоб за його допомогою можна було регулювати напругу та силу струму в електричному ланцюзі шляхом збільшення або зменшення опору. Реостат являє собою пристрій з регулюванням опору та провідний елемент. Опір може змінюватися східчасто та плавно. Для отримання низької яскравості світла необхідно зменшити напругу. Але опір і сила струму будуть великими, що призведе до сильного нагрівання пристрою. Тож такий регулятор зовсім невигідний, він працюватиме з низьким ККД.

Як димер також можна використовувати автотрансформатори. Їх застосування обумовлено високим ККД, у всьому регульованому діапазоні видаватиметься практично неспотворена напруга з необхідною частотою 50 Гц. Але автотрансформатори досить габаритні, багато важать, керувати ними потрібно докладати чималі механічні зусилля. До того ж, такий пристрій дорого обійдеться.

Діммер електронний – цей варіант найвигідніший з економічної точки зору. Він відрізняється компактністю та трохи іншим принципом дії. Про нього поговоримо докладніше.

Застосування

Що таке димер більш менш зрозуміло. На лампу подається напруга, змінюємо її рівень і таким чином регулюємо яскравість світильника. Тепер кілька слів про те, коли та де цей пристрій застосовують.

Погодьтеся, досить часто виникають ситуації, коли потрібне зменшення яскравості світла:

  • часто потік освітлення необхідно знизити перед сном у спальній кімнаті;
  • деякі приміщення з дизайнерського виконання вимагають зміни світлової картини;
  • іноді освітлення у приміщеннях переводять у так званий черговий режим для того, щоб скоротити витрати енергії.

У виробничих та побутових приміщеннях налаштовують світлодіодні лампи на різні режими споживання. При цьому вибирається оптимальне освітлення і рахунок цього досягається пристойна економія електроенергії.

Що стосується дизайнерських задумів, то зараз стало модним у великих вітальнях чи зальних кімнатах використовувати другорядне підсвічування окремих ділянок. Друге підсвічування продумується до дрібниць, а за допомогою диммерів можна збільшити освітлення і акцентувати увагу на якихось деталях інтер'єру (картина на стіні, встановлена ​​в ніші красива ваза і т. п.) Таким чином, за допомогою підсвічування потрібна річ виходить у кімнаті на перший план.

Світлодіодні лампи, що регулюються за допомогою диммерів, дозволяють отримати барвистий ефект під час концертних, рекламних чи урочистих заходів.

Діммер дуже зручний для домашніх свят. Коли гості сидять за столом, потрібне яскраве освітлення, а під час танців його можна і приглушити. Особливо комфортно та вигідно застосування такого пристрою під час романтичної вечері чи побачення, коли не обов'язково, щоб світильник горів на повну потужність.

І це лише частина спільних прикладів. Напевно, кожен знайде ще свій варіант використання диммерів. Так що річ це потрібна, зручна та економічно вигідна, можна встановлювати у себе та радити знайомим.

Пристрій та принцип дії

А тепер, як кажуть, розглянемо димер зсередини. Що це за пристрій і з яких елементів складається? На чому ґрунтується його принцип дії?

Всі електронні сучасні димери в якості основного елемента мають у своєму конструктивному виконанні ключ (він також може називатися вимикач або перемикач), який керується транзисторними напівпровідниковими, симисторними або тиристорними приладами. Більшість пристроїв не видають на виході синусоїдальний сигнал, електронний ключ як би відсікає ділянки синусоїди.

Щоб вам було зрозуміліше, в мережі протікає струм, який має синусоїдальну форму. Для зміни яскравості на лампу потрібно подати синусоїду, що обрізає. Двонаправлений тиристор відсікає у синусоїдальної хвилі змінного струму передній чи задній фронт, рахунок чого зменшується напруга, що живить світильник.

Залежно від цього, який фронт синусоїдальної хвилі відсікається, відрізняється регульований метод:

  • регулювання по передньому фронту;
  • регулювання заднього фронту.

Обидва ці способи застосовуються для керування різними лампами:

  1. Димування світлодіодних і галогенних ламп здійснюють за допомогою електронних трансформаторів, при цьому застосовується регулювання заднього фронту.
  2. Компактні люмінесцентні та світлодіодні лампи напругою 220 V, а також лампи низької напруги регулюються за допомогою електромагнітних трансформаторів та із застосуванням способу по передньому фронту.

Обидва ці способи підходять для ламп розжарювання.

Конструктивне виконання диммерів включає також захист від короткого замикання та від перегріву.

Оскільки димери здатні генерувати електромагнітні перешкоди, зменшення їх рівня схему послідовно підключають дросель чи индуктивно-емкостные фільтри.

Детальніше про типову схему димера дивіться у цьому відео:

Переваги і недоліки

Перші димери керувалися механічним способом і мали одну-єдину функцію – змінити яскравість світильника.

Сучасний регулятор має низку інших функцій:

  1. Автоматичне увімкнення та вимкнення.
  2. Може керуватися дистанційно через радіоканал, голосову команду, акустичну зміну (шум або бавовну) через інфрачервоний канал.
  3. Сенсорний регулятор освітлення дозволяє плавно вмикати та вимикати світильник. За рахунок цього можна уникнути різких кидків струму через лампи, внаслідок яких останні часто перегорають.
  4. За допомогою димерів імітують присутність. Це особливо цікава функція, яка допоможе відлякати непрошених гостей від вашого домоволодіння, коли нікого немає вдома. Задається спеціальна програма, за якою диммер автоматично вмикає та відключає світло у різних кімнатах. Створюється ілюзія, що вдома є господарі.

Як і будь-який технічний пристрій диммер не може бути універсальним на сто відсотків, у нього є свої недоліки:

  • викликає електромагнітні перешкоди;
  • вихідна напруга має нелінійну залежність від величини опору резистора у схемі електронного диммера;
  • від нього не можуть працювати люмінесцентні лампи, а також лампи, що загоряються через пускорегулюючу апаратуру;
  • вихідна напруга у електронних димерів має несинусоїдальну форму, тому не рекомендується підключати до неї знижувальні трансформатори;
  • під час роботи з лампами розжарювання низький ККД.

Які бувають димери?

За способом здійснення регулювання буває сенсорний диммер, механічний, акустичний та дистанційний.

Почнемо з найпростіших – механічних. Якщо розглядати тип виконання, можна виділити такі види диммеров:

  1. Модульний. Їм регулюють освітлення у громадських місцях (сходові клітки, коридори, під'їзди). Цей тип пристроїв монтують у розподільчому щитку, безпосереднє регулювання здійснює кнопковий або одноклавішний вимикач.
  2. Моноблочний. Встановлюється на розрив фази ланцюга, що йде до освітлювального навантаження, виконує функції вимикача.
  3. Блоковий варіант, коли диммер монтується разом з вимикачем (як блок розетка-вимикач).

Найчастіше в побуті застосовуються моноблочні димери, які різняться за способом управління:

  • Поворотний. Такий диммер має ручку, вона обертається. Якщо встановити її в крайнє ліве положення, то освітлення вимкнено. Якщо поступово повертати ручку праворуч, то яскравість лампи збільшуватиметься.
  • Клавішний. Цей пристрій на вигляд дуже схожий на звичайний двоклавішний вимикач. У цьому випадку за допомогою однієї клавіші відбувається увімкнення або вимкнення світильника, а друга використовується для регулювання потужності освітлення (утримуючи клавішу).
  • Поворотно-натискний. Принцип дії такий самий, як і у поворотного пристрою, тільки щоб увімкнути освітлення, ручка трохи утоплюється.

Дуже популярний зараз сенсорний регулятор освітлення, має гарний зовнішній вигляд, гармонійно виглядає в будь-якому інтер'єрі (особливо в стилі хай-тек). Регулювання здійснюється за рахунок дотику до сенсорних кнопок.

Найзручнішими вважаються димери з дистанційним керуванням. Це цілком заслужено, адже за допомогою пульта регулювати яскравість світильника можна з будь-якої точки кімнати.

Акустичні димери найчастіше застосовують при плануванні «розумного будинку», де керувати освітленням можна шляхом голосових команд або бавовни в долоні.

Дімери можна розділити за типом регульованих ними ламп:

  1. Найбільш прості пристрої використовують для ламп розжарювання та галогенних, які працюють від напруги 220 V. Тут все просто – змінюється напруга, і регулюється потужність свічення нитки розжарення.
  2. Схема для галогенних ламп, що працюють від напруги 12 V або 24 V повинна бути з понижувальним трансформатором. Коли немає такої можливості, то вибирайте регулятор під тип трансформатора, що використовується (у них є спеціальне маркування - С для електронних, RL для обмотувальних).
  3. Світлодіодні лампи вимагають встановлення димерів з імпульсною модуляцією частоти струму.

Енергозберігаючі та люмінесцентні лампи регулювати складно. Фахівці взагалі не рекомендують це робити. Якщо дуже треба керувати такими лампочками, то включіть в схему димера електронний пускач.

Детальніше про диміювання різних типів ламп дивіться у цьому відео:

Ну ось, спробували познайомитися з таким регулятором світла, як диммер. Сподіваємося, що тепер вам більш менш зрозуміло, що це таке і який принцип дії. З приводу схем підключення – димери встановлюються у ланцюг або замість вимикача, або послідовно з ним. До речі, якщо ви з першого класу добре дружите з електронікою, то зробити димер своїми руками вам не складе особливих труднощів.

Доброго дня, дорогі Красуні!

З вами знову я, Оксана Зубкова:)

І сьогодні я хочу розповісти вам про дивовижну силу не чудодійної таблетки чи дорогої процедури. І не про заморську СУПЕРеду. Йтиметься сьогодні про… простий капусті:) Але яка проста ніяк не є. А існує у Природі для тотального захисту здоров'я Жінки та природного балансу її гормонів. Ось про цю СИЛЬНУ капусту ми й поговоримо сьогодні.

Доведено, що Жінки майже в кілька разів більше схильні до різних аутоімунних захворювань, ніж чоловіки. А вся справа в тому, що рівень гормонів естрогенів впливає на силу або слабкість нашого імунітету. Імунні клітини зазвичай мають рецептори естрогенів, і саме ці гормони стимулюють їх виробляти антитіла у разі загрози здоров'ю організму.

Якщо ви спостерігаєте у себе

- Затримку рідини
- передменструальний синдром
- рясні або нерегулярні місячні
- збільшення грудей або її хворобливу чутливість
- кісти грудей та кісти яєчників
- мігрені та головний біль
- Випадання волосся, розширені пори на обличчі
- опуклий живіт
- ендометріоз, фіброїди, проблеми із зачаттям
- Безпліддя
- Проблеми зі схудненням
- Проблеми простати, «пивний» живіт, зростання грудних залоз, зниження лібідо у чоловіків ...

То знайте, що причиною 90% гормональних проблем сучасної людини є ПСЄВДОестрогени - Речовини, зроблені руками людини, які, потрапляючи в наш організм, впізнаються їм як свої власні гормони естрогени.

ПСЕВДОестрогени, або «хибні» естрогени – це синтетичні гормони, які містять протизаплідні таблетки, важкі метали в повітрі та в їжі, хімічне чищення речей, більшість комерційної косметики, фарба для волосся, пластик, антибактеріальне мило, кава, комерційне м'ясо, а також «нешкідлива» молочниця (кандида ). Вони здатні навіть з мінімальним потраплянням до організму збільшувати кількість естрогенів у рази, таким чином порушуючи делікатний баланс гормонів і у десятки, сотні разів збільшуючи шанси захворювання на рак.

«А до чого тут капустяні?» – спитайте ви:) А при тому, що Природа дає нам унікальне вирішення всіх перерахованих вище проблем – без синтетичних гормонів, лікування, таблеток тощо. Просто капуста! І можете бути впевнені, що ви візьмете під контроль рівень «поганих» естрогенів легко та швидко.

Їсти капусту на сніданок, обід і вечерю буде далеко не кожна... Та ще й капусти не буває взимку. Що ж робити? Відповідь, як завжди, проста. Витягти з капусти речовину ДІМ, покласти в корисну капсулу і випити зі склянкою води.


ДІМ – ді-індол метан
– це витяжка з капустяних, яка має унікальну здатність виводити ПСЕВДОестрогени з організму, таким чином будучи вашою страховкою Здорових гормонів, захисту від раку та сильної імунної системи.

DIMробить ваше тіло струнким, зменшуючи відсоток жиру в організмі, і дарує вам яскравий і красивий секс, тому що покращує роботу не лише ваших гормонів, а й регулює здоров'я простати у чоловіків.

DIM – Гормональна пігулка від Природи!

DIM міститься в овочах сімейства хрестоцвітих, включаючи звичайну капусту, цвітну, брюссельську, савойську, капусту, кольрабі, броколі та інші подібні зелені овочі.

Біоактивний DIMв добавці - це найнатуральніший спосіб налагодити роботу ваших гормонів і привести вашу вагу в норму.

Але це ще не все! Виявлена ​​в червонокольорових речовинах – сульфорафан - є онкопротектором, здатним пригнічувати ракові клітини і навіть сприяти їхньому самознищенню. Також сульфорафан активує відновлення білків у пошкоджених злоякісними новоутвореннями клітинах та сприяє захисту організму від впливу канцерогенів та вільних радикалів. Численні дослідження довели його ефективність у лікуванні раку молочної залози.

Ось чому біоактивна добавка DIM- Ваш найкращий, 100% природний захист від раку!

Останні акорди, про які потрібно сказати - це diminished (зменшений) та augmented (збільшений).

Зменшені (diminished) акорди записуються або як "dim" або іноді за допомогою кружечка (Cdim або Co).

A dim акорди складені з наступних нот:

1-а, мінорна 3-я, зменшена 5-а, двічі бемольна 7-ма (дубль-бемоль – для тих, хто зрозумів)

(двічі бемольна 7-ма - це та ж нота, що й мажорна 6-та, але за теорією музики її зазвичай записують як двічі бемолну 7-му і не питайте чому!)

Adim виглядав би тоді як: A, C, Eb, Gb

Зазначимо, що інтервали між послідовними нотами в dim акорді ВСІ є мінорними терціями.

Це означає, що якщо ви будуєте dim акорд для C, ви отримаєте ті самі ноти, що й для Adim.

Тобто Adim = Cdim = Ebdim = Gbdim = A+C+Eb+Gb Так що, коли Ви граєте dim акорд, то зрушивши його на три лади вгору або вниз Ви отримаєте той самий акорд!

Існує також акорд, званий напівзменшеним акордом або зменшеним 7. Я зазвичай записую його як ніби на зразок E7-5 - інша назва того ж акорду. Дуже корисно знати різні імена для одного й того ж акорду.

Різниця між ним і "звичайним" dim акордом - у тому, що 7-ма в цьому акорді є просто бемольною, а не двічі бемольною (до речі, тому й напівзменшений він називається).

Складається він з наступних ступенів: 1-а, мінорна 3-я, мала 5-а, мала 7th

Збільшений (augmented) акорд складено досліджувальних нот:

1-а, мажорна 3-я, збільшена 5-а

Так що A aug виглядає так: A C# F
(інтервали між сусідніми нотами - мажорні терції - тобто 4 півтони)

Записують їх як "A aug" або "A+" або "A+5".

Здрастуйте, шановні читачі. У сьогоднішній статті ми подивимося, як застосовувати зменшений акорд в гармонії, а також які акорди можна ним замінювати.

Про зменшений акорд ми говорили в статті про септакорди - це септакорд, тобто складається з чотирьох звуків. Чому він саме зменшений? - Про це читайте у статті. Про те як цей акорд застосувати в гармонії йшлося у статті. Насправді застосування дуже багато - також ми заміняли, наприклад домінантсептакорд G7 за допомогою зменшених акордів. Ви знаєте також про цікаві особливості цих співзвуччя, що помітно розширюють область їх застосування на грифі гітари зі статті.

Сьогодні ми дізнаємося ще про щось цікаве, чим також можна користуватися.

Ось давайте уявімо, що у нас є гармонія і містить вона як зазвичай тоніку – субдомінанту – домінанту. І один з акордів у нас мейдж (або великий мажорний септакорд) або навіть два, не має значення. Наприклад, тоніка до-мейдж, субдомінанта F-maj та домінанта - G7. До речі, а пам'ятаєте як замінювати кожен з цих акордів, користуючись особливостями, описаними нами в статті?

Можливість урізноманітнити акорд виду мейджу ми і розглянемо сьогодні. Іноді використовують зв'язку зменшеного акорду та мейджу, До-мейдж чергують з До-діез-зменшеним – це звучить цікаво. Також ми можемо взагалі замість C-maj грати С#dim, тобто вони взаємозамінні.

Тож ми можемо змінити звучання гармонії, як завжди. Однак, як ми дійшли висновку, що ці акорди взаємозамінні? Чого у них спільного? Ось тут найцікавіше. Це дуже схоже на те, що ми писали у статті - там де про тональності третього ступеня спорідненості. Правда в тій статті ми просто про них розповіли, але не розглянули, як так виходить, тепер ми це зробимо.

Як же це пояснити? Насправді ви можете і самі дійти висновку, що С-maj і C#dim - споріднені акорди і можна їх міняти один з одним. Для цього потрібно зробити деякі маніпуляції – у Cmaj знайти медіанту Em.

Мал. 1

Потім Em перетворити на Em6 і поміняти басову ноту (тоніку) на ля (як ми робили у статті).

Мал. 2

І потім ноту ля в A7 змінюємо на ля-дієз, отримавши C # dim (до-дієз-зменшений).

Мал. 3

Вийшло, що акорди Сmaj і C#dim певною мірою рівні один одному і тому в гармонії можуть взаємодіяти, а то й заміняти один одного.

Мал. 4

Ось так не хитро (приблизно в три кроки) ми і можемо знаходити для мажорних акордів (не тільки для великого мажорного, але й для звичайного тризвуччя та домінантсептакорду це працює) заміни та з успіхом використовувати їх. Зменшений акорд у нашому випадку добре брати всередині композиції, коли ви її розвиваєте, тому що він звучить напружено і з нього дуже добре переходити в акорди, що мають більш м'який і стійкий звук.

Змінна – це якийсь контейнер, у якому VBA зберігає дані. Якщо докладніше, то це як коробочка, в яку Ви можете покласти щось на зберігання, а потім при необхідності дістати. Тільки в даному випадку в змінній ми зберігаємо число, рядок або інші дані, які потім можемо витягувати з неї та використовувати в коді за необхідності.

Навіщо потрібна змінна? Щоб зберігати значення та застосувати його пізніше у будь-який момент. Наприклад, у комірці А1 записана сума, а натисканням на кнопку запускається оновлення звіту. Після оновлення звіту сума А1 зміниться. Необхідно звірити суму до оновлення з сумою після і в залежності від цього зробити будь-яку дію. Змінна якраз дозволить запам'ятати значення комірки до того, як вона оновиться і використовувати саме це значення після оновлення.

Вимоги до змінних:

Як імена змінних можна використовувати символи букв і числа, але першою в імені змінної завжди має бути буква. Не допускається використання точки, коми, пробілу та інших розділових знаків, крім нижнього підкреслення. Довжина імені не повинна перевищувати 254 символи. Також не можна використовувати як імена для змінних зарезервовані константи редактора VBA (наприклад Sub, Msgbox, ubound, Date тощо). Також для змінних неважливий регістр літер.

Тепер розглянемо основні декларовані у VBA типи даних, які можна зберігати у змінних:

Тип даних Займає байт у пам'яті Межі значень
Byte 1 Цілі числа від 0 до 255
Boolean 2 Trueабо False
Integer 2 Цілі числа від ( -32768 ) до 32767
Long 4 Цілі числа від ( -2147483648 ) до 2147483647
Single 4 Від ( -3.402823Е +38) до ( -1.401298Е-45) і от 1.401298Е-45до 3.402823Е+38
Double 8 Від ±1.79769313486232Е+308до ±4.94065645841247Е-324
Decimal 12 Від ±79228162514264337593543950335без десяткових знаків до ±7,9228162514264337593543950335з 28-ма знаками після коми
Currency 8 Від ( –922337203685477.5808 ) до 922337203685477.5807
Date 8 Від 01.01.100 до 31.12.9999 (Не треба плутати з датами в Excel – 01.01.1900 до 31.12.2078)
String 1 Від 0 до 65400 символів для фіксованих рядків та трохи більше 2 млрд. для рядків змінної довжини
Object 4 Будь-який об'єкт
Array Визначається кількістю і розміром елементів -
Variant від 16-ти Будь-який із вбудованих типів даних

Як видно з таблиці найбільше пам'яті займає Variant. При цьому це якщо він зберігає числові дані. Якщо ж така змінна буде зберігати дані рядкового типу (текст), то розмір пам'яті буде вимірюватися вже починаючи з 22 байт + довжина рядка, що зберігається в змінній. Чим більше пам'яті займає змінна, тим довше вона ініціалізується у пам'яті і тим повільніше код виконуватиметься. Ось тому і важливо явно задавати тип даних, що зберігаються в змінній – це називається оголосити змінну.

Тип даних Decimal більше не використовується, тому оголосити змінну цього типу в VBA не вийде - подібна спроба призведе до синтаксичної помилки. p align="justify"> Для роботи з даними типу Decimal змінну необхідно спочатку оголосити як Variant або взагалі без типу (наприклад Dim a), т.к. Тип даних Variant використовується в VBA за промовчанням і приймає будь-який тип даних.

Також змінним можна призначати й інші типи даних, яких немає у таблиці вище - це типи, які підтримуються об'єктною моделлю додатків, до яких "підключений" VBA. Наприклад, якщо зайти до VBA з Excel, бібліотека типів об'єктної моделі Excel підключена за замовчуванням і для змінних стає доступно безліч типів цієї об'єктної моделі. Багато хто з них знайомий всім: Workbook, Worksheet, Range, Cells, Chart і т.д. Тобто. це книги, листи, осередки, діаграми. Типів багато, майже кожен об'єкт і колекцію. Розглядати тут все безглуздо. Можу лише навести пару рядків коду:

Dim rRange as Range Set rRange = Range("A1") "надали посилання на комірку A1 поточного листа

Про оголошення змінних докладно написано трохи нижче.
А докладніше про звернення до діапазонів з VBA можна прочитати в цій статті: Як звернутися до діапазону з VBA

Як оголошувати змінні
Насправді, все дуже просто. Це робиться за допомогою операторів області дії: Dim, Public, Static та оператора присвоєння типу As. Найпоширеніший оператор - Dim. Його і візьмемо як приклад. Синтаксис оголошення:

[оператор області дії] Ім'я_змінної As [тип даних]

Дуже часта помилка при оголошенні змінних, що відбувається початківцями вивчати VBA:

Dim MyVar1, MyVar2, MyVar3 As Integer

Dim MyVar1, MyVar2, MyVar3 As Integer

Начебто виходячи з логіки всім змінним присвоєно тип даних Integer. Але це помилкове судження. Тип Integer присвоєний лише останній змінної, до якої він "прив'язаний" оператором As - MyVar3. Всі інші змінні мають тип даних Variant. Тобто. якщо Ви не задаєте змінної тип даних, що зберігаються явно (Тобто не вказуєте для неї тип даних), то VBA сам надає такий змінний тип даних Variant, т.к. може зберігати будь-який тип даних. А ось так виглядає правильне присвоєння типу даних:

Dim MyVar1%, MyVar2%, MyVar3%

Усього шість типів, які можна оголосити подібним методом:
! - Single
# - Double
$ - String
% - Integer
& - Long
@ - Currency
На що варто звернути увагу, при оголошенні змінних подібним чином: між ім'ям змінної та знаком типу не повинно бути прогалин.
Я особисто волію використовувати перший спосіб, тобто. повна вказівка ​​типу. Це читабельніше та зрозуміліше. Але це мої уподобання і у своїх кодах Ви маєте право використовувати зручний Вам метод – помилки не буде.

Тепер розберемося з операторами області дії (Dim, Public та Static):

  • Dim - даний оператор використовується для оголошення змінної, значення якої зберігатиметься лише в тій процедурі, всередині якої ця змінна оголошена. Під час запуску процедури така змінна ініціалізується в пам'яті, Ви можете використовувати її значення всередині цієї процедури і після завершення процедури змінна вивантажується з пам'яті (обнулюється) і дані про неї втрачаються. Змінну, оголошену таким чином ще називають локальної змінної. Однак, за допомогою даного оператора можна оголосити змінну, яка буде доступна в будь-якій процедурі модуля. Необхідно оголосити змінну поза процедурою - в області оголошень (читати як першим рядком у модулі, після рядків оголошень типу - Option Explicit). Тоді значення змінної буде доступне в будь-якій процедурі лише того модуля, в якому ця змінна була оголошена. Такі змінні називаються змінними рівня модуля.
  • Static - даний оператор використовується для оголошення змінної, значення якої передбачається використовувати всередині процедури, але не втрачаючи значення змінної після завершення процедури. Змінні даного типу зазвичай використовують як накопичувальні лічильники. Така змінна ініціалізується в пам'яті під час першого запуску процедури, в якій вона оголошена. Після завершення процедури дані змінної не вивантажуються з пам'яті, але вони не доступні в інших процедурах. Як тільки Ви запустите процедуру з цією змінною ще раз - дані про таку змінну будуть доступні в тому вигляді, в якому були до завершення процедури. Вивантажується з пам'яті така змінна лише після закриття проекту (Книги з кодом). У народі такі змінні частіше називають глобальними(можливо через те, що раніше подібні змінні оголошувалися за допомогою оператора Global, який зараз застарів і не використовується)
  • Public - даний оператор використовується для оголошення змінної, значення якої зберігатиметься у будь-якій процедурі проекту. Змінна, оголошена подібним чином, має бути оголошена поза процедурою – в області оголошень. Така змінна завантажується в пам'ять під час завантаження проекту (при відкритті книги)та зберігає значення до вивантаження проекту (закриття книги). Використовувати її можна в будь-якому модулі та будь-якій процедурі проекту. Важливо:оголошувати подібним чином змінну необхідно строго у стандартному модулі. Такі змінні називаються змінними рівня проекту.
    Для більшого розуміння того, де і як оголошувати змінні рівня проекту два невеликі приклади.
    Неправильне оголошення

    Option Explicit Sub main() MyVariable = "Глобальна змінна" "показуємо поточне значення змінної MsgBox MyVariable "пробуємо змінити значення змінної Call sub_main "показуємо змінене значення змінної MsgBox MyVariable End Sub "доп.процедура зміни значення MyVariable = "Змінили її значення" End Sub

    змінні не будуть видно у всіх модулях усіх процедур та функцій проекту, тому що:
    1. Оператор Public неприпустимий усередині процедури (між Sub та End Sub), тому VBA при спробі виконання такої процедури обов'язково видасть помилку - Invalid Attribut у Sub або Function.
    2. Навіть якщо Public замінити на Dim – це вже буде змінна рівня процедури та для інших процедур буде недоступна.
    3. Т.к. оголошення неправильне - друга процедура (ChangeMyVariable) нічого не знає про змінну MyVariable і, природно, не зможе змінити саме її.
    Правильне оголошення

    "Вище глобальних змінних і констант можуть бути лише декларації: Option Explicit "примусове оголошення змінних Option Base 1 "нижня межа оголошених масивів починається з 1 Option Compare Text "порівняння тексту без урахування регістру "глобальна змінна - першим рядком, вище за всі процедури Public MyVariable As String "далі процедури та функції Sub main() MyVariable = "Глобальна змінна" "показуємо поточне значення змінної MsgBox MyVariable, vbInformation, "www.сайт" "пробуємо змінити значення змінної Call ChangeMyVariable "показуємо змінене значення змінної MsgBox MyVariable, vbInformation, "www.сайт" End Sub "дод.процедура зміни значення змінної Sub ChangeMyVariable() MyVariable = "Змінили її значення" End Sub

    "Вище глобальних змінних і констант можуть бути тільки декларації: Option Explicit "примусове оголошення змінних Option Base 1 "нижня межа оголошених масивів починається з 1 Option Compare Text "порівняння тексту без урахування регістру "глобальна змінна - першим рядком, вище всіх процедур Public MyVariable As String "далі процедури та функції Sub main() MyVariable = "Глобальна змінна" "показуємо поточне значення змінної MsgBox MyVariable, vbInformation, "www.сайт" "пробуємо змінити значення змінної Call ChangeMyVariable "показуємо змінене значення змінної MsgBox MyVariable, ..процедура зміни значення змінної Sub ChangeMyVariable() MyVariable = "Змінили її значення" End Sub

  • Оператори дії також можуть застосовуватися і до процедур. Для процедур доступний ще один оператор області дії – Private. Оголошена подібним чином процедура доступна тільки з того модуля, в якому записана і така процедура не видно у діалоговому вікні виклику макросів( Alt+F8)

Як правильно назвати змінну:

"Що найскладніше у роботі програміста? - вигадувати імена змінним." :-) Адже придумати ім'я змінної теж не так просто. Можна, звісно, ​​давати їм імена типу: a, d, f, x, yі т.д.(я сам іноді так роблю, але або у простих кодах, або для спеціального заплутування коду). Але варто задуматися: а як Ви з ними керуватиметеся у великому коді? Код рядків на 10 ще зазнає таких імен, а ось більші проекти - не радив би я в них оперувати такими змінними. Ви самі заплутаєтеся яка змінна як оголошена і який тип даних може зберігати і що значення їй присвоєно. Тому найкраще давати змінним осмислені імена і дотримуватися угоди про іменування змінних. Що за угода? Все дуже просто: перед основною назвою змінної ставиться префікс, що вказує на тип даних, який ми маємо намір зберігати у цій змінній. Про наявні типи даних я вже розповів вище. А нижче наведено приблизну таблицю відповідностей префіксів типу даних:

Префікс Тип даних, що зберігаються
b Boolean
bt Byte
i Integer
l Long
s Single
d Double
c Currency
dt Date
str String
obj Object
v Variant

Особисто я трохи собі її переробив, т.к. деякі позначення мені здаються мізерними. Наприклад Double я позначаю як dbl, а Single як sgl. Це мені здається наочнішим.

У чому ще плюс явної вказівки префіксу даних? У VBA є такі оператори, як Def, за допомогою яких можна вказати тип даних за умовчанням для змінних, перша літера імені яких потрапляє в заданий в операторі діапазон. Наприклад:

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

Але я вважаю, що однієї літери для одного типу цілком достатньо. Можна встановити відразу кілька операторів Def.

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

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

Нижче наведено повний перелік операторів типів та дані, які задає кожен з них:
DefBool- Задає тип Boolean
DefByte- Задає тип Byte
DefCur- Задає тип Currency
DefDate- Задає тип Date
DefDbl- Задає тип Double
DefInt- Задає тип Integer
DefLng- Задає тип Long
DefObj- Задає тип Object
DefSng- Задає тип Single
DefStr- Задає тип String
DefVar- Задає тип Variant
За замовчуванням VBA застосовано інструкцію DefVar для всіх змінних.

Та й важливий момент це безпосередньо осмислене ім'я змінної. Ім'я змінної має приблизно відображати те, що в ній зберігатиметься. Наприклад, Ви створюєте звіт, і Вам треба оголосити дві змінні: одне ім'я аркуша, інше ім'я книги. Можна було зробити так: str1, str2. Коротко, чудово. Але якщо подумати – і як можна зрозуміти, яка з цих змінних що зберігає? Ніяк. Потрібно переглядати код і згадувати, якою змінною яке значення було надано. Не зовсім зручно, правда? А якби Ви задали імена так: strBookName, strSheetNameЦе зручно не тільки вам самим при роботі з кодом, але й іншим людям, які, можливо, в майбутньому будуть користуватися Вашим кодом. Їм зручніше читатиме код, якщо він буде оформлений грамотно, а змінні названі осмислено. І не варто економити на довжині імені – ім'я має бути зрозумілим. Без фанатизму, звісно:-). Хоча VBA дозволяє нам створювати змінні довжиною до 254 символів, але читати таку змінну так само незручно, як і з одним символом. Але тут уже все залежить від Ваших уподобань та фантазії.
Невеликий додаток:краще звикати давати назви змінним на латиниці (тобто англійська абетка), т.к. для VBA англійська мова "рідна" і краще використовувати її.

Невеликий приклад використання змінних у кодах:

Sub main() "оголошуємо змінні з призначенням конкретних типів"As String - текст "As Long - ціле число Dim sAddress As String , sNewAddress As String , sShName As String Dim lRow As Long Dim rRange as Range "призначили змінною тип осередок/діапазон "привласнили змінній rRange посилання на поточний виділений осередок Set rRange = Selection "міняємо виділення - виділяємо комірку D9 Range("D9").Select "Призначаємо змінною адресу виділених осередків sAddress = Selection.Address "призначаємо змінної lRow значення першого рядка виділеної області lRow = Selection.Row "показуємо повідомлення MsgBox "Адреса виділеної області: "& sAddress, vbInformation, "www.сайт" MsgBox "Номер першого рядка: "& lRow, vbInformation, "www.сайт" "призначаємо інший змінної значення адреси комірки A1 sNewAddress = "A1" "виділяємо комірку, задану змінною sNewAddres Range(sNewAddress).Select MsgBox "Адреса виділеної області: "& sNewAddress, vbInformation, "www.сайт" "виділяємо спочатку виділений осередок, використовуючи змінну rRange rRange.Select MsgBox "Адреса виділеної області: "& rRange.Address, vbInformation, "www.сайт" "задаємо значення змінної sShName = "excel-vba" "перейменовуємо активний лист на ім'я, задане змінною ActiveSheet.Name = sShName End Sub

Sub main() "оголошуємо змінні з призначенням конкретних типів "As String - текст "As Long - ціле число Dim sAddress As String, sNewAddress As String, sShName As String Dim lRow As Long Dim rRange as Range "призначили змінної тип осередку/ привласнили змінній rRange посилання на поточний виділений осередок Set rRange = Selection "міняємо виділення - виділяємо осередок D9 Range("D9"). .Row "показуємо повідомлення MsgBox "Адреса виділеної області: " & sAddress, vbInformation, "www..сайт" "призначаємо іншу змінну значення адреси комірки A1 sNewAddress = "A1" "виділяємо комірку, задану змінною sNewAddres Range(sNewAddress "Адреса виділеної області: " & sNewAddress, vbInformation, "www.сайт" "виділяємо спочатку виділений осередок, використовуючи змінну rRange rRange.Select MsgBox "Адреса виділеної області: " & rRange.Address, vbInformation, "www.сайт" змінною sShName = "excel-vba" "перейменовуємо активний лист на ім'я, задане змінною ActiveSheet.Name = sShName End Sub

Переглянути крок за кроком виконання цього коду допоможе стаття: Вилов помилок і налагодження коду VBA
Важливо!Якщо змінної призначається посилання на комірку (Set var = Range ("A1")), то звернення до змінної ідентично зверненню до самої комірки А1 коли б це не відбувалося. Таке призначення не запам'ятовує властивості комірки до або після - у змінній зберігається посилання на конкретну комірку і доступ є виключно властивостями комірки на даний момент. Щоб запам'ятати значення, колір комірки або навіть адресу (а також інші властивості) до зміни комірки і застосувати їх навіть після зміни/переміщення самої комірки - необхідно запам'ятовувати в змінні саме властивості комірки:

Sub main() Dim val, l_InteriorColor As Long , l_FontColor As Long Dim rRange As Range "призначили змінною тип осередок/діапазон "привласнили змінній rRange посилання на активний осередок Set rRange = ActiveCell "запам'ятовуємо властивості осередку val = rRange.Value " значення l_InteriorColor = rRange.Interior.Color"цвет заливки l_FontColor = rRange.Font.Color "цвет шрифта !} "копіюємо іншу комірку і вставляємо на місце активного ActiveSheet.Range("D1" ).Copy rRange "перевіряємо, що rRange тепер має зовсім інші властивості - як у D1 "Колір заливки rRange: " "Колір шрифту rRange: "& rRange.Font.Color & vbNewLine, vbInformation, "www.сайт" "призначаємо властивості із збережених у змінних rRange.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

Sub main() Dim val, l_InteriorColor As Long, l_FontColor As Long Dim rRange As Range "призначили змінної тип комірка/діапазон "привласнили змінній rRange посилання на активну комірку Set rRange = ActiveCell "запам'ятовуємо властивості . : значення l_InteriorColor = 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!}

Це також поширюється на всі інші об'єкти. Тобто. ті змінні, значення яких призначаються через оператор Set.

Константи
Також є й інший вид "змінних" - константи. Це така сама змінна, лише (як випливає з її назви) - вона може бути змінена під час виконання коду, т.к. є величиною постійної значення її призначається лише один раз - перед виконанням коду.

Const sMyConst As String = "Ім'я моєї програми"

Const sMyConst As String = "Ім'я моєї програми"

Константам можуть бути призначені дані тих самих типів, що й змінних. Для додаткової області видимості/життя констант використовується лише Public. Якщо область видимості не вказана, константа буде доступна тільки з того модуля, в якому оголошена. Тут звертаю увагу те що, що Dim не використовується, т.к. Dim це ідентифікатор лише для змінних. Пару важливих відмінностей оголошення констант від оголошення змінних:

  • при оголошенні константи необхідно обов'язково вказувати явно, що це константа є ключовим словом Const
  • відразу в момент оголошення необхідно призначити константі значення: = "Ім'я моєї програми"

У решті оголошення і застосування констант ідентично оголошення змінних. Коротко наведу кілька прикладів.
Якщо константу оголошено всередині процедури:

Sub TestConst() Const sMyConst As String = "Ім'я моєї програми" MsgBox sMyConst "показуємо повідомлення з ім'ям програми End Sub Sub TestConst2() MsgBox sMyConst "викличе помилку Variable not defined End Sub

Щоб використовувати одну константу у всіх процедурах проекту (книги), необхідно оголосити її як Public.

mob_info