
- •Содержание
- •Раздел 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. Основные формы записи алгоритмов
- •Понятие "алгоритм"
- •Классификация алгоритмов
- •Способы записи алгоритмов
- •Запись на естественном языке
- •Изображение алгоритма в виде графических символов
- •Представление основных типов алгоритмов в виде блок-схем
Интерактивная подсказка
При наборе программного кода возникает интерактивная подсказка, позволяющая выбрать нужный тип данных, возможное для объекта свойство или метод и т.п.
Рис. A.6. Подсказка по типам данных
Интерактивная подсказка появляется на экране, если установлена опция Auto Quick Info редактора Visual Basic (см. рис. 2.6). Нажатие Ctrl-Enter вводит выбранный элемент в строку процедуры.
Можно получить помощь по любым компонентам языка, если установить точку вставки на ключевое слово и нажать клавишу F1.
Приложение b. Инструментальные средства отладки программ
Время отладки программ можно существенно сократить, если пользоваться различными средствами VBA, специально предназначенными для обнаружения ошибок в программах и их исправления.
Контрольные точки или точки останова
Точка останова (Breakpoint) представляет собой строку процедуры, на которой разработчик во время отладки планирует остановить выполнение программы. Обычно точки останова используются в больших программах с целью определения их поведения. Имеет смысл устанавливать контрольные точки там, где предположительно может возникнуть ошибка, или в местах, которые отмечают прохождение логических частей программы, например, окончание ввода данных, расчет промежуточных результатов и т.п.
Для
установки контрольной точки переместитесь
на нужную строку процедуры и нажмите
пиктограмму
.
Можно выполнить команду Debug-Toggle
Breakpoint (Отладка-Точка
останова) или нажать
клавишу F9.
Можно сделать щелчок на
вертикальную полосу слева от строки
процедуры. Строка
подсвечивается цветом точки останова
(Breakpoint Text),
задаваемым на вкладке Editor
Format команды
Tools-Options
(см. рис. 2.6). Обычно
это коричневый цвет.
При
достижении точки останова
программа не прерывается,
а переходит в режим
отладки,
который позволяет посмотреть возможное
место ошибки и исправить его. Продвижение
от одной точки останова к другой
в режиме
выполнения программы производится
нажатием кнопки Run
,
клавишей F5
или командой Run.
Если точка останова задана в строке, содержащей несколько операторов, разделенных двоеточием (:), останов происходит в первой инструкции такой строки.
Если точки останова больше не нужны, их надо снять. Отмена всех точек останова производится командой Clear All Breakpoints (Снять все точки останова) из меню Debug или клавишами Ctrl+Shift+F9. Отменить действие этой команды нельзя.
Для снятия одной точки останова выполните команду Toggle Breakpoint из меню Debug для строки процедуры, содержащей точку останова . Можно нажать клавишу F9 или пиктограмму . Можно сделать щелчок на установленную точку на вертикальной полосе слева от строки процедуры. Точка останова удаляется и подсветка строки снимается.
Замечания
Нельзя установить точку останова на пустой строке или на строке, содержащей неисполняемые инструкции, например комментарии, объявление переменных.
Точки останова не сохраняются вместе с программой.
Трассировка или пошаговое выполнение программы
Поскольку последовательность выполнения операторов программы не всегда очевидна, можно выполнять программу по шагам – команду за командой или процедуру за процедурой. При таком способе отладки можно отследить порядок выполнения операторов и наблюдать реакцию программы на выполнение каждого оператора.
Для
запуска пошагового режима можно нажать
одну из кнопок
панели
инструментов
Debug (см.
рис. 2.10) или
выполнить соответствующие команды из
меню Debug.
Трассировку можно выполнять с начала
программы или с точки останова после
прерывания программы.
При трассировке на вертикальной полосе
слева от выполняемого оператора
расположена стрелка – указатель
выполняемого оператора.
Команды пошагового режима
Команда |
Пиктограмма |
Клавиша |
Описание |
Step Into Шаг с заходом |
|
F8 |
Последовательное выполнение всех строк программы (вызывающей и вызываемой процедур) |
Step Over Шаг с обходом |
|
Shift+F8 |
Выполнение вызываемой процедуры как одной инструкции. Используется для продвижения по командам вызывающей процедуры без захода внутрь вызываемых процедур |
Step Out Шаг с выходом |
|
Ctrl+Shift+F8 |
Выполнение оставшейся части вызываемой процедуры как одной инструкции с выходом на оператор вызывающей процедуры, непосредственно следующий за вызовом процедуры |
Run to Cursor Выполнить до текущей позиции |
|
Ctrl+F8 |
Выбор оператора останова программы. Используется для продвижения по логическим разделам программы, например, по большим циклам |
Set next Statement Задать следующую инструкцию |
|
Ctrl+F9 |
Изменение порядка выполнения операторов. Используется для повтора команд внутри текущей процедуры, а также для пропуска нежелательных операторов. Достаточно переместить точку вставки на нужную инструкцию и нажать эту пиктограмму. Можно переместить указатель выполняемого оператора (стрелка слева) в нужную строку процедуры. Допускается выбор строки программы, расположенной как до, так и после текущего оператора. Нельзя задать в качестве следующей выполняемой команды оператор в другой процедуре |
Show next Statement Показать следующую инструкцию |
|
|
Подсвечивает следующую по порядку инструкцию |
Перечисленные команды доступны только в режиме отладки.
Удобно
при трассировке программы видеть на экране одновременно окно программы, окно рабочей книги и другие окна редактора VB. Тогда можно следить за изменениями, происходящими в рабочей книге, в значениях переменных и т.д. Для удобного расположения окон самостоятельно управляйте их размерами и размещением или используйте для этого команды меню Window.