на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Создание программного продукта на языке программирования Visual Basic for Applications
p align="left">переменные уровня модуля используются только в модуле, в котором они описаны, но не в других модулях данного проекта. Описываются при помощи оператора Dim или Private в области описания модуля, т.е. перед описанием процедур;

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

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

Для обязательного объявления всех переменных в начале модуля, в так называемой области модуля General Declarations, надо поместить директиву Option Explicit. Использование этой директивы не допускает возможности неправильного ввода имени переменной, которая применяется в одной или не скольких процедурах модуля. Например, если переменная была объявлена как Ставка, а в коде при наборе вместо русской буквы с была использована латинская буква с, то это приведет к ошибке. В отсутствие директивы Option Explicit подобную ошибку было бы трудно отследить.

2.3 Описание массивов

Как и в других языках программирования, в VBA можно использовать массивы. Массив, как и любую переменную, надо объявлять, используя операторы Dim, Static, Private и Public, которые также задают область видимости переменной. В массиве допускается описание до 60 размерностей. При определении размерности надо указывать верхнюю, а также нижнюю границу. Если нижний индекс не задан явно, нижняя граница массива определяется директивой Option Base. Если отсутствует директива Option Base, нижняя граница массива равняется нулю. Например, в следующем операторе объявляется одномерный массив (вектор) из 12 целых чисел, причем по умолчанию первый элемент массива - А (0), а последний - А (11). В этом случае говоря, что 0 - базовый индекс.

Dim А (11) As Integer

Данный же оператор объявляет двухмерный массив 33 (матрицу), состоящий из действительных чисел.

Dim B (2, 2) As Single

Можно изменить базовый индекс, написав в области объявлений модуля директиву Option Base 1. После этого индексы массивов А и В будут начинаться с единицы. Например, в следующем операторе объявляется вектор, состоящий из 11 элементов.

Option Base 1

Dim A (11) As Integer

Другим способом изменения базового индекса является использование ключевого слова То при объявлении массива.

Dim B (1 To 3, 1 To 3) As Single

Dim A (1 To 12) As Integer

Инициализацию элементов массива можно производить по-разному:

последовательностью операторов:

Dim B (1, 1) As Single

B (0, 0) = 2 : B (0, 1) = 4

B (1, 0) = 1 : B (1, 1) = 6

оператором цикла:

Dim M (1 To 9, 1 To 9) As Integer

Dim i As Integer

Dim j As Integer

For i = 1 To 9

For j = 1 To 9

M (i, j) = i * j

Next

Next

Иногда в процессе выполнения программы требуется изменять размер массива. В этом случае первоначально массив объявляют как динамический. Для этого при объявлении массива не надо указывать размерность, например:

Dim R () As Single

Затем в программе следует вычислить необходимый размер массива в некоторой переменной, например n, и изменить размер динамического массива с помощью оператора ReDim. В следующем примере сначала объявляется динамический массив, а затем устанавливаются границы его индекса.

Dim R () As Double

ReDim R (1 To 10)

2.4 Операторы языка и управляющие конструкции

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

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

Операция

Знак

Запись

Типы данных

Действие

Сложение

+

a + b

Byte, Short, Integer, Long, Single, Double, Decimal

Складывает два числа

Вычитание

-

a - b

Byte, Short, Integer, Long, Single, Double, Decimal

Вычитает из одного

числа другое

Деление

/

a/b

Byte, Short, Integer, Long, Single, Double, Decimal

Делит два числа и

возвращает результат

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

Деление

нацело

\

a\b

Byte, Short, Integer, Long, Single, Double, Decimal

Делит два числа и

возвращает целый результат (остаток отбрасывается)

Остаток

Mod

a Mod b

Byte, Short, Integer, Long, Single, Double, Decimal

Вычисляется остаток

от деления одного числа на другое

Умножение

*

а * b

Byte, Short, Integer, Long, Single, Double, Decimal

Умножает два числа

Возведение

в степень

^

a ^ b

Byte, Short, Integer, Long, Single, Double, Decimal

Возводит число в степень

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

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

умножение и деление;

деление нацело;

взятие остатка от деления;

сложение и вычитание.

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

В VBA, как и во всех языках программирования, существуют управляющие конструкции, предназначенные для управления порядком выполнения команд. Различают два основных типа управляющих операторов:

- If

- Select..Case

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

В свою очередь, управляющие операторы if бывают двух видов:

- If...Then

- If...Then...Else

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

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

Условные выражения - это такие выражения, которые возвращают одно из двух значений: Истина или Ложь. В условных выражениях используют операторы сравнения, приведенные в таблице 2.3.

Таблица 2.3 - Операторы сравнения для условных выражений

Операция

Знак

Меньше

<

Меньше или равно

<=

Больше

>

Операция

Знак

Больше или равно

>=

Равно

=

Не равно

<>

Над условными выражениями можно выполнять действия логической математики (логические операции). К логическим побитовым операциям относятся операции And, Or, And Also, Or Else, Xor, Not.Операция Not имеет один операнд, остальные - по два операнда.

Ключевые слова IF и End If имеют тот же смысл, что и в конструкции If...Then. Если заданное в конструкции условие не выполняется (результат проверки равен False), и конструкция содержит ключевое слово Else, Visual Basic выполнит последовательность конструкций, расположенных следом за Else. После чего управление перейдет к конструкции, следующей после End If.

2.5 Стандартные функции работы с файлами, строками, диалоговыми окнами

В VBA имеется ряд функций и операторов по работе с файлами и каталогами. Одним из удобств является то, что не требуется устанавливать ссылку на используемую библиотеку. В таблице 2.4 эти функции и представлены.

Таблица 2.4 - Функции и операторы для работы с файлами

Функция, оператор

Назначение

Open

Открывает файл

Close

Закрывает все файлы

Close #

Закрывает файл по идентификатору

Reset

Закрывает все открытые файлы, записывает содержимое буферов.

Print tt

Записывает данные в файл

FileCopy

Копирует файл

EOF

Определяет метку конца файла

FileAttr

Возвращает режим доступа открытого файла

FileDateTime

Возвращает дату и время создания файла

FileLen

Возвращает размер файла в байтах

FreeFile

Возвращает номер свободного идентификатора

GetAttr

Получает атрибуты файла

SetAttr

Устанавливает атрибуты файла

Loc

Возвращает номер текущей позиции в файле

LOF

Возвращает размер открытого файла в байтах

Seek

Устанавливает на заданную номером позицию или запись в файле

Dir

Возвращает содержимое текущей папки

Kill

Удаляет файл

Lock

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

Unlock

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

Name

Задает имя файла

Get #

Читает данные из файла

Input

Читает данные из файла

Input #

Читает данные из файла

Line Input #

Читает строку из файла

Put #

Записывает данные в файл

Write #

Записывает данные в файл

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

Таблица 2.5 - Функции для работы со строками

Функция

Назначение

Asc

Возвращает ASCII- код символа

Chr

Преобразовывает ASCII-код в символ

InStr, InStrRev

Осуществляет поиск одной строки в другой

Lcase

Изменяет регистр букв исходной строки на нижний

Left

Возвращает указанное количество символов с начала строки

Len

Возвращает количество символов в строке

Ltrim, RTrim, Trim

Удаляют пробелы, расположенные соответственно в начале, в конце и с обеих сторон символьной строки

Функция

Назначение

Mid

Возвращает заданное количество символов из произвольного места строки

Right

Возвращает указанное количество символов с конца строки

Str, CStr

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

StrReverse

Изменяет порядок следования символов в строке на обратный

StrConv

Изменяет регистр букв символьной строки

Продолжение таблицы 2.5

Val

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

UCase

Изменяет регистр букв исходной строки на нижний

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

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

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

3 АЛГОРИТМ РЕШЕНИЯ ПОСТАВЛЕННОЙ ЗАДАЧИ В MS WORD

S1

Для i=1 до len(s1)-1

Если mid(s1, i,1)=” ”

Если mid(s2,1,1)=mid(s2,len(s2),1)

S3=s3+s2+” ”

s2 = ""

Иначе

s2 = s2 + Mid(s1, i, 1)

s3

4 АЛГОРИТМ РЕШЕНИЯ ПОСТАВЛЕННОЙ ЗАДАЧИ В MS EXCEL

Для i=1 до 5

Для j= 1 до 5

a(i,j)

sum = 0

Для i=1 до 5

b[i]=a[i,i]

sum=sum+b[i]

Для i=1 до 5

Для i=1 до 5

Для j=1 до 5

a(i,j)

5 ТЕСТОВЫЕ ПРИМЕРЫ

MS WORD

№1

Дед Мороз - красный нос, ты подарки нам принёс?

Дед

№2

Трактат о несчастной любви.

Трактат

MS EXCEL

№1

1

2

3

4

5

6

7

8

9

10

7

9

11

13

15

2

4

4

6

7

3

6

4

0

8

Результат

1

2

3

4

5

0,18

0,21

0,24

0,27

0,3

7

9

11

13

15

0,06

0,121

0,121

0,18

0,21

3

6

4

0

8

Приложение А

ЭКРАННЫЕ ФОРМЫ

Рисунок А.1 - Работа программы в MS Word

Рисунок А.2 - Пример работы программы в MS Word

Приложение Б

ЛИСТИНГ ПРОГРАММЫ В MS EXCEL

Sub Laba1()

Dim m, i, j, k As Integer

Dim sum As Double

Dim a(5, 5), b(10) As Long

For i = 1 To 5

For j = 1 To 5

a(i, j) = Cells(i, j)

Next j

Next i

sum = 0

For i = 1 To 5

k = i

j = i

b(k) = a(i, j)

sum = sum + b(k)

Next i

For i = 2 To 5 Step 2

For j = 1 To 5

a(i, j) = a(i, j) / sum

Next j

Next i

Cells(7, 1) = "Конечная"

Cells(7, 2) = "матрица:"

For i = 1 To 5

For j = 1 To 5

Cells(i + 8, j) = a(i, j)

Next j

Next i

End Sub

Приложение В

ЛИСТИНГ ПРОГРАММЫ В MS WORD

Sub Laba2()

Dim s1, s2, s3 As String

Dim i, j As Integer

Selection.WholeStory

s1 = Selection.Text

For i = 1 To Len(s1) - 1

If Mid(s1, i, 1) = " " Then

If Mid(s2, 1, 1) = Mid(s2, Len(s2), 1) Then

s3 = s3 + s2 + " "

End If

s2 = ""

Else

s2 = s2 + Mid(s1, i, 1)

End If

Next i

Selection.Text = s1 + s3

End Sub

Страницы: 1, 2



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.