Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
метод 2.docx
Скачиваний:
2
Добавлен:
21.12.2018
Размер:
3.17 Mб
Скачать

1.4.3 Основные понятия и возможности vba

Существует целый ряд систем программирования, позволяющих в той или иной степени реализовать концепцию объектно-ориентированного подхода при разработке программных средств. К ним относятся С++, Java, Visual Basic (VB).

В отличие от VB, VBA не является языком объектно-ориентированного программирования в строгом смысле этого слова, но в нем широко используются элементы объектно-ориентированного подхода и связанные с ним понятия.

Язык программирования Visual Basic for Application вначале стал применяться как средство, которое позволило Excel, а затем и другим приложениям Microsoft Office программно управлять их собственной средой. Оно взаимодействовало с другими приложениями, используя механизм автоматизации OLE.

Язык VBA — это подмножество VB, которое включает почти все его средства создания приложений, структуры данных и управляющие структуры, возможность создания пользовательских типов данных.

Visual Basic for Application, как и Visual Basic, является языком визуального и событийно управляемого программирования. Он реализует следующие возможности:

  • создание нестандартного окна диалога в виде формы с базовым набором элементов управления,

  • создание формы на рабочем листе, написание процедур, обрабатывающих события.

Язык VBA не обладает всеми возможностями VB, но позволяет работать с огромным набором объектов, определенных в приложении MS Office.

Являясь развитым языком программирования, VBA также включает в себя полноценную интегрированную среду разработки с полным набором специализированных окон, упрощающих проектирование, отладку и тестирование программ.

Интегрированная среда разработки VBA представлена приложением, называемым редактором Visual Basic.

Типы данных

Тип

Размер

Byte (байт)

1 байт

Boolean (булев)

2 байта

Integer (целое)

2 байта

Long (длинное целое)

4 байта

Single (с плавающей точкой одинарной точности)

4 байта

Double (с плавающей точкой двойной точности)

8 байт

Date (дата)

8 байт

String (строка фиксированной длины)

От 0 до 65400 символов

Переменные

Переменная должна быть объявлена прежде, чем ее можно использовать.

Объявление производится при помощи операторов Dim, Private, Static Public:

  • Dim или Static – данными инструкциями описаны локальные переменные. Данные переменные распознаются только в процедуре, в которой они описаны;

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

  • Publicпеременные уровня модуля, описанные при помощи данной инструкции, являются доступными для всех процедур проекта и называются открытыми.

Арифметические операторы

Основные операторы и их приоритетность:

^ возведение в степень

*, / умножение и деление

\ деление без остатка

Mod остаток

+, - сложение и вычитание

& слияние строк

Логические операторы

And конъюнкция (логическое И)

Or дизъюнкция (логическое ИЛИ)

Not отрицание (логическое НЕТ)

Xor исключение (логическое исключающее ИЛИ)

Egv логическая эквивалентность

Imp логическая импликация

Операторы сравнения

= равно

> больше

< меньше

>= больше или равно

<= меньше или равно

<> не равно

Is сравнение двух операндов, содержащих ссылки на объекты

Like сравнение двух строковых выражение

Математические функции

Abs модуль (абсолютная величина) числа

Atn арктангенс

Cos косинус

Exp экспонента, т.е. результат возведения основания натурального логарифма в указанную степень

Log натуральный логарифм

Rnd возвращает очередное число из последовательности псевдослучайных чисел из интервала [0,1]

Rnd(number)

Если значение параметра number меньше 0, то Rnd возвращает каждый раз одно и тоже число.

Если значение параметра number больше 0 или этот параметр опущен, то Rnd возвращает следующее число в последовательности.

Если значение параметра number равно 0, то Rnd возвращает случайное число, возвращенное при предыдущем вызове этой функции.

Sgn знак числа

Sin синус

Sgr квадратный корень из числа

Tan тангенс

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

Преобразование числа в строку

Функция Cstr возвращает значение типа Variant(String), являющееся строковым представлением числа.

Пользовательские форматы

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

0

Резервирует позицию цифрового разряда.

Отображает цифру или нуль.

#

Резервирует позицию цифрового разряда.

Отображает цифру или ничего.

. (точка)

Резервирует позицию десятичного разделителя.

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

%

Резервирует процентное отображение числа.

, (запятая)

Разделитель разряда сотен от тысяч

:

Разделитель часов, минут и секунд в категории форматов Time

/

Разделитель дня, месяца и года в категории форматов Date

Е+, Е-

Разделитель мантиссы и порядка в экспоненциальном формате

d, m, y

Резервирует позицию при выводе дня, месяца и года в категории форматов Date

h, m, s

Резервирует позицию при выводе часа, минуты и секунды в категории форматов Time

Примеры:

Формат

Результат

Format(1.2^2,”##.###”)

1.44

Format(1.2^2,”##.000”)

1.440

Format(sin(1)*Exp(5),”#.###e+##”)

1.249e+2

Format(Now,”hh:mm:ss”)

18:57:23

Format(Now,”dd/mm/yyyy”)

20.01.2010

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

Символы, которые нельзя ввести с клавиатуры

Зачастую случается, что надо ввести какой-либо символ, для которого отсутствует клавиша на клавиатуре (например, символ копирайта). Другая ситуация - когда надо в строку включить служебный символ VBA (самый распространенный случай - включение двойных кавычек).

Чтобы включить в строку символы, которые невозможно ввести с клавиатуры, или которые имеют особое значение для VBA, используется функция Chr:

Chr (Charcode)

Charcode - любое численное выражение, являющееся допустимым кодом для набора символов, используемого компьютером. Должен быть целым числом от 0 до 255.

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

Поскольку символы, используемые для начала новой строки, являются очень важными при форматировании сообщений и других строковых данных, которыми манипулируют VBA-процедуры, имеется несколько предопределенных констант для этих символов, чтобы не было необходимости использовать функцию Chr:

vbCr символ возврата каретки. Эквивалент Chr(13)

vbLf символ смещения на одну строку. Эквивалент Chr(10)

vbCrLf символ возврата каретки+смещения на одну строку. Эквивалент Chr(13)+ Chr(10)

vbTab символ табуляции. Эквивалент Chr(9)

Окно ввода

Функция InputBox выводит на экран диалоговое окно, содержащее сообщение, поле ввода и две кнопки OK и Cancel. Она устанавливает режим ожидания ввода текста пользователем и нажатия кнопки, а затем, при нажатии на кнопку:

OK - возвращает значение типа String, содержащее текст, введенный в поле ввода.

Cancel - возвращается пустая строка (Empty).

InputBox (Prompt [,Title] [,Default] [,Xpos] [,Ypos] [,Helpfile, Context])

где:

Prompt — строковое выражение, отображаемое как сообщение в диалоговом окне. Строковое выражение Prompt может содержать несколько строк. Для разделения строк допускается использование:

  • символа возврата каретки (Chr(13)),

  • символа перевода строки (Chr(10))

  • комбинация этих символов (Chr(13) & Chr(10));

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

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

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

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

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

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

Например:

a1 = Val(InputBox("Введите а1","Вычисление выражения"))

Окно сообщения1

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

MsgBox(Prompt[, Buttons] [, Title] [, Helpfile, Context]),

где:

Prompt — строковое выражение, отображаемое как сообщение в диалоговом окне;

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

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

Helpfile — строковое выражение, определяющее имя файла справки, содержащего справочные сведения о данном диалоговом окне. Если этот параметр указан, необходимо указать также параметр Context;

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

Примеры использования процедуры MsgBox:

Тект программы

Результат

Комментарии

MsgBox y

Простое окно сообщения

MsgBox “x=” & x & vbCr & “y=” & y

Окно с сообщением, выводимым в две строчки

MsgBox “y=” & y, vbInformation

Окно с сообщением и информационным значком

MsgBox “y=” & y, vbInformation+vbDefaultButtjn1 + vbYesNo

Окно с сообщением, информационным значком и двумя кнопками

MsgBox “y=” & y, vbInformation, “Нахождение квадрата”

Окно с сообщением, информационным значком и пользовательским заголовком

Пример написания программы:

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

Решение:

  1. Составим алгоритм решения задачи

Порядок расположения операторов обеспечивает последовательное вычисление величин, используемых в последующих операторах. Например, операторы 3 и 4 нельзя поменять местами, так как величина К должна быть вычислена раньше. Величины а и р должны быть предварительно введены как константы.

  1. С использованием VBA Excel напишем программу:

Текст программы на VBA:

Sub a()

Dim a1 As Double, a2 As Double, p1 As Double, p2 As Double

Dim z As Double, z1 As Double, v As Double

a1 = Val(InputBox("Введите а1"))

a2 = Val(InputBox("Введите а2"))

p1 = Val(InputBox("Введите p1"))

p2 = Val(InputBox("Введите p2"))

s = -a2 / (a1 + a2)

z1 = p1 + p2

z = (1 - z1) / z1 * s

v = 1 - z ^ 3

MsgBox ("s= " & CStr(s) & vbCr & "z1= " & CStr(z1) & vbCr & "z= " & CStr(z) & vbCr & "v= " & CStr(v))

End Sub

  1. Результат работы программы проверить в Excel

Результат проверки в Excel:

Условный переход.

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

  • оператор If...Then

  • оператор Select Case

Оператор If...Then - один из важнейших управляющих операторов. Он организует выполнение заданного блока операторов, если при вычислении указанного условного выражения будет получено значение True, и не делает ничего, если будет получено значение False.

Синтаксис этого условного оператора следующий:

If условие Then (операторы)

здесь условие - это условное выражение, которое VBA должен вычислить для проверки выполнения условия. Если вычисленное значение равно True, выполняется оператор (или блок операторов), следующий за ключевым словом Then до конца строки.

Если в операторе If...Then выполняется только один оператор, когда проверяемое условие отнимает значение True - однострочный оператор. Такая конструкция If...Then записывается в одной строке, и завершающий оператор End If для нее не требуется.

If intBospacn < 15 Then MsgBox "Ребенок"

В операторе If...Then может некоторый блок операторов. В этом случае проверяемое условие и выполняемые операторы записывается в отдельных строках. Если условное выражение имеет значение True, выполняемая группа операторов начинается с первого оператора, стоящего после ключевого слова Then, и включает все последующие операторы, вплоть до оператора завершения End If.

If условие Then

(операторы)

End If

Для более сложных ситуаций, когда на основании некоторого условия необходимо выбрать одну из двух различных последовательностей операторов, используется оператор If...Then...Else.

Конструкция If...Then...Else может быть однострочной и ее можно записать так:

If intУгол <= 90 Then MsgBox "Острый угол" Else MsgBox "Тупой угол"

Сначала проверяет заданное условие intУгол <= 90, и если результат будет равен True, выполняется оператор MsgBox "Острый угол".

Если величина угла окажется больше 90 градусов (значение False), то будет выполнен оператор MsgBox "Тупой угол"

Однострочный оператор If...Then...Else не всегда удобен при написании программы, поэтому лучше воспользоваться блочным оператором if …Then...Else, в котором условие и операторы записываются в отдельных строках.

В этом случае синтаксис оператора следующий:

If условие Then

(операторы1)

Else

(операторы2)

End If

Здесь условие - это проверяемое условное выражение. Если значение этого условного выражения равно True, то VBA выполняет операторы блока (операторы1), а затем, пропустив все остальные операторы структуры if...Then...Else, переходит к строке, следующей за оператором End If .

Если значение условного выражения равно False, выполняются операторы блока (операторы2), расположенные после ключевого слова Else вплоть до оператора End If.

После этого VBAпродолжит выполнение программы, начиная с первого оператора, следующего за оператором End If,

Sub Возраст()

If intBo3pacT <= 7 Then

СОДЕРЖАНИЕ 2

1 ОСНОВНЫЕ ПОНЯТИЯ И ПРИЕМЫ РАБОТЫ 4

1.1.Системы счисления 4

Рекомендуемая литература: 10

1.2.Раздел «Электронные таблицы EXCEL» 10

Основные понятия Excel 10

Выделение блока ячеек 11

Ввод текстов 11

Ввод чисел 12

Ввод стандартных списков 12

Ввод формул 12

Работа с Мастером функций 13

Копирование и перемещение информации 13

Простейшее форматирование ячеек 14

Стандартное форматирование чисел 15

Условное форматирование 15

Рекомендуемая литература: 16

1.3.Раздел СУБД «Access 2003» 16

1.3.1 Общие сведения о СУБД MS Access 16

1.3.2 Создание таблиц 17

1.3.3 Заполнение данными 19

1.3.4.Пример создания структуры базы данных 20

1.3.5 Создание запроса 21

1.3.6. Создание форм 24

1.2.7 Создание отчета 31

Рекомендуемая литература: 31

1.4.VBA 31

1.4.1 Графический язык (схемы алгоритмов) 31

1.4.2 Структуры алгоритмов 33

1.4.3 Основные понятия и возможности VBA 36

Рекомендуемая литература: 52

2 ПРАКТИЧЕСКИЕ РАБОТЫ И МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ПО ИХ ВЫПОЛНЕНИЮ 53

2.1 Электронные таблицы MS Excel 2003 53

ПРАКТИЧЕСКАЯ РАБОТА № 1. 53

ПРАКТИЧЕСКАЯ РАБОТА № 2. 60

ПРАКТИЧЕСКАЯ РАБОТА № 3. 67

3 ОБЩИЕ ТРЕБОВАНИЯ К СОДЕРЖАНИЮ И ОФОРМЛЕНИЮ КОНТРОЛЬНОГО ЗАДАНИЯ 72

3.1 Определение вариантов заданий 72

3.2 Структура работы 73

3.2.1 Настройки параметров работы 73

3.2.2 Титульный лист 75

2.2.3 Создание содержания (оглавления) 75

3.2.4 Основная часть работы 75

3.2.5 Список литературы 75

3.2.6 Приложения 76

4 ЗАДАНИЯ НА КОНТРОЛЬНУЮ РАБОТУ 77

4.1 Варианты заданий по теме «Системы счисления» 77

4.2 Варианты заданий по теме VBA и «Электронные таблицы Excel» 80

4.3.Варианты заданий по теме «Работа с СУБД MS Access» 84

4.4.Задание по теме «РowerPoint» 90

5 ПЕРЕЧЕНЬ ВОПРОСОВ ДЛЯ ПОДГОТОВКИ К ЭКЗАМЕНУ 91

6 СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ 93

ПРИЛОЖЕНИЕ 1. ОБРАЗЕЦ ТИТУЛЬНОГО ЛИСТА 95

ПРИЛОЖЕНИЕ 2. ПРИМЕР ФОРМИРОВАНИЯ СОДЕРЖАНИЯ 96

End Sub

Часто при написании программ возникают такие ситуации, когда приходится проверять не одно, а два, три или больше условий. В этом случае можно поместить один оператор If Then внутри другого оператора If...Then (или оператор if...Then...Else внутри оператора if...Then...Else, что называется вложением операторов.

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

Sub ВозрастН)

intBoзраст = InputBox("Укажите возраст")

If intBoзраст > 7 Then

If intBoзраст <= 17 Then

MsgBox "Школьник"

Else

MsgBox "Взрослый"

End If

Else

MsgBox "Дошкольник"

End If

End Sub

Эквивалентом вложенных операторов является оператор lf...Then...ElseIf. С помощью ключевого слова ElseIf в одном условном операторе можно проверить несколько условий.

Синтаксис этого условного оператора:

If условие1 Then

(операторы1)

ElseIf условие2 Then

(операторы2)

ElseIf условие3 Then

End If

При выполнении оператора If...Then...ElseIf первым проверяется значение условного выражения условие1, и если оно равно True, то выполняется блок операторов (операторы1), а затем все остальные операторы структуры пропускаются и выполняется первый из операторов, следующий за оператором End If.

Если значение условного выражения условие1 будет равно False, то проверяется значение условие2. Если значение условие2 будет равно True, то выполняется блок операторов (операторы2), а затем все остальные операторы структуры пропускаются и выполняется первый из операторов, следующий за оператором End If.

Если значение условие2 будет равно False, то проверяется значение условиеЗ — и т.д.

Если в конструкцию оператора lf...Then...Elself включен оператор Else и все условные выражения условие1, условие2,.... окажутся равны False, то будут выполнены операторы, расположенные после оператора Else, и только после этого — первый из операторов, расположенных после оператора End if. Ключевое слово Else является необязательным, но если оно все же присутствует; то должно быть записано в конструкции оператора последним.

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

Результат работы программы:

При вводе получаем