В языке Visual Basic for Applications (VBA) одна строка равно другой только в том случае, если обе строки имеют одинаковую длину и содержат одинаковые символы в одинаковом порядке. При сравнении строк, VBA распознает начальные и конечные символы пробела. VBA сравнивает строки слева направо и делает это посимвольно.
Как известно, при сохранении текста компьютер использует схему, в которой каждый символ имеет свой уникальный номер, называемый кодом символа. Обычно буквы верхнего регистра (например, А-Я) имеют меньшие номера, чем буквы нижнего регистра (например, а-я). При сравнении строк, VBA позволяет использовать два метода сравнения символов разных регистров – бинарный (или двоичный) и текстовый. Бинарный метод является методом, используемым VBA по умолчанию. При его выполнении сравниваются бинарные эквиваленты чисел для каждого символа и поскольку коды для букв верхнего регистра меньше кодов для букв нижнего регистра, то строка «ААА» меньше строки «ааа».
При текстовом сравнении VBA не использует двоичный эквивалент для каждого символа и рассматривает буквы верхнего регистра как эквиваленты буквам нижнего регистра, при таком сравнении строка «ААА» равна строке «ааа».
Выбор метода сравнения строк
Выбор метода сравнения строк производится при помощи директивы Option Compare, которая используется только на модульном уровне и влияет только на сравнения, выполняемые процедурами в этом отдельном модуле. Директиву Option Compare обычно помещают перед объявлениями переменных или процедур. Если команда Option Compare отсутствует, то VBA использует для сравнения строк двоичный метод.
Чтобы задать двоичное сравнение строк, используется ключевое слово Binary:
Чтобы задать текстовое сравнение строк, используется ключевое слово Text: