Создание пользовательской формы 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Создание пользовательской формы



Создание пользовательской формы

Для вставки пользовательской формы в приложение нужно выполнить следующие действия.

1. Открыть рабочую книгу.

2. Войти в редактор Visual Basic, нажав комбинацию клавиш <Alt+F11> или щёлкнув по кнопке в Excel 2007/2010/2013 или по кнопке в Excel 97-2003.

3. Если в окне проекта не появится окно Project – VBAProject, то выбрать в меню View пункт Project Exsplorer.

4. В окне проекта щёлкнуть правой кнопкой мыши на элементе
ЭтаКнига. В контекстном меню выполнить команду Insert>UserForm (Вставка > Форма пользователя). В рабочую книгу будет вставлена экранная форма UserForm1 и Панель элементов ToolBoox (рис.15).

Аналогично пользовательскую форму можно создать, выбрав UserForm из опции меню Insert.

 

Новая экранная форма представляет собой пустое окно со строкой заголовка UserForm1. Это та основа, на которой пользователь может создать собственные диалоговые окна и окна других типов. Если панель ToolBoox не появится, нужно выбрать в меню View пункт ToolBoox или нажать кнопку на панели Microsoft Visual Basic.

Если окно свойств формы Properties – UserForm1 не появится, то для установки свойств формы нужно выполнить команду
View | Properties Window или нажать клавишу F4.

Окно ToolBoox можно при необходимости переместить в любое место окна UserForm.

Некоторые свойства, методы и события форм

Некоторые свойства форм

Большая часть основных свойств относится к внешнему виду, размерам и местонахождению окон.

· Свойство Name задаёт имя формы. После создания первой формы в проекте она по умолчанию получает стандартное имя UserForm 1, второй – UserForm 2, и т.д., которое рекомендуется заменить на такое, чтобы оно указывало на назначение формы.

· Свойство Caption задаёт заголовок формы. Значение этого свойства также рекомендуется назначить таким, чтобы оно указывало на назначение формы, например, "Выполнение плана".

· Свойство Enabled используется для временного отключения формы.

Некоторые методы форм

· Метод Show

Во время редактирования формы её можно запускать нажатием клавиши <F5>. После того, как форма будет готова, нужно обеспечить её запуск в документе. Для этого нужно воспользоваться методом Show:

UserForm1.Show

Если форма уже была загружена в память, она просто станет видимой, если еще нет, то будет автоматически загружена (произойдет событие Load).

Эту команду, можно вызвать, например:

- из обычного макроса, назначенного кнопкой или комбинацией клавиш или запускаемого файлом автозапуска Auto_Exec;

- из кода для элемента управления, расположенного в самом документе, например, CommandButton или на другой форме – для перехода между формами.

· Метод Hide

После того как пользователь введёт или выберет нужные данные на форме и нажмет на требуемую кнопку, форму необходимо убрать. Можно для этой цели воспользоваться двумя способами:

- использовать метод Hide:

UserForm1.Hide

Форма будет убрана с экрана, но останется в памяти. Потом при помощи метода Show() можно будет опять ее вызвать в том же состоянии, в каком она была на момент удаления с экрана. Окончательно форма удалится из памяти при закрытии документа.

- если форма в процессе работы приложения больше не потребуется, можно ее удалить из памяти при помощи команды Unload:

Unload UserForm1

Остальные методы относятся либо к обмену данными через буфер обмена: Copy, Cut, Paste, либо к служебным возможностям формы: PrintForm, Repaint, Scroll.

Некоторые события форм

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

Часто используемые события форм:

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

· Click и DblClick – реакция соответственно на одиночный и двойной щелчок мыши. Обычно обработчик щелчков используется для кнопок элементов управления CommandButton.

· Error – это событие используется при возникновении ошибки в форме и применяется пользователем для исправления сделанной им ошибки.

· Terminate – событие используется при нормальном завершении работы формы и выгрузке ее из памяти, например, по команде Unload.

Остальные события связаны либо с изменением размера окон, либо с нажатиями клавиш, либо с активизацией или деактивизацией.

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

Элементы управления

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

Элементы управления находятся на Панели элементов в виде кнопок. Ниже приведена панель “Элементы управления” на рабочем листе

и панель “Toolbox” – в пользовательской форме.

На рис. 2 а, б представлены элементы управления с англоязычным и русскоязычным обозначением кнопок.

Рис. 2,а. Стандартная панель элементов (англоязычные обозначения)

Рис. 2,б. Стандартная панель элементов (русскоязычные обозначения)

Ниже рассмотрено использование элементов управления сначала в пользовательских формах, а затем – на рабочем листе.

Добавление элементов управления на форму обычно производится при помощи панели элементов ToolBoox (рис.15). Для этого необходимо выбрать элемент управления в Toolbox и перетащить его на форму или выделить элемент управления в Toolbox и затем на форме выделить ту область экрана, которую будет занимать этот элемент управления. После добавления в форму элемента управления ему назначается имя, которое состоит из названия типа элемента управления и порядкового номера. Например, если добавить элемент управления Label в пустую форму, то этот элемент управления получит название Label1; если добавить в окно второй элемент управления Label, то он получит название Label2.

Окно свойств формы

Для просмотра и изменения свойств формы или элементов управления во время проектирования используется окно свойств Properties (рис.4). Для получения справки по какому-либо свойству формы нужно выделить его в окне свойств и нажать клавишу <F1>.

Рис.4. Окно свойств формы Properties

Открыть окно свойств можно одним из трёх способов:

- с помощью команды Вид, Окно свойств (View, Properties Window);

- с помощью пиктограммы ;

- с помощью клавиши <F4>.

После выполнения одного из этих действий в окне Properties появится список свойств объекта и их значения. Чтобы изменить значение свойства, нужно найти его в левой колонке и изменить значение в правой колонке. Если в области значений появились три точки, то нужно щелкнуть на них, чтобы открылось диалоговое окно. Если появилась указывающая вниз стрелка, то щелчок на ней раскрывает список возможных значений.

Отобразить форму на экране можно двумя способами.

1. Из окна проектирования формы UserForm щёлкнуть клавишей F5.

2. Запустить процедуру, которая вызывает метод Show объекта UserForm. Если объект UserForm называется «План_отгрузки», то следующая процедура отобразит это пользовательское диалоговое окно.

Sub План_показать()

План_отгрузки.Show

End Sub

Эта процедура должна находиться в стандартном модуле VBA, а не в модуле формы!

Изменим свойство Font элемента управления Label: выделим элемент управления Label на форме, установим для него размер шрифта равным 14 и начертание – курсив. Кроме того, выделим форму и зададим свойству Name (имя формы) значение «План_отгрузки» и свойству Caption (заголовок) – значение «План_отгрузки». Клавишей <F5> запустим модуль формы «План_отгрузки» на выполнение. Тогда на экран будет выведена форма, представленная на рис. 5.

Примечания

1. Имя формы, как и имя любого объекта VBA, не может содержать символ “пробел”; вместо него рекомендуется использовать символ “подчёркивание” (_).

2. Свойство Caption может иметь любое значение, в том числе и совпадающее с именем объекта.

Рис. 5. Форма План_отгрузки

Элемент управления CommandButton (Кнопка)

Отображаемая пользовательская форма находится на экране до тех пор, пока она не будет скрыта или выгружена. Диалоговое окно UserForm автоматически выгружается из памяти при щелчке на кнопке в строке заголовка окна формы. Обычно в пользовательскую форму вставляют элемент управления CommandButton, который запускает процедуру закрытия формы. Эта процедура или выгружает пользовательскую форму с помощью оператора Unload, или скрывает пользовательскую форму с экрана с помощью метода Hide объекта UserForm. При вызове метода Hide диалоговое окно удаляется с экрана, но форма остаётся в памяти.

Щелчок по элементу управления вызывает событие, которое можно обработать процедурой формы. Эта процедура находится в модуле формы и имеет имя, состоящее из имени элемента управления с порядковым номером элемента в форме, и слова Click, разделённых символом “подчёркивание”, например, CommandButton1_Click.

При этом первый вставляемый в форму элемент данного типа имеет номер 1, второй – 2 и т.д. Имя элемента управления, определяемое параметром (Name), можно менять на смысловое в таблице свойств Propеrties, например, на Ок или Выйти. В этом случае процедура обработки события будет иметь имя соответственно Ок_Click и Выйти_Click.

Для создания процедуры обработки события, возникающего при щелчке по элементу управления формой, нужно дважды щёлкнуть по этому элементу в окне редактора форм. Тогда произойдёт переход в модуль формы, в котором отобразится “заготовка” процедуры обработки события UserForm, например,

Private Sub CommandButton1_Click()

End Sub

или

Private Sub Ok_Click()

End Sub

если имя формы было заменено в окне Propеrties на Ok.

В эту процедуру нужно вставить операторы(инструкции) обработки события, например,

Private Sub Ok_Click()

Range(“A1”).Value = ShowКвартал.КВАРТАЛЫ.Value

R = ShowКвартал.Кварталы.Value

End Sub

Private Sub Ok_Click()

Unload Me

End Sub

При щелчке по кнопке Ok в первой процедуре ячейка A1 активного листа получит значение элемента управления КВАРТАЛЫ формы ShouКвартал, а во второй процедуре – произойдёт выгрузка активной (текущей) формы.

Ключевое слово Me возвращает (указывает) имя активного окна.

Скрыть или выгрузить форму можно также при помощи стандартной процедуры, которую можно вызвать из любой другой процедуры, в том числе из процедуры формы. Приведённая ниже процедура План_скрыть скрывает форму План_отгрузки, а процедура План_удалить удаляет форму План_отгрузки из памяти.

Sub План_скрыть()

План_отгрузки.Hide

End Sub

Sub План_ удалить ()

Unload План_отгрузки

End Sub

Вместо операторов План_отгрузки.Hide и Unload План_отгрузки можно использовать операторы Me.Hide и Unload Me.

Элемент управления Image (Рисунок)

Элемент Рисунок (Image) предназначен для вывода содержимого графических файлов в форме. Элемент не позволяет редактировать рисунок. Поддерживаются следующие форматы файлов: *.bmp, *.cur, *.gif, *.ico, *.jpg, *.wmf.

Упражнение 1

1. Создать пользовательскую форму UserForm1 на листе Excel Лист1. Изучить теоретический материал по свойствам и методам пользовательских форм и элементов управления и выполнить находящиеся в них процедуры.

Упражнение 2

Создать пользовательскую форму, в которой размещены элементы управления Label (надпись), CommandButton (кнопка управления). При нажатии на кнопку “Запуск” будет генерироваться случайное число. Это число должно отображаться в элементе Label (надпись). Затем вычислим корень квадратный из этого числа, его синус и косинус, а результаты выведем в другие элементы управления Label (надпись). Кроме этого, в форме выводится текущая дата. При нажатии на кнопку “Выход” форма удаляется с экрана. Для запуска формы на листе Excel необходимо создать кнопку с надписью “Функции VBA”.

Порядок работы:

1. Запустить Excel.

2. Загрузить VBA:

- в Excel 2007-10:

вкладка Разработчик | пункт меню Insert | UserForm

- в Excel 97-3003:

Сервис | Макрос | Редактор Visual Basic | Insert | UserForm.

3. Проверить, чтобы на экране появилось окно проекта и окно свойств. Форму можно увеличить стандартным способом, ухватившись за правый нижний угол и растягивая ее.

4. Сделать появившуюся форму активной и установить значения свойств данного объекта:

5. Добавить в форму средства управления. При разработке потребуется два инструмента: Label (надпись) и CommandButton (кнопка управления) с панели элементов. Форма с элементами управления в режиме конструктора примет следующий вид:

6. Для вывода результатов расчета подготовить элементы Label1, Label2, Label3, Label4. Для этого необходимо установить значения свойств объекта Label1 ÷ Label4:

7. Для пояснительных надписей установить значения свойств элементов Label5, Label6, Label7, Label8:

8. Для вывода текущей даты установить значения свойств элемента Label9:

9. Добавить в форме командную кнопку для запуска программы, применив элемент управления CommandButton1 и установить значения свойств объекта CommandButton1:

10. Добавить в форму командную кнопку для закрытия формы, применив элемент управления CommandButton2, и установить значения свойств объекта CommandButton2:

После выполнения всех пунктов форма в режиме конструктора будет выглядеть так:

11. Проверить работу формы. Для вывода формы на экран выполнить команду Run | Run Sub/UserForm или нажать клавишу . На фоне листа Excel появится созданная форма, но при нажатии на кнопку “Запуск” или “Выход” ничего не произойдет, т.к. не запрограммирован отклик на событие (нажатие кнопки). Закрыть форму и в войти в редактор VBA.

12. В форме дважды щелкнуть на кнопке “Запуск”, чтобы вывести заготовку программы, связанную с командной кнопкой.

Программа начинается с заголовка Private Sub (локальная процедура) и заканчивается предложением End Sub (конец процедуры). Между этими предложениями записывается текст программы.

13. Написать тексты процедур, обеспечивающих работу с формой.

Private Sub CommandButton1_Click()

Dim PI As Double

PI=2*Atn(1e+15) ‘ Вычисление числа ПИ, или 4*Atn(1)

Randomize

Label9.Caption = Date

Label1.Caption = Int((Rnd * 90) + 1)

Label2.Caption = Sqr(Label1.Caption)

Label3.Caption = Cos(Label1.Caption * PI / 180)

Label4.Caption = Sin(Label1.Caption * PI / 180)

End Sub

Проанализируем текст программы. Синтаксис установки значения свойства объекту имеет вид:

Объект.Свойство = ЗначениеСвойства.

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

  • Label— объект.
  • Caption— свойство.
  • Date — значение свойства (текущая дата).
  • Инструкция Randomize инициализирует генератор случайных чисел.
  • Rnd * 90— значение свойства. Функция генерации случайных чисел Rnd генерирует случайное число между 0 и 1.
  • Функция Int возвращает целую часть аргумента (в данном случае – произведение случайного числа на 90) и отбрасывает дробную часть аргумента. Результат – числа от 1 до 90.
  • Sqr(Label1.Caption). Sqr – функция извлечения квадратного корня. Так как случайное число сохранилось в объекте Label1, то применяется функция Sqr,аргументом которой является объект, в котором хранится случайное число.

· Sin(Label1.Caption * Pi / 180)—аргумент функции синус рассматривается в радианах, но для того, чтобы было привычнее анализировать полученные результаты, применим формулу для преобразования градусов в радианы, т.е. преобразуем случайное число (градусы) в радианы и получим результат.Здесь переменная Pi является константой π.

Для расчёта значения π использовать формулу π=2arctg(1t+15).

5. Вывести форму на экран, нажав клавишу (F5), и проверить работоспособность кнопки “Запуск”. Результат выполнения программы показан на рисунке.


6. Составить процедуру для кнопки “Выход”. Для этого нужно перейти в редактор VBA и дважды щелкнуть по кнопке “Выход” в форме. Появится заготовка программы:

Private Sub CommandButton2_Click()

End Sub

в которую нужно вставить одну строку программы – UserForm1.Hide,

в которой:

· UserForm1 — это объект.

  • Hide — это метод:

Private Sub CommandButton2_Click()

UserForm1.Hide

End Sub

Кроме запуска программы по нажатию клавиши (F5), существует еще один способ вывода формы на экран. Для этого:

1. Перейти в приложении Excel на любой лист.

Excel 2007-10

На вкладке “Разработчик” в группе “Элементы управления” щёлкнуть по кнопке “Вставить” и в ниспадающем меню щёлкнуть На панели инструментов управления “Элементы управления формы” щёлкнуть по элементу “Кнопка(элемент управления формы)” и начертить курсором, принявшим вид “ +”, в любом месте рабочего листа кнопку, переименовать её по смысловому содержанию вызываемого макроса, щёлкнуть правой кнопкой мыши по кнопке, выбрать п. “Назначить макрос…”, в диалоговом окне “Назначить макрос объекту” дать имя макросу “CommandButton2_Click” или оставить предлагаемое по умолчанию.

Excel 98-2003

В меню “Вид” выбрать пункт “Панели инструментов”, в раскрывающемся списке выбрать пункт “Элементы управления”,

щелкнуть левой кнопкой мыши на панели управления элемент “Кнопка”, нарисовать крестообразным курсором кнопку, которой Excel по умолчанию присвоит имя “CommandButton1”:

2. Вызвать свойства этого элемента, нажав на панели элементов управления кнопку “Свойства” .

3. Установить значения свойств объекта CommandButton1.

В результате на рабочем листе будет отражена кнопка, имеющая вид:

Кнопку можно переместить мышью в любое место рабочего листа.

4. Составить процедуру, которая будет выполняться при щелчке мышью по кнопке “Функции VBA”. Для этого нужно вызвать заготовку программы, нажав на панели элементов управления кнопку “Исходный текст”

не забыв перед этим выделить кнопку “CommandButton1”.

5. Вставить одну строку программы – UserForm1.Show, что означает “Показать форму UserForm1 на экране”.

В этой строке:

· UserForm1 – объект.

· Show – метод.

6. Затем перейти на лист приложения Excel и отключить режим конструктора на панели элементов управления .

7. Щёлкнуть мышью по кнопке UserForm1; на рабочий лист будет выведена пустая форма:

8. Щёлкнуть по кнопке “Запуск” для запуска процедуры
CommandButton1_Click(); на экране появятся результаты выполнения этой процедуры, зависящие от значения случайного числа. При многократном нажатии кнопки “Запуск” будут появляться различные значения случайного числа и, следовательно, различные значения вычисляемых функций.

При щелчке по кнопке “Выход” форма будет удалена с экрана.

9. Сохранить работу.

Контрольное задание к лабораторной работе №6

Создать приложение, реализующее решение ваших индивидуальных задач по вариантам. Управление приложением осуществлять из панели управления (кнопочной пользовательской формы). На панели управления должна присутствовать информация об исполнителе.


[1] При разработке примера использованы материалы из кн.:Гарнаев А.Ю. MS Excel 2002: разработка приложений. – СПб.: БХВ-Петербург, 2003., стр.391–392.

Создание пользовательской формы

Для вставки пользовательской формы в приложение нужно выполнить следующие действия.

1. Открыть рабочую книгу.

2. Войти в редактор Visual Basic, нажав комбинацию клавиш <Alt+F11> или щёлкнув по кнопке в Excel 2007/2010/2013 или по кнопке в Excel 97-2003.

3. Если в окне проекта не появится окно Project – VBAProject, то выбрать в меню View пункт Project Exsplorer.

4. В окне проекта щёлкнуть правой кнопкой мыши на элементе
ЭтаКнига. В контекстном меню выполнить команду Insert>UserForm (Вставка > Форма пользователя). В рабочую книгу будет вставлена экранная форма UserForm1 и Панель элементов ToolBoox (рис.15).

Аналогично пользовательскую форму можно создать, выбрав UserForm из опции меню Insert.

 

Новая экранная форма представляет собой пустое окно со строкой заголовка UserForm1. Это та основа, на которой пользователь может создать собственные диалоговые окна и окна других типов. Если панель ToolBoox не появится, нужно выбрать в меню View пункт ToolBoox или нажать кнопку на панели Microsoft Visual Basic.

Если окно свойств формы Properties – UserForm1 не появится, то для установки свойств формы нужно выполнить команду
View | Properties Window или нажать клавишу F4.

Окно ToolBoox можно при необходимости переместить в любое место окна UserForm.



Поделиться:


Последнее изменение этой страницы: 2016-12-30; просмотров: 608; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.211.107 (0.106 с.)