Объектно-ориентированный подход в программировании. Проектирование и реализация приложений в среде Microsof Office. Евсеева О.Н. - 90 стр.

UptoLike

Составители: 

1.5. Отладка программ и обработка ошибок 91
3
Синтаксические ошибки
возникают при нарушении "орфографии" инструкций
VBA (пропуске ключевых слов или неправильной пунктуации), VBA
отлавливает большую долю таких ошибок еще при вводе операторов.
Ошибки компиляции
возникают, если VBA не может интерпретировать
введенный текст, например, при использовании неправильного синтаксиса
инструкции (потеря закрывающего блок If … Then оператора End If)
или задании неверного имени метода или свойства. Например, следующий
макрос Word содержит ошибку, выявляемую при компиляции:
Sub NewDocument
Documents.New ' попытка использовать метод New
End Sub ' семейства Documents
Причина ошибки компиляции в том, что у семейства Documents нет
метода или свойства с именем New. Данный макрос нужно исправить,
указав правильный метод:
Sub NewDocument ' метод Add создает новый документ
Documents.Add ' и добавляет его в семейство
End Sub ' Documents
Ошибки выполнения (или динамические ошибки)
возникают при выполнении
программы, то есть после успешной компиляции. Причиной таких ошибок
может быть отсутствие данных, или неверные данные, например, ошибки
при вводе данных пользователем. Ошибки выполнения, как и ошибки
компиляции, легко идентифицируются VBA. При этом выводится
инструкция, при выполнении которой произошла ошибка. Ошибки данного
типа тяжелее устранить: может понадобиться вывести значения переменных
или свойства, а также другие данные, которые влияют на успешное
выполнение программы. Рассмотрим простой пример макроса, который
успешно компилируется, но не выполняется (при его выполнении возникает
ошибка):
Sub DivideTest
Dim x, y, z
x = 5
y = 0
z = x / y ' ошибка выполненияделение на 0
MsgBox z
End Sub
При возникновении ошибки выполнения выдается диалоговое окно
сообщения об ошибке. Если нажать в нем кнопку Отладка, то в окне
модуля выделяется строка выполнение которой привело к ошибке:
z = x / y