Макросы часто содержат математические формулы. Эти формулы иногда могут быть довольно сложными. Каждый раз, когда формула содержит более одного оператора (например, + или -), VBA необходимо выяснить, в каком порядке выполнять операции. Здесь в игру вступает концепция приоритета. Приоритет – это встроенная логика макросов, которая определяет порядок, в котором выполняются операции. Это нормальный порядок:
Оператор | Значение | |
---|---|---|
^ | Exponentiation | |
– | Negation | |
* и/ | Умножение и деление | |
Целочисленное деление | ||
Mod | Modulus | |
+ и – | Сложение и вычитание |
Уведомление что есть две записи в списке приоритетов, в которых есть два оператора. Умножение и деление находятся на том же уровне приоритета, что и сложение и вычитание. Если в формуле используются два или более операторов с одним и тем же уровнем приоритета, тогда операторы вычисляются в формуле слева направо.
Если вы хотите изменить порядок, в котором вычисляется формула, вам нужно использовать круглые скобки. Операции, заключенные в круглые скобки, оцениваются раньше, чем операции вне их. Таким образом, такая формула, как 3 * (4 + 2), даст результат 18, потому что сложение в круглых скобках имеет приоритет над умножением вне скобок. Если бы скобки были опущены, то 3 * 4 + 2 дало бы 14.