
- •Федеральное агентство по образованию
- •Введение в vba
- •Объектно-ориентированное программирование
- •Основные понятия
- •Алфавит и словарь языка
- •Переменные
- •Константы
- •Строковые переменные
- •Массивы
- •Пользовательские типы данных
- •Операции vba
- •Объектная модель Excel
- •Свойства и методы объектов
- •Отображение объектной модели Excel
- •Иерархия объектной модели
- •Ссылка на объекты в коде vba
- •Работа с объектами
- •Задание свойств объекта
- •Использование методов объекта
- •Переменные-объекты
- •Коллекции
- •Метод Add
- •Свойство Count
- •Свойства и методы основных объектов Excel
- •Объект Application
- •Объект Worksheet
- •Объект Range
- •Просмотр объектов
- •Использование справочной системы
- •Использование функциональной клавиши f1
- •Использование помощника
- •Вывод сообщений и ввод и данных
- •Функция MsgBox
- •Функция InputBox
- •Метод InputBox
- •Объединение текстовых строк
- •Концепция событий Excel
- •Типы событий Excel
- •События объекта Workbook
- •События объекта Worksheet
- •События объекта Application
- •События объекта UserForm
- •События, не связанные с конкретными объектами
- •Метод OnKey
- •Событие OnTime
- •Формы пользователя
- •Свойства, методы и события экранных форм
- •Некоторые свойства форм
- •Некоторые методы форм
- •Некоторые события форм
- •Элементы управления
- •Элемент управления Label (Надпись)
- •Окно свойств формы
- •Элемент управления CommandButton (Кнопка)
- •Элемент управления TextBox (Текстовое поле)
- •Элемент управления ComboBox
- •Элемент управления ListBox (список)
- •Элемент управления CheckBox (Флажок)
- •Элемент управления ToggleButton (Выключатель)
- •Элемент управления OptionButton (Переключатель)
- •Элемент управления Image (Рисунок)
- •Элемент управления ScrollBar (полоса прокрутки)
- •Элемент управления SpinButton (Счётчик)
- •Элемент управления RefEdit (Поле со свёртыванием)
- •Элементы управления на рабочем листе
- •Инструкции vba
- •Оператор присваивания
- •Инструкция Set
- •Инструкция For… Next
- •Инструкция While…Wend
- •Инструкция Do... Loop
- •Инструкция For Each…Next
- •Инструкции перехода
- •Инструкция условного перехода If…Then…Else
- •Инструкция Select…Case
- •Инструкция безусловного перехода GoTo
- •Инструкции перехода к обработчику ошибок On Error
- •Инструкции прерывания выполнения блока Exit
- •Инструкция передачи управления выполнением процедуры подпрограмме внутри процедуры GoSub… Return
- •Инструкция передачи управления выполнением процедуры на одну из нескольких строк кода On…GoSub и On…GoTo
- •Функции vba
- •Встроенные функции
- •Математические функции
- •Функции преобразования данных
- •Функции даты и времени
- •Строковые функции
- •Примеры использования функций vba
- •Удаление ненужных символов
- •Определение длины строки
- •Сравнение и поиск строк
- •Функция StrComp
- •Функция InStr
- •Выделение части строки
- •Функция Left
- •Функция Right
- •Функция Mid
- •Форматирование значений данных
- •Функции, определённые пользователем
- •Пример функции
- •Файлы vba
- •Типы файлов в vba
- •Открытие и закрытие файла
- •Ввод данных в файл последовательного доступа
- •Вывод данных из файла последовательного доступа
- •Работа с файлом произвольного доступа
- •Создание процедуры
- •Выполнение процедуры
- •Сохранение процедуры
- •Запись последовательности действий пользователя
- •Просмотр кода макроса
- •Отладка программ
- •Тестирование и отладка как этап разработки приложений
- •Отладка
- •Режим останова
- •Использование окна Immediate
- •Просмотр значений в окне Immediate
- •Пошаговое выполнение программ
- •Исправление ошибок
- •Библиографический список
- •Оглавление
Функция InStr
Функция InStr дает возможность определить, содержит ли одна строка другую строку.
Формат функции:
InStr ([Start,] String1, String2 [, Compare])
String1, String2 – любые допустимые строковые выражения. Функция проверяет, содержится ли String1 в String2.
Start – необязательный аргумент, является численным выражением и указывает положение символа в String1, с которого должна начинаться проверка. Аргумент Start является обязательным, если указывается аргумент Compare.
Compare имеет тот же смысл, что и в функции StrComp.
InStr возвращает число, обозначающее положение символа в String1, где было обнаружено String2. Если InStr не находит String2 в String1, то возвращается 0. Если String1 (или String2) имеет значение Null (“Пусто”), то функция также возвращает Null.
Пример
Sub Встр_функции_6()
Dim R1 As String, R2 As String
R1 = "Строка ввода"
R2 = "Ввод"
MsgBox "R2 входит в R1 с позиции " & _
InStr(1, R1, R2, vbTextCompare)
End Sub
Выделение части строки
Задачу выделения части строки в VBA решают три функции:
Left, Right и Mid.
Функция Left
Формат функции:
Left (String, Length)
String – любое допустимое строковое выражение;
Length – любое численное значение.
Функция возвращает копию String, начиная с первого символа и включая количество символов, заданных с помощью Length. Если Length является числом, большим, чем фактическая длина String, то возвращается всё строковое выражение String.
Функция Right
Формат функции:
Right (String, Length)
String – любое допустимое строковое выражение;
Length – любое численное значение.
Функция возвращает копию String, начиная с последнего символа и включая справа налево количество символов, заданных с помощью Length. Если Length является числом, большим, чем фактическая длина String, то возвращается все строковое выражение String. Функция Right всегда копирует символы от конца строки к ее началу.
Функция Mid
Формат функции:
Mid (String, Start, [, Length])
String – любое допустимое строковое выражение;
Length, Star t – любые численные значения.
Функция Mid возвращает копию String, начиная с положения символа в String, задаваемого с помощью аргумента Start . Необязательный аргумент Length определяет количество копируемых в Mid символов из String. Если Start содержит большее число, чем фактическая длина String, то возвращается пустая строка.
Пример
Sub Встр_функции_7()
Dim R1 As String, R2 As String, _
R4 = "Ваша оценка Отлично"
R1 = Left(R4, 4)
R2 = Mid(R4, 6, 6)
R3 = Right(R4, 7)
MsgBox "R4=" & R4 & Chr(13) & _
"R1=" & R1 & Chr(13) & _
"R2=" & R2 & Chr(13) & _
"R3=" & R3
End Sub
Форматирование значений данных
Форматирование значений данных можно выполнить при помощи функции Format, которая идентична функции Format в Excel и использует те же символы-заполнители форматирования данных.
Формат функции:
Format (Expression [, Format[, Firstdayofweek [, Firstweekofyear]]])
Expression - любое допустимое выражение (обязательный аргумент).
Format - допустимое выражение именованного или определенного пользователем формата.
Firstdayofweek - константа, которая определяет первый день недели.
Firstweekofyear - константа, которая определяет первую неделю года.
Чтобы использовать функцию Format, надо либо задать предопределенный формат, либо создать образ определенного формата, используя символы-заполнители. В качестве символов-заполнителей используются символы 0, #, $, m, d, q и другие, используемые в Excel.
Пример
Sub Встр_функции_8()
Dim Дата As Date
Дата = Date
MsgBox Format(Дата, "Long Date") & vbCr _
& Format(Дата, "Medium Date") & vbCr _
& Format(Дата, "Short Date") & vbCr _
& Format(Дата, "dd mmmm yy") & vbCr _
& Format(Дата, "dd mm yy") & vbCr _
& Format(Дата, "dd mm yyyy")
End Sub