- •Содержание
- •Раздел 1. Быстрый старт 2
- •Раздел 2. Редактор Visual Basic 11
- •Immediate Window (окно проверки) 15
- •Раздел 3. Переменные и типы данных 27
- •Раздел 4. Операторы управления 51
- •Раздел 5. Процедуры, подпрограммы и функции 66
- •Раздел 6. Объекты ms Excel 101
- •Раздел 7. Пользовательские формы 139
- •Immediate Window (окно проверки) 177
- •Введение
- •Раздел 1.Быстрый старт Использование макрорекордера
- •Запись макроса
- •Запуск макроса
- •Абсолютные и относительные ссылки Запись формулы на рабочем листе
- •Макрорекордер
- •Диалоговые окна для ввода/вывода данных
- •Функция InputBox
- •Функция MsgBox
- •Раздел 2.Редактор Visual Basic
- •Окна редактора vb
- •Project Window (окно проекта)
- •Properties Window (Окно свойств)
- •Code (окно программы)
- •Immediate Window (окно проверки)
- •Получение справки
- •Запись процедур
- •Режимы работы с программой
- •Ошибки и их обнаружение
- •Отладка
- •Меню и панели инструментов Visual Basic
- •Панели инструментов Стандартная панель инструментов
- •Панель инструментов отладки
- •Раздел 3.Переменные и типы данных Объявление переменных
- •Важность объявления переменных
- •Область видимости переменных
- •Время жизни переменных
- •Инициализация переменных
- •Операции с элементарными данными
- •Оператор присваивания
- •Выполнение операций
- •Арифметические операции
- •Операции сравнения
- •Оператор Like
- •Логические операции
- •Символьные операции
- •Приоритет операций
- •Операции с другими типами данных
- •Объектные переменные
- •Массивы
- •Динамические массивы
- •Пользовательский тип
- •Раздел 4.Операторы управления
- •Условный оператор If
- •Оператор выбора Select Case
- •Операторы цикла
- •Цикл For…Next
- •Цикл For Each…Next
- •Оператор Set
- •Цикл Do…Loop
- •Цикл While…Wend
- •Раздел 5.Процедуры, подпрограммы и функции
- •Классификация процедур
- •Структура и объявление процедуры
- •Синтаксис объявления процедуры общего типа
- •Синтаксис объявления функции
- •Вызов процедуры
- •Параметры и аргументы
- •Возврат значения функции
- •Использование процедур-функций на рабочем листе
- •Поименованные аргументы
- •Использование необязательных аргументов
- •Использование параметра ParamArray
- •Вызов процедур другого проекта
- •Автопроцедуры
- •Событийные процедуры
- •Рекурсивные процедуры
- •Встроенные функции Классы функций
- •Использование табличных функций
- •Организация интерфейса при помощи встроенных функций
- •Функция MsgBox
- •Функция InputBox
- •Строковые функции
- •Примеры на использование различных строковых функций Функция Format
- •Функция Val
- •Функции Len, Mid
- •Функция Left
- •Функция Instr
- •Функция Chr
- •Математические функции
- •Функции Int и Fix
- •Функция Log
- •Функции Randomize и Rnd
- •Функции даты и времени
- •Примеры функций даты и времени Функции Day, Month, Year, DateSerial
- •Функции Now, Time, Timer
- •Функция WeekDay
- •Функции Hour, Minute, Second
- •Раздел 6.Объекты ms Excel
- •Свойства объектов
- •Методы объектов
- •Модель объектов
- •Коллекции объектов
- •Обращение к объекту Контейнеры
- •Ссылка на объект
- •Оператор With
- •Использование объектных переменных
- •Объект Application
- •Активные объекты
- •Свойства, влияющие на высвечивание на экране Свойство DisplayAlerts (r/w Boolean)
- •Свойства DisplayFormulaBar (r/w Boolean), DisplayStatusBar (r/w Boolean)
- •Свойство ScreenUpdating (r/w Boolean)
- •Свойства Top, Left, Height, Width, UsableWidth, WindowState
- •Свойство Visible (r/w Boolean)
- •Другие свойства объекта Application
- •Методы Метод Calculate
- •Метод CheckSpelling
- •Метод OnTime
- •Метод Wait
- •Коллекции объектов
- •Объекты Workbooks и Workbook
- •Событийные процедуры
- •Объекты Sheets, WorkSheets и WorkSheet
- •Свойства Свойство Name (r/w String)
- •Свойство Type (r/o String)
- •Свойство UsedRange
- •Свойства Next и Previous
- •Свойство Parent
- •Свойство Visible (r/w Boolean)
- •Методы Метод Add
- •Методы Move и Select
- •Событийные процедуры
- •Объект Range
- •Свойства Cвойство Range
- •Свойство Cells
- •Свойство Offset
- •Метод Union и свойство Areas
- •Свойства Column и Row (r/o Integer)
- •Свойства Columns и Rows
- •Свойство CurrentRegion
- •Cвойства, связанные с шириной и высотой ячейки
- •Методы Методы Select и Activate
- •Метод Clear
- •Цветовое оформление объекта Range Свойство ColorIndex
- •Свойство Color
- •Раздел 7.Пользовательские формы
- •Режимы работы с формой
- •Режим конструктора
- •Элементы управления
- •Событийные процедуры
- •Режим выполнения
- •Объекты UserForm и Controls
- •Разработка приложения
- •Приложение 1
- •Конструирование начальной формы
- •Свойства формы и элементов управления
- •Создание событийных процедур
- •Конструирование формы для выбора рабочего листа
- •Создание событийных процедур
- •Элемент ListBox
- •Событийная процедура инициализации формы
- •Завершение разработки приложения
- •Связь формы с ячейками рабочего листа
- •Элемент TextBox
- •Элемент ListBox
- •Приложение 2
- •Конструирование форм
- •Процедуры
- •Приложение a. Справочная система Просмотр объектов, их свойств и методов (Object Browser)
- •Окно Object Browser
- •Панель инструментов Object Browser
- •Выход из Object Browser
- •Интерактивная подсказка
- •Приложение b. Инструментальные средства отладки программ
- •Контрольные точки или точки останова
- •Трассировка или пошаговое выполнение программы
- •Использование объекта Debug
- •Окна отладчика
- •Immediate Window (окно проверки)
- •Окно значения переменной
- •Locals Window (окно локальных переменных)
- •Окно контрольных значений (Watches)
- •Приложение c. Основные формы записи алгоритмов
- •Понятие "алгоритм"
- •Классификация алгоритмов
- •Способы записи алгоритмов
- •Запись на естественном языке
- •Изображение алгоритма в виде графических символов
- •Представление основных типов алгоритмов в виде блок-схем
Операции сравнения
Операции сравнения являются операциями отношения между данными. Результат операции – логические значения True (Истина) или False (Ложь). Отношения между значениями булевских переменных и переменных типа Date равносильны отношениям между числовыми данными.
Пример
Процедура сравнивает значения двух переменных, которым присвоены значения True и False.
Sub compare_boolean() Dim A as Boolean, B as Boolean A=True B=False Debug.Print A>B End Sub |
Результат сравнения False. При сравнении логических значений считается, что значению True соответствует -1 а значению False соответствует 0. |
Отношения между символьными данными основываются на порядке сортировки символов и знаков, задаваемым инструкцией Option Compare, которая размещается в области Declarations модульного листа. Символы сравниваются попарно слева направо. Могут быть использованы любые знаки операций сравнения.
Инструкция Option Compare Binary задает способ сравнения строковых значений, основанный на внутреннем двоичном представлении символов и соответствует стандартному способу сравнения строк, определяемому кодовой страницей. Например,
A < B < E < Z < a < b < e < z < Б < К < Ш < б < к < ш
Оператор Option Compare Text позволяет задать способ сравнения строковых значений, не принимая в рассмотрение регистр. Например,
(A=a) < (B=b) < (E=e) < (Z=z)< (Б=б) < (К=к) < (Ш=ш)
Оператор Like
Для сравнения символьных строк можно использовать оператор Like, который сравнивает строки с учетом регистра, используя образец сравнения (маску).
Синтаксис оператора string Like pattern
Оба операнда string (строка) и pattern (образец) являются строковыми переменными. Если значение переменной string соответствует значению переменной pattern, результат сравнения True; при их несоответствии результат сравнения False. Если любой из операндов имеет значение Null, результат также равен Null. Подробно см. Help.
Примеры использования оператора Like, приводимые в Help.
Оператор |
Результат |
Комментарии |
"aBBBa" Like "a*a" |
True |
Любое количество символов между двумя буквами a |
"F" Like "[A-Z]" |
True |
Одна любая прописная латинская буква |
"F" Like "[!A-Z]" |
False |
Один символ, кроме прописных латинских букв |
"a2a" Like "a#a" |
True |
Одна цифра между двумя буквами a |
"aM5b" Like "a[L-P]#[!c-e]" |
True |
После буквы a следует заглавная латинская буква от L до P, затем цифра и любая строчная латинская буква, исключая буквы в интервале от c до e |
"BAT123khg" Like "B?T*" |
True |
После буквы B следует любой символ, после которого буква T и далее любое количество любых символов |
"CAT123khg" Like "B?T*" |
False |
Важно
Операнд pattern должен удовлетворять следующим соглашениям:
задаваемая маска, как любая символьная строка, заключается в кавычки;
можно использовать подстановочные знаки (символы шаблона) и диапазоны символов:
звездочка (*) для замены любого количества символов, знак вопроса (?) для замены одного символа и решетка (#) для замены любой цифры от 0 то 9;
диапазоны символов задаются в квадратных скобках перечислением или интервалом через дефис. Например, чтобы указать, что образец сравнения есть прописная буква латинского алфавита, используйте маску "[A-Z]". Для указания, что сравниваемое значение не принадлежит диапазону, поставьте перед диапазоном восклицательный знак. Например, маска "[!A-z]" подразумевает, что тестируемое значение не является буквой латинского алфавита.
внимание
При задании диапазона значения указываются в алфавитном порядке, т.е. список [ARZ] корректен, а запись [ZAR] не верна.
Пустая пара квадратных скобок рассматривается как пустая строка.