VBA Excel. Правильные имена переменных и процедур

Правила наименования переменных, констант, процедур и аргументов пользовательских функций в VBA Excel. Использование суффиксов в именах переменных.

Правильные имена в VBA Excel

Правила наименования переменных, констант, процедур и аргументов:

  • Имя может состоять из букв, цифр и знака подчеркивания (_). Пробел и другие специальные символы не допускаются, кроме шести символов-суффиксов для переменных.
  • Первым знаком имени должна быть буква. Длина имени ограничена 255 знаками.
  • Не следует использовать имена, совпадающие с именами встроенных функций, операторов, методов, свойств и констант VBA Excel.
  • Нельзя допускать повторения имен внутри одной области видимости (действия) переменных, например, внутри одной процедуры.

VBA Excel не чувствителен к регистру, но сохраняет заглавные буквы в именах. Если язык приложения русский, то для наименования переменных, констант, процедур и аргументов можно использовать слова на кириллице.

Примеры имен

Переменные: x, y, z, a1, a2, a3, summa, myRange, my_Currency;

Подпрограммы: Primer1(), Raschet_Stazha(), SozdaniyeTablitsy();

Функции с аргументом: СуммаПрописью(x As Double) As String, ПоследнийДеньМесяца(x As Date) As Date.

Области видимости переменных

Переменная Область действия Способ объявления
Локальная отдельная процедура внутри процедуры с помощью ключевого слова Dim или Static
Модульная отдельный модуль перед первой процедурой в модуле с помощью ключевого слова Dim или Private
Глобальная все стандартные модули перед первой процедурой в стандартном модуле с помощью ключевого слова Public

Суффиксы в именах переменных

Переменные в VBA Excel могут быть объявлены с одним из следующих типов данных: Byte, Boolean, Integer, Long, Single, Double, Currency, Date, String (для строк переменной или фиксированной длины), Object или Variant. Если при объявлении переменной тип данных не указан, по умолчанию присваивается тип Variant.

Шесть типов данных имеют соответствующие им символы, которые можно использовать при объявлении переменных, добавляя их в конце имени как суффиксы. Переменная будет объявлена с соответствующим символу типом данных.

Символы, назначенные типам данных:

  • % – Integer;
  • & – Long;
  • ! – Single;
  • # – Double;
  • @ – Currency;
  • $ – String.

Примеры объявления переменных

Пример 1

Обе строки равнозначны. Во втором случае суффикс необходим только при объявлении переменных, далее, в тексте кода, его можно не использовать. С другой стороны, добавляя суффикс ко всем упоминаниям одной переменной, мы исключаем возможность случайно посчитать переменную с суффиксом и без него за разные переменные.

Пример 2

Если в модуле не используются операторы Option Explicit и Dim (Static, Public), то суффиксы являются единственным способом назначить переменной тип данных. То, что суффиксы работают и в этом случае, проверим на следующей процедуре:

Указываем с помощью суффикса $, что переменная a является строковой, и ставим паузу на операторе End Sub. Запускаем процедуру:

На изображении видно, что переменной a присвоен тип данных String (окно Locals). Теперь запускаем ту же процедуру, но с переменной без суффикса:

Как и ожидалось, переменной a присвоен тип данных по умолчанию – Variant. Через косую черту указан тип данных, который VBA Excel идентифицировал у содержимого переменной a.

Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

4 комментария для “VBA Excel. Правильные имена переменных и процедур”

  1. Здравствуйте!
    Я всегда был уверен, что суффиксы нужны
    только для того чтобы определить их тип изначально (после dim)
    т.е. если я пишу dim i%
    то это равнозначно dim i as integer
    и мне больше не нужно употреблять суффикс в коде каждый раз:
    i%=111
    А тут я встретил на просторах интернета макрос для транслитерации,
    где суффиксы используются при каждом использовании переменных:

    Какой смысл имеет использование суффиксов
    в именах переменных уже в самом коде?
    Или это как раз плата за отсутствие dim и выключенный Option explicit?
    Спасибо!

    1. Евгений

      Добрый вечер!
      Суффикс можно указать один раз для назначения переменной типа данных, в том числе и без оператора Dim. Я добавил информацию об этом в параграф «Примеры объявления переменных».

    1. Евгений

      Привет, Рустем!
      Функция StrConv изменяет регистр букв. Во втором примере она все буквенные символы исходной строки преобразует в верхний регистр.

Добавить комментарий

Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора. При добавлении в комментарий кода VBA Excel, вставьте перед его началом тег <pre> и по окончании кода </pre>.