Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
EPP_VBA_Gornostay_171214.docx
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
546 Кб
Скачать
☆

Проектирование форм в редакторе vba

Цель работы: научиться работать с формами и элементами управления для создания графического интерфейса программ VBA, изучить основные свойства и методы формы и основных элементов управления, размещаемых на форме.

Задание 1 Проектирование форм в VBA-программах

  1. Откройте приложение Excel и создайте новую книгу. Сохраните ее с именем VBA_Form.xlsm.

  1. Войдите в редактор VBA. Вставьте новый модуль и, используя команду UserForm меню Insert (или контекстное меню модуля), вставьте в окно кода редактора новую форму. По умолчанию ей будет присвоено имя UserForm1. Рядом откроется окно элементов управления ToolBox.

  2. Разместите на форме элементы управления Label, TextBox и CommandButton с панели ToolBox, как показано на рис. 3.1.

  3. Используя окно Properties, отредактируйте свойства формы и элементов управления, как показано на рис. 3.2.

Рис. 3.1 Вид формы после вставки элементов управления

Рис. 3.2 Вид формы после редактирования

Задание 2 Программирование форм в VBA

  1. Двойным щелчком по кнопке ОК на форме откройте окно кода и меду строчками Private Sub CommandButton1_Click() и End Sub введите код обработчика события - нажатия пользователем кнопки ОК на форме при выполнении программы:

Dim a As Integer, b As Integer, s As Integer

a=Val(TextBox1)

b=Val(TextBox2)

s = a + b

TextBox3=Str(s)

  1. По аналогии с п. 1 введите код обработчика события - одиночный клик мышкой по кнопке Выход при выполнении программы:

UserForm1.Hide

  1. Запустите программу на выполнение (<F5>) из окна редактора кода или из окна дизайнера форм. В окне основного приложения (книга VBA_Form) откроется диалоговое окно формы.

  2. Введите исходные данные в поля TextBox1 и TextBox2 и нажмите кнопку ОК. В поле TextBox3 при отсутствии ошибок в программе появится результат суммирования введенных чисел.

  3. Для завершения программы нажмите кнопку Выход.

  4. Добавьте на форму третью кнопку с названием Очистка. Действуя по аналогии с п. 1, введите между строчками Private Sub CommandButton3_Click() и End Sub следующий код для очистки значений текстовых полей:

TextBox1=" "

TextBox2=" "

TextBox3=" "

  1. Протестируйте созданную VBA-программу и сравните ее с программой Prog2 из предыдущей лабораторной работы, в которой использовались встроенные диалоговые окна InputBox и MsgBox.

  2. Создайте папку на диске D с именем Фамилия_Группа, выберите команду Export File в меню File и сохраните форму с именем Form1.frm в эту папку. Вместе с формой будут сохранены процедуры для всех размещенных на ней объектов. В дальнейшем все результаты своей работы сохраняйте в свою личную папку.

  3. Закройте книгу VBA_Form.xlsm с сохранением изменений.

  4. Создайте новую книгу Excel и откройте окно редактора VBA.

  5. Импортируйте сохраненную форму Form1.frm командой File>Import File и протестируйте ее.

  6. Оформите отчет по лабораторной работе.

Задание для самостоятельной работы

Спроектируйте несколько вариантов оформления внешнего вида созданной формы, используя свойства формы и элементов управления Label, TextBox, CommandButton.

Методические материалы

Для создания графического интерфейса VBA-программ в виде пользовательских диалоговых окон используются формы (объект UserForm).

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

Создать форму просто: для этого достаточно в редакторе VBA выполнить команду Insert>User Form или щелкнуть правой кнопкой мыши по проекту в окне Project Explorer и в контекстном меню выбрать Insert>UserForm. Откроются два новых окна: окно дизайнера форм, в котором будет представлено пустое поле формы, и окно Toolbox - панель с набором стандартных элементов управления. Возможный вариант окна дизайнера форм представлен на рис. 3.3.

Рис. 3.3 Окно дизайнера форм VBA в Excel

Если окно Toolbox по какой-либо причине скрыто, его можно открыть из меню View.

Если включен показ окна свойств Properties (он включается по клавише <F4>), то в этом окне будут представлены свойства формы. Переход на код для этой формы (по умолчанию открывается событие Click) - по клавише <F7>, возврат обратно в окно дизайнера форм - по <Shift>+<F7>.

Некоторые важные свойства объекта UserForm:

  • свойство Name - определяет имя формы, которое используется в программном коде для этой формы;

  • свойство Caption - определяет заголовок формы;

  • свойство Enabled - используется для временного отключения формы, если установить False;

  • свойство ShowModal - по умолчанию установлено True. Пользователь не может перейти к другим формам или вернуться в документ, пока не закроет эту форму.

Некоторые важные методы объекта UserForm:

  • Show - если форма уже была загружена в память, она просто станет видимой, если еще нет - то будет автоматически загружена;

  • Hide - форма будет убрана с экрана, но останется в памяти.

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

Самые важные события объекта UserForm:

  • Initialize - происходит при подготовке формы к открытию (появлению перед пользователем);

  • Click (выбирается по умолчанию) - реакция на одиночный щелчок мыши;

  • Error - это реакция на возникновение ошибки в форме, используется как возможность предоставить пользователю исправить сделанную им ошибку;

  • Terminate - событие используется при нормальном завершении работы формы и выгрузке ее из памяти.

Поскольку форма - это во многом просто контейнер для хранения других элементов управления, главное ее событие - Initialize. Все остальные события обычно используются не для формы, а для расположенных на ней элементов управления.

Элементы управления - это специализированные объекты, которые можно размещать на формах VBA и непосредственно в документах, используемые для организации взаимодействия с пользователем. В VBA можно использовать как стандартные элементы управления (CommandButton, CheckBox, OptionButton и др.), так и нестандартные - любые другие, которые есть на компьютере (например, Calendar). Элементы управления реагируют на события, которые генерирует пользователь (нажатие на кнопку, ввод значения, перемещение ползунка и др.).

Добавление элементов управления на форму производится в дизайнере форм при помощи Toolbox. Для этого необходимо выбрать элемент управления в Toolbox и перетащить его на форму.

Чаще всего элемент управления Label (Надпись) используется как строка состояния с объяснением того, что сейчас произошло или что должен сделать пользователь.

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

Элемент управления TextBox (Текстовое поле) - один из самых часто используемых элементов управления. Текстовое поле используется:

  • для приема каких-либо текстовых данных, вводимых пользователем;

  • для вывода пользователю текстовых данных с возможностью их редактирования или только копирования и печати.

Некоторые важные свойства TextBox:

  • Value или Text - то текстовое значение, которое содержится в этом поле. Используется для занесения исходного значения и для приема значения, введенного пользователем, в строковую переменную;

  • AutoSize - возможность для текстового поля автоматически менять свой размер, чтобы вместить весь текст;

  • Enabled –установка в False блокирует возможность редактирования текста в поле пользователем;

  • Locked - поле будет выглядеть как обычно, пользователь сможет выделять и копировать данные из него, но не изменять их;

  • MultiLine – определяет, можно ли использовать в текстовом поле несколько строк;

  • PasswordChar – позволяет указать, за каким символом будут "прятаться" вводимые пользователем значения. Используется при вводе пароля;

  • ScrollBars – определяет, будут ли показаны горизонтальная и вертикальная полосы прокрутки (в любом сочетании).

Главное событие для TextBox - это Change (то есть изменение содержания поля). Обычно на это событие привязывается проверка вводимых пользователем значений или синхронизация введенного значения с другими элементами управления.

Элемент управления ComboBox (Поле со списком) обычно используется в двух ситуациях:

  • когда пользователю необходимо выбрать одно или несколько значений из списка размером от 4-х до нескольких десятков позиций;

  • когда список позиций для выбора необходимо формировать динамически на основании данных из источника (базы данных, листа Excel).

Для заполнения списка позициями используется специальный метод AddItem. Обычно он помещается в обработчик события Initialize для формы. Применение его может выглядеть так:

Private Sub UserForm_Initialize()

ComboBox1.AddItem "Минск"

ComboBox1.AddItem "Могилев"

ComboBox1.AddItem "Витебск"

ComboBox1.AddItem "Гродно"

End Sub

Самым важным свойством ComboBox является Value (или Text) - позволяет программным способом установить выбранное значение в списке или вернуть выбранное или введенное пользователем значение.

Главное событие для ComboBox - Change. Обычно в обработчике этого события проверяются введенные пользователем значения, затем эти значения переносятся в текстовое поле.

Элемент управления ListBox (Список) очень похож на ComboBox, но применяется гораздо реже по двум причинам:

  • в нем нельзя открыть список значений по ниспадающей кнопке, все значения видны сразу в поле и поэтому большое количество позиций в нем уместить трудно;

  • пользователь не может вводить свои значения – можно только выбирать из готового списка.

Основные свойства, методы и события у ListBox - те же, что и у ComboBox. Главное отличие - то, что имеется свойство MultiSelect, которое позволяет пользователю выбирать несколько значений. По умолчанию это свойство отключено.

Основные свойства элемента управления CheckBox (Флажок):

  • Caption - надпись справа от флажка, которая объясняет, что выбирается этим флажком;

  • TripleState - если в False (по умолчанию), то флажок может принимать только два состояния: установлен или нет. Если для TripleState установить значение True, то появляется третье значение: Null;

  • Value - само состояние флажка. Может принимать значения True (установлен), False (снят) и Null (нейтральный), когда свойство TripleState установлено в True.

Главное событие CheckBox - Change.

Элемент управления ToggleButton (Выключатель) выглядит как кнопка, которая при нажатии становится включенной, а при повторном нажатии отключается. У нее могут быть те же два (или три, в соответствии со свойством TripleState) состояния, что и у CheckBox. Свойства и методы - те же самые. Единственное отличие - в восприятии их пользователем. Обычно ToggleButton воспринимается пользователем как переход в какой-то режим или начало выполнения продолжительного действия.

Если CheckBox предназначен для выбора не взаимоисключающих вариантов, то OptionButton (Переключатель) как раз нужен для выбора варианта в ситуации или/или.

Главных свойств у этого элемента управления два:

  • Caption - надпись для переключателя;

  • Value - установлен флажок или нет (только два состояния True или False).

Frame (Рамка) - это просто рамка, которая выделяет прямоугольную область на форме и позволяет сгруппировать элементы управления. Помещенные внутрь рамки переключатели считаются взаимоисключающими. При желании рамку можно сделать невидимой, установив для свойства BorderStyle значение 1 и убрав значение свойства Caption.

Элемент управления CommandButton (Кнопка) — самый распространенный элемент управления в формах. В большинстве форм обязательно будет по крайней мере две кнопки: Cancel (Отмена) и OK. По нажатию кнопки Cancel форма должна закрыться, по нажатию кнопки OK должно выполниться то действие, ради чего создавалась эта форма.

Главное событие для кнопки - это Click. Как правило, к этому событию и привязывается тот программный код (обработчик), ради которого создавалась кнопка.

Самые важные свойства кнопки:

  • Cancel - если для него установить значение True, то это значит, что кнопка будет нажиматься при нажатии на клавишу <Esc>;

  • Caption - надпись, которая будет на кнопке;

  • Default - такая кнопка будет считаться нажатой, если пользователь нажал на клавишу <Enter>, а курсор находился в другом месте формы (но не на другой кнопке). Обычно такие кнопки являются главными, по которым выполняется действие, ради которого создавалась форма;

  • Picture - если просто надпись вас не устраивает, можно назначить кнопке рисунок.

ScrollBar (Полоса прокрутки) чаще всего встречается в текстовых полях, когда введенный текст полностью на экране не умещается.

Главное событие для этого элемента управления - Change.

Главные свойства выглядят так:

  • Max и Min - максимальное и минимальное значения, которые можно задать при помощи этого элемента управления;

  • LargeChange и SmallChange – определяют, какими шагами будет двигаться ползунок при перемещении его пользователем (путем щелчка на полосе ниже ползунка или при нажатии на кнопку направления соответственно);

  • Orientation - определяет расположение ползунка: вертикальное или горизонтальное;

  • Value - главное свойство этого элемента управления. Определяет положение ползунка и то значение, которое будет возвращать этот элемент управления программе.

Элемент управления SpinButton (Счетчик) - это та же полоса прокрутки, лишенная самой полосы и ползунка. Все свойства, которые есть у SpinButton, совпадают со свойствами ScrollBar.

Image (Рисунок) позволяет отобразить на форме рисунок в одном из распространенных форматов, который будет реагировать на щелчок мышью или просто использоваться для украшения формы.

Главное событие элемента Image - событие Click.

Главные свойства Image:

  • Picture - позволяет выбрать само изображение для формы;

  • PictureAlignment - позволяет выбрать местонахождение изображения в отведенной ему области. По умолчанию - по центру;

  • PictureTiling – определяет, размножать ли маленький рисунок, чтобы он покрыл все отведенную ему область.

Стандартные элементы управления изначально помещены в ToolBox и доступны для размещения в формах. Для размещения дополнительных элементов управления на форме нужно сначала вставить их в окно ToolBox. Для этого надо щелкнуть правой кнопкой мыши по пустому пространству в ToolBox и выбрать пункт Additional Controls.

Один из часто используемых дополнительных элементов управления, который есть практически на всех компьютерах – это Calendar (Календарь). Вид размещенного на форме элемента Calendar показан на рис. 3.4. При помощи этого элемента управления пользователю очень удобно выбирать нужную дату.

Главное свойство элемента Calendar - Value, то есть та дата, которая выбрана пользователем. Остальные свойства предназначены для оформления внешнего вида.

.

Рис. 3.4 Вид элемент управления Calendar на форме

Лабораторная работа № 4

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]