События SelectionChange и SheetSelectionChange
При каждом перемещении активной ячейки, а также при расширении или сжатии выделения Excel вызывает событие SelectionChange для worksheet. Параллельно происходит событие для объектов Workbook и Application. Процедуры событий для данных событий можно использовать для обратной связи с текущим выделением. В приведенном ниже примере событие SelectionChange используется для отображения в левой верхней ячейке текущего листа адреса активной ячейки, а также для помещения имени рабочего листа и адреса выделения в строку состояния. Обратите внимание на то, как аргумент Sh позволяет идентифицировать и вести работу с текущим листом:
Private Sub Workbook_SheetSelectionChange (ByVal Sh As Object, _
ByVal Tarqet As Excel.Range)
Sh.Range ("A1") = ActiveCell.Address
Application . StatusBar = Sh . Name & " : " & Target-Address
End Sub
Несколько усложнив код. можно добиться того, чтобы вместо простого выделения вызывался какой-нибудь ответ: например, чтобы в случае попадания определенной ячейки пли диапазона в новое выделение отображалось пользовательское диалоговое окно:
Private Sub Worksheet_SelectionCharnge (ByVal Target As Excel. Range)
If Target.Address = "$3$2" Then
MsgBox "Вы нашли нужную ячейку !"
End If
End Sub
Ход выполнения работы:
1. Наберите в редакторе VBA примеры из теоретической части и разберитесь, как они работают.
2. Создайте процедуру, которая при двойном щелчке по ячейке А1 заполняла бы любые ячейки столбца В списком дней недели.
3. Создайте процедуру, которая при выделении любого диапазона листа 2 заполняла бы его произвольным текстом красного цвета.
|
|
4. Написать процедуру, которая выполняла бы следующее: пользователь вводит в ячейку свое имя, а компьютер выводит стандартное окно с приветствием ( «Добрый день ...»)
Лабораторная работа № 9
«Создание пользовательской формы»
Цель: Изучить создание форм средствами VBA.
Краткие теоретические сведения
Пользовательская форма представляет собой объект VBA – UserForm. Для того чтобы вставить форму в проект необходимо дать команду Insert— UserForm (Вставка-Форма). В результате экран компьютера будет выглядеть следующим образом (Рисунок 2)
Рисунок 2 - Окноформы
Таблица 18 - Основные свойства формы:
Свойство | Описание |
Name | Устанавливает имя пользовательской формы. Т.е. это идентификатор формы в коде программы. |
Caption | Текст заголовка формы |
BorderStyle | Устанавливает тип границы формы 0 – границы нет 1– граница есть (используемая по умолчанию) |
BorderColor BackColor | Устанавливает цвет фона и текста формы |
Picture | Определяет рисунок, отображаемый как фон формы |
Left, Top | Определяют местоположение верхнего левого угла формы |
Таблица 19 -Основные методы формы:
|
|
Метод | Описание |
Show | Отображает форму на экране |
Hide | Скрывает форму |
Move | Перемещает форму |
PrintForm | Печатает форму на принтере |
Таблица 20 - Основные события формы:
Событие | Описание |
Initialize | Происходит во время вызова формы до ее загрузки |
Resize | Происходит при изменении размеров формы |
Terminate | Происходит при закрытии формы |
Click, DblClick | Происходит при одинарном и двойном щелчке мышкой по форме |
MouseDown, MouseUp | Происходит при нажатии и отпускании кнопки мыши. |
Activate, Deactivate | Происходит при активизации и деактивизации формы. |
При написании программ для работы с формой используется ограниченное количество специфических операторов. Перечислим основные:
Load- загружает форму. Например: Load Form1
UnLoad- Выгружает форму. Например Unload Form1
В программном коде, написанном в модуле формы, можно заменить имя формы на специальное слово Me. Например: UnLoad Me
Ход работы:
1. Создадим форму, которая рассчитывает стоимость товара с учетом НДС. Для этого откроем окно формы и добавим из панели элементов управления (Рисунок …) три надписи, три поля ввода и две кнопки.
Рисунок 3 - Панель элементов управления
Затем при помощи окна Свойства (Properties) задайте элементам управления значения следующим свойствам:
|
|
Таблица 21 –Свойства формы
Элемент управления | Свойство | Значение |
Форма | Caption | Расчет стоимости |
Надпись (Label1) | Caption | Стоимость без учета НДС |
Надпись (Label2) | Caption | НДС |
Надпись (Label3) | Caption | Стоимость с учетом НДС |
Кнопка (CommandBatton1) | Name | cmdOk |
Caption | Ok | |
Кнопка (CommandBatton2) | Name | cmdCancel |
Caption | Cancel | |
Поле ввода (TextBox1) | Name | txtCost |
Поле ввода (TextBox2) | Name | txtTax |
Поле ввода (TextBox3) | Name | txtResult |
В результате в окне конструктора форм должно быть следующее:
Рисунок 4- Проектируемая форма
После этого дважды мышкой кликните по кнопке OK и введите следующий программный код:
Дата добавления: 2019-09-13; просмотров: 296; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!