советы тем, кто программирует на Visual Basic и Ms Office/vba

E-Book Overview

Сборник статей в журнале "КомпьютерПресс", 1996-2002, в авторской редакции. - 407 с.
Толковая подборка из 448 советов, посвященных самым различным аспектам кодописания в VB и VBA. Ничего лишнего - изложение сути вопроса и примеры кода, многие из которых давненько гуляют по программистским форумам в качестве "народного фольклора", или "советов гуру".

E-Book Content

Андрей Колесов, Ольга Павлова СОВЕТЫ ТЕМ, КТО ПРОГРАММИРУЕТ на Visual Basic и MS Office/VBA "КомпьютерПресс", 1996-2002 © 1996-2002, Андрей Колесов, Ольга Павлова http://www.visual.2000.ru/develop/ms-vb/index.htm  1    Андрей Колесов © 1996, Андрей Колесов  Авторский вариант. Статья была опубликована c незначительной литературной правкой в журнале  "КомпьютерПресс" N 3/96, c. 62‐64.    Когда в январе 1996 года я отправлял эту статью в  "КомпьютерПресс", то никак не думал, что  будет  написан  даже  четвертый  совет.  Сегодня  (май  2000  года)  их  число  уже  приблизилось  к  трехстам...    Совет 1. Используйте содержательные имена объектов При создании нового объекта (формы или элемента управления) ему автоматически присваивается идентификатор (свойство Name), который состоит из имени, назначаемого по умолчанию, и порядкового номера объекта данного типа. Для элементов управления нумерация ведется в пределах каждой отдельной формы, а для формы — в рамках текущего проекта. Однако при создании формы с достаточно большим числом объектов, особенно одного типа, гораздо удобнее вместо безликих названий наподобие Command1, Command2, Command3 использовать более содержательные имена, например, Exit, OK, Cancel. Изменение имен объектов выполняется с помощью соответствующих установок свойства Name в окне Properties. Если для элементов управления изменение имен является, в общем-то, необязательным делом, то для форм, используемых в различных проектах, установка уникальных идентификаторов является просто необходимой. При попытке загрузки сделанной ранее формы Form2 в новый проект, в котором уже создана форма с таким же именем, будет, естественно, выдаваться сообщение о невозможности этой операции. Здесь следует иметь в виду одно важное обстоятельство. Дело в том, что имя элемента управления автоматически используется в формировании относящихся к нему событийных процедур, задействованных в данном модуле формы. (Для самой формы — она одна в модуле — используется фиксированное имя Form независимо от значения свойства Name.) Поэтому, создав, например, командную кнопку Command1, а затем описав для нее обработку события "щелчок мышью", вы получите процедуру с названием Command1_Click. Если же после этого вы решите изменить идентификатор кнопки, то получится так, что ее ранее задействованные событийные процедуры останутся в этом модуле со старыми названиями. Причем все эти процедуры превратятся просто в мусор, так как они никак не будут использоваться: для данной кнопки нужно будет заново описывать все процедуры или менять их старые имена на новые. То же самое относится и к идентификаторам свойств объекта, с той лишь разницей, что при запуске программы будет сразу выдано сообщение об ошибке — "variable not defined", что в данном случае означает "неверный идентификатор свойства". Поэтому при изменении имени элемента управления рекомендую воспользоваться таким советом: 2    Совет 1.1. При изменении имени объекта сделайте коррекцию идентификаторов всех соответствующих ему процедур и свойств в коде модуля с использованием команды Replace в меню Edit (например, заменить "Command1" на "cmdExit"). Конечно, было бы гораздо удобнее, если бы такая модификация выполнялась автоматически при изменении имени элемента управления, — это явное упущение разработчиков языка. И в связи с этим еще одна очевидная рекомендация. Совет 1.2. Присваивайте собственное уникальное имя элементу управления сразу после его соз