- •Синтаксис и программные конструкции vba
- •1. Основы синтаксиса
- •2. Операторы
- •3. Переменные и типы данных
- •4. Константы
- •5. Операторы условного и безусловного перехода
- •5.1. Оператор If... Then
- •5.2. Оператор Select Case
- •5.3. Оператор GoTo
- •6. Работа с циклами
- •7. Массивы
- •3.8. Процедуры и функции
- •3.8.1. Виды процедур
- •3.8.2. Область видимости процедур
- •3.8.3. Объявление процедур
- •3.8.4. Передача параметров
- •3.8.5. Вызов и завершение работы процедур
- •3.9. Встроенные функции языка vba
- •3.9.1. Что такое встроенные функции
- •3.9.2. Функции преобразования и проверки типов данных
- •3.9.3. Строковые функции
- •3.9.4. Функции для работы с числовыми значениями
- •3.9.5. Функции для работы с датой и временем
- •3.9.6. Функции для форматирования данных
- •3.9.7. Функции для организации взаимодействия с пользователем
- •3.9.8. Функции — заменители синтаксических конструкций
- •3.9.9. Функции для работы с массивами
- •3.9.10. Функции для работы с файловой системой
- •3.9.11. Другие функции vba
- •4.1. Что такое классы и объекты
- •4.2. Создание и удаление объектов
- •4.3. Методы объекта
- •4.4. Свойства объекта
- •4.5. События объекта и объявление WithEvents
- •4.6. Просмотр объектов
- •4.7. Объектные модели
- •5.1. Для чего нужны формы
- •5.2. Создание форм
- •5.3. Элементы управления
- •5.3.1. Что такое элемент управления
- •5.3.2. Элемент управления Label
- •5.3.3. Элемент управления TextBox
- •5.3.4. Элемент управления ComboBox
- •5.3.5. Элемент управления ListBox
- •5.3.6. Элементы управления CheckBox и ToggleButton
- •5.3.7. Элементы управления OptionButton и Frame
- •5.3.8. Элемент управления Command Button
- •5.3.9. Элементы управления ScrollBarw SpinButton
- •5.3.10. Элементы управления TabStrip и MultiPage
- •5.3.11. Элемент управления Image
- •5.3.12. Применение
- •11.1. Зачем программировать в Excel
- •11.2. Объект Application
- •11.3. Свойства и методы объекта Application
- •11.4. Коллекция Workbooks и объект Workbook, их свойства и методы
- •11.5. Коллекция Sheets и объект Worksheet, их свойства и методы
- •11.6. Объект Range, его свойства и методы
- •11.7. Коллекция QueryTables и объект QueryTable
- •11.8. Работа со сводными таблицами (объект PivotTable)
- •11.9. Работа с диаграммами (объект Chart)
- •11.10. Другие объекты Excel
3.9.3. Строковые функции
Это наиболее часто используемые функции. Требуются они постоянно, и необходимо знать их очень хорошо.
Asc() — эта функция позволяет вернуть числовой код для переданного символа. Например, Asc("d") вернет 68. Эту функцию удобно использовать для того, чтобы определить следующую или предыдущую букву. Обычно она используется вместе с функцией Chr(), которая производит обратную операцию — возвращает символ по переданному его числовому коду. Например, такой код в Excel позволяет написать в ячейки с А1 по А20 последовательно буквы русского алфавита от А до У:
Dim n, nCharCode As Integer
n = 1
nCharCode = AscC'A")
Do While n <= 20
ActiveWorkbook.ActiveSheet.RangeC'A" & n).Value = Chr(nCharCode)
n = n + 1
nCharCode = nCharCode + 1 Loop
Варианты этой функции — ascb () и Ascw (). ascb () возвращает только первый байт числового кода для символа, a ascw () возвращает код для символа в кодировке Unicode.
Chr() — возвращает символ по его числовому коду. Помимо того, что используется в паре с функцией Asc() (cm. предыдущий пример), без нее не обойтись еще в одной ситуации: когда нужно вывести служебный символ. Например, нам нужно напечатать в Word значение "Газпром" (в кавычках). Кавычка — это служебный символ, и попытка использовать строку вида: Selection.Text = ""Газпром"" приведет к синтаксической ошибке. А вот так все будет в порядке: Selection.Text - Chr(34) & "Газпром" & Chr(34) Есть варианты этой функции — ChrB()и ChrW(). Работают аналогично таким же вариантам для функции Asc ().
Instr() и InStrRev() — одни из самых популярных функций. Позволяют обнаружить в теле строковой переменной последовательность символов и вернуть ее позицию. Если последовательность не обнаружена, то возвращается 0. Функция Instr() ищет с начала строки, a InStrRev() — с конца.
Left (), Right (), Mid () — позволяют взять указанное вами количество символов из существующей строковой переменной слева, справа или из середины соответственно.
Len() — возвращает число символов в строке (длину строки). Часто используется с циклами, операциями замены и т. п.
LCase () и UCase () — переводят строку в нижний и верхний регистры соответственно. Часто используются для подготовки значения к сравнению, когда регистр не важен (фамилии, названия фирм, городов и т. п.).
LSet() и RSet() — заполняют одну переменную символами другой без изменения ее длины (соответственно слева и справа). Лишние символы обрезаются, на место недостающих подставляются пробелы.
LTrim(), RTrim(), TTrim() — убирают пробелы соответственно слева, справа или и слева, и справа.
Replace() — заменяет в строке одну последовательность символов на другую.
Space() и String() — возвращают строку из указанного вами количества пробелов или символов соответственно. Обычно используются для форматирования вывода совместно с функцией Len (). Еще одна похожая функция — Spc (), которая используется для форматирования вывода на консоль. Она размножает пробелы с учетом ширины командной строки.
StrComp() — сравнивает две строки.
StrConv() — преобразует строку (в Unicode и обратно, в верхний и нижний регистры, первую букву слов заглавной и т. п.).
StrReverse() — "переворачивает" строку, разместив ее символы в обратном порядке.
Tab() — еще одна функция, которая используется для форматирования вывода на консоль. Размножает символы табуляции в том количестве, в котором вы укажете. Если никакое количество не указано, просто вставляет символ табуляции. Для вставки символа табуляции в строковое значение можно также использовать константу vbTab.