Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

8583

.pdf
Скачиваний:
1
Добавлен:
25.11.2023
Размер:
1.74 Mб
Скачать

Рисунок 18. экранная форма «Ведомость лабораторных работ»

Алгоритм решения задачи

1. Создать экранную форму

1.1.Создать новую рабочую книгу в Excel и перейти в редактор Visual Basic (Разработчик – Visual Basic).

1.2.Создать пользовательскую форму (Insert UserForm).

Переименовать форму. Для этого на панели Properties меняем свойство

Caption ‒ ввести «Ведомость лабораторных работ» (форма должна быть активной). Выбрать свойство Name, вместо UseiForm1 ввести «Ведомость».

Это имя, по которому к форме будет обращаться программа.

1.3. Добавить элементы управления в экранную форму как показано на рисунке 18. Вставить в левый верхний угол формы три надписи (Label). Задать свойству Caption значения для соответствующих надписей: «Дата занятия», «Фамилия И.О. студента» «Факультет».

61

1.4. Чуть правее этих трех надписей создать текстовые поля для последующего ввода информации в них (Рисунок 18). Не менять свойства для этих элементов.

1.5. По образцу (рисунка 18) аналогично создавать элементы управления и описывать значения их свойств согласно таблице 6. При этом необходимо учитывать замечания представленные ниже.

 

 

 

 

Таблица 6

 

Свойства элементов управления

 

 

 

 

 

 

Тип элемента

Значение

Значение свойства

 

Другие

свойства

 

управления

Caption

 

свойства

Name

 

 

 

 

 

Надпись

Label1

Дата занятий

 

-

 

 

 

 

 

Поле

TextBoxl

-

 

-

 

 

 

 

 

Надпись

Label2

Фамилия И.О. студента

 

_

 

 

 

 

 

Поле

TextBox2

-

 

-

 

 

 

 

 

Надпись

Label3

Факультет

 

-

 

 

 

 

 

Поле

TextBox3

-

 

-

 

 

 

 

 

Рамка

Frame1

Форма обучения

 

-

 

 

 

 

 

Переключатель

OptionButtonl

Очная

 

Value=True

 

 

 

 

 

Переключатель

OptionButton2

Вечерняя

 

-

 

 

 

 

 

Переключатель

OptionButton3

Заочная

 

_

 

 

 

 

 

Рамка

Frame2

Данные по лаб. работе

 

-

 

 

 

 

 

Надпись

Label4

Тема занятия

 

-

 

 

 

 

 

Поле со

ComboBoxl

-

 

-

списком

 

 

 

 

 

Флажок

CheckBoxl

Исх. данные взять с

 

Value=False

носителя

 

 

 

 

 

 

 

 

 

 

Надпись

Label5

Имя файла на носителе

 

Enabled=False

 

 

 

 

 

Поле со

ComboBox2

-

 

-

списком

 

 

 

 

 

 

 

 

 

62

Командная

ComandButtonl

Сохранить

Default=True

кнопка

 

 

 

 

 

 

 

Командная

ComandButton2

Отмена

Cancel=True

кнопка

 

 

 

 

 

 

 

Замечание 1. Вставить в форму дважды элемент Рамка (Frame).

Сначала нужно этот элемент разместить на форме, а затем в нём поместить другие элементы управления.

Замечание 2. При создании элементов управления необходимо придерживаться того порядка, который указан в таблице 6. Иначе VBA

присвоит им имена с другой нумерацией, а при запуске формы они будут работать неправильно.

Замечание 3.

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

Свойства командных кнопок Кнопка «Сохранить». Чтобы командная кнопка выполняла функцию

сохранения, необходимо задать ей значение свойства Default (По умолчанию), равное True (Истина). При этом в экранной форме только одна командная кнопка может иметь значение True свойства Default.

Кнопка «Отмена». Щелчок по этой кнопке должен вызывать отмену введённых команд. Для этого необходимо задать для неё свойству Cancel

значение True. При этом так же как и в случае свойства Default только одна командная кнопка в экранной форме может иметь значение True свойства

Cancel.

Свойства переключателей

Для переключателей в группе «Форма обучения» нужно указать, какой

из них будет выбран по умолчанию (будет находиться во включённом

состоянии до выбора, выполненного пользователем).

63

Для этого нужно задать значение True свойства Value. Установим его

для первого переключателя Очная. Отметим, что в группе только один

переключатель может иметь значение True свойства Value.

Блокировка элементов управления

В форме элемент управления «Имя файла на носителе» необходим только, когда установлен флажок «Исходные данные взять с носителя».

Чтобы поле со списком «Имя файла на носителе» было недоступно пользователю, а также отображалось серым цветом (это говорит о недоступности элемента), его свойство Enabled (Разблокировка) нужно установить равным False (Ложь). Когда флажок «Исходные данные взять с носителя» будет установлен, свойство Enabled следует поменять на True. Это будет осуществляться программным путём.

Свойства флажка

Чтобы в исходном состоянии флажок не был установлен, следует задать равным False значение его свойства Value.

Сохранить созданную форму с именем «Ведомость».

Практические задания

Написать программу на VBA с использованием пользовательских форм и процедур к ним в соответствии с вариантом. На форме использовать кнопки для повторения, завершения работы программы и кнопку запуска программы с листа Excel.

Варианты заданий

1.Написать программу на VBA, которая определяет количество дней оставшихся до дня рождения некоторого человека. Использовать на форме ввод имени этого человека, даты его рождения и вывод результата с приветствием пользователя.

2.Написать программу на VBA, которая определяет количество дней прошедших со дня рождения некоторого человека. Использовать на форме

64

ввод имени этого человека, даты его рождения и вывод результата с приветствием пользователя.

3. Написать программу на VBA, которая определяет количество дней оставшихся до студенческих каникул. Использовать на форме ввод имени,

дату начала каникул и вывод результата с приветствием пользователя.

4.Написать программу на VBA, которая определяет количество дней прошедших со дня некоторой указанной вами даты. Использовать на форме ввод имени, указанной даты и вывод результата с приветствием пользователя.

5.Написать программу на VBA под названием «Кухонный таймер», в

которой при достижении указанного времени готовки блюда, выдаѐтся соответствующее сообщение. На форме показать имя повара и название приготовляемого блюда.

6.Написать программу на VBA под названием «Секундомер», в которой одна кнопка отвечает за запуск секундомера (начинается отчет времени в секундах), а другая кнопка выдает информацию о количестве прошедших секунд. На форме предусмотреть вывод имени пользователя.

7.Написать программу на VBA под названием «Будильник» с

использованием формы, в которой при достижении указанного времени выдаѐтся надпись «Подъѐм!».

8.Написать программу на VBA с использованием формы, которая через каждые 30 секунд выдаѐт сообщение с указанием количества минут оставшихся до конца занятия. Предусмотреть ввод времени до конца занятий.

10.Написать программу на VBA с использованием формы под названием «Жребий», в которой пользователь должен угадать, что выдаст случайным образом программа «орѐл» или « решка». На форме предусмотреть ввод стороны монеты и вывод результата.

11.Написать программу на VBA с использованием формы под названием «Очередь», в которой нужно ввести пять фамилий, организовать вывод фамилий случайным образом.

65

12.Написать программу на VBA с использованием формы в которой происходит перевод одних единиц измерения в другие, по выбору. Для температуры ‒ градусы по Цельсию и в градусы по Форенгейту, сантиметры в дюймы, угловые градусы в радианы.

13.Написать программу на VBA с использованием формы под названием «Вопрос», в которой на заданный вопрос предлагается выбрать один из трѐх предложенных вариантов ответа. Предусмотреть вывод сообщения о том правильный ли нет был ответ.

14.Написать программу на VBA с использованием формы под названием «Телефонный справочник». Использовать пять фамилий. Для выбора нужной фамилии использовать список фамилий. После выбора нужной фамилии предусмотреть вывод соответствующего номера телефона.

Использовать добавление и удаление фамилий из списка справочника.

15. Написать программу на VBA с использованием формы для вычисления нескольких тригонометрических функций для угла, задаваемого в градусах и вывода полученного результата.

66

Лабораторные работы 8. Построение калькулятора с помощью

пользовательской формы

Цель работы: отработка навыков построения пользовательских форм c

использованием изображений, логических операторов, операторов обработки текстовой информации.

Теоретические сведения

Рисунки в пользовательских формах. На пользовательских формах можно размещать графическую информацию. Для этого используется элемент управления Image, имеющее свойство Picture в котором нужно указать графический файл с картинкой (либо вставить из буфера обмена). В таблице 7

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

 

 

 

 

 

Таблица 7

 

Свойства элемента управления Image

 

 

 

 

 

 

Свойство

 

 

Значение

 

AutoSize

 

Допустимые значения: True и False. True –

 

 

автоматически изменяет размер рисунка, чтобы

 

 

он целиком отображался, иначе False.

 

BackColor

 

Цвет области фона. Можно закрасить фон, если

 

 

картинка меньше объекта.

 

BorderColor

 

Цвет рамки.

 

 

 

BorderStyle

 

Допустимые значения: 0 fmBorderStyler и 1

 

 

fmBorderStyler. 0 используется, когда нет рамки

 

 

вокруг рисунка, 1 означает наличие рамки.

Picture

 

Задает графический файл с картинкой.

 

PictureAligment

 

Определяет

режимы

выравнивания

рисунка

 

 

относительно границ объекта.

 

PictureSizeMode

 

Определяет

режим

согласования

размеров

 

 

рисунка и размеров элемента управления.

PictureTiling

 

Разрешение (запрет) размещения рисунка по всей

 

 

поверхности элемента управления, если размер

 

 

рисунка меньше размера объекта.

 

SpecialEffect

 

Применение к области рисунка различных

 

 

эффектов.

 

 

 

 

 

 

 

 

67

Обработка текстовой информации. VBA имеет возможность обработки текстовой информации. Для этих целей используются функции обработки строк. Рассмотрим некоторые из них.

Выделение подстроки. В строке символов можно выделить подстроку символов с помощью функций: Left(), Right() и Mid(). Функции Left() и Right() выделяют строку символов, начиная с крайнего левого (крайнего правого) символа, а функция Mid() позволяет выделить любую подстроку символов.

Синтаксис функций:

Left(<строка>, <число символов>)

Right(<строка>, <число символов>)

Mid(<строка>, <номер позиции>, <число символов>)

Другими часто используемыми строковыми функциями являются:

Len(<строка>) ‒ определяет длину строки; InStr(<старт>, <строка1>, <строка2>, <сравнение>) ‒ возвращает позицию первого совпадения строки 2

со строкой 1, поиск начинается с аргумента <старт>, <сравнение>

(необязательный параметр) означает тип сравнения; Replace(<строка>, <поиск>, <замена>) ‒ заменяет в строке символов <строка> символы <поиск>

на символы <замена>.

Объединение строк. В VBA для работы со строками используется один лишь оператор ‒ оператор объединения (конкатенация) нескольких строк в одну. Он обозначается знаком «&» или «+» (в зависимости от версии).

Работа с массивами строк. Для этого есть функции: Split(<строка>, <разделитель>) – преобразование строки символов <строка> в массив из подстрок, разделенных по умолчанию пробелом; Join(<массив строк>, <разделитель>) – преобразование массива строк <массив строк> в одну строку с указанным разделителем <разделитель>; Filter(<массив строк>, <поиск>, <включение>, <сравнение>) – ищет в массиве строк <массив строк> подстроку

68

<поиск>. <включение> и определяет будут ли возвращаться только те строки массива, которые содержат искомую подстроку или наоборот используется

<сравнение> (метод сравнения строк).

Генерация строки символов. В этом случае можно использовать функции: Space(), String(). Space(<число>), которая создаёт строку пробелов из числа <число> пробелов; String(<число>, <символ>), которая создаёт строку символов из указанного числа символов <число> <символ>.

Пример работы со строковыми функциями

Private Sub Button_Click()

If OptionButton1.Value = True Then

‘конкатенация строк

Result.Caption = TextBox1.Text & TextBox2.Text

ElseIf OptionButton2.Value = True Then

‘ вырезание подстроки символов

Result.Caption = Replace(TextBox1.Text, TextBox2.Text, "")

ElseIf OptionButton3.Value = True Then

‘определение длины строки

Result.Caption = Len(TextBox1)

End If

End Sub

Данная программа при щелчке на объект Button будет проверять какой флажок активен в данный момент и, основываясь на этом, будет выбирать формулу для решения действия. При сложении строк (конкатенации) строки

TextBox1 и TextBox2 будут объединяться с помощью оператора &. При вырезании подстроки будет использоваться функция Replace, которая заменит искомую подстроку TextBox2 в строке TextBox1 на пустую строку «». Для нахождения длины строки используется функция Len, которая и возвращает длину строки TextBox1.

69

Логические операторы. VBA имеет возможность работать с логическими операторами: AND (конъюнкция), OR (дизъюнкция), NOT

(отрицание), XOR (исключение), EQV (эквивалентность) и IMP

(импликация) в которых в качестве операнда можно использовать любое действительное выражение, которое имеет тип результата Boolean или Null в

том случае, если хотя бы один из операндов имеет значение Null.

Логические операторы имеют свои приоритеты выполнения в выражении. Их очередность следующая: NOT, AND, OR, XOR, EQV и IMP.

Пример использования логических операторов

Dim a, b, c As Boolean

a = CBool(ComboBox2.Value)

b = CBool(ComboBox3.Value)

If CheckBox1.Value = True Then

a = Not a

End If

Пример создания фрагмента инженерного калькулятора

Разработать инженерный калькулятор, который имеет следующие функциональные возможности: выполнение арифметических операций в десятичной системе счисления, перевод чисел из десятичной системы счисления в восьмеричную и шестнадцатеричную системы и, обратно, из восьмеричной и шестнадцатеричной систем в десятичную.

Прежде всего, необходимо создать форму (Insert – UserForm). На панели Properties ввести свойство Caption – Инженерный калькулятор.

Разместить на форме два текстовых поля для ввода числовых данных и присвоить им имена: txtDec1, txtDec2. Добавить на форму текстовое поле для вывода результатов арифметических вычислений и назвать txtDec3.

Создать, разместить на форме пять кнопок для реализации событийных процедур (арифметических операций) и присвоить им имена: cmdPlus

(сложение), cmdMinus (вычитание), cmdUmn (умножение), cmdDel

70

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]