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



БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Энергетический факультет

 

А.В. Манюкевич

 

 

Лабораторный практикум

по курсу «Информатика»

«Программирование на языке VBA для EXCEL»

для студентов специальности 1 27 01 01 «Экономика и организация производства»

 

 

Минск 2007


УДК 620.9

 

Рецензенты

 

 

Манюкевич А.В.

 

Лабораторный практикум по курсу «Информатика. Программирование на языке VBA для EXCEL» для студентов специальности 1 27 01 01 «Экономика и организация производства»

Лабораторный практикум предназначен для студентов экономических специальностей. Рассмотрены принципы автоматизации проектов в EXCEL с использованием встроенного языка программирования Visual Basic for Application.

 

 


Лабораторная работа №1

«Программирование линейных алгоритмов на языке VBA»

Цель: Изучить основные методы программирования сложных функций на языке VBA.

 

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

Структурным элементом программы, написанной на языке VBA, является модуль– совокупность объявлений и процедур, объединенных в единое целое. По своему предназначению модули делятся на два типа: стандартные модули и модули объектов. К стандартным модулям относятся те, которые содержат макросы. К модулям объектов относятся модули, связанные с рабочей книгой, рабочими листами, формами и модули класса. Мы будем использовать только стандартные модули.

Чтобы осуществить вставку модуля необходимо находясь в среде VBA выполнить команду Insert (Вcтавить) / Module (Модуль).

Окно редактирования кода служит в качестве редактора для ввода и изменения кода внутри модуля. Каждый модуль состоит из области описания и одной или нескольких процедур. Процедура представляет собой последовательность операторов, которые часто называют программными кодами. Входящие в модуль процедуры объединены общей областью описания. В ней описываются данные и объекты, которые являются общепринятыми для процедур модуля. Иерархия указанных объектов такова:

· модуль;

· область описания;

· процедура;

· код;

· оператор.

При создании и редактировании кода удобно пользоваться командой Insert (Вcтавить) / Procedure (Процедуру). В появившемся окне необходимо выбрать функцию или подпрограмму и задать ее имя. После этого будут автоматически сформированы операторы начала и конца процедуры и можно переходить непосредственно к набору операторов процедуры. Для набора следующей процедуры в том же модуле необходимо повторить команду Insert (Вcтавить) / Procedure (Процедуру). Если нужно создать новый модуль повторяется команда Insert (Вcтавить) / Module (Модуль).

Проверка правописания осуществляется на этапе компиляции командой Debug (Отладка) / Compile VBAProject (компилировать). Для запуска программы требуется выполнить команду Run (Запуск) / Run Sub/UserForm (Запуск подпрограммы/UserForm) или нажать клавишу <F5> или соответствующую кнопку панели инструментов.

В появившемся окне следует выбрать имя нужной программы и щелкнуть по кнопке Run (Выполнить).

Для того чтобы сохранить или открыть созданную ранее программу используют стандартные средства Excel, например, соответствующие пункты меню Файл/Сохранить как… , Открыть.

Запуск или редактирование существующего программного кода после запуска Excel может быть осуществлен после последовательного выполнения команд: Tool (Сервис) / Macro (Макрос) / Макросы. В появившемся диалоговом окне следует указать имя процедуры и нажать кнопку, отвечающую за выполнение требуемого действия (выполнить или изменить).

Структура программного кода

В общем виде программа на VBA выглядит следующим образом:

[Option Explicit]

[Private | Public] [Static] Function <Имя > ([<Список аргументов >])

[Dim <Имя > [As <Тип >]]

[Const <Имя > [As <Тип >] = <Выражение >]

[Инструкции ]

[Exit Function]

[Инструкции ]

End Function

В этой записи:

Option Explicit – инструкция, предписывающая явное описание всех переменных, встречающихся в программе;

Public – ключевое слово, которое указывает, что процедура доступна для всех других процедур во всех модулях;

Private – ключевое слово, указывающее, что процедура доступна для других процедур только того модуля, в котором она описана;

Static – ключевое слово, указывающее, что локальные переменные процедуры сохраняются в промежутках времени между вызовами этой процедуры;

<Имя> – имя процедуры, удовлетворяющее стандартным правилам именования;

<Список аргументов> – список переменных, представляющий аргументы, которые передаются в процедуру при ее вызове. Имена переменных разделяются запятой.

Dim <Имя> [As <Тип>] –блок описания переменных;

Const <Имя> [As <Тип>] = <Выражение> –блок описания констант;

Инструкции – любой набор любых команд VBA;

Exit Function – инструкция, выполнение которой приводит к немедленному выходу из процедуры;

Создадим пользовательскую функцию F(x) = cos2 (π*x).

Function F(x)

Pi = Atn(l) / 4

F = Cos(Pi * x)^2

End Functio n

Поскольку в VBA отсутствует стандартное число π, то оно вычисляется по функции:

Pi = Atn(l) / 4

 

По умолчанию функция попадает в раздел Определенные пользователем списка Категория окна Мастер функций EXCEL. Вызов данной функции не отличается от вызова стандартных функций EXCEL.

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

 

Таблица 1- Основные математические функции VBA

Функция Возвращаемое значение
Abs(number) Абсолютное значение числа.
А tn (number) Арктангенс
С os (number) Косинус
Exp(number) Экспонента, т.е. результат возведения основания натурального логарифма в указанную степень
Log(number) Натуральный логарифм.
Rnd(number) Случайное число из интервала [1,0]. Если number меньше нуля, то Rnd возвращает каждый раз одно и то же число. Если number больше нуля или опущено, то Rnd возвращает следующее случайное число в последовательности. Если number равняется нулю, то Rnd возвращает случайное число, полученное при предыдущем вызове этой функции. Перед вызовом функции Rnd используйте оператор Randomize.
Sgn (number) Знак числа. Если число больше 0, то функция возвращает значение 1, если меньше, то -1. И если число равно 0, то функция возвращает 0.
Sin (number) Синус
Sqr(number) Квадратный корень числа
Tan(number) Тангенс
Fix(number), Int (number) Обе функции отбрасывают дробную часть числа и возвращают целое значение. Различие между данными функциями состоит в том, что для отрицательного значения параметра (number) функция Int возвращает ближайшее отрицательное целое число, меньшее либо равное указанному, а Fix – ближайшее отрицательное целое число, большее либо равное указанному

 

 

Типы данных

Типы данных являются одним из важнейших элементов языка VBА. Подобно всем современным языкам программирования, VBA поддерживает несколько типов данных, которые можно использовать для объявления типов переменных или создания массивов.

При объявлении переменных тип данных указывается после ключевого слова As, с помощью одного из ключевых слов, представленных в Таблице 2.

 Таблица 2- Типы данных

Тип данных Значения Размер , байт
Byte (байт) От 0 до 255 1
Boolean (логический) True или False 2
Integer (целое) От -32 768 до 32 767 2
Long (длинное целое) От -2 147 483 648 до 1 147483 647 4
Single (с плавающей точкой обычной точности)  От -3,402823 Е 38 до -1,401298 Е -45 для отрицательных значений. От 1,401298 Е -45 до 3,402823 Е38 для положительных значений 4
Double (с плавающей точкой двойной точности) От -1,79769313486232 Е 308 до -4,94065645841247 Е -324 для отрицательных значений, от 4,94065645841247 Е -324 до 1,79769313486232 Е 308 для положительных значений 8
Currency (денежный) От -922 337 203 685 477,5808 до 922 337 203 685 477,5807 8
Decimal (масштабируемое целое) ± 79228162514264337 593 543 950 335 без дробной части; ± 7,9228162514264337593543950335 с 28 знаками справа от запятой, минимальное ненулевое значение равняется ± 0,0000000000000000000000000001 14
Date (даты и время) От 1 января 100 г, до 31 декабря 9999 г. 8
Object (объект) Любой указатель объекта 4
String (строка переменной длины) От 0 до приблизительно 2 миллиардов 10 + длина строки
String (строка постоянной длины) От 1 до приблизительно 65 400 Длина строки
Variant (числовые подтипы) Любое числовое значение (до границ диапазона для типа Double) 16
Variant (строковые подтипы) Как для строки (String) переменной длины 22 + длина строки
Тип данных, определяемый пользователем(с помощью ключевого слова Туре) Диапазон каждого элемента определяется его типом данных Размер определяется элементами

 

Переменные типа Byte, Boolean, Integer, Long, Currency, Decimal, Single, Double и Date в VBA называются числовыми переменными. Числовыми переменными являются также переменные подтипов Empty, Integer, Long, Single, Double, Currency, Decimal, Date, Error, Boolean и Byte типа Variant.

Переменные типа String относят к строковым переменным. Этот тип переменных может содержать буквы, цифры пробелы, знаки пунктуации и специальные символы.

VBA не требует обязательного объявления переменных. В случае если переменная не была объявлена, ей автоматически присваивается тип Variant. Этот тип является универсальным и может содержать данные различных подтипов: Integer, Long, String и т. п.

 

Соглашение об именах констант и переменных

При написании программ на VBA принято придерживаться определенных пра­вил при задании имен констант и переменных в зависимости от их типа. Напри­мер, при объявлении переменной типа Integer вначале имени ставится специальный префикс int. Префиксы, используемые в именах переменных в зависимости от их типа, представлены в таблице 3.

 

Таблица 3 - Префиксы, используемые в именах переменных в зависимости от их типа

Тип данных Префикс
Boolean bin
Byte byt
Currency cur
Date (Time) dtm
Double dbl
Error err
Integer int
Long lng
Object obj
Single sng
String str
Типы данных, определенные пользователем udt
Variant vnt

 

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

 

Ход работы:

 

1. Создать программы на VBA по вариантам для следующих функций

Вариант 1 2 3 4 5 6 7 8 9 10
Функции 1,3,5 2,4,6 3,5,7 4,6,8 5,7,9 6,8,10 7,9,1 8,10,2 9,1,3 10,2.4

2. Построить графики функций в EXCEL.

3. Подготовить отчет по лабораторной работе в текстовом редакторе WORD. Отчет должен включать алгоритм решения задачи, текст программы и графический результат расчета функции.

4. Сохранить книгу Excel и файл отчета на диске А под именем Lab_rab1

 

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

1. ) для переменных x,y

2.  для переменных с,x,y

3.  для переменных b, x,y

4.  для переменных x,y,z

5.  для переменных x,y,z

6.  для переменных x,y,z

7.  для переменных x,y

8.  для переменных x,y,z

9.  для переменных x,y,z

10.  для переменных x,y,z

 

Лабораторная работа № 2.

Организация ввода-вывода информации.

Цель: Научиться управлять созданием диалоговых окон на языке VBA.

 

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

 

Встроенные диалоговые окна

В программном коде на VBA ввод и вывод организуется с помощью встроенных диалоговых окон: окон ввода и окон сообщений. Окно сообщений (процедура MsgBox) выводит простейшие сообщения для пользователя, а окно ввода (Функция InputBox) обеспечивает ввод информации.

Функция InputBox выводит на экран диалоговое окно, содержащее сообщение и поле ввода, устанавливает режим ожидания ввода текста пользователем или нажатия кнопки. Затем возвращает значение типа String , содержащее текст, введенный в поле.

Синтаксис:

InputBox (promt, [, title] [, default] [, xpos] [, ypos] [, helpfile, context])

Аргументы:

prompt – строковое выражение, отображаемое как сообщение в диалоговом окне.

title – строковое выражение, отображаемое в строке заголовка диалогового окна. Если этот аргумент опущен, в строку помещается имя приложения.

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

xpos – числовое выражение, задающее расстояние по горизонтали между левой границей диалогового окна и левым краем экрана. Если этот аргумент опущен, диалоговое окно выравнивается по центру экрана по горизонтали.

ypos – числовое выражение, задающее расстояние по вертикали между верхней границей диалогового окна и верхним краем экрана. Если этот аргумент опущен, диалоговое окно помещается по вертикали примерно на одну треть высоты экрана.

helpfile – строковое выражение, определяющее имя файла справки, содержащего справочные сведения о данном диалоговом окне. Если этот аргумент указан, необходимо также наличие аргумента context.

context – числовое выражение, определяющее номер соответствующего раздела справочной системы. Если этот аргумент указан, необходимо также наличие аргумента helpfile.

Процедура MsgBox выводит на экран диалоговое окно, содержащее сообщение, устанавливает режим ожидания нажатия кнопки пользователем. Затем возвращает значение типа Integer, указывающее, какая кнопка была нажата.

 

Таблица 4- Значения, возвращаемые процедурой MsgBox

Значение 1 2 3 4 5 6 7
Нажатая кнопка OK Отмена Стоп Повтор Пропустить Да Нет

 

Синтаксис:

MsgBox (prompt, [, button][, title] [, helpfile, context])

Аргументы:

prompt – строковое выражение, отображаемое как сообщение в диалоговом окне.

button – числовое выражение, представляющее сумму значений, которые указывают число и тип отображаемых кнопок, тип используемого значка, основную кнопку. Значение этого аргумента по умолчанию равняется 0.

 

Таблица 5 - Значения аргумента, определяющие отображаемые кнопки

 

Константа Значение Отображаемые кнопки
VbOKOnly VbOKCancel VbAbortRetryIgnore VbYesNoCancel VbYesNo VbRetryCancel 0 1 2 3 4 5 OK OK, Отмена Стоп, Повтор, Пропустить Да, Нет, Отмена Да, Нет Повтор, Отмена

 

 

Таблица 6 - Значения аргумента, определяющие отображаемые значки

 

Константа Значение Значок сообщения
VbCritical 16
VbQuestion 32
VbExclamation 48
VbInformation 64

 

Таблица 7 - Значения аргумента, определяющие основную кнопку окна

 

Константа Значение Номер основной кнопки
VbDefaultButton1 VbDefaultButton2 VbDefaultButton3 VbDefaultButton4 0 256 512 768 1 2 3 4

title– строковое выражение, отображаемое в строке заголовка диалогового окна. Если этот аргумент опущен, в строку помещается имя приложения.

helpfile– строковое выражение, определяющее имя файла справки, содержащего справочные сведения о данном диалоговом окне. Если этот аргумент указан, необходимо также наличие аргумента context.

context– числовое выражение, определяющее номер соответствующего раздела справочной системы. Если этот аргумент указан, необходимо также наличие аргумента helpfile.

 

Ход работы

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

Sub Тест()


Дата добавления: 2019-09-13; просмотров: 201; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!