Переменная – это поименованная, либо адресуемая любым другим способом область компьютерной памяти, в которой хранятся данные указанного типа. Эти данные, в ходе выполнения программы, могут изменяться неограниченное количество раз.
Можно сказать, что переменная – это контейнер (ящик) для хранения изменяемых данных. Сюда можно положить какое-то значение (например, дату, число, строку и т.д.). Данные, которые хранит в себе переменная, называют значением переменной. И в ходе выполнения программы, эти данные можно получить и изменить.
Представьте, что вы повесили на ящик ярлык (дали ему имя) «Игрушки» и положили в него плюшевого мишку. Получается, что вы создали переменную – Игрушки. Значение переменной Игрушки будет – плюшевый мишка. В любой момент вы может достать этого мишку из ящика, обратившись к нему по имени «Игрушки» и положить в ящик уже не мишку, а например, зайчика. И тогда у вас будет переменная Игрушки со значением – зайчик.
Как вы уже поняли, прежде чем начинать работу с переменной, её нужно объявить.
Объявления переменных в VBA
Правила присвоения имени переменных в VBA:
- Имя переменной должно быть уникальным (две разные переменные не могут иметь одно и то же имя).
- Максимальная длина имени переменной не может превышать 255 символов.
- Первым символом в имени переменной должна быть буква, после которой допускается использование цифр, или знака подчеркивания «_».
- Нельзя использовать пробел, точку, восклицательный знак, а также символы @, #, $, %, &.
- Нельзя использовать зарезервированные (ключевые) слова (слова, которые подсвечиваются синим цветом в окне редактора кода).
При присвоении имени переменной можно использовать как строчные, так и прописные буквы в любом сочетании. Например, MySum и mysum компилятор VBA воспримет как одно и то же имя. Если вы первый раз написали имя переменной MySum (первое вхождение), а второй раз написали mysum (второе вхождение), то редактор VBA автоматически исправит mysum на MySum.
Прежде чем использовать переменную, её рекомендуется объявить. То есть нужно указать компилятору, что требуется создать переменную с данным именем, в которой будут храниться данные определённого типа.
Если создать переменную без её предварительного объявления, то она будет иметь тип Variant. В VBA этот тип переменной присваивается по умолчанию.
Если переменную создают (используют в операторе) без предварительного объявления, то в таком случае говорят, что переменная объявлена не явно.
Чтобы явно объявить переменную используют оператор Dim. Например, объявить переменную в VBA можно так:
Dim MyAge As Integer
В этой строке, MyAge – это имя переменной, а Integer – это присвоенный ей тип данных (Целое число).
В одной строке можно объявить и несколько переменных. Делается это через запятую вот так:
Dim MyAge1 As Integer, MyAge2 As Integer, MyName As String
Обратите внимание, что при объявлении переменных в одной строке, оператор Dim указывается один раз, а тип данных указывается для каждой переменной отдельно.
Кроме того, в одном операторе Dim разрешается смешивать объявление переменных различных типов: Intager, String, Date, Boolean и т.д.
Область видимости переменных в VBA
Переменную можно неоднократно использовать только в той части программы, где она доступна. В VBA предусмотрено 4 ключевых слова для определения области видимости переменных:
- Dim – используется наиболее часто при объявлении переменных в VBA. Если переменная объявлена как Dim в области объявлений модуля, то она будет доступна для всех процедур в этом модуле, если в процедуре – то такая переменная будет доступна только на время работы этой процедуры.
- Private – при объявлении переменных в стандартных модулях VBA работает точно так же, как и Dim.
- Public – такая переменная будет доступна всем процедурам во всех модулях данного проекта, если вы объявили её в области объявлений модуля. Если вы объявили ее внутри процедуры, она будет вести себя как Dim.
- Static – такие переменные можно использовать только внутри процедуры. Они видны только внутри процедуры, в которой объявлены. Переменные, объявленные с оператором Static, сохраняют свои значения до тех пор, пока выполняется код.
Если нет никаких особых требований, то при объявлении переменных в VBA лучше всего выбирать область видимости Dim.
Как присваивать имена объектам в VBA правильно?
При создании VBA программ, присваивать имена объектам рекомендуется по следующим правилам:
- Имя переменной должно начинаться с префикса, записанного строчными буквами. Префикс указывает, что именно будет храниться в этой переменной:
- str (или s) – String, символьное значение;
- fn (или f) – функция;
- sub – процедура;
- c (или все буквы имени заглавные) – константа;
- b – Boolean, логическое значение (True или False);
- d – дата;
- obj (или o) – ссылка на объект;
- n – числовое значение;
- Имена функций, методов и каждое слово в составном слове должно начинаться с заглавной буквы (Например, MsgBox ActiveDocument.Name).
- Константы принято записывать заглавными буквами, а между словами ставить символ подчеркивания, например COMPANY_NAME.