Можно менять значения любых переменных, в том числе значения элементов массивов и элементов переменных пользовательских типов. Только, чтобы получить доступ к этим элементам, не забудьте развернуть раздел, соответствующий нужному массиву или переменной пользовательского типа. В случае объектной переменной у вас нет возможности изменить ссылку на объект, но зато можно менять свойства соответствующего объекта (за исключением тех, которые предназначены только для чтения). И опять же, можно увидеть редактируемые элементы, только развернув раздел, соответствующий объектной переменной (см. рис. 14.11).
Ключевое средство отладки: окно Watches
Когда вы освоите работу с окном Locals, работа с окном Watches (Окно контролируемых выражений) покажется просто забавой. Окно Watches делает, по сути, то же самое, что и окно Locals, но с одним очевидным отличием - те выражения, значения которых будут показаны в этом окне, должны выбрать вы. Примерный вид окна Watches показан на рис. 9.12.
Рис. 9.12. Окно Watches редактора Visual Basic
Используйте окно Watches при отладке больших программ, в которых большое число разных процедур работает с открытыми переменными. Добавив эти переменные в окно Watches, вы сможете контролировать их значения, независимо от того, какая из частей программы выполняется в данный момент.
Окно Watches появится на экране автоматически, как только вы зададите контролируемое выражение. (О том, что такое контролируемое выражение, вы узнаете во врезке "Об отличиях между окнами Watches и Locals".) Если на экране не хватает места, вы всегда можете закрыть это окно, щелкнув на кнопке закрытия в его верхнем правом углу.
Об отличиях между окнами Watches и Locals
Кроме того, что появляющиеся в окне Watches объекты выбираете вы, окно Watches отличается от окна Locals следующим.
* Каждая из строк окна Watches позволяет контролировать значение любого допустимого в VBA выражения, а не только отдельной переменной. Например, вполне годятся выражения типа (X - Y) >, 15, "Выбранный цвет - " & strColor или даже просто 2 + 2. Именно поэтому в случае окна Watches говорится о контролируемых выражениях.
* Из-за того что в окне Watches можно контролировать переменные из любого модуля или процедуры проекта, в этом окне добавлен еще один столбец Context (Контекст). В этом столбце указывается область видимости, в рамках которой отображается значение данной переменной или выражения. Если выполняемая процедура находится вне заданного контекста, вы и увидите только пометку (Вне контекста). :.
Добавление контролируемых выражений
Если вы любите свободу выбора, вам обязательно понравится иметь дело с окном Watches. Приготовьтесь удивиться тому, сколько есть разных способов добавления контролируемых выражений в это окно.
Правда, независимо от выбранного в конце концов способа, начать нужно с окна редактирования и выделить в нем переменную или выражение, значения которых требуется контролировать. Здесь "выделить" означает подсветить все выражение, как в любом текстовом редакторе, пользуясь мышью или клавишами со стрелками.
Если нужно контролировать значение отдельной переменной (другими словами, элемента, не являющегося свойством объекта или частью пользовательского типа данных), то выбирать весь элемент целиком не нужно - достаточно поместить текстовый курсор внутри имени этой переменной.
Перечислим способы, которыми можно добавить контролируемые выражения.
* Щелчок на выделенном тексте правой кнопкой мыши и выбор из появившегося
контекстного меню пункта Add Watch, открывающего диалоговое окно Add Watch.
* Выбор Debug=Add Watch из меню, в результате чего также открывается диалоговое окно Add Watch.
* Щелчок на кнопке Quick Watch панели инструментов Debug или выбор DebugoQuick Watch из меню. Редактор Visual Basic отобразит на экране подтверждающее сообщение с описанием почти уже добавленного вами контролируемого выражения, но у вас не будет возможности каким-либо образом это выражение изменить.
* Перетаскивание выделенного выражения в окно Watch. При этом контролируемое и выражение создается без каких-либо дополнительных промежуточных шагов.
А если вы предпочитаете делать все своими руками, то можете в окне редактирования программного кода не выбирать ничего, а сразу щелкнуть на кнопке Add Watch и просто напечатать интересующее вас выражение вручную в соответствующем поле диалогового окна Add Watch.
На рис. 9.13 изображено окно Add Watch (Добавление контролируемого выражения), возникающее на экране в результате выбора Debug=Add Watch из меню или выбора пункта
Читать дальше