На занятии рассматриваются следующие
вопросы:
-
общее
понятие о языке VBA; -
объекты
VBA; -
свойства,
методы и события; -
элементы
языка VBA; -
структура
редактора VBA.
Visual
Basic
for
Application
(VBA)
– подмножество языка программирования
Visual
Basic,
включает средства создания приложений
VB.
VBA относится к языкам
объектно-ориентированного программирования.
Системы объектно-ориентированного
программирования дают возможность
визуализировать процесс создания
графического интерфейса разрабатываемого
приложения. Главная особенность
программирования в среде VBA — в ней нельзя
создавать проект независимо от этих
приложений, т.о. VBA работает непосредственно
с объектами MS Office.
Это позволяет его применять для
автоматизации деятельности, связанной
с обработкой различных типов документов.
Программист (пользователь) может создать
видимую часть приложения, которая
является основой интерфейса
«программа-пользователь». Взаимодействие
программируемых объектов между собой
и их изменение создается при помощи
программных кодов.
Эта технология сделала возможным
создание повторно используемых
компонентов, являющихся строительными
блоками программ.
Объекты
Объект — основной элемент VBA Excel.
В VBA объектами являются рабочая
книга, рабочий лист и его составляющие:
ячейки, диалоговые окна, кнопки и т.д.
Примеры объектов:
-
Sheet
— лист Excel; -
Cell
— ячейка; -
Range
— диапазон ячеек; -
Application
— приложение; -
UserForm
— пользовательская форма.
Доступ к объекту возможен через его
методы и свойства и события.
События
Событие представляет собой действие,
распознаваемое объектом (например,
щелчок мышью или нажатие клавиши,
перемещение мыши или выход из программы),
для которого можно запрограммировать
отклик, т.е. реакцию объекта на произошедшее
событие.
В языке VBA для каждого объекта определен
набор стандартных событий.
Стандартное событие для объекта “кнопка”
(CommandButton) — щелчок мышью (Click).
Если пользователь нажимает на кнопку,
то это событие. На это событие должен
быть отклик, т.е. выполнение какой-либо
программы. Такая программа называется
процедурой обработки событий и имеет
стандартное имя. Если такой отклик не
создан (не написана соответствующая
программа), то система никак не будет
реагировать на это событие.
Методы и Свойства
Для каждого объекта определен ряд
возможных событий. Одни из них
возникают как отклик на команды
пользователя, другие задают характеристики
объектов.
Методами называются набор действий,
которые может совершать объект.
Например, ячейку можно очистить (Clear),
приложение закрыть (Quit), пользовательскую
форму показать (Show) или скрыть (Hide).
Название метода отделяется от названия
объекта точкой: Объект.Метод
Примеры использования методов:
-
Range(«B2:E2»).Select
— выбрать диапазон ячеек B2:E2; -
Range(«C1:C5»).Clear
— очистить диапазон ячеек C1:C5; -
UserForm2.Hide
— скрыть форму № 2; -
UserForm5.Show
— показать форму № 5; -
Application.Quit — выйти из приложения.
Свойства объекта — это возможность
получения доступа к информации, которая
хранится в этом объекте. Через свойства
можно получить эту информацию или ее
изменить. Например, размер и цвет шрифта,
положение формы на экране или состояние
объекта (доступность, видимость). Чтобы
изменить характеристику объекта, надо
просто изменить значение свойства, т.е.
присвоить ему определенные значения.
Синтаксис установки значения свойства:
Объект.Свойство = ЗначениеСвойства,
— где Объект обозначает имя объекта,
Свойство — имя свойства, которому
присваивается значение.
Имя объекта отделяется от имени свойства
точкой.
Примеры свойств:
Range(«D1»).Value
= 2005 — поместить в ячейку D1 значение 2005.
Range(«C1:C10»).Text
= «Информатика» — поместить в диапазон
ячеек C1:C10 текст Информатика.
Range(«B2»).Font.Size
= 14 — в ячейке B2 установить размер шрифта
14.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
Работа с объектами
При создании приложения в VBA в основном происходит работа с объектами. Можно использовать объекты, предоставляемые VBA: элементы управления, формы и объекты доступа к данным. Можно также управлять объектами других приложений из приложения VBA. Можно даже создавать свои собственные объекты и определять для них дополнительные свойства и методы.
Что такое объект?
Объект — это комбинация кода и данных, которую можно рассматривать как одно целое. Объект может быть частью приложения, как элемент управления или форма. Целое приложение также может быть объектом. В таблице приведены примеры типов объектов, которые можно использовать в VBA:
Объект | Описание |
Кнопка управления | Элементы управления на форме, например кнопки управления и рамки, являются объектами |
Форма | Каждая форма в проекте VBA является отдельным объектом |
База данных | Базы данных являются объектами и содержат другие объекты, например, поля и индексы |
Диаграмма | Диаграмма в Microsoft Excel является объектом |
Происхождение объектов
Каждый объект в VBA определен классом (class). Класс используется для создания объектов и определяет их характеристики. Приведем два примера взаимоотношений между классами и объектами в VBA:
Элементы управления Панели элементов управления в VBA представляют классы. Объект, известный как элемент управления, не существует, пока он не нарисован на форме. Когда создается элемент управления, создается копия, или экземпляр (instance) класса элемента управления
Форма, используемая во время разработки, является классом. Во время выполнения VBA создает экземпляр класса формы
Окно Properties (Свойства) отображает класс и свойство Name (Имя) объектов в разработанном приложении VBA.
Все объекты создаются как идентичные копии своих классов. Свойства индивидуальных объектов можно изменять. Например, если на форме созданы три кнопки управления, каждый объект кнопка управления является экземпляром класса ConroandButton. Объекты одного класса используют общий набор характеристик и способностей (свойств, методов и событий). Каждому объекту дано свое имя, их можно по отдельности заблокировать и разблокировать, поместить в разные места на форме и т. д.
Понятие «класс объекта» не часто упоминается. Просто надо помнить, что, например, термин «элемент управления списком» означает «экземпляр класса ListBox».
Что можно делать с объектами?
Объект предоставляет в распоряжение разработчика готовый исполняемый код. Например, вместо того чтобы программировать собственные диалоги File Open (Открыть файл) и File Save (Сохранить файл), можно использовать элемент управления общим диалогом (объект, предоставляемый VBA). Можно написать собственный код управления планированием и ресурсами, но вместо этого проще использовать объекты Calendar (Календарь), Resources (Ресурсы) и Task (Задача), предоставляемые Microsoft Project (Проект).
VBA может комбинировать объекты из других источников
VBA предоставляет инструменты, которые позволяют комбинировать объекты из различных источников. Можно строить решения, комбинируя самые мощные возможности VBA и приложений, поддерживающих Automation (Автоматизация) (ранее известная как OLE Automation). Автоматизация (automation) — это свойство составной модели объекта (Component Object Model, СОМ), промышленного стандарта, используемого приложениями для раскрытия своих объектов инструментам разработки и другим приложениям.
Можно строить приложения, объединяя внутренние элементы управления VBA и объекты, предоставляемые другими приложениями. Предположим, что эти объекты помещены на форму VBA:
Объект Microsoft Excel chart (Диаграмма Microsoft Excel)
Объект Microsoft Excel Worksheet (Рабочий лист Microsoft Excel)
Объект Microsoft Word Document (Документ Microsoft Word)
Эти объекты можно использовать для создания приложения. Это сохранит время разработчика, так как не надо писать код, воспроизводящий все функциональные возможности объектов Microsoft Excel и Microsoft Word.
Основы работы с объектами
Объекты VBA поддерживают свойства, методы и события. В VBA данные объекта (установки или атрибуты) называются свойствами, тогда как процедуры, которые оперируют с объектом, называются его методами. Событие — это действие, распознаваемое объектом, например, щелчок кнопкой мыши или нажатие клавиши клавиатуры, и программист может написать код, реагирующий на это событие.
Можно изменять характеристики объекта, меняя его свойства. Рассмотрим радио: одно из свойств радио — громкость (volume). В терминах обсуждаемой темы можно сказать, что радио обладает свойством «Volume», которое регулируется изменением его значения. Предположим, что можно установить регулятор громкости радио в положения от 0 до 10. Если бы радио управлялось с помощью VBA, можно было бы написать код процедуры, которая изменяла бы значение свойства «Volume» от 3 до 5, чтобы радио работало громче:
Radio.Volume = 5
Кроме свойств объекты обладают методами. Методы — это такая же часть объектов, как и свойства. В целом, методы — это действия, которые можно выполнить, тогда как свойства — это атрибуты, которые устанавливаются или восстанавливаются. Например, чтобы позвонить по телефону, надо набрать номер (dial). Можно было бы сказать, что телефоны обладают методом «Dial», и использовать этот синтаксис для набора номера 555111:
Phone.Dial 5551111
Объекты также обладают событиями. События инициируются, когда изменяются некоторые свойства объекта. Например, радио может иметь событие «VolumeChange» (Изменение громкости). Телефон может иметь событие «Ring»(Звонок).
Управление объектами с помощью свойств
Индивидуальные свойства меняются. Некоторые можно установить во время разработки. Для этого лучше использовать окно Properties (Свойств), что позволяет вообще не писать никакого кода. Другие свойства не доступны во время разработки, следовательно, необходимо программировать установку таких свойств во время выполнения.
Свойства, которые можно установить или значения которых можно получить только во время выполнения, называются изменяемыми (read-write properties). Свойства, значения которых можно только прочитать во время выполнения, называются неизменяемыми (read-only properties).
Установка значений свойств
Значение свойства устанавливается, только если необходимо изменить внешний вид или поведение объекта. Например, свойство Text элемента управления TextBox изменяют, если необходимо изменить содержимое поля.
Для установки значения свойства применяется следующий синтаксис:
object.property = expression
Следующие операторы демонстрируют, как можно устанавливать значения свойств:
Textl.Top = 200 ‘ Значение свойства Тор равно 200 твипам.
Textl.Visible = True ‘ Отображает текстовое поле.
Textl.Text = «hello» ‘ Отображает ‘hello’ в текстовом поле.
Получение значений свойств
Получают значение свойства тогда, когда хотят определить состояние объекта до выполнения каких-либо действий из кода, например, присвоить значение свойству другого объекта. Можно проанализировать содержимое текстового поля (значение свойства Text этого элемента управления) перед выполнением кода, который может изменить это значение.
В большинстве случаев, чтобы получить значение свойства, применяется следующий синтаксис:
variable = object.property
Можно также использовать значение свойства, как часть более сложных выражений, без присваивания этого значения переменной. В следующем примере значение свойства Top (Верх) нового члена массива элементов управления вычисляется как значение свойства Top предыдущего члена плюс 400:
Private Sub cmdAdd_Click()
‘ [операторы]
optButton(n).Top = optButton(n-l).Top + 400
‘ [операторы] End Sub
Примечание
В случае многократного использования значения свойства код будет выполняться быстрее, если хранить это значение в переменной.
Использование методов в коде
Методы могут воздействовать на значения свойств. Например, в аналоге радио метод SetVolume (Установить громкость) изменяет свойство volume (громкость). Списки VBA имеют свойство List (Список), которое можно изменить методами clear (Очистить) и Additem (Добавить элемент).
При использовании метода в коде запись соответствующего оператора зависит от того, сколько параметров требуется передать в метод, и возвращает ли метод значение. Если методу не требуются параметры, его можно вызвать с помощью следующего синтаксиса:
object.теthod.
В следующем примере метод Refresh (Освежить) перерисовывает картинку:
Picturel.Refresh ‘ Перерисовка элемента управления.
Некоторые методы, как метод Refresh, не имеют параметров и не возвращают значения.
Если методу требуется более одного параметра, они отделяются друг от друга запятыми. Например, метод circle (Круг) требует задать положение, радиус и цвет круга на форме:
‘ Нарисовать голубой круг радиусом 1200 твипов.
Forml.Circle (1600, 1800), 1200, vbBlue
Если необходимо сохранить возвращаемое методом значение, следует заключить в круглые скобки его параметры. Например, метод GetData (Получить данные) возвращает картинку из буфера обмена (clipboard):
Picture = Clipboard.GetData (vbCFBitmap)
Если метод не возвращает никакого значения, параметры задаются без круглых скобок. Например, метод Additem (Добавить элемент) не возвращает значения:
Listi.Additem «yourname» ‘ Добавить текст ‘yourname’ в список.
Взаимосвязь объектов
Если на форму помещаются две кнопки управления, они являются отдельными объектами с различными значениями свойства Name (Имя) (command1 и Command2), НО ОНИ СОВМССТНО ИСПОЛЬЗУЮТ ОДИН И ТОТ ЖЕ КЛАСС: CommandButton.
Кроме того, они расположены на одной форме. Но рассмотренный выше в этой главе элемент управления также принадлежит этой форме. Это выстраивает элементы управления в некоторую иерархию. Чтобы сослаться на элемент управления, сначала нужно сослаться на форму, точно так же необходимо набрать код страны или код области, прежде чем набирать конкретный номер телефона.
Рассматриваемые кнопки управления также являются элементами управления — это их общая характеристика. Все элементы управления имеют общие характеристики, что отличает их от форм и других объектов в окружении VBA. Далее будет рассматриваться использование наборов VBA для объединения родственных объектов в группы.
Иерархия объектов
Иерархия объектов (object hierarchy) определяет, как объекты связаны друг с другом и как к ним можно обратиться. В большинстве случаев программисту нет необходимости заботиться об иерархии объектов VBA, однако:
При обращении к объектам других приложений следует знать иерархию объектов этого приложения.
Работая с объектами доступа к данным, следует знать иерархию Data Access Objects (Объектов доступа к данным)
Наборы объектов
Наборы объектов имеют собственные свойства и методы. Объекты в наборе называются членами набора (members of the collection). Все члены набора перенумерованы последовательно, начиная с 0. Номер члена в этой последовательности называется его индексом (index number). Например, набор Controls (Элементы управления) состоит из всех элементов управления на заданной форме, как показано на рис. 5.10. Наборы применяются для упрощения кода, если необходимо выполнить одну и ту же операцию над всеми объектами в наборе.
Например, следующий код последовательно просматривает набор controls и заносит имя члена в список:
Dim MyControl as Control For Each MyControl In Forml.Controls
‘ Имя каждого элемента управления заносится в список.
Listl.AddItem MyControl.Name Next MyControl
Применение свойств и методов к членам наборов
Существует два общих способа адресации члена набора:
» Задать имя члена. Следующие выражения эквивалентны:
Controls(«List1») Controls!List1
Использовать индекс члена:
Controls(3)
Коль скоро имеется возможность адресации ко всем членам сразу и к индивидуальным членам, применять свойства и методы можно следующим образом:
‘ Установить значение свойства Тор списка равным 200.
Controls! List1. Top = 200
или так:
Dim MyControl as Control
For Each MyControl In Form1.Controls ()
‘ Установить значение свойства Top каждого члена равным 200.
MyControl.Top = 200
Next MyControl
Объекты, содержащие другие объекты
В VBA некоторые объекты содержат другие объекты. Например, обычно форма содержит один или более элементов управления. Удобство использования объектов в качестве контейнеров (containers) для других объектов заключается в том, что можно ссылаться на контейнер в коде для уточнения, какой объект используется. Например, могут быть две разные формы. Обе формы могут иметь списки с именем istAcctNo. Для точного указания списка можно использовать ссылку на форму, содержащую этот список:
frmReceivable.IstAcctNo.AddItem 1201
или
frmPayable.IstAcctNo.AddItem 1201
Общие наборы в VBA
В VBA существуют некоторые общие случаи, когда один объект содержит другие объекты. В таблице кратко описаны наиболее часто используемые наборы VBA.
Формы.
Первым шагом при разработке приложения на VBA является создание интерфейса, видимой части приложения, с которым взаимодействует пользователь. Формы и элементы управления как раз и являются строительными блоками при создании интерфейса. Именно с этими объектами приходится работать при построении приложений.
Формы — это объекты, которые обладают свойствами, определяющими их внешний вид, методами, определяющими их поведение, и событиями, которые определяют их взаимодействие с пользователем. Установкой свойств формы и разработкой кода VBA для отклика формы на события создается объект, удовлетворяющий требованиям определенного приложения.
Элементы управления — это объекты, содержащиеся внутри объектов-форм. Каждый тип элемента управления имеет свой собственный набор свойств, методов и событий, что делает его пригодным для определенной цели. Некоторые элементы управления, используемые в приложениях, лучше всего подходят для ввода или отображения текста. Другие элементы управления обеспечивают доступ к другим приложениям и данным процессов таким образом, как будто бы удаленное приложение является частью самого приложения.
Данная глава знакомит читателя с основными понятиями, необходимыми для работы с формами и элементами управления и связанными с ними свойствами, методами и событиями. Обсуждается большое количество стандартных элементов управления, а также специфические для форм вопросы: меню и окна диалога.
Разработка формы
Формы являются основными строительными блоками приложения VBA, теми окнами, с которыми взаимодействует пользователь при работе с приложением. У форм есть свои свойства, события и методы, которые позволяют управлять их внешним видом и поведением.
Первым шагом в разработке формы является установка значений ее свойств. Свойства формы можно установить во время разработки в окне Properties (Свойства) или во время выполнения (run time) приложения, написав соответствующий код.
Установка свойств формы
Многие из свойств формы воздействуют на ее внешний вид, т.е. то, как ее видит пользователь. Свойство Caption (Название) определяет текст заголовка окна (title bar) формы. Изменяя установку свойства BorderStyle, можно управлять размерами формы.
Свойства Height (Высота) и Width (Ширина) определяют начальные размеры формы; свойства Left (Левый) и Top (Верхний) определяют местоположение формы по отношению к левому верхнему углу экрана монитора.
Свойство Name (Имя) устанавливает имя, по которому можно обращаться к форме из кода. По умолчанию, когда форма впервые добавляется к проекту, ее имя может быть одним из последовательности имен Form1, Form2 и т. д. Однако для программиста удобнее, если свойство Name будет иметь более выразительное значение, например, frmГлавная для первой формы приложения.
Наилучший путь познакомиться с многочисленными свойствами форм — это поэкспериментировать с ними. Изменить значения некоторых свойств формы в окне Properties, затем запустить приложение и проанализировать воздействие новых значений. Узнать больше о каждом свойстве можно также, выбрав его и нажав F1
События и методы формы
Как объекты, так и формы могут выполнять методы и реагировать (откликаться) на события.
При каждом изменении размера формы в результате действий пользователя или программным способом инициируется событие Resize (Изменить размер) формы. Это позволяет изменять размеры элементов управления на форме или перемещать их, когда изменены размеры самой формы.
Событие Activate (Активизировать) происходит всегда, когда форма становится активной, а событие Deactivate (Деактивировать) — когда активной становится другая форма приложения. Эти события удобны для организации поведения формы при ее инициировании и завершении работы с ней. Например, можно написать код, который в случае события Activate выделит текст в каком-нибудь тeкcтoвoм окне, а в случае события Deactivate внесенные изменения будут сохранены в файле или базе данных.
Чтобы сделать форму видимой, следует вызвать метод show (Показать):
Form2.Show
Вызов метода show имеет тот же эффект, что и установка значения свойства visible (Видимый) формы в True (Истина).
Многие из методов формы работают с текстом или графикой. Методы Print (Печатать), Line (Линия), Сircle (Окружность) и Refresh (Обновить) полезны для печати или рисования непосредственно на поверхности формы.
Свойство Container
Свойство container (Набор) используется для изменения набора объектов внутри формы. Следующие элементы управления могут содержать другие элементы управления:
Рамка
Графическое окно
Следующий пример демонстрирует перемещение кнопки управления из одного набора на форме в другой. Откроем новый проект и создадим на форме рамку, графическое окно и кнопку управления.
Следующий код в процедуре обработки события click (Щелчок) формы увеличивает переменную цикла и использует конструкцию select case для поочередного перемещения кнопки управления из контейнера в контейнер:
Private Sub Form_Click() Static intX as Integer Select Case intX Case 0 Set Command1.Container = Picture1 Command1.Top= 0 Command1.Left= 0 Case 1 Set Coinmand1. Container = Frame1 Command1.Top= 0 Command1.Left= 0 Case 2 Set Command1.Container = Form1 Conmiand1. Top= 0 Commandl.Left= 0 End Select intX = intX + 1 End Sub
Связь между объектами
Кроме использования и создания объектов в VBA можно организовать коммуникационную связь с другими приложениями и управлять их объектами из разрабатываемого приложения. Возможность совместного использования данных приложениями — одна из ключевых в операционной системе Windows. VBA предоставляет большую гибкость при организации взаимодействия с другими приложениями.
Создание объектов
Самый простой способ создать объект — щелкнуть два раза на элементе управления в Панели управления. Однако для реализации всех возможностей объектов, доступных в VBA и из других приложений, следует использовать программные возможности VBA для создания объектов во время выполнения:
Можно создавать ссылки на объект с помощью переменных
Можно создавать собственные объекты с самого начала с помощью модулей классов
Можно создавать собственные наборы с помощью объекта collection (Набор.)
Использование переменных для объектов
Переменная может ссылаться на объекты. Присваивание объектов переменным выгодно по тем же причинам, что и присваивание переменным значений:
Имена переменных, как правило, короче и их легче запомнить, чем значения, которые они содержат (или, как в данном случае, объекты, на которые они ссылаются)
Во время выполнения кода переменные можно изменять, организуя ссылки на другие объекты
Ссылка на переменную, содержащую объект, более эффективна, чем постоянная ссылка на сам объект
Использование переменной для объекта аналогично использованию обычной переменной, но с одним дополнительным шагом — присваиванием объекта переменной:
Сначала ее объявляют:
Dim variable As class
Затем ей присваивают объект:
Set variable = object
Объявление переменных для объектов
Переменные для объектов объявляют так же, как и другие переменные, с помощью операторов Dim, ReDim, Static, Private или public. Единственное отличие заключается в наличии необязательного ключевого слова New (Новый) и параметра class (класс), они обсуждаются ниже в этой главе. Синтаксис задания переменной для объекта следующий:
(Dim | ReDim | Static | Private | Public} variable As [New] class
Например, можно объявить переменную для объекта, которая ссылается на форму с именем frmMain в приложении:
Dim FormVar As New frmMain ‘ Объявление объектной переменной типа frmMain.
Можно также объявить переменную, которая может ссылаться на любую форму в приложении:
Dim anyForm As Form ‘ Переменная родовой формы.
Подобным же образом можно объявить переменную для ссылки на любое текстовое поле в приложении:
Dim anyText As TextBox ‘ Может ссылаться на любое текстовое поле
Можно объявлять переменные для объекта, которые ссылаются на элемент управления любого вида:
Dim anyControl As Control ‘ Переменная родового элемента управления.
Заметим, что можно объявлять переменную формы, которая будет ссылаться на конкретные формы в приложении, но нельзя объявить переменную элемента управления, которая будет ссылаться на конкретный элемент управления. Можно объявлять переменные, которые ссылаются на определенный тип элемента управления, например TextBox или ListBox, но не на конкретный элемент данного типа, например txtEntry или Listl. Но можно присвоить определенный элемент управления переменной соответствующего типа. Например, для формы со списком, имеющим имя istSample, можно написать код:
Dim objDemo As ListBox Set objDemo = IstSample
Назначение объектов переменным
Назначить или присвоить объект переменной можно оператором Set:
Set variable = object
Этот оператор следует применять, если необходимо, чтобы переменная ссылалась на какой-то объект.
Иногда можно использовать переменные для объектов, иногда переменные для определенного типа элементов управления, просто для того, чтобы сократить размер набираемого кода. Например:
If frmAccountDisplay.txtAccountBalance.Text < 0 Then FrmAccountDisplay.txtAccountBalance.BackColor = 0 _ FrmAccountDisplay.txtAccountBalance.ForeColor = 255 End If
Этот код можно значительно сократить, если применить переменную для элемента управления:
Dim Bal As TextBox Set Bal = frmAccountDisplay.txtAccountBalance If Bal.Text < 0 Then Bal.BackColor = 0 Bal.ForeColor = 255 End If
Типы конкретных и родовых объектов
Переменные для конкретных объектов (specific object variables) должны ссылаться на один конкретный тип объекта или класса. Переменная для конкретной формы может ссылаться только на одну форму в приложении (хотя она может ссылаться на одну форму из множества экземпляров этой формы). Точно так же переменная для конкретного элемента управления может ссылаться только на один конкретный тип элемента управления в приложении, например, TextBox или ListBox. Чтобы посмотреть, как это делается, откроем новый проект и поместим на форму поле ввода. Добавим следующий код к форме:
Private Sub Form_Click() Dim anyText As TextBox Set anyText = Textl anyText.Text = "Hello" End Sub
Запустим приложение и щелкнем кнопкой мыши на форме. Свойство Text (Текст) поля ввода изменится на «Hello».
Переменные для родовых объектов (generic object variables) могут ссылаться на один из многих конкретных типов объектов. Переменная для родовой формы, например, может ссылаться на любую форму в приложении; переменная для родового элемента управления может ссылаться на любой элемент управления на любой форме в приложении. Чтобы посмотреть, как это делается, откроем новый проект и поместим несколько элементов управления рамкой, меткой и кнопок управления на форму в произвольном порядке. Добавим следующий код к форме:
Private Sub Form_Click() Dim anyControl As Control Set anyControl = Formi.Controls(3) anyControl.Caption = "Hello" End Sub
Запустим приложение и щелкнем кнопкой мыши на форме. Надпись на элементе управления, помещенном на форму третьим, изменится на «Hello».
В VBA существуют три типа родовых объектов:
Form. Ссылается на любую форму в приложении
control. Ссылается на любой элемент управления в приложении
object. Ссылается на любой объект
Переменные для родовых элементов управления полезны, если не известен конкретный тип объекта, на который будет ссылаться переменная во время выполнения. Например, в коде, который будет оперировать с любой формой в приложении, необходимо использовать переменную для родовой формы.
Формы как объекты
Наиболее часто формы используются для создания интерфейса приложения, но они также являются объектами, которые можно вызывать из других модулей приложения. Формы тесно связаны с модулями классов. Главное различие между ними заключается в том, что формы могут быть видимыми объектами, тогда как модули не имеют видимого интерфейса.
Добавление разработанных пользователем методов и свойств
Можно добавлять разработанные методы и свойства к формам и обращаться к ним из других модулей в приложении. Чтобы создать новый метод для формы, следует объявить процедуру с ключевым словом public:
' Пользовательский метод на Form1 Public Sub LateJobsCountO . ' <операторы> End Sub
Процедуру LateJobsCount можно вызвать из другого модуля оператором:
Form1.LateJobsCount
Создать новое свойство так же просто, как объявить открытую переменную в модуле формы:
Public IDNumber As Integer
Можно устанавливать и возвращать значение свойства IDNumber формы Form1 из других модулей двумя операторами:
Form1.IDNumber = 3 Textl.Text = Form1.IDNumber
Можно также использовать процедуры property (Свойство) для добавления разработанных свойств к форме.
Примечание
Можно обратиться к переменной, разработанному методу или установить значение разработанного свойства формы без ее загрузки. Это позволяет выполнить код на форме без загрузки ее в память. Точно так же ссылка на элемент управления без ссылки на какое-то из его свойств или методов не загружает форму.
Ключевое слово New
Ключевое слово New применяется для создания нового объекта в соответствии с его определением в своем классе. Его можно применять для создания экземпляров форм, классов, определенных в модулях классов, и наборов.
Использование ключевого слова New с формами
Каждая создаваемая во время разработки форма является классом. С помощью ключевого слова New можно создавать новые экземпляры этого класса. Чтобы увидеть, как это делается, создадим кнопку управления и несколько других элементов управления на форме. В окне Properties присвоим свойству Name формы значение sample. Добавим следующий код в процедуру обработки события click кнопки управления:
Dim x As sample Set x = New sample х. Show
Запустим приложение и щелкнем несколько раз кнопкой мыши на кнопке управления. Передвинем первую форму в сторону. Так как форма является классом с видимым интерфейсом, мы увидим дополнительные копии. Каждая форма имеет те же самые элементы управления, что и форма во время разработки.
Примечание
Чтобы сделать форму переменной и сохранять экземпляр загруженной формы, следует использовать переменные Static (Статический) или Public (Открытый) вместо локальных переменных.
Использование ключевого слова New другими объектами
Ключевое слово New используется для создания наборов и объектов классов, определенных в модулях классов. Рассмотрим пример, демонстрирующий создание экземпляров класса с помощью ключевого слова New. Откроем новый проект и создадим кнопку управления на форме Form1. Выполним команду Add Class Module (Добавить модуль класса) меню Project для добавления модуля класса в проект. Установим значение свойства Name модуля класса в showMe.
Следующий код в модуле Form1 создает новый образец класса ShowMe и вызывает процедуру, содержащуюся в модуле класса:
Public cisNew As ShowMe Private Sub Commandl Click() Set cisNew = New ShowMe cisNew.ShowFrm End Sub
Процедура ShowFrm в модуле класса создает новый образец класса sample и показывает ее:
Sub ShowFrm() Dim frmNew As sample Set frmNew = New sample frmNew.Show End Sub
Запустим приложение и щелкнем кнопкой мыши несколько раз на кнопке управления. Получаем эффект, как в предыдущем примере, но ключевое слово New использовалось для создания класса.
Ограничения на использование ключевого слова New
С ключевым словом New нельзя:
Объявлять переменные основного типа данных, например: Dim x As New Integer
Объявлять переменные любого родового объекта, например: Dim x As New Control
Объявлять переменные типа для любого конкретного элемента управления, например: Dim X As New ListBox
Объявлять переменные для любого конкретного элемента управления, например: Dim X As New IstNames.
Освобождение ссылок на объекты
Каждый объект использует память и системные ресурсы. Хорошим стилем программирования является освобождение этих ресурсов, когда объект больше не нужен. Этого можно добиться с помощью:
Оператора unload (Выгрузить) для выгрузки формы или элемента управления из памяти
Значения Nothing (Ничего) для освобождения ресурсов, используемых переменной для объекта. Следует присвоить значение Nothing переменной для объекта оператором Set.
Передача объектов в процедуры
В VBA можно передавать объекты в процедуры. В следующем примере предполагается, что на форме существует кнопка управления:
Private Sub Commandl_Click() ' Вызов процедуры Demo sub и передача ей формы. Demo Form1 End Sub Private Sub Demo(x As Formi) ' Прижать вправо. x.Left = 0 End Sub
Также можно передать объект через параметр по ссылке и затем внутри процедуры установить таким образом, чтобы он ссылался на новый объект. Откроем проект и введем в него вторую форму. Поместим на нее графическое окно. Для свойства Name объекта Form2 необходимо установить значение picture2, а для свойства Picture — имя файла иконки *.ico
Процедура Form1_click обработки события вызывает процедуру GetPicture в форме Form2 и передает ей пустую картинку:
Private Sub Form_Click() Form2.GetPicture Picture1 End Sub
Процедура GetPicture в форме Form2 присваивает значение свойства Picture (Картинка) графического окна на форме Form2 пустой картинке на форме Form1:
Private objX As PictureBox Public Sub GetPicture(x As PictureBox) ' Присваивает переданное графическое окно объектной переменной. Set objX = x ' Присваивает значение свойства Picture графическому окну на Formi objX.Picture = picture2.Picture End Sub
Запустим это приложение и щелкнем кнопкой мыши на форме Form1. Увидим значок формы Form2 в графическом окне на форме Form1.
Объектная модель FileSystemObject
Объектная модель FileSystemObject представляет собой не иерархическую структуру объектов (классов), позволяющих получать информацию о файловой системе компьютера и выполнять различные операции с файлами и каталогами этой системы.
Порядок использования объектной модели FileSystemObject, т.е. ее объектов с их свойствами и методами при программировании приложения следующий:
Подключить к проекту библиотеку типов SCRRUN.DLL. Эта библиотека входит в комплект поставки последних разновидностей Windows95, а все более новые Windows, как 9x, так и NT содержат ее обязательно. Получить эту бибилотеку можно бесплатно на сайте Microsoft http://msdn.microsoft.com/scripting.
Создать новый объект типа FileSystemObject стандартными методами (посредством New или CreateObject)
Использовать его методы и свойства для получения необходимой информации, в том числе ссылок на другие (подчиненные) объекты модели. Соответственно, использовать методы и свойства подчиненных объектов модели.
После завершения работы закрыть все использованные объекты, начиная с нижних в иерархии. Там где это необходимо использовать для закрытия объектов их методы, в прочих случаях использовать
Set objvar=Nothing
Объектная модель включает следующие классы
Класс (тип объекта) | Назначение |
FileSystemObject | Обеспечивает доступ к файловой системе компьютера. |
Drives | Cодержит объекты Drive, каждый из которых ассоциируется ровно с одним диском в файловой системе компьютера, с учетом сети. |
Drive | Обеспечивает доступ к информации о заданном диске компьютера002E |
Folders | Семейство Folders содержит объекты Folder, каждый из которых ассоциируется ровно с одним подкаталогом заданного каталога. |
Folder | Обеспечивает доступ к информации о заданной папке, содержащимся в ней папках и каталогах, а также методы перемещения папки и создания текстового файла. |
Files | Семейство Files содержит все объекты File, каждый из которых ассоциируется ровно с одним файлом в заданной папке. |
File | Обеспечивает доступ к информации о заданном файле, методы перемещения файла и открытия текстового файла в режиме последовательного доступа. |
TextStream | Обеспечивает проведение операций чтения/записи для текстового файла открытого в режиме последовательного доступа. |
объект FileSystemObject обеспечивает доступ к файловой системе компьютера. Будучи объектом верхнего уровня объектной модели FileSystemObject является «точкой входа» в файловую систему компьютера. Только после его создания возможен доступ к другим объектам модели, их методам и свойствам.
Dim objFSO As FileSystemObject
Set objFSO = CreateObject(«Scripting.FileSystemObject»)
или
Set objFSO = New FileSystemObject
Элемент | Тип данных | Тип данных |
objFSO | FileSystemObject | Идентификатор (имя) объекта FileSystemObject |
Свойства объекта FileSystemObject
Свойство | Тип данных | Чтение/запись | Описание |
Drives | Drives | Только чтение | Содержит ссылку на семейство Drives, содержащую объекты для каждого устройства дисковой памяти компьютера |
Методы объекта FileSystemObject
Метод | Назначение |
BuildPath | Создание строки путем слияния аргументов и добавления между ними, если его нет, разделителя «» (обратной косой черты). |
CopyFile | Копирование одного или нескольких файлов из одной папки в другую. |
CopyFolder | Копирование содержимого папки со всеми содержащимися в ней папками (подкаталогами) в заданное место. |
CreateFolder | Создание новой папки с заданным именем. |
CreateTextFile | Создание файла и открытие его в режиме текстового файла последовательного доступа для записи как объекта TextStream |
DeleteFile | Удаление одного или нескольких заданных файлов. |
DeleteFolder | Удаление одной или нескольких заданных папок вместе со всем их содержимым. |
DriveExists | Проверка существования диска с заданным именем на локальной машине или в сети. |
FileExists | Проверка существования файла с заданным именем на локальной машине или в сети. |
FolderExists | Проверка существования папки с заданным именем на локальной машине или в сети |
GetAbsolutePathName | Получение полного имени файла или папки по относительному имени. |
GetBaseName | Получение поcледнего компонента — имени папки или файла (без расширения) по его полному или относительному имени. |
GetDrive | Получение ссылки на объект Drive, связанный с заданным диском. |
GetDriveName | Получение имени диска из имени папки или файла. |
GetExtensionName | Получение расширения из заданного имени файла. |
GetFile | Получение ссылки на объект File, связанный с заданным файлом. |
GetFileName | Получение имени (с расширением) файла из полного имени (пути) файла. |
GetFolder | Получение ссылки на объект Folder, связанный с заданной папкой. |
GetParentFolderName | Получение имени папки, являющейся предпоследним компонентом полного имени (пути) файла или папки. |
GetSpecialFolder | Получение ссылки на объект Folder, связанный с одной из трех специальных папок — папки Windows, системной папки и папки временных файлов. |
GetTempName | Получение имени для временного файла. |
MoveFile | Перемещение одного или нескольких файлов из одной папки в другую. |
MoveFolder | Перемещение содержимого папки со всеми содержащимися в ней папками (подкаталогами) в заданное место. |
OpenTextFile | Открытие файла как объекта TextStream для проведения операций чтения/записи в режиме последовательного доступа. |
У каждого из прочих вышеперечисленных семейств и объектов имеются свои свойства и методы. Для ознакомления с ними следует обратиться к справочной литературе.
ПРЕДЛАГАЮ КОЛЛЕГАМ
О.А. Житкова, Т.И. Панфилова
Москва
VBA в приложении к Excel, Word и Power Point
В № 1-10/2006 вниманию читателей будет
предложен цикл статей (разработок занятий),
посвященных использованию VBA (Visual Basic for Application)
пакета Microsoft Office. Все материалы прошли
многолетнюю апробацию в НОУ “Ломоносовская
школа” и могут быть использованы как на уроках,
так и во внеурочной деятельности — на
факультативах, кружках, при реализации учебных
проектов.
Занятие № 1. Основные понятия языка VBA Excel
На занятии рассматриваются следующие
вопросы:
- общее понятие о языке VBA;
- объекты VBA;
- свойства, методы и события;
- элементы языка VBA;
- структура редактора VBA.
VBA относится к языкам
объектно-ориентированного программирования,
поэтому знакомство с ним естественно начать с
понятия объекта.
Объекты
Объект — основной элемент VBA Excel. В VBA объектами
являются рабочая книга, рабочий лист и его
составляющие.
Примеры объектов:
- Sheet — лист Excel;
- Cell — ячейка;
- Range — диапазон ячеек;
- Application — приложение;
- UserForm — пользовательская форма.
Доступ к объекту возможен через его
методы и свойства.
Методы
Над объектами можно совершать
различные действия. Действия, совершаемые над
объектами, называются методами. Например, ячейку
можно очистить (Clear), приложение закрыть (Quit),
пользовательскую форму показать (Show) или скрыть
(Hide).
Название метода отделяется от
названия объекта точкой: объект.метод.
Примеры использования методов:
Range(«B2:E2»).Select — выбрать диапазон
ячеек B2:E2;
Range(«C1:C5»).Clear — очистить диапазон
ячеек C1:C5;
UserForm2.Hide — скрыть форму № 2;
UserForm5.Show — показать форму № 5;
Application.Quit — выйти из приложения.
Свойства
Свойствами описываются
характеристики объектов. Например, размер и цвет
шрифта, положение формы на экране или состояние
объекта (доступность, видимость). Чтобы изменить
характеристику объекта, надо просто изменить
значение свойства, т.е. присвоить ему
определенные значения.
Синтаксис установки значения
свойства:
Объект.Свойство = ЗначениеСвойства,
— где Объект обозначает имя
объекта, Свойство — имя свойства, которому
присваивается значение.
Имя объекта отделяется от имени
свойства точкой.
Примеры свойств:
Range(«D1»).Value = 2005 — поместить в ячейку
D1 значение 2005.
Range(«C1:C10»).Text = «Информатика» —
поместить в диапазон ячеек C1:C10 текст
Информатика.
Range(«B2»).Font.Size = 14 — в ячейке B2
установить размер шрифта 14.
Методы и свойства некоторых объектов VBA
Объект: Application (приложение).
Метод: Quit (закрыть).
Свойство: Caption (имя главного окна).
Примеры. Application.Quit — закрыть
приложение; Application.Caption = «Протокол» — установить
в качестве заголовка окна приложения
“Протокол”.
Объект: Sheet (лист), ActiveSheet (активный/выбранный
лист).
Семейство: Sheets (листы).
Методы: Select (выбрать); ShowDataForm (показать
встроенную форму).
Примеры: Sheets(«Меню»).Select —
выбрать лист “Меню”; ActiveSheet.ShowDataForm — на
активном в настоящий момент листе показать
встроенную форму.
Объект: Range (диапазон).
Методы: Select (выделить); Clear (очистить).
Свойство: Name (имя).
Примеры. Sheets(«Протокол»).Range(«В4:В10»).Name
= «Класс» — диапазону В4:В10,
расположенному на листе “Протокол”, присвоить
имя “Класс”;
Sheets(«Протокол»).Range(«В4:В10»).Select — выделить
диапазон В4:В10 на листе “Протокол”.
Объект, Семейство: UserForm (пользовательская
форма).
Методы: Show (показать); Hide (скрыть).
Свойство: Caption (текст,
отображаемый в строке заголовка).
Примеры. UserForm1.Show — показать
пользовательскую форму номер один;
UserForm1.Hide — скрыть пользовательскую
форму номер один;
UserForm1.Caption — «Информатика»-
вывести заданный в кавычках текст в строке
заголовка.
Объект, Семейство: TextBox (Поле
ввода).
Свойство: Text (содержимое).
Примеры. UserForm1.TextBox1.Text = Date — в
поле ввода номер один в пользовательской форме
номер один записать текущую дату; UserForm1.TextBox2.Text =
» « — очистить поле ввода номер два в
пользовательской форме номер один.
Объект, Семейство: ComboBox (поле
со списком).
Метод: AddItem (добавить элемент в
список).
Свойства: Text (содержимое); Rowsource
(источник строк для списка).
Примеры. UserForm1.ComboBox2.Text = » « — очистить
значение поля для поля ввода со списком номер два
в пользовательской форме номер один;
UserForm2.ComboBox1.Rowsource=»В2:В10″ — источником
строк для поля один со списком в
пользовательской форме два установить данные из
диапазона В2:В10;
UserForm1.ComboBox1.AddItem («Факс») — добавить
к списку элемент, заключенный в кавычки.
Объект, Семейство: OptionButton.
Свойства: Value (значение); Сaption
(надпись).
Примеры. UserForm3.OptionButton1.Value = True — выбрать
переключатель номер один в пользовательской
форме номер три; UserForm3.OptionButton1.Capture =
«Успеваемость» — установить надпись
“Успеваемость” рядом с переключателем в
пользовательской форме номер три.
Объект, Семейство: CheckBox.
Свойства: Value (значение);
Сaption (надпись).
Примеры. UserForm2.CheckBox1.Value = True — установить
флажок номер один в пользовательской форме номер
два; UserForm3.CheckBox1.Value = False — сбросить флажок
номер один в пользовательской форме номер три;
UserForm4.CheckBox1.Capture=»Класс» — установить
надпись “Класс” рядом с флажком в
пользовательской форме номер четыре.
События
Событие представляет собой действие,
распознаваемое объектом (например, щелчок мышью
или нажатие клавиши, перемещение мыши или выход
из программы), для которого можно
запрограммировать отклик, т.е. реакцию объекта на
произошедшее событие.
В языке VBA для каждого объекта
определен набор стандартных событий.
Стандартное событие для объекта
“кнопка” (CommandButton) — щелчок мышью (Click).
Если пользователь нажимает на кнопку,
то это событие. На это событие должен быть отклик,
т.е. выполнение какой-либо программы. Такая
программа называется процедурой обработки
событий и имеет стандартное имя. Если такой
отклик не создан (не написана соответствующая
программа), то система никак не будет реагировать
на это событие.
Элементы языка VBA
Объекты — основные элементы языка VBA, но
не единственные. К другим элементам относятся:
константы, переменные, массивы, выражения,
встроенные функции, встроенные диалоговые окна,
операторы.
Константы — данные, не изменяющиеся
в процессе решения задачи. Константы бывают двух
видов: числовые и символьные.
Числовые константы — это целые либо
вещественные числа.
Символьные константы — текст,
заключенный в кавычки. Пример числовой константы
— 5,8 (использование запятой или точки зависит от
настроек операционной системы). Пример
символьной константы — ООО “Темп”.
Переменные — данные, значения
которых меняются в ходе выполнения программы.
Для переменной задается имя и тип.
Имя переменной должно начинаться с
буквы и может содержать любую комбинацию букв,
цифр и символов за исключением точек, пробелов и
следующих символов: “!”, “%”, “&”, “$”, “#”,
“@”. Длина имени не должна превышать 255 символов.
Не следует использовать имена, совпадающие с
ключевыми словами VBA и именами встроенных
функций и процедур.
Основные типы переменных, их размеры и
диапазоны принимаемых значений приведены в табл.
1.
Переменные типа Variant могут хранить все,
что в них поместят. Их тип изменяется в
зависимости от последнего присвоения. В
программах переменные описываются с помощью
специального оператора Dim.
Массив — упорядоченная
совокупность однотипных переменных. Массивы
имеют имя и размерность. Имя массива подбирается
с учетом тех же правил, что и имена переменных. Размерность
— это количество элементов (переменных),
составляющих массив.
Из констант, переменных и встроенных
функций (они рассмотрены далее) с помощью скобок
и знаков арифметических операций (“+”, “-”, “*”,
“/”, “^”) можно составлять выражения.
Частным случаем выражения может быть просто
одиночный элемент, т.е. константа, переменная или
обращение к встроенной функции.
Примеры выражений:
- Z
- (a+b)^2
- 45
- sin(y)
В VBA имеется большой набор встроенных
функций, которые разделяют на категории.
Примеры категорий:
- математические функции;
- функции преобразования форматов;
- логические функции;
- функции времени и даты.
- функции проверки типов;
Некоторые из функций приведены в табл.
2:
Кроме перечисленных функций, объект
Applications позволяет вызвать более 400 встроенных
функций рабочего листа при помощи конструкции
вида:
Application.Функция Рабочего
Листа(Аргументы).
Примеры:
- Application.Sum(Sheets(«Проверка»).Range(«A1:B20»)) —
суммируются значения из ячеек диапазона A1:B20,
расположенного на листе “Проверка”; - Application.CountA(Sheets(«Ученики»).Range(«A:A»)) —
подсчитывается количество непустых ячеек в
столбце А на листе “Ученики”.
Структура редактора VBA
Редактор VBA активизируется командой Сервис
® Макрос ® Редактор Visual Basic. После
выполнения команд мы попадаем в редактор VBA.
Возвратиться из редактора VBA в рабочую книгу
можно нажатием кнопки Вид(View) ® Microsoft Excel . Рассмотрим
основные компоненты окна редактора. Внешний вид
окна редактора представлен на рисунке. Окно
редактора состоит из следующих компонентов:
- панели инструментов;
- окно проекта;
- окно свойств;
- окно редактирования кода;
- меню.
Панели инструментов
Стандартная панель инструментов
редактора Visual Basic содержит кнопки,
предназначенные для выполнения наиболее часто
используемых команд.
Панель разбита на отдельные сегменты
по типу выполняемых команд.
Кнопки первого сегмента:
Кнопки
для возврата в Excel, вставки элементов (модулей,
процедур, экранных форм) в проект и сохранение
рабочей книги.
Кнопки второго сегмента:
Кнопки
для вырезания, копирования, вставки и поиска
фрагментов кода.
Кнопки третьего сегмента:
Кнопки
отмены действий и повторения отмененных
действий.
Кнопки четвертого сегмента:
Кнопки
для выполнения, остановки и прекращения
выполнения процедуры, а также смены режима
отображения экранной формы.
Кнопки пятого сегмента:
Кнопки,
управляющие отображением окон проектов, свойств
и просмотра объектов, а также панели
инструментов.
Последняя кнопка — это обычная
кнопка вызова справочной системы.
Окно проекта
Окно проекта активизируется выбором
команды Вид ® Окно проекта (View, Project window) или
нажатием кнопки Окно проекта . В окне проекта представлена
иерархическая структура файлов, форм и модулей
текущего проекта.
Окно свойств
В окне свойств перечисляются основные
значения свойств выбранного объекта. Используя
это окно, можно просматривать свойства и
изменить их значения. Для просмотра свойств
выбранного объекта надо выполнить команду Вид
® Окно свойств (Properties Windows) или нажатием кнопки .
Окно свойств состоит из двух составных
частей: верхней и рабочей. В верхней части
окна располагается раскрывающийся список, из
которого можно выбрать любой элемент управления
текущей формы или саму форму. Рабочая часть
состоит из двух вкладок, в которых свойства
располагаются По алфавиту (Alphabetic) и По
категориям (Categorized).
Окно для просмотра объектов (Object Browser)
Окно Просмотр объектов (Object Browser)
вызывается командой Вид ® Просмотр объектов
(View, Object Browser) или нажатием кнопки . В этом окне можно
просматривать все объекты проекта. Здесь вы
найдете все свойства, методы и события, связанные
с любым объектом.
Окно Просмотр объектов состоит из
трех основных частей:
1. Раскрывающегося списка Проект/Библиотека
в верхнем левом углу экрана. Например, библиотеки
объектов Excel, VBA, Office и VBAProject (объекты
пользовательского проекта).
2. Списка Классы. Выводятся все
классы выбранной библиотеки.
3. Списка Компоненты (Members).
Выводятся все компоненты выбранного класса.
Это окно предоставляет доступ ко всем
объектам, свойствам, методам и событиям.
Проверочная работа № 1-1
Выберите правильный ответ (возможно
несколько правильных ответов):
1. Объектом VBA являются:
рабочая книга;
рабочий лист;
диапазон ячеек;
массивы.
2. Щелчок мышью или нажатие клавиши,
перемещение мыши или выход из программы, это
действие называется:
откликом;
просмотром;
свойством;
событием.
3. Для того чтобы подсчитать
дискриминант в квадратном уравнении, надо его
записать следующим образом:
d = b2 — 4 ac
d = b^2 — 4ac
d = b^2
— 4*a*c
d = b^2 — 4*ac
4. Продолжите определение:
Метод — это…
основной элемент языка
VBA;
структура редактора VBA;
характеристика объекта;
действия, совершаемые над объектами.
5. Чтобы стандартно изменить
характеристику объекта, надо:
написать новую
программу;
применить другое
свойство;
применить метод;
изменить значение свойства.
6. Запишите конструкции, которые
применяются для установки свойств объектов и
доступа к их методам:
1. Запишите в ячейку В9 дату своего
рождения, в ячейку В10 — свое имя.
2. Установите размер шрифта 16 в ячейках
С4:F4, цвет — красный.
3. Покажите форму № 3.
4. Скройте форму № 2.
5. Выберите диапазон ячеек В2:D7.
Проверочная работа № 1-2
Выберите правильный ответ:
1. Очистить диапазон ячеек от А1 до С10:
Range(«А1;C10»).Clear
Range(«А1:C10»).Clear
Range(«А1-C10»).Clear
Clear. Range(«А1:C10»)
2. Скрыть форму № 6:
UserForm6.Show
UserForm №6.Сlose
UserForm6.Hide
UserForm №6.Show
3. Выйти из приложения:
Application.Hide
Application.Сlose
Application.Select
Application.Quit
4. Выделить диапазон ячеек от D6 до E8 на
листе “География”:
Sheets(«География»).Range(«D6-E8»).Show
Sheets
«География».Range(«D6:E8»).Select
Sheets
«География».Range(«D6-E8»).Select
Sheets(«География»).Range(«D6:E8»).Select
5. Присвоить диапазону ячеек от А4 до А16,
расположенных на листе “11 класс”, имя
“Информатика”:
Sheets(«11класс»).Range(«А4:А16»).Name =
«Информатика»
Sheets(«11класс»).Range(«А4-А16»).Name
= «Информатика»
Sheets(«Информатика»).Range(«А4-А16»).Name
= «11класс»
Sheets(«Информатика»).Range(«А4:А16»).Name
= «11класс»
6. Установить источником строк для поля
со списком два в пользовательской форме три
данные из диапазона от А12 до А15:
UserForm3.ComboBox2.Rowsource =
«А12-А15»
UserForm2.ComboBox3.Rowsource =
«А12:А15»
UserForm3.ComboBox2.Rowsource = «А12:А15»
UserForm2.ComboBox2.Rowsource =
«А12:А15»
7. Очистить значение поля для поля
ввода со списком номер три в пользовательской
форме номер два:
UserForm3.ComboBox2.Text =
«Очистить»
UserForm2.ComboBox3.Text = » «
UserForm3.ComboBox2.Capture = «0 «
UserForm2.ComboBox3.Text = «-«
8. Установить флажок номер пять в
пользовательской форме номер два:
UserForm5.CheckBox2.Value = True
UserForm2.CheckBox2.Text = False
UserForm2.ComboBox5. Capture = » True
«
UserForm2.CheckBox5. Value = True
9. Сбросить флажок номер пять в
пользовательской форме номер два:
UserForm5.CheckBox2. Value = True
UserForm2.
CheckBox5. Value = False
UserForm2.ComboBox5. Capture = » True
«
UserForm2.CheckBox5. Text = False
10. Выбрать переключатель номер два в
пользовательской форме номер три:
UserForm3.OptionButton2.Value = False
UserForm2. CheckBox3. Value = False
UserForm2.ComboBox5. Capture = True
UserForm3.OptionButton2.Value = True
Практическая работа № 1-3
Установите соответствие между
функцией и выражением:
Log(x) Экспонента
Sin(x) х
преобразуется в целое
Sqr(x) Натуральный
логарифм
Abs(х) Модуль
(абсолютная величина числа)
Cos(х) х
преобразуется в число с плавающей точкой обычной
точности
Exp(х) Синус
CInt(x) х преобразуется
в строку
CSng(x) Текущие дата и время
CStr(x) Квадратный
корень
Now Косинус
Практическая работа № 1-4
1. Откройте новый файл.
2. Перейдите в редактор Visual Basic.
3. Нажмите клавишу для открытия окна Object Browser.
4. В списке Classes (Классы) найдите объект
Range и выделите его.
5. Прокрутите соседний список Members of
‘Range’ для просмотра свойств и методов объекта
Range.
6. Выберите метод Activate.
7. Нажмите клавишу . Откроется окно справочной
системы Visual Basic с описанием метода Activate.
8. Откройте пример с применением метода
Activate к объекту Range. Запишите пример.
9. Для объекта Range выберите свойство Cells.
Запишите, для каких объектов, кроме объекта Range,
характерно это свойство.
10. Запишите метод, используемый для
удаления содержимого диапазона ячеек.
11. Запишите метод, используемый для
удаления рабочего листа в книге.
12. В окне проекта выберите Лист1. В окне
свойств измените его имя на имя ПРОБА. Запишите
название свойства.
13. В окне проекта выберите Лист2. В окне
свойств подберите свойство, которое будет делать
этот лист невидимым. Запишите название свойства
и его значение.
14. В окне проекта выберите Лист3. В окне
свойств подберите свойство, которое будет
изменять ширину столбцов. Укажите значение — 15.
Запишите название свойства.
15. Закончите предложение: окно Object Browser
можно использовать для просмотра списков
объектов, событий, свойств и…
Продолжение следует
Аннотация: VBA, будучи объектно-ориентированным языком программирования, манипулирует объектами приложения. Примерами объектов MS Excel являются: рабочий лист Worksheet, рабочая книга Workbook, диаграмма Chart и т.п. С точки зрения программирования в среде VBA объект обладает свойствами и методами. Свойства описывают объект, а методы позволяют управлять объектом. Рассматриваются основные свойства и методы объектов и коллекций объектов. Представлены различные способы обращения к объектам: обращение к элементу коллекции, использование контейнеров для установки ссылки на объект, использование оператора With и объектных переменных.
Все офисные приложения можно рассматривать как совокупность объектов. Объектами являются сами приложения Application (центральный или корневой объект) и их компоненты (вложенные объекты).
Примеры объектов: рабочий лист Worksheet, рабочая книга Workbook, диаграмма Chart, рамка Border. Доступ к интервалам ячеек возможен только как к объектам Range, например, объект Range(«A1») представляет ячейку A1. Каждый элемент меню, каждая командная кнопка, любой элемент рабочего листа являются объектами MS Excel.
С точки зрения программирования в среде VBA объект обладает свойствами и методами. Свойства описывают объект, а методы позволяют управлять объектом.
В VBA возможны три типичные действия c объектами:
- проверка свойств объекта;
- изменение объекта посредством модификации его свойств;
- выполнение методов объекта.
Подробно структура объектов, синтаксис свойств и методов, перечень событий рассмотрены в разделе Microsoft Excel Object Model книги под названием Microsoft Excel Visual Basic Reference справочника по VBA (Help).
Свойства объектов
Свойства объекта это атрибуты объекта. Каждый объект может иметь десятки свойств, например, объект Worksheet имеет 52 свойства.
Свойства делятся на две группы:
- свойства-участники ( accessors ), представляющие вложенные объекты;
- терминальные свойства ( terminals ), задающие характеристики объекта или его состояние.
Свойства-участники позволяют добраться до объекта, находящегося на любом уровне вложенности. Например, в записи Application.ActiveWorkbook свойство ActiveWorkbook позволяет получить доступ к объекту приложения — активной рабочей книге, а в записи ActiveWorkbook.ActiveSheet свойство ActiveSheet означает доступ к объекту рабочей книги — активной странице этой книги.
Изменение значений терминальных свойств — это один из способов изменить внешний объект.
Свойства имеют статус:
- Read-Write (далее R/W ) предполагает возможность изменения свойства;
- Read-Only (далее R/O ) означает, что можно только протестировать значение свойства.
Некоторые свойства являются общими для многих объектов и для разных объектов могут иметь разный статус, например, Height, Width, являющиеся свойствами интервалов, окон и приложения. В дальнейшем указывается статус и тип значения свойства.
В качестве значений свойств могут использоваться константы с префиксом xl, например, константа xlCalculationManual устанавливает ручной пересчет таблицы.
Свойство | Объект | Примеры | Описание |
---|---|---|---|
Bold, Italic (R/W Boolean) | Font |
ActiveCell.Font.Bold=True
ActiveCell.Font. Italic =False |
Устанавливает полужирный шрифт. Отменяет курсив. |
Column, Row (R/W Long) | Range |
Debug.Print
Range(«B3:C5»).Column, Range(«B3:C5»).Row |
В окне Immediate будут распечатаны номер первой колонки и номер первой строки интервала ячеек B3:C5 — «2 3» |
ColumnWidth (R/W Variant) | Range | Range(«A1:B5»).ColumnWidth=15 | Ширина каждой колонки объекта Range 15 символов |
Height, Width (Double) | Многие объекты |
Application.Width=200 (статус R/W)
W=Range(«A1:B5»). Height (статус R/O) |
Ширина окна приложения 200 пт.
Возвращает суммарную высоту строк объекта Range в пунктах |
RowHeight (R/W Variant) | Range | Range(«A1:B5»).RowHeight=15 | Устанавливает высоту каждой строки объекта Range в пунктах |
Formula (R/W Variant) | Range | Range(«A2»).Formula = «=pi()*A1^2» | В ячейку А2 записывается формула |
Value (R/W Variant) | Range | Range(«A3»).Value=6.28 | Значение ячейки устанавливается равным 6,28 |
Count (R/O Long) | Группа объектов | N=Sheets.Count | В переменную N записывается количество элементов коллекции объектов |
Name (String) | Многие объекты |
ActiveSheet.Name=»Nw_Sh»(статус R/W)
Wb =ActiveWorkbook.Name(статус R/O) |
Активному листу присваивается новое имя.
Переменной Wb присваивается имя активной рабочей книги. |
Parent (R/O Object) | Многие объекты |
P_t= Range(«A1:B5»).Parent
для объекта Range возвращает объект Sheet — рабочий лист, на котором объект Range расположен |
Возвращает объект обычно другого типа, который является объектом более высокого уровня по отношению к указанному объекту |
Свойства объектов изменяются при помощи оператора присваивания или под влиянием методов.
Синтаксис операторов присваивания object.property=expression
- object — ссылка на объект, над которым совершается действие;
- property — название свойства, значение которого необходимо изменить;
- expression — выражение, представляющее новое значение свойства объекта.
Важно
- Каждое свойство может принимать значения только определенного типа.
- Тип результата вычисления выражения должен соответствовать типу свойства, т.е, если свойство является числовым, то и результат вычисления выражения должен быть числом или должен преобразовываться в число.
Например, оператор ActiveCell.Font. Bold=»b» является ошибочным, так как свойство Bold имеет тип Boolean и может принимать значения только True или False.
Пример
Процедура изменяет размеры активного окна приложения. Ширина и высота окна приложения вводятся в диалоге. Свойства Height и Width для объекта Window имеют статус R/W, но эти свойства нельзя изменять, если размер окна минимизирован или максимизирован. Поэтому первоначально в процедуре свойством WindowState устанавливается обычный размер окна
Рис.
8.1.
Процедура изменяет размеры активного окна приложения
При помощи оператора присваивания можно сохранить значение свойства в переменной. Значение свойства может использоваться как часть условного выражения. В таких случаях говорят о возврате значения свойства.
Синтаксис оператора присваивания, возвращающего значение свойства
- variable — переменная или свойство некоторого объекта;
- object — ссылка на объект, свойство которого запоминается или тестируется;
- property — название свойства, значение которого необходимо получить.
Важно
- Тип переменной должен соответствовать типу значения свойства.
Примеры
- Распечатать название рабочего листа c активной ячейкой.
Свойство Parent возвращает рабочий лист, на котором расположена активная ячейка.
Рис.
8.2.
Процедура распечатки названия рабочего листа c активной ячейкой - В зависимости от знака числа, хранящегося в ячейке, залить ячейку некоторым цветом.
В процедуре тестируется свойство Value объекта Range — ячейки A1. В случае отрицательного числа цвет заливки ячейки — синий.
Рис.
8.3.
Процедура тестировния свойства Value объекта RangeПри нулевом значении заливка ячейки отменяется (константа xlNone ). При положительном значении устанавливается цвет заливки, предусмотренный по умолчанию (константа xlAutomatic ).
Методы объектов
Методы — это действия, которые выполняются с объектом. Методы могут влиять на значения свойств.
Важно
- Методы — это функции или подпрограммы.
- Подобно процедурам методы могут принимать аргументы.
- Функции VBA и методы Application могут иметь одинаковые имена, но различные аргументы, например, функция InputBox класса Interaction и метод InputBox класса Application.
Синтаксис вызова метода без аргументов
например, ActiveCell.Justify.
Вызов метода с аргументами имеет две формы:
- variable=object.method(arguments) — функциональная форма вызова (аргументы указываются в скобках после названия метода).
- object.method arguments — операторная форма вызова (аргументы записываются через пробел после названия метода).
Если метод использует несколько аргументов, то они перечисляются через запятую.
Аргументы можно задавать, используя позиционное или произвольное расположение.
ЗАПОМНИТЕ
- Функциональная форма вызова метода используется, если необходимо сохранять значение, возвращаемое методом.
- Операторная форма вызова метода используется, если не нужно сохранять возвращаемое методом значение.
Каждый объект имеет свои собственные методы. Некоторые методы являются уникальными, а другие встречаются у нескольких объектов. Например, метод Delete может удалять графический объект и рабочий лист.
Модель объектов
Структура объектов достаточно сложна. Модель объектов показывает структуру объектов и их взаимосвязи.
Нажатие на выбранный объект отображает на экране статью, посвященную объекту, в которой ниже имени объекта, как правило, расположены три гиперссылки, позволяющие просмотреть свойства ( Properties ), методы ( Methods ) и события ( Events ) выбранного объекта с соответствующими примерами. В дополнение можно раскрыть список рекомендуемых для просмотра объектов ( See Also ). Нажатие на Multiple objects показывает перечень исходных объектов или перечень вложенных объектов.
Рис.
8.5.
Фрагмент статьи, посвященной объекту Workbook
Объекты приложения связаны между собой, и модель объектов отражает иерархические связи между объектами.
Модель объектов содержит простые объекты и коллекции объектов. Коллекция объектов ( Collection ) объединяет группу подобных объектов.
Коллекции объектов
Коллекция объектов — это объект специального типа, существующий для управления объектами группы. Например, Workbooks является коллекцией всех открытых книг — объектов Workbook, а Worksheets — коллекцией рабочих листов некоторой рабочей книги — объектов Worksheet. Примерно половина всех объектов MS Excel — это коллекции объектов.
Процедуры могут обращаться как к отдельному элементу коллекции (к объекту Workbook или к объекту Worksheet ), так и ко всем объектам коллекции одновременно (к объекту Workbooks или к объекту Worksheets ). Коллекция объектов и объекты этой коллекции обладают различными свойствами и методами.
Коллекция объектов — это упорядоченная совокупность объектов. Для доступа к конкретному объекту в коллекции можно использовать его имя или порядковый номер в коллекции, например, Workbooks(1) указывает на первую рабочую книгу. Запись Worksheets(«Sheet2») указывает на лист с именем Sheet2.
Содержание рубрики VBA Excel на сайте «Время не ждёт». Систематизация статей по тематическим группам для ускорения поиска нужной информации по заданной теме.
-
Знакомство с VBA Excel
- Начинаем программировать с нуля
- Памятка для начинающих
- Первая кнопка (для начинающих)
- Первая форма (для начинающих)
- Первая функция (для начинающих)
- Правильные имена переменных и процедур
- Свойства ячейки (объекта Range)
- Свойство ActiveCell объекта Application
- Свойство Selection объекта Application
-
Методы VBA Excel
- Метод Application.Goto
- Метод Application.InputBox (синтаксис, параметры)
- Метод Application.Intersect (пересечение диапазонов)
- Метод Application.OnKey
- Метод Application.OnTime
- Метод Application.Union (объединение диапазонов)
- Метод Controls.Add пользовательской формы
- Метод CreateTextFile (синтаксис, параметры)
- Метод Find объекта Range
- Метод FindNext объекта Range
- Метод Hyperlinks.Add (создание гиперссылки)
- Метод OpenTextFile (синтаксис, параметры)
- Метод Range.AutoFill (автозаполнение ячеек)
- Метод Range.Insert (вставка со сдвигом ячеек)
- Метод Range.Justify (переупорядочивание текста)
- Метод Range.PasteSpecial (специальная вставка)
- Метод Range.Replace (замена текста в ячейках)
- Метод Range.Show
- Метод WorksheetFunction.Match (поиск позиции)
- Метод WorksheetFunction.Sum – сумма аргументов
- Метод WorksheetFunction.SumIf
- Метод WorksheetFunction.SumIfs
- Метод WorksheetFunction.Transpose
- Метод WorksheetFunction.VLookup
- Методы Count, CountA и CountBlank
- Методы CountIf и CountIfs
- Методы очистки ячеек (Range.Clear и другие)
- Открытие сайта методом FollowHyperlink
- Удаление ячеек со сдвигом (Range.Delete)
-
Объект Range в VBA Excel
- Автоподбор высоты объединенной ячейки
- Автоподбор ширины объединенной ячейки
- Вставка пустой строки или столбца
- Вставка формулы в ячейку
- Выделенный диапазон ячеек (адрес, выбор, строки)
- Выравнивание текста в ячейке
- Вырезание, копирование и вставка ячеек (диапазонов)
- Диапазон ячеек и массив (обмен значениями)
- Диапазон ячеек пуст (определение)
- Объединение ячеек и его отмена
- Переменная диапазона ячеек (As Range)
- Программное создание границ ячеек
- Размер ячейки (высота строки, ширина столбца)
- Свойства Column и Columns объекта Range
- Свойства Row и Rows объекта Range
- Свойство Areas объекта Range
- Свойство Cells объекта Range
- Свойство End объекта Range
- Свойство Range.Characters
- Свойство Range.CurrentRegion
- Свойство Range.Hidden
- Свойство Range.Offset
- Свойство Range.Resize (синтаксис, примеры)
- Свойство Range.Text
- Свойство Range.WrapText (перенос текста)
- Цвет текста (шрифта) в ячейке
- Цвет ячейки (заливка, фон)
- Узор (рисунок) в ячейке
- Форматирование текста в ячейке (объект Font)
- Ячейки (обращение, запись, чтение, очистка)
-
Объекты VBA Excel
- Объект Collection (создание, методы, примеры)
- Объект Dictionary (свойства, методы, примеры)
- Объект DocumentProperties — свойства документа
- Объект FileSystemObject
- Объект PageSetup (параметры страницы)
- Объект TextStream (свойства и методы)
- Рабочая книга (открыть, создать новую, закрыть)
- Рабочий лист (обращение, переименование, скрытие)
- Рабочий лист (создание, копирование, удаление)
- Регулярные выражения (объекты, свойства, методы)
-
Операторы в VBA Excel
- Арифметические операторы
- Логические операторы
- Оператор Beep (одиночный звуковой сигнал)
- Оператор If…Then…Else и функция IIf
- Оператор On Error (обработка ошибок)
- Оператор Open (синтаксис, параметры)
- Оператор Select Case (синтаксис, примеры)
- Оператор SendKeys (имитация нажатия клавиш)
- Оператор With
- Операторы сравнения
- Операторы чтения и записи в файл
-
Переменные в VBA Excel
- Глобальная переменная
- Ключевое слово Me
- Количество измерений массива
- Массивы (одномерные, многомерные, динамические)
- Пользовательские типы данных (оператор Type)
- Тип данных Decimal
- Типы данных
-
Примеры кода VBA Excel
- Автоматическая запись текущей даты и времени
- Автоматическое заполнение интервала дат (периода)
- Бегущая, ползущая и танцующая строки
- Буфер обмена (копирование, вставка, очистка)
- Вставка рисунка в ячейку
- Выбор случайной ячейки из диапазона
- Генератор случайных чисел (Rnd и Randomize)
- Генерация документов (реестр, массив, бланк)
- Генерация документов и отчетов
- Добавление кнопки в контекстное меню
- Запуск макроса при изменении ячейки
- Изменение свойств пользовательской формы
- Имитация движения и кликов мыши
- Квадратные ячейки (тетрадные клетки)
- Копирование данных с одного листа на другой
- Копирование и перемещение файлов
- Копирование строк по условию
- Номер последней заполненной строки
- Определение координат элемента массива
- Отбор неповторяющихся значений
- Отбор уникальных значений с помощью Collection
- Отбор уникальных значений с помощью Dictionary
- Открыта или закрыта книга (проверка состояния)
- Открытие файла другой программы из кода VBA Excel
- Ошибки в таблице – поиск и исправление
- Парсинг сайтов, html-страниц и файлов
- Перебор листов в книге
- Перемещение листа и его отмена
- Переход к ячейке по адресу из формулы
- Переход по ссылке к ячейке в другой книге
- Поиск значения в таблице
- Поиск и выделение дубликатов в столбце
- Пользовательская автоформа (создание)
- Проверка существования листа
- Программное создание графика (диаграммы)
- Программное создание модуля
- Программное создание формы
- Работа с умной таблицей
- Расчет рабочего времени
- Сбор данных из открытых книг
- Секундомер в ячейке рабочего листа
- Смещение умной таблицы вниз
- Создание простого тестового задания
- Создание таблицы (умной, обычной)
- Создание файлов
- Создание, копирование, перемещение папок
- Сортировка массива
- Сортировка таблицы (диапазона)
- Сохранение книг и листов в PDF
- Сохранение массива в текстовый файл
- Список папок
- Список файлов в папке
- Сравнение прайс-листов
- Сумма прописью (код пользовательской функции)
- Удаление книги из собственного кода
- Удаление повторяющихся значений в диапазоне ячеек
- Удаление пустых строк
- Удаление файлов
- Учет расхода воды и других ресурсов
- Число Пи (значение)
- Экспорт и импорт пользовательской формы
-
Прочее в VBA Excel
- Включение режима конструктора
- Время работы макроса
- Знаки подстановки для шаблонов
- Кавычки в коде — двойные и ёлочки
- Колонтитулы
- Конвертация цвета из Long в RGB
- Копирование, перемещение и поворот фигур
- Объявление функций в 64-разрядных версиях
- Округление чисел (особенности)
- Открыть папку (каталог) в проводнике
- Параметры и аргументы
- Преобразование текста в число
- Работа с трехмерными диапазонами
- Работа с фигурами (Shapes)
- Свойства файла — вывод информации о файле
- Свойство Application.WindowState
- Смена кодировки UTF-8 на ANSI (Windows-1251)
- Смена раскладки клавиатуры
- Сохранение файла рабочей книги
- Сочетание клавиш для процедуры (макроса)
- Стандартная палитра из 56 цветов
- Стандартный диалог выбора файлов Application.GetOpenFilename
-
Работа с Word из кода VBA Excel
- Bookmarks – закладки в документе Word
- Вставка таблицы Excel в документ Word
- Редактирование документов Word
- Создание и открытие документов Word
- Создание таблиц в документе Word
- Управление приложением Word
-
Редактор VBA Excel
- Debug — отладка программы
- Вызов процедуры Sub из другой подпрограммы VBA
- Защита паролем и снятие защиты проекта VBA
- Личная книга макросов (создание, предназначение)
- Макросы (запись, запуск, пример)
- Модуль (импорт, экспорт, удаление)
- Модуль, процедура, форма
- Окно Immediate (отладка кода, вычисления)
- Перенос кода процедуры и текста на новую строку
-
События VBA Excel
- Событие Worksheet.SelectionChange
-
Функции в VBA Excel
- Изменение значений других ячеек из функции
- Пользовательская функция (синтаксис, компоненты)
- Проверка переменных и выражений
- Работа с текстом (функции)
- Удаление лишних пробелов (LTrim, RTrim, Trim)
- Функции Left, Mid, Right (вырезать часть строки)
- Функции Space, String и StrReverse
- Функция Beep API (звуковой сигнал, мелодия)
- Функция Choose (синтаксис, компоненты, примеры)
- Функция FileDateTime
- Функция Filter (фильтрация массива)
- Функция Format (синтаксис, параметры, примеры)
- Функция FreeFile
- Функция Hex
- Функция InputBox (синтаксис, параметры, значения)
- Функция InStr (синтаксис, параметры, примеры)
- Функция InStrRev (синтаксис, параметры, примеры)
- Функции Int и Fix
- Функция Join (синтаксис, параметры, значения)
- Функция MicroTimer
- Функция MsgBox (синтаксис, параметры, значения)
- Функция Replace (замена подстроки)
- Функция Shell
- Функция Split (синтаксис, параметры, значения)
- Функция StrComp (сравнение строк)
- Функция StrConv (смена регистра букв)
- Функция Switch (синтаксис, примеры)
- Функция Timer (примеры)
- Функция Val (примеры)
- Функция для вычисления факториала
- Функции для работы с датой
- Функция преобразования HTML-цвета в число
- Функции преобразования типов данных
-
Циклы в VBA Excel
- Цикл Do Until… Loop
- Цикл Do While… Loop
- Цикл For Each… Next
- Цикл For… Next
- Цикл While… Wend
- Циклы (краткое описание)
-
Элементы управления в VBA Excel
- ComboBox – заполнение поля со списком
- ListBox – заполнение списка данными
- Заполнение списка ComboBox по условию
- Маска ввода в TextBox
- Привязка события к элементу управления
- Программное раскрытие ComboBox
- Размеры и расположение элементов управления
- Свойства SelStart, SelLength, SelText (TextBox)
- Свойство Picture элементов управления
- Сочетания клавиш для кнопок
- Удаление элементов ActiveX с рабочего листа
- Удаление элементов управления формы с листа
- Элемент управления CheckBox (флажок)
- Элемент управления ComboBox (поле со списком)
- Элемент управления CommandButton (кнопка)
- Элемент управления DTPicker
- Элемент управления Frame (рамка)
- Элемент управления Image
- Элемент управления Label (метка, надпись)
- Элемент управления ListBox (список)
- Элемент управления MultiPage
- Элемент управления OptionButton (переключатель)
- Элемент управления RefEdit (редактор ссылок)
- Элемент управления ScrollBar (полоса прокрутки)
- Элемент управления SpinButton (счетчик)
- Элемент управления TabStrip
- Элемент управления TextBox (текстовое поле)
- Элемент управления ToggleButton (выключатель)
- Элемент управления TreeView (древовидная структура)