Элементы управления на рабочем листе 


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



ЗНАЕТЕ ЛИ ВЫ?

Элементы управления на рабочем листе



Выше было указано, что элементы управления можно размещать в пользовательских формах и непосредственно на рабочем листе, создавая тем самым дружественный пользователю интерфейс. Панель инструментов Элементы управления отображается на рабочем листе Excel командой Вид | Панели инструментов | Элементы управления (рис. 19):

Рис. 19. Элементы управления на рабочем листе

Кроме панели инструментов Элементы управления в Excel имеется похожая на неё панель Формы, набор кнопок которой практически такой же, как на панели Элементы управления (рис. 20).

Рис. 20. Панель Формы

Удобство этой панели состоит в том, что многие её кнопки можно связать с макросами (процедурами) VBA. Кроме того, после размещения элемента управления панели Формы на рабочем листе на этом элементе выводится на русском языке её название, отражающее её назначение: Кнопка, Метка и т.д. Для размещения элемента управления на рабочем столе нужно нажать на соответствующую кнопку панели инструментов Элементы управления или Формы и с появившимся крестообразным курсором начертить элемент управления на рабочем листе (рис. 21 а,б).

Рис. 21 а. Примеры элементов управления панели Формы

Рис. 21 б. Примеры элементов управления
панели Элементы управления

Следует отметить, что задание свойств элементам управления обеих панелей различаются, т.к. панель инструментов Формы унаследована от устаревшей версии MS Excel 5.0 и используется преимущественно совместимости приложений, созданных в старых версиях.

Размещение элементов управления производится в режиме конструктора, для перехода в который нужно нажать кнопку Режим конструктора панели инструментов Элементы управления.

Как было показано выше, элементы управления являются объектами, и как любые другие объекты обладают свойствами, методами и событиями. Значения свойств элементов управления устанавливаются как в коде, так и так и на этапе их конструирования. Для установки значений свойств на этапе конструирования нужно выбрать элемент управления и нажать кнопку Свойства панели инструментов Элементы управления. На экране отобразится окно Properties (рис. 22).

Рис. 22. Окно Properties

Код процедуры, обрабатывающий события, связанные с элементом управления, расположенном на рабочем листе (Лист1, Лист2 и т.д.), набирается в модуле этого рабочего листа (Лист1(Лист1), Лист2 (Лист2), и т.д.), на котором расположен элемент управления. Для входа в этот модуль нужно выбрать элемент управления и нажать кнопку Исходный текст панели инструментов Элементы управления.

По окончании конструирования элемента управления необходимо выйти из режима конструирования, нажав кнопку Режим конструктора. Properties

В качестве примера рассмотрим проектирование на рабочем листе элемента управления Кнопка. Последовательность действий следующая.

1. Нажать кнопку Режим конструктора панели инструментов Элементы управления.

2. Нажать кнопку панели инструментов Элементы управления и нарисовать на рабочем листе кнопку , на поверхности которой появится надпись CommandButton1. При создании второго элемента управления Кнопка на её поверхности появится надпись CommandButton2 и т.д.

3. Щёлкнуть по созданной кнопке правой кнопкой мыши и в появившемся диалоговом окне выбрать пункт Свойства панели инструментов Элементы управления. На экране появится окно Properties. Установить в этом окне значение свойства Name равным КнПривет, а свойства Caption равным ПРИВЕТСТВИЕ.

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

Private Sub CmdПривет_Click()

End Sub

5. Добавить в процедуру обработки события Click функцию MsgBox, которая отобразит на экране диалоговое окно с приветствием (рис.23):

Private Sub CmdПривет_Click()

MsgBox "Желаем вам успехов" & Chr(13) + Chr(10) & _

"в изучении VBA!", vbExclamation

End Sub

Рис.23. Результат выполнения процедуры CmdПривет_Click

В этой процедуре выражение Chr(13) + Chr(10) вызывает возврат каретки и перевод строки. Вместо него можно использовать смешанную константу vbCrLf или константу VBA VbNewLine.

Такой же самый результат можно получить, используя элемент Кнопка панели элементов Формы. В этом случае последовательность действий следующая.

1. Выполнить команду Вид | Панели инструментов | Формы.

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

3. Щёлкнуть по созданной кнопке правой кнопкой мыши и в появившемся диалоговом окне выбрать пункт Изменить текст и ввести слово ПРИВЕТСТВИЕ, щёлкнуть правой кнопкой мыши и появившемся диалоговом окне выбрать пункт Завершить изменение текста.

4. Щёлкнуть мышью по любой ячейке рабочего листа вне области кнопки.

5. Вставить в стандартный модуль Module1 следующую процедуру:

Sub ПРИВЕТ ()

MsgBox "Желаем вам успехов" & Chr(13) + Chr(10) & _

"в изучении VBA!", vbExclamation

End Sub

6. Щёлкнуть правой кнопкой мыши по элементу Кнопка ПРИВЕТ на рабочем листе и в появившемся меню выбрать пункт Назначить макрос…

7. В диалоговом окне “Назначить макрос объекту” выбрать макрос ПРИВЕТ.

Если щёлкнуть теперь по кнопке ПРИВЕТ, то на экран будет выведено диалоговое окно с текстом "Желаем вам успехов в изучении VBA!".

Упражнение 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.



Поделиться:


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

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