Опис змінних види змінних

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

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

Тепер подивимося, як можна описати змінну, один із прикладів показаний нижче:

Dim - це оператор
R - це змінна
As - це частина нашого синтаксису
Byte - це тип даних, який і описує нашу змінну.

Де ж описують ці змінні? Бажано описати змінні на початку вашого коду (програми), тобто так:

Dim Ghd As Byte

Dim Rd As Integer

далі йде код вашої програми.

Подивимося, які є змінні і які значення можливо привласнити цим змінним.

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

Одним оператором Dim можна описати довільне число змінних, але конструкція Аs повинна бути вказана для кожної з них, інакше змінним без Аs буде присвоєно тип Variant.
наприклад:

Dim A As Byte, B As Integer, C, D As String

A - це змінна байтового типу
B - це змінна цілого типу
C - це змінна типу варіант (так як не описана)
D - це змінна строкового типу

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

А в нашій програмі це буде виглядати так:

Public A As Byte

Public B As Integer

Public C As Integer

Dim Ghd As Byte

Dim Rd As Integer

Dim g As Integer

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

Але і на це є спосіб зберегти дані в змінної. Це називається статична змінна. І описується вона в такий спосіб:

Але, на жаль, оголошувати її можна тільки на рівні процедури. І в нашій програмі це буде виглядати так:

Static C As Integer

Якщо запустити даний макрос, то C в початковий момент дорівнюватиме 0. після завершення процедури змінна C буде дорівнювати 3. Якщо запустити даний макрос ще раз, то початкове значення змінної C дорівнюватиме вже 3. а в кінці процедури 6. Якщо так і виконувати наш макрос, то значення C буде підвищуватися кожен раз на 3. так як A + B = 3.

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

Const A As Integer = 2323

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

Const AConst = 10

Dim B As Integer

Схожі статті