События 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; просмотров: 297; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!
