Основы офисного программирования и язык VBA

       

Стандартные модули


Модули этого типа не создаются по умолчанию. Их создает программист явным образом. Каково их назначение? Можно ли без них обойтись? Сколько таких модулей следует создавать? Вот типичные вопросы, стоящие перед программистом в процессе работы над программным проектом. Постараемся сейчас на них ответить.

Стандартные модули - это основной вид модулей. Большую часть всех процедур и функций, которые пишет программист, следует размещать в стандартных модулях. Разумно иметь не один большой стандартный модуль, а некоторое множество относительно небольших модулей. В один модуль следует помещать набор функций, совместно вызывающих друг друга, связанных общей темой, общей функциональной направленностью. В модулях первого типа, связанных с объектами, следует помещать только те процедуры и функции, которые непосредственно обрабатывают события. Все общие процедуры следует выносить в стандартные модули. Вот три основные причины, по которым следует создавать небольшие стандартные модули:

  • Эффективность. В соответствии с принятой по умолчанию стратегией вычислений в VBA - стратегией компиляции "по требованию" (on demand) при вызове какой-либо процедуры модуля происходит его трансляция и трансляция всех зависимых модулей, содержащих процедуры, вызываемые по ходу исполнения первоначально вызванной процедуры. Именно поэтому следует создавать небольшие модули, помещая в них процедуры так, чтобы было как можно меньше перекрестных межмодульных вызовов.

    Замечание:

    Опцию "On demand" можно включить или выключить на вкладке General в меню VBE Tools|Options. Если временная эффективность критична для Вас, и Вам требуется уменьшить время работы, то следует провести соответствующие эксперименты с опциями компиляции на этой вкладке, а также подобрать наилучшую структуру модулей проекта.

  • Переиспользование (Reusability). Если стандартный модуль содержит процедуры общего назначения, то велика вероятность его дальнейшего использования и в других документах. Заметьте, что стандартные модули легко экспортировать и импортировать.
    Стандартный модуль VBA легко встроить не только в любой другой документ Office 2000, но и в чистый VB, поскольку экспорт - импорт модулей между проектами VBA и VB происходит также как и внутри VBA.
  • Понимание и Читабельность. Небольшие модули, решающие определенную задачу, гораздо легче подаются чтению с пониманием смысла данных и процедур их обработки. Конечно, для достижения этой важной цели следует использовать и другие известные приемы - мнемонические имена переменных, комментарии, структуризацию текста модуля.


Итак, подводя итог, заметим, что разумно иметь набор стандартных модулей, располагая в них все содержательные процедуры обработки данных документа. И, конечно, если таких процедур много, то модули должны быть специализированными, объединяя под одной крышей данные и функционально связанные с ними процедуры и функции. Хотя все модули имеют одинаковый уровень иерархии, реально всегда выделяется головной модуль, в котором следует сосредоточить описание глобальных переменных, используемых всеми модулями документа. Во многих ситуациях стандартный модуль следует оформить как модуль класса.


Содержание раздела