- •Лабораторная работа №4 Основы программирования на языке vba
- •4.1 Основные этапы работы с программами на vba в Excel
- •4.2 Простейший пример программы на языке vba
- •4.3 Типы данных. Объявление переменных и констант
- •4.3.1 Типы данных
- •4.3.2 Объявление переменных
- •4.3.3 Объявление констант
- •4.3.4 Область видимости переменных
- •4.4 Оператор If
- •4.5Безусловный переход. Оператор GoTo
- •4.6Цикл до. Оператор For
- •4.7 Массивы
- •4.8 Цикл пока. Оператор DoWhile
- •4.8 Подпрограммы
- •4.9 Функции
- •4.10 Область видимости процедур
- •4.11 Варианты заданий
- •Лабораторная работа №5 операции с ячейками и рабочими листами ms excel в программах на vba
- •5.1 Основные способы ссылок на ячейки рабочего листа Excel
- •5.2 Примеры обработки данных в ячейках рабочего листа msExcel
- •5.3 Примеры операций с рабочими листами ms Excel
- •5.4 Варианты заданий
- •Лабораторная работа №6 элементы управления в программах на vba
- •6.1 Размещение элементов управления на рабочем листе Excel
- •6.2 Пример использования элементов управления: кнопки, переключатели, счетчики, флажки, текстовые поля
- •6.3 Пример использования элементов управления: списки
- •6.4 Варианты заданий
- •Лабораторная работа №7 пользовательские формы в программах на vba
- •7.1 Создание пользовательской формы в Excel
- •7.2 Кнопки, текстовые поля, списки
- •7.3 Флажки, счетчики
- •7.4 Список из нескольких колонок
- •7.5 Список с возможностью выбора нескольких элементов
- •7.6 Составление списка в программе
- •7.7 Поля выбора ячеек
- •7.8 Варианты заданий
- •Лабораторная работа №8 программЫ на vba для работы с текстовыми данными
- •8.1 Подготовка среды vba для работы с файлами
- •8.2 Ввод данных из файла
- •8.3 Вывод данных в файл
- •8.4 Обмен данными между двумя файлами
- •8.5 Функции обработки строк
- •8.6 Варианты заданий
- •Литература
- •Содержание
7.3 Флажки, счетчики
Пример 7.2 – Требуется разработать пользовательскую форму (см. рисунок 7.3) для возведения чисел в заданную степень и для извлечения корней заданной степени (или для выполнения обеих этих операций). Для ввода числа, которое требуется возвести в степень (извлечь из него корень), должно использоваться текстовое поле. Показатель степени (для возведения или извлечения корня) задается с помощью счетчика. Для выбора операции (возведение в степень или извлечение корня) используются флажки. Результаты должны выводиться в текстовые поля. Вычисление должно выполняться при нажатии кнопки, размещенной на пользовательской форме. Кроме того, требуется создать кнопку для закрытия пользовательской формы.
Создание элементов управления и указание их свойств
Требуется создать пользовательскую форму и разместить на ней элементы управления, как показано на рисунке 7.4. Для элементы управления необходимо задать следующие свойства (конечно, имена элементов управления могут быть и другими):
форма в целом (UserForm): Name – Stepen_koren (имя формы, используемое для ссылок на нее); Caption – Степени и корни (заголовок формы);
надписи (Label): две надписи со свойствами Caption – Число и Показатель;
текстовые поля (TextBox): четыре текстовых поля со свойствами Name – Osnovanie, Pokazatel, Stepen, Koren (на рисунке 7.4 эти текстовые поля приведены сверху вниз);
счетчик (SpinButton): свойство Name – Pokaz;
флажки (CheckBox): два флажка со свойствами Name – Vozved и Izvlech, Caption – Возведение и Извлечение;
кнопки: кнопка для вычисления результата должна иметь свойства Name – Schet, Caption – Вычислить, а кнопка для закрытия формы – свойства Name – Vyhod, Caption – Выход.
Примечание – Важно понимать, что все связи между элементами управления (например, отображение значения счетчика, вывод результатов операций и т.д.) должны задаваться в программе для работы с формой.
Рисунок 7.3 – Пользовательская форма (пример 7.2) во время работы программы |
Рисунок 7.4 – Пользовательская форма (пример 7.2) в режиме редактирования |
Разработка программы
Программа для работы с формой для данной задачи должна иметь примерно следующий вид:
Private Sub UserForm_Initialize()
Vozved.Value = True
Izvlech.Value = True
End Sub
Private Sub Pokaz_change()
pokazatel.Value = Pokaz.Value
End Sub
Private Sub Raschet_click()
x = CSng(Osnovanie.Value)
y = CInt(Pokazatel.Value)
If vozved.Value = True Then
z = x ^ y
Stepen.Value = z
Else
Stepen.Value = ""
End If
If Izvlech.Value = True Then
z = x ^ (1 / y)
Koren.Value = z
Else
Koren.Value = ""
End If
End Sub
Private Sub Vyhod_click()
Unload Stepen_koren
End Sub
Процедура UserForm_Initialize() выполняется в начале работы с пользовательской формой. Операторы Vozved.Value = True и Izvlech.Value = True означают, что в начале работы с формой оба флажка (Vozved и Izvlech) должны быть установлены.
Процедура Pokaz_change() выполняется при каждом изменении значения счетчика Pokaz. Оператор Pokazatel.Value = Pokaz.Value означает, что значение счетчика Pokaz выводится в текстовое поле Pokazatel (т.е. присваивается его свойству Value). Это необходимо, чтобы видеть на экране значение счетчика (т.е. заданную степень).
Процедура Schet_Click() выполняется при каждом нажатии кнопки с именем Schet (т.е. кнопки Вычислить). В операторе x = CSng(Osnovanie.Value) переменной x присваивается значение текстового поля Osnovanie (т.е. число, которое требуется возвести в степень и/или извлечь из него корень); функция CSng преобразует значение этого поля в тип Single (т.е. вещественное число). В операторе y = CInt(Pokazatel.Value) переменной y присваивается значение поля Pokazatel (т.е. показатель степени), преобразованное в тип Integer.
Если выполняется условие vozved.Value = True (т.е. флажок Vozved установлен), то выполняется заданное возведение в степень, и результат выводится в текстовое поле Stepen. Если условие Vozved.Value = True не выполняется (т.е. флажок Vozved сброшен), то текстовое поле Stepen очищается (в него выводится пустая строка).
Аналогично, если установлен переключатель Izvlech, то выполняется извлечение корня заданной степени, и результат выводится в текстовое поле Koren.
Процедура Vyhod_Click(), выполняемая при нажатии кнопки с именем Vyhod, предназначена для закрытия формы. Она аналогична процедуре для этой цели, приведенной в предыдущем примере.