Зараз обговорюють

"Тобто є ряд завдань, які взагалі без рекурсії не наважуються."  - це як розуміти? Перефразуй, будь ласка. 

виправив, йшлося про те що деякі завдання можна вирішити лише при використанні рекурсії

Спасибі дуже корисна стаття

А ще щось планується подібного найближчим часом?


Дякую за підтримку, радий що Вам сподобалось!

Так маю вже майже дороблений проект по управлінні Audio файлом, на заміну стандартним клавішам управління HTML5, але ще не встиг відтестувати програвання файлів з інтернету, поки лише локально працює

Надіюсь найближчим часом дороблю й закину

Рахунки

webmoneyeur - E385818210641
usd - Z304643423050
uah - U354026817492
rub - R301704373231easypay80002677bitcoin1F5HRGroUtEQW9HBNbeew8iKh5KQ8vJxzw

Зворотній зв'язок

Для покращення роботи сайту надсилайте свої зауваження:
mailЗауваження
mailПропозиція

Статистика

UkrNET - поисково-информационный ресурс

VBA : Змінні. Створення, присвоєння, область дії

Змінна - це ім'я, яке програміст дає області комп'ютерної пам'яті, що використовується для зберігання даних будь-якого типу.

Для кращого розуміння змінної можна провести аналогію, з камерами схову в супермаркеті. В камери схову, як відомо, є її назва - це "ім'я" змінної (на відміну від камер схову, ми можемо самі привласнювати певне ім'я змінної). Те, що знаходиться в середині камери схову - це значення змінної. Вміст може з часом змінюватись, але її назва (ім'я змінної) залишається незмінною.


Ім'я змінної

При виборі імені змінної необхідно дотримуватись певних правил:

- Ім'я змінної має починатися з літери алфавіту

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

- Імена змінних не можуть перевищувати 255 символів

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

- Імена змінних не чутливі до стану регістра. Тобто немає різниці між MyVariable, myvariable, MyVaRiAbLe

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


Створення змінної

Найпростішим способом створення змінної є використання її в операторі VBA. При цьому VBA створює змінну і резервує пам'ять для змінної. Введення даних в змінну називається присвоєнням змінної. Робиться це за допомогою оператора присвоювання (=).

приклад:

Price=20

Цей оператор зберігає чисельне значення 20 в комірці пам'яті, заданої змінної Price.

Таке оголошення змінної називається "неявним оголошенням змінної". Всі змінні, які VBA створює подібним чином, мають тип даних Variant.

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

Тому, VBA надає можливість виконати явне оголошення змінної.


Типи змінних

НазваТипЗарезервована пам’ять (байт)ОписСимвол змінної
ByteЧисло1Ціле число між 0 та 255
IntegerЧисло2Ціле число між -32 768 та 32 767%
LongЧисло4Ціле число між – 2 147 483 648 та 2 147 483 647&
CurrencyЧисло8Фіксоване десяткове число між -922 337 203 685 477.5808 та 922 337 203 685 477.5807@
SingleЧисло4Десяткове число з плаваючою комою між -3.402823E38 та 3.402823E38!
DoubleЧисло8Десяткове число з плаваючою комою між -1.79769313486232D308 та 1.79769313486232D308#
DecimalЧисло12Без десяткових знаків від -79 228 162 514 264 337 593 543 950 335 до 79 228 162 514 264 337 593 543 950 335 або з 28-ми знаками після коми від –7.2998162514264337593543950335 до 7.9228162514264337593543950335
StringТекст10+довжина стрічкиТекст до 2млрд $
DateДата8Дата і час від 01/01/100 до 31/12/9999
BooleanБулеве2True (Так) або False (Ні)
ObjectОб’єкт4Microsoft Object
Variant(числа)Інший16Будь-яке числове значення в рамах діапазону типу Double
Variant(символи)Інший22+довжина стрічки Текст (максимум до 2млрд)

Присвоєння типів змінних

Оголошення типу змінних має ряд переваг:

- Типи змінних прискорюють виконання коду програми

- Використання типів змінних може значно скоротити обсяг пам'яті, необхідної для виконання програми

- Програмний код з типів змінними легше читається і розуміється

- У програмах, що використовують типи змінних, легше виявити деякі помилки програмістів

- Не виникає проблем з датами

- Нормалізується виділення великими літерами в імені змінної (тобто, якщо ви явно оголосили ім'я змінної як " MyValue ", то при написанні в тілі коду цієї змінної, як myvalue, автоматично відбудеться заміна на MyValue)

Тип змінної оголошується - за допомогою оператора Dim в тому ж операторі, який використовує саму змінну.

Для явного оголошення змінної використовується оператор Dim (Dimension).

Щоб оголосити змінну і її тип за допомогою оператора Dim необхідно додати ключове слово As після ім'я змінної, а потім ввести ім'я типу даних для цієї змінної.

приклад:

Dim MyValue As [type]

MyValue - будь-яке припустиме ім'я змінної

type - будь-який з імен типів даних VBA

або використати символ змінної

приклад:

Dim MyValue$ 'текстова змінна

приклад програми сумування з оголошеними змінними:

Sub MySub()
	Dim AllSum As Integer, a As Integer, b As Integer
	Dim formula As String
		formula = "a+b="
		a = 20
		b = 15
		AllSum = a + b
		MsgBox formula & AllSum, , "Загальна сума"
End Sub 

Змінну можна оголошувати лише один раз в окремій процедурі або модулі. Фактично змінні можна оголошувати в будь-якому місці коду. Однак, в практиці програмування прийнято збирати всі явні оголошення змінних в одному місці, як правило, на початку процедури.

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

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

приклад:

Dim MyValue As String * N

MyValue - будь-яке припустиме ім'я змінної

N - ціле число, яке вказує довжину рядка


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

Option Explicit
Sub MySub()
	Dim AllSum As Integer, a As Integer, b As Integer
	Dim formula As String
		formula = "a+b="
		a = 20
		b = 15
		AllSum = a + b
		MsgBox formula & AllSum, , "Загальна сума"
End Sub 

В налаштуваннях редактора VBA можна вказати, щоб команда Option Explicit автоматично включалася в новий модуль.


Область дії змінних

Область дії змінної визначає, в яких модулях і процедурах вона може використовуватися. Існують наступні типи областей дії змінних:

- окрема процедура. У процедуру включається оператор Dim або static

- окремий модуль. Перед першою процедурою в модулі вводиться оператор Dim або private

- всі модулі. Перед першою процедурою в модулі вводиться оператор Public

Локальні змінні

- Локальна змінна - це змінна, оголошена в процедурі.

- Локальні змінні можуть використовуватися тільки в процедурі, в якій вони оголошені.

- Після виконання процедури змінна стає незатребуваною, тому Excel звільняє відповідну область пам'яті.

- Якщо потрібно зберегти значення змінної, оголосіть її як static.

- Щоб оголосити локальну змінну - вставте оператор Dim між операторами Sub і End Sub.

Змінні Static

Змінні Static - особливий випадок. Вони оголошуються на рівні процедури і зберігають своє значення після закінчення процедури.

Sub MySub ()
	Static MyValue As Integer
		[Текст процедури]
End Sub 

Змінні рівня модуля

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

У наведеному нижче прикладі оператор Dim - перша інструкція в модулі. Обидві процедури MySub1 і MySub2 мають доступ до змінної MyValue.

Dim MyValue As Integer
Sub MySub1 ()
	[Текст процедури]
End Sub

Sub MySub2 ()
	[Текст процедури]
End Sub 

Значення змінної рівня модуля не змінюється при закінченні виконання процедури.

Змінні Public

Щоб зробити змінну доступною в усіх процедурах всіх модулів VBA в проекті, необхідно оголосити змінну на рівні модуля за допомогою ключового слова Public перед першою процедурою модуля, наприклад, так:

Public MyValue as Long
Sub MySub ()
	[Текст процедури]
End Sub 

Код оголошення змінних Public повинен вводитися в стандартному модулі VBА, а не в коді модуля листа або форми.


view2472like1dislike0 avatard_l4w clock 2016-04-17 05:06

Коментарі:



Для даної статті відсутні коментарі

Про нас

"Programmers World" розроблено з метою полегшення в освоєнні навичок програмування, та поширення матеріалів з сфери ІТ Українською мовою.

Кожен бажаючий може безкоштовно користуватися ресурсами сайту, щоб:

- Вивчати теоретичні аспекти мов програмування

- Переглядати практичне застосування теорії при виконанні різних міні проектів з відкритим кодом

- Розміщати свої завдання на форумі для допомоги в їх реалізації, або готового коду який може бути корисний іншим користувачам

- Спілкуватись з іншими користувачами та обмінюватись досвідом

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

Сайт

Зареєстровані користувачі можуть скористатися системою діалогів, в профілі користувача, для отримання потрібної інформації. Написати!

Також Ви можете використати форми відправки Зауважень та Пропозицій.


Електронна пошта

Ви можете звертатись на нашу поштову скриньку site.programmersworld@gmail.com

www.000webhost.com