- •1. Теоретические основы
- •Структура редактора vba
- •Интеллектуальные возможности vba
- •Встроенные диалоговые окна
- •2. Основы программирования на vba Допустимые имена
- •Переменные
- •Оператор присвоения
- •Оператор With
- •Операторы управления
- •Оператор условного перехода
- •Оператор выбора
- •Оператор For – Next
- •Оператор For Each
- •Оператор While – Wend
- •Оператор Do – Loop
- •Методы формы
- •События формы
- •Элементы управления
- •Общие свойства элементов управления
- •Общие методы элементов управления
- •Общие события элементов управления
- •Кнопка (CommandButton)
- •Поле (TextBox)
- •Надпись (Label)
- •Переключатель (OptionButton)
- •Список (ListBox)
- •Поле со списком (ComboBox)
- •Отображение встроенных диалоговых окон
- •4. Задания для самостоятельной работы Задание 1. Работа со встроенными диалоговыми окнами
- •Задание 2. Использование элементов управления набора вкладок и набора страниц
- •Задание 3. Добавление данных в таблицу Excel
- •Задание 4 Добавление данных на лист «Реализация товаров» Задание 5. Добавление и удаление данных (с применением вкладок)
- •Задание 6. Поиск и изменение данных в таблицах.
- •Задание 7. Сортировка данных Задание 8. Создание ведомости (отчета)
- •Задание 9. Оформление курсовой работы.
- •Требования к курсовой работе
- •Задания на курсовую работу
Задание 2. Использование элементов управления набора вкладок и набора страниц
В приложениях Windows вкладки часто используются для диалоговых окон. Использование вкладок позволяет поместить в диалоговом окне множество элементов управления, разбивая их на категории.
Элемент управления MultiPage (набор страниц) позволяет создать две или более страниц в форме. Каждая страница содержит собственный набор элементов управления, которые действуют независимо друг от друга. Это позволяет разделить сложную форму на разделы, сделав ее более наглядной для пользователя.
Элемент управления TabStrip (набор вкладок) позволяет использовать простой набор элементов управления для нескольких наборов данных. Набор вкладок применяется, если есть несколько наборов данных в форме, которая использует простой набор связанных элементов управления.
Д обавьте к форме элемент управления MultiPage. Можно переименовывать вкладки, а также добавлять страницы. Номер отображаемой страницы задается свойством Value (0 – для первой страницы и т.д.).
Н а второй странице содержится элемент управления TabStrip. Одна и та же пара текстовых полей будет использоваться для всех четырех телефонов, поскольку для каждого телефона задается номер и код. Данные о телефонах будут храниться в массиве (переменная Phones) из четырех строк и двух столбцов. Массив объявляется в разделе (Общая область). Таким образом, массив будет доступен только для процедур формы. Для элемента управления TabStrip есть процедура события, программируемая так, чтобы каждый раз при выборе пользователем вкладки, текстовые поля набора вкладок обновлялись. Процедура события Change содержит операторы для копирования значений массива Phones в текстовые поля в зависимости от того, какая вкладка набора выбрана. У элемента управления TabStrip также есть свойство Value, которое равно 0, если выбрана первая страница и т.д. На рабочем листе следует задать имя диапазону ячеек, в которые будут копироваться номера телефонов.
События для элементов формы программируются аналогично предыдущим примерам
Dim Phones(3, 1) As String
Private Sub P1_Change()
'Здесь проверяется
обновление набора вкладок
'при переходе ко
второй странице
Call TabStrip1_Change
End Sub
Private Sub
MultiPage1_Change()
'Здесь проверяется
обновление набора вкладок
'При переходе ко
второй странице
Call TabStrip1_Change
End Sub
Private Sub UserForm_Initialize()
Dim RCount As Integer, CCount As Integer
For RCount = 0 To 3
For CCount = 0 To 1
Phones(RCount, CCount) =
Range("Номера").Cells(RCount + 1, CCount + 1).Text
Next CCount
Next RCount
Me.TextName.Text = Range("Имя").Text
Me.TextAddress.Text = Range("Адрес").Text
Me.TextCity.Text = Range("Город").Text
Private Sub
TabStrip1_Change()
Dim Phones(3, 1) As String
'Обновление
текстовых полей в соответствии с
массивом Phone
AreaCode.Text
= Phones(TabStrip1.Value, 0)
tPhone.Text =
Phones(TabStrip1.Value, 1)
End Sub
Me.TextZip.Text = Range("Индекс").Text
Me.MultiPage1.Value = 0
End Sub
Private Sub CancelButton_Click()
Me.Hide
End Sub
Private Sub OKButton_Click()
'Dim Phones(3, 1) As String
Dim RCount As Integer, CCount As Integer
Me.Hide
'Обновление диапазона номеров по масиву Phones
For RCount = 0 To 3
For CCount = 0 To 1
Range("Номера").Cells(RCount + 1, CCount + 1).Formula = Phones(RCount, CCount)
Next CCount
Next RCount
'Обновление остальных ячеек рабочего листа
Range("Имя").Formula = Me.TextName.Text
Range("Адрес").Formula = Me.TextAddress.Text
Range("Город").Formula = Me.TextCity.Text
Range("Область").Formula = Me.TextState.Text
Range("Индекс").Formula = Me.TextZip.Text
End Sub
Private Sub tPhone_Change()
'Dim Phones(3, 1) As String
'Обновление массива Phones при изменении ‘телефонного номера
Phones(TabStrip1.Value, 1) = tPhone.Text
End Sub
Private Sub AreaCode_Change()
'Dim Phones(3, 1) As String
'Обновление массива Phones при изменении кода области
Phones(TabStrip1.Value, 0) = AreaCode.Text
End Sub