Проектирование форм в редакторе VBA — КиберПедия 

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

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

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

2023-02-03 38
Проектирование форм в редакторе VBA 0.00 из 5.00 0 оценок
Заказать работу

 

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

 

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

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

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

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

4. Используя окно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)

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

UserForm1.Hide

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

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

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

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

TextBox1=""

TextBox2=""

TextBox3=""

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

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

9. Закройте книгу VBA_ Form. xlsmс сохранением изменений.

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

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

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

 

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

Спроектируйте несколько вариантов оформления внешнего вида созданнойформы, используя свойства формы и элементов управления 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 "Гродно"

EndSub

Самым важным свойством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


Поделиться с друзьями:

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.008 с.