Основы офисного программирования и язык VBA


Основные операции над строками - часть 2


Например, два вызова этой функции в окне отладки вернут следующие результаты:

? InStr(4, "XXпXXпXXПXXП", "П", 1) 6 ? InStr(4, "XXпXXпXXПXXП", "П", 0) 9

Функция Left(string, length) выделяет в строке string указанное число length символов слева, позволяя выделить префикс строки.

Функция Right(string, length) выполняет аналогичную операцию, выделяя символы справа, что позволяет получить суффикс (окончание) строки.

Более универсальная функция Mid(string, start[, length]) позволяет выделить из строки string подстроку длины length, начиная с позиции start.

Вот пример вызова этих функций непосредственно из окна отладки:

? VBA.Left("рококо",3) рок ? VBA.Right("рококо",3) око ? VBA.Mid("рококо",3,3) кок

Функции LTrim(string), RTrim(string), Trim(string) возвращают копию строки, из которой удалены пробелы, находившиеся в начале строки (LTrim), в конце строки (RTrim) или в начале и конце строки (Trim).

Функция String создает строку: содержащую заданное число повторяющихся символов.

Синтаксис:

String(number, character)

Аргумент number задает длину строки, а character - код символа или строковое выражение, первый символ которого используется при создании результирующей строки.

Функции LCase(string) и UCase(string) возвращают копию строки, символы которой приведены к нижнему (Low) или верхнему регистру (Upper).

Функции, возвращающие строки, существуют в двух вариантах, отличающихся именами. Функции, имена которых мы приводили, возвращают результат типа Variant. Во втором варианте имена функций оканчиваются знаком $, например, Mid$, UCase$. В этом случае результат возвращается типа String. Такие функции выполняются быстрее, но не могут корректно работать со строками, имеющими значение Null.

Приведем в качестве примера полезную функцию, которая находит путь к активному документу Word, и производит разбор всех компонент этого пути:

Пример 8.2.

(html, txt)

Вот результаты отладочной печати после запуска процедуры MyPath:

E O2000\VBA2000\Ch8\ Ch8.doc E:\O2000\VBA2000\Ch8\

Обратите внимание, в функции AppPath мы использовали новую функцию InStrRev, что облегчило решение нашей задачи. К описанию вновь введенных функций мы и переходим.




Начало  Назад  Вперед