- •«Программирование линейных алгоритмов на языке vba»
- •Краткие теоретические сведения
- •Ход работы:
- •Варианты заданий:
- •Организация ввода-вывода информации.
- •Краткие теоретические сведения
- •Ход работы
- •2. Выполните задачи для самостоятельного решения
- •«Программирование разветвляющихся алгоритмов на языке vba»
- •Краткие теоретические сведения
- •Ход работы
- •Задания для выполнения лабораторной работы:
- •«Программирование циклических алгоритмов на языке vba»
- •Краткие теоретические сведения
- •Инструкция For...Next
- •Инструкция While...Wend
- •Инструкция Do...Loop
- •Инструкция For Each...Next
- •Ход работы:
- •Задания:
- •«Программирование алгоритмов с массивами на языке vba»
- •Ход работы:
- •«Программирование функций обработки строк на языке vba»
- •Краткие теоретические сведения:
- •Задания для выполнения лабораторной работы
- •«Изучение объектной модели excel»
- •Краткие теоретические сведения:
- •Объект Workbook.
- •Объект Worksheet.
- •Ход выполнения работы:
- •«Обработка событий»
- •Краткие теоретические сведения:
- •Использование процедур событий
- •Реагирование на изменения в рабочем листе
- •События Change и SheetChange
- •Ход выполнения работы:
- •«Создание пользовательской формы»
- •Краткие теоретические сведения
- •«Использование элементов управления»
- •Краткие теоретические сведения:
Ход выполнения работы:
Наберите в редакторе VBAпримеры из теоретической части и разберитесь, как они работают.
Создайте процедуру, которая при двойном щелчке по ячейке А1 заполняла бы любые ячейки столбца В списком дней недели.
Создайте процедуру, которая при выделении любого диапазона листа 2 заполняла бы его произвольным текстом красного цвета.
Написать процедуру, которая выполняла бы следующее: пользователь вводит в ячейку свое имя, а компьютер выводит стандартное окно с приветствием ( «Добрый день ...»)
Лабораторная работа № 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- загружает форму. Например:LoadForm1
UnLoad- Выгружает форму. НапримерUnloadForm1
В программном коде, написанном в модуле формы, можно заменить имя формы на специальное слово Me. Например:UnLoadMe
Ход работы:
Создадим форму, которая рассчитывает стоимость товара с учетом НДС. Для этого откроем окно формы и добавим из панели элементов управления (Рисунок …) три надписи, три поля ввода и две кнопки.
Рисунок 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и введите следующий программный код:
Private Sub CommandButton1_Click()
Dim dCost As Double
Dim iTax As Long
Dim dResult As Double
iCost = CDbl(txtCost.Text)
iTax = CLng(txtTax.Text)
dResult = iCost * (1 + iTax / 100)
dResult = Format(dResult, "Fixed")
txtResult.Text = CStr(dResult)
End Sub
____________________________________________
Private Sub CommandButton2_Click()
Unload Me
End Sub
Запустите проект нажатием кнопкиF5. В результате на экране должно появиться нечто похожее на рисунок 5.
Рисунок 5 - Окно готовой формы с результатами вычислений
Для того, чтобы защитить результаты вычисления от вмешательства пользователя, строку с результатами вычислений можно защитить. Защиту можно провести используя свойства EnabledилиLocked. СвойствоEnabledзакрывает полностью строку с результатом. Результат можно только смотреть, но нельзя выделить или скопировать.
Добавьте в текст программы следующую процедуру:
Private Sub UserForm_Initialize()
txtResult.Enabled = False
End Sub
Чтобы дать пользователю возможность скопировать результат вычисления для дальнейшего использования можно заменить предыдущую процедуру следующей:
Private Sub UserForm_Initialize()
txtResult. Locked = True
End Sub
Выполните следующие задания самостоятельно:
Создать диалоговое окно, имеющее два поля ввода АргументиЗначение функциии кнопку ОКВ полеАргументвводится число, нажимается кнопкаОК, и в поле вводаЗначение функцииотобразится найденное значение функции. Функцию взять из лабораторной работы №1.
В диалоговом окне из предыдущего задания добавить поле ввода Точностьи счетчик. Работа счетчика и поляТочность синхронизированы. Счетчик задает количество десятичных знаков после запятой.
Лабораторная работа № 10