Vba в excel объект свойства методы события

На занятии рассматриваются следующие
вопросы:

  • общее
    понятие о языке 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.

табл.1.

Переменные типа Variant могут хранить все,
что в них поместят. Их тип изменяется в
зависимости от последнего присвоения. В
программах переменные описываются с помощью
специального оператора Dim.

Массив — упорядоченная
совокупность однотипных переменных. Массивы
имеют имя и размерность. Имя массива подбирается
с учетом тех же правил, что и имена переменных. Размерность
— это количество элементов (переменных),
составляющих массив.

Из констант, переменных и встроенных
функций (они рассмотрены далее) с помощью скобок
и знаков арифметических операций (“+”, “-”, “*”,
“/”, “^”) можно составлять выражения.
Частным случаем выражения может быть просто
одиночный элемент, т.е. константа, переменная или
обращение к встроенной функции.

Примеры выражений:

  • Z
  • (a+b)^2
  • 45
  • sin(y)

В VBA имеется большой набор встроенных
функций
, которые разделяют на категории.
Примеры категорий:

  • математические функции;
  • функции преобразования форматов;
  • логические функции;
  • функции времени и даты.
  • функции проверки типов;

Некоторые из функций приведены в табл.
2:

Таблица 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 — название свойства, значение которого необходимо получить.

Важно

  • Тип переменной должен соответствовать типу значения свойства.

Примеры

  1. Распечатать название рабочего листа c активной ячейкой.

    Свойство Parent возвращает рабочий лист, на котором расположена активная ячейка.

    Процедура распечатки названия рабочего листа c активной ячейкой

    Рис.
    8.2.
    Процедура распечатки названия рабочего листа c активной ячейкой

  2. В зависимости от знака числа, хранящегося в ячейке, залить ячейку некоторым цветом.

    В процедуре тестируется свойство Value объекта Range — ячейки A1. В случае отрицательного числа цвет заливки ячейки — синий.

    Процедура тестировния свойства Value объекта Range

    Рис.
    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 показывает перечень исходных объектов или перечень вложенных объектов.

Фрагмент статьи, посвященной объекту Workbook

Рис.
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 (древовидная структура)

Понравилась статья? Поделить с друзьями:
  • Vba в excel как обращаться к ячейкам
  • Vba в excel информатика
  • Vba в excel выбрать данные с листа
  • Vba адрес ячейки excel это
  • Vba выравнивание текста word