- •1.Программирование в vba. Объекты Application, Workbook, Worksheet и Range
- •2.Редактор Visual Basic
- •2.1.Запуск программы
- •2.1.1.Панель инструментов Стандарт
- •2.2.Отладка программ
- •2.2.1.Ошибки при написании программ
- •2.2.1.1.Ошибки компиляции
- •2.2.1.2.Ошибки выполнения
- •2.2.2.Инструкция Option Explicit
- •2.2.3.Пошаговое выполнение программ
- •2.2.4.Точка останова (Toggle Breakpoint)
- •2.2.5.Отслеживание значений свойств и переменных
- •3.Объекты Application, Workbook, Worksheet и Range. Встроенные функции Dir, MkDir, MsgBox, InputBox
- •3.1.Программа СлучайныеЧисла
- •3.2.Программа УдалениеКниги
- •3.3.Программа СлучайныеЧислаОформление
- •4.Переменные
- •4.1.Объектные переменные
- •4.2.Пользовательский тип данных
- •5.Массивы
- •5.1.1.Функция Erase
- •5.1.2.Функции lBound и uBound
- •6.Подпрограммы. Функции. Область видимости переменных, подпрограмм и функций.
- •6.1.Вызов подпрограммы
- •6.2.Передача данных при вызове программы
- •6.2.1.Передача по ссылке и по значению
- •6.3.Функции
- •6.4.Область видимости переменных
- •6.4.1.Переменные уровня процедуры
- •6.4.2.Переменные уровня модуля
- •6.4.3.Переменные уровня проекта
- •6.4.4.Сохраняемые переменные
- •6.4.5.Область видимости подпрограмм и функций
- •6.4.6.Сохраняемые подпрограммы и функции
- •7.Управляющие структуры: If-Then-Else, Select Case, For-Next, While-Wend, Do-Loop, For-Each-Next
- •8.Инструкция With
- •9.Встроенные функции vba
- •9.1.Математические функции
- •9.2.Функции проверки типов
- •9.3.Функции преобразования форматов
- •9.4.Функции обработки строк
- •9.5.Функции времени и даты
- •10.Обработка ошибок: инструкция On Error
- •11.Пользовательский интерфейс
- •11.1.Создание формы (UserForm) и добавление кнопок (СоmmandButton)
- •11.2.Вывод формы на экран (запуск формы)
- •11.3.Поле (TextBox) и надпись (Label).
- •11.4.Список (ListBox) и поле со списком (ComboBox)
- •11.4.1.Список (ListBox)
- •11.4.2.Определение выбранных элементов списка
- •11.4.3.Поле со списком (ComboBox)
- •11.4.4.Определение выбранного элемента
- •11.4.5.Создание взаимосвязанных элементов управления
- •11.5.Флажок (CheckBox)
- •11.6.Выключатель (ToggleButton)
- •11.7.Переключатель (OptionButton)
- •11.8.Счетчик (SpinButton)
- •11.9.Создание нестандартных меню и панелей инструментов.
- •11.9.1.Пример создания/удаления панели инструментов
- •11.9.2.Пример создания/удаления меню
- •12.События объектов Workbook и Worksheet
- •12.1.События объекта Workbook
- •12.2.События объекта Worksheet
- •Домашнее задание №1
- •Домашнее задание №2 и №3. Типовые варианты.
- •Вариант 1. Домашнее задание №2
- •Списочный состав института
- •Домашнее задание №3
- •Вариант 2. Домашнее задание №2
- •Списочный состав института
- •Домашнее задание №3
- •Вариант 3. Домашнее задание №2
- •Домашнее задание №3
- •Вариант 4. Домашнее задание №2
- •Домашнее задание №3
- •Вариант 5. Домашнее задание №2
- •Домашнее задание №3
2.2.3.Пошаговое выполнение программ
Для выполнения программы в пошаговом режиме, что особенно актуально при её отладке, воспользуйтесь кнопками панели инструментов Отладка (Debug)4: Шаг с заходом (Step Into), Шаг с обходом (Step Over), Сброс (Reset) и Запуск подпрограммы/Формы (Run Sub/UserForm) (Рис. 2 -10)
Рис. 2‑10. Панель инструментов Отладка (Debug)
Щелчок по кнопке Шаг с заходом (Step Into), равно как и нажатие клавиши [F8], вызывает выполнение одной команды. Если на Вашем пути встретится другая подпрограмма или функция, то они также будут выполняться в пошаговом режиме. В промежутках между щелчками код не выполняется - говорят, что он находится в режиме прерывания (break mode).
Если вы хотите «обойти» какую-то подпрограмму или функцию, то, дойдя до вызова, щелкните кнопку Шаг с обходом (Step Over). Подпрограмма (функция) будет выполнена сразу и целиком.
Если вы начали отладку подпрограммы или функции в пошаговом режиме, а затем решили сразу выполнить все оставшиеся инструкции и вернуться в вызвавшую программу, щелкните кнопку Шаг с выходом (Step Out). Выполнение остановится в инструкции, следующей за вызовом.
В состоянии останова вы сами можете управлять последовательностью выполняемых команд. Для этого перетащите желтую стрелку в нужную строку, а затем продолжите выполнение программы в пошаговом режиме. Пропущенный фрагмент кода при этом не выполняется.
Эту же операцию можно сделать и по-другому:
Установите курсор ввода в нужной строке кода.
Выполните команду Отладка/Следующий оператор (Debug/Set Next Statement) или нажмите клавиши [CTRL+F9].
Чтобы прервать пошаговый режим и завершить программу, выполнив все оставшиеся инструкции о6ычным способом, щелкните кнопку Продолжить5 (Continue). Чтобы остановить программу, щелкните по кнопке Сброс (Reset).
2.2.4.Точка останова (Toggle Breakpoint)
Остановить выполнение программы в определенном месте можно с помощью точки останова. Для этого установите курсор ввода в нужную строку кода и щелкните по инструменту Точка останова (Toggle Breakpoint). Строка будет выделена кирпичным6 цветом, а справа от нее появится большая точка.
Установить точку останова можно и по-другому: для этого щелкните по серой полосе в окне программы справа от нужной строки.
Чтобы удалить точку останова щелкните по ней мышкой или выделите строку, и снова щелкните кнопку Точка останова (Toggle Breakpoint). Чтобы удалить все точки останова выполните команду Огладка/Снять все точки останова (Debug/Clear All Breakpoints).
Задание:
Выполните программу СлучайныеЧисла в пошаговом режиме. Когда дойдете до 5-й строки (Рис. 2 -11), наведите мышиный курсор на переменную СлучЧисло – появится всплывающая подсказка с её значением.
Рис. 2‑11. Выполнение программы в пошаговом режиме
Выполните несколько итераций цикла, наблюдая за изменением переменной СлучЧисло. Обратите внимание: при наведении мышиного курсора на свойство Cells(i,1).Value подсказка не появляется. Отслеживание свойств возможно в окне контрольных значений (см. на стр. 18).
Щелкнув по кнопке Продолжить (Continue), завершите выполнение программы.
Переключитесь в окно Excel и убедитесь, что случайные числа разыграны.
Удалите случайные числа, вернитесь в редактор VBA и установите точку останова как показано на Рис. 2 -12:
Рис. 2‑12. Программа с точкой останова
Запустите программу и посмотрите, как будет выполняться программа в этом режиме.
После трех итераций цикла снимите точку останова и перетащите желтую стрелку в строку MsgBox.
Наведите мышиный курсор на переменную i – она возвращает 3, цикл прервался, а к выполнению готова указанная Вами команда. Щелкнув по кнопке Продолжить (Continue), завершите выполнение программы.
Переключитесь в окно Excel и убедитесь, что случайные числа разыграны не полностью.
