1 ...7 8 9 11 12 13 ...61 Второй цикл For, который имеется в VBA, – это цикл For Each … Next. В отличие от цикла For…Next, цикл For Each … Next не использует счетчик цикла. Циклы For Each … Next выполняются столько раз, сколько имеется элементов в определенной группе, такой как коллекция объектов или массив. Другими словами, цикл For Each … Next выполняется один раз для каждого элемента в группе.
Цикл For Each … Next имеет следующий синтаксис:
For each а in группа
операторы
Next [ а] ,
где а – это переменная, используемая для итерации по всем элементам в определенной группе;
группа – это объект коллекции или массив. Если группа – это объект коллекции, то а должна быть переменной типа variant, object или заданным объектным типом, таким как range, worksheet, document, paragraph и т. д.
Если группа – это массив, то а должна быть переменной типа variant;
операторы – один, несколько или ни одного оператора VBA, составляющих тело цикла.
Примечание. Примеры на использование циклов будут рассмотрены в части II.
2.1. Свойства и методы объекта UserForm
Свойства объекта UserForm
Рассматривая в п. 1.2 и 1.3 примеры, решаемые в редакторе VBA, можно прийти к выводу, что такие простейшие задачи с выводом единственного результата в диалоговое окно не всегда будут удовлетворять потребностям пользователей. Одним из достоинств языка программирования VBA является то, что он относится к объектно-ориентированным языкам. Следовательно, в данную среду программирования уже заложены возможности создания форм и его элементов простым использованием без составления громоздкого программного кода.
Практически во всех приложениях Office используются пользовательские диалоговые окна. Диалоговые окна в VBA называются формами (объект UserForms). Каждому объекту UserForm присущи определенные свойства, методы и события, которые он наследует от класса объектов UserForms. Диалоговые окна (формы) и элементы управления составляют основу современного визуального интерфейса. Все элементы управления и технология работы с ними в основном стандартизованы и похожи для разных платформ и программных сред. Эти объекты помещены в специальную библиотеку MSForms.
Выделим основные моменты, которые следует иметь в виду при создании визуального интерфейса.
•Все загруженные диалоговые окна представляют коллекцию UserForms со стандартными методами и свойствами. Элемент коллекции – объект класса UserForm – задает отдельное окно.
•Для каждого типа элементов управления в библиотеке msforms имеется класс объектов, имя которого совпадает с именем элемента управления (его типа). Например, есть классы SpinButton и TextBox .
•Диалоговые окна создаются, как правило, не программно, а визуально. Вначале создается само окно, а затем оно наполняется элементами управления при помощи соответствующей панели элементов. Этот этап называется этапом проектирования , и его следует отличать от этапа выполнения , когда приложение выполняется и конечный пользователь взаимодействует с приложением, в частности через диалоговые окна и их элементы управления. Как только создается диалоговое окно и помещается в него тот или иной элемент управления, в этот же самый момент автоматически в программе появляется объект соответствующего класса, с которым можно работать, вызывая его методы и изменяя его свойства.
На этапе проектирования, используя окно свойств, можно задать большинство свойств как самого диалогового окна, так и всех элементов управления, помещенных в него, кроме этого, программно необходимо прописать все обработчики событий.
•Последний момент – отладка. Для ведения отладки нужно предварительно откомпилировать приложение и затем перейти в режим выполнения приложения.
Для того чтобы в разрабатываемое приложение можно было добавить форму, необходимо выполнить следующие действия:
1) запустить редактор VBA;
2) выделить правой кнопкой мыши объект Project, выполнить команду Insert + UserForm (рис. 11), после чего появляются новая форма и панель элементов Toolbox (рис. 12).
Рис. 11.Добавление формы
Рис. 12.Новая форма
Читать дальше
Конец ознакомительного отрывка
Купить книгу