Модули VBA

Входящие в проект VBA процедуры и функции располагаются в модулях. Раз­личают модули двух типов: стандартные модули и модули класса.

Стандартные модули (модули программного кода или просто модули) пред­ставляют собой именованные контейнеры, в которых содержатся переменные, доступные различным процедурам и функциям (общие переменные), и про­граммные единицы (процедуры и функции), не связанные с конкретными объек­тами.

ПРИМЕЧАНИЕ      

Процедуры, связанные с конкретными объектами (например, выполняющиеся при каждом открытии на экране некоторой формы), хранятся совместно с этими объектами (в данном случае — непосредственно в форме).

Модули класса представляют собой именованные контейнеры, содержащие в себе описания созданного пользователем класса объектов. Описанные в них переменные определяют внутреннюю структуру объектов – экземпляров этого класса, а процедуры являются методами этих объектов.

 

Работа с редактором VBA

Работа с программным кодом VBA ведется с помощью специального редактора. Чтобы начать работу с ним, выберите ко­манду Сервис > Макрос > Редактор Visual Basic (Tools > Macro > VBA Editor) — откроет­ся окно редактора.

Содержание этого окна зависит от выбора, сделанного с помощью меню Вид (View), однако главным образом приходится работать с показанными на рисун­ке панелями и окнами.

О Панель проекта — располагается в левом верхнем углу окна приложения ниже панели инструментов; предназначена для отображения объектов, со­ставляющих проект VBA (стиль отображения соответствует отображению ресурсов в окне Проводника).

О Панель свойств — располагается ниже панели проекта (если панель отсут­ствует на экране, ее можно включить клавишей F4); здесь можно просматри­вать и по необходимости изменять значения свойств объектов, выбранных в панели проекта (например, имя модуля класса) или окне редактора (напри­мер, имя элемента управления в модуле формы).

О Окно редактора кода — представляет собой специализированный тексто­вый процессор для работы с текстами на языке VBA; здесь располагаются вложенные окна документов, содержащие тексты модулей.

В состав дерева объектов проекта, которое отображается на панели проекта, входят модули следующих категорий.

О Объекты приложения.

О Модули форм.

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

О Модули специализированных классов.


Если в проекте VBA используются модули из других объектных библиотек, то в состав дерева проектов будут также включены ссылки на эти библиотеки. Если выполнить двойной щелчок на имени модуля в дереве проекта, в окне редактора кода появится раскрытое окно документа с текстом выбранного модуля (в на­шем случае — модуля с именем Раскраска). Рассмотрим состав этого окна.

В верхней части окна документа расположены два раскрывающихся списка: список разделов (слева) и список процедур (справа). В стандартном модуле есть только один раздел — Общая область (General). Процедур в каждом стандартном модуле может содержаться несколько, и нужную процедуру можно выбрать с помощью раскрывающегося списка. Кроме имен процедур в списке имеется альтернатива Описания (Declarations). После ее выбора в окне отображается часть модуля, в которой содержатся описания общих переменных модуля, не принадлежащих ни к одной из его процедур, констант и процедур, содержа­щихся в других модулях или проектах, но использующихся в процедурах этого модуля. В нашем примере раздел описаний пуст.

В левом нижнем углу окна располагаются две кнопки, переключающие режи­мы отображения: режим процедуры и режим модуля. В режиме процедуры в окне отображается текст только одной процедуры, в режиме модуля — всех разделов, входящих в него, и всех процедур.

 

Листинг. Текст процедуры, выполняющей выделение цветом отрицательных значении в столбце таблицы Excel

'Выделение отрицательных значений в столбце

'желтыми цифрами на красном фоне

Sub По_красному()

Dim r As Object    'Ячейка

Dim cellN As Integer 'Номер ячейки

'Начинаем со 2 ячейки столбца

cellN = 2

Set r = Range("C:C").Cells(cellN)      'Повторяем, пока не встретится пустая ячейка

Do Until r.Value = ""                                         
    If r.Value < 0 Then

'Устанавливаем желтые цифры на красном фоне

        With r

         .Font.Color = vbYellow

         .Interior.Color = vbRed

         End With

         Else

'Устанавливаем черные цифры на белом фоне

    With r

      .Font.Color = vbBlack                 

      .Interior.Color = vbWhite

    End With

     End If
'Переходим к следующей ячейке

   cellN = cellN +1                                                                 
   Set  r = Range("C:C").Cells(cellN)
  Loop
End Sub

 

Сайт управляется системой uCoz