Реферат: Создание программного продукта на языке программирования Visual Basic for Applications

РЕФЕРАТ

Пояснительная записка: 23 с., 2 рис., 4источника, 5 таблиц

Целью работы является созданиепрограммного продукта на языке программирования Visual Basic for Applicationsсогласно заданию, выданному на учебную практику. Данный программный продуктпозволяет разместить в Microsoft Word исходный текст, введенный пользователем,на странице, каждая строка которой имеет желаемое пользователем количествосимволов (причем слова не разрываются на две строки) и в Microsoft Excel найтисумму двух разреженных полиномов, заданных ненулевыми коэффициентами и ихномерами. Программный продукт должен обеспечивать удобство и простотуиспользования, быть функциональным и надежным, эффективным в эксплуатации.

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


ПЕРЕЧЕНЬ ИСПОЛЬЗУЕМЫХИСТОЧНИКОВ

1.  Гарнаев А.Ю. Самоучитель VBA –2-е изд., перераб. и доп. — СПб.: БВХ- Петербург 2004,560с.

2.  Гарнаев А.Ю. «Excel2002: разработка приложений» — СПб.: БВХ-Петербург 2002, 450с.

3.  С.Браун «VB 6» — СПб.: Москва – Харьков – Минск 2002, 573с.

4.  С.Каммингс «VBAдля Чайников» — СПб.: Москва – Санкт-Петербург – Киев 2003, 440с.


ВЫВОДЫ

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

-          вывод справочной информации поязыку программирования Visual Basic for Applications;

-          нахождение в заданной строке слов,которые начинаются и заканчиваются одной и той же буквой; вывод слов на экран вMicrosoft Word;

-          с помощью определенныхпреобразований в исходной матрице изменить элементы четных сток, вывестиконечную матрицу на экран в Microsoft Exel.

Впоследствии в ПП возможно увеличить объем теоретического материала по VBA, усовершенствовать интерфейс.Недостатков данной системы разработчиком не обнаружено.


ВВЕДЕНИЕ

Visual Basic for Applications (VBA) – весьма популярная в последние годы средаразработки приложений, которая, являясь мощным программным средством, позволяетреализовать широкий спектр практических задач. Основное её достоинство состоитв оптимальном сочетании простоты использования, доступности и большого набораразнообразных возможностей, позволяющих охватить все основные направлениядеятельности разработчика прикладных программ.

Возможности VBA совсем не уступаютдругим системам программирования Windows и постоянно растут. К томуже многие системы программирования в Windows и используют общиебиблиотеки объектов, среди которых – объекты Word и Excel.К основным возможностям VBA можно отнести реализацию максимально гибкого иудобного интерфейса для приложения, создание самых разнообразных многоуровневыхи всплывающих меню, обработку событий мыши и клавиатуры, работу с графикой.Разработчик может использовать в программе как стандартные, так и встроенныедиалоги, применяющиеся для организации обратной связи с пользователем.Приложение может осуществлять работу с таймером, обрабатывать файлы и каталогина жестком диске, а также предоставлять доступ к базам данных. В VBAимеется возможность внедрения в приложение различных объектов, которыеподдерживаются другими программами. Помимо этого, разработчик может реализоватьсвязь одного или нескольких компьютеров, на которых установлено созданноеприложение, с сетью Internet.

Также язык программирования VBA –есть реализация объектно-ориентированного написания программ в системе MS Office, а в частности в процессе практики исследовалосьиспользование VBA для MS Word и MS Excel.Синтаксис языка – издавна проложенные правила языка Basic – один изсамых ранних языков программирования. Процесс написания программы на VBA –последовательное заполнение параметров различных объектов. Язык VBA,является мощным программным средством, осуществлена возможность обработкифайловой информации. Но самым ярким достоинством языка является возможностьзанесения результатов вычисления и любых данных в Officeприложения, в MS Word и Ms Excel.

То есть можно отметить, что в настоящеевремя большое внимание уделяется программированию на VisualBasic for Applications. Именно поэтомузадание, выданное на учебную практику, разрабатывается на данном языке программирования.


1 ПОСТАНОВКА ЗАДАЧИ

 

1.1  Формулировка задачи

 

Для MS WORD:

Исходный текст (слова, пробелы, знаки)задан одной строкой. Нахождение в ней слов, которые начинаются и заканчиваютсяодинаковой буквой.

Для MS EXCEL:

В матрице найти сумму элементов, которыерасположены по главной диагонали. Элементы всех чётных строк разделить на этусумму.

1.2 Исходные данные

Для WORD:

S1: строка; { строка, введенная пользователем }

Для EXCEL:

a: двумерный массив [5,5 ] вещ; { массив коэффициентов первого полинома}

1.3    Ограничения на исходныеданные

Для EXCEL:

0 < = i < 5

0 < = j < 5

1.4    Промежуточные данные

Для WORD:

S3: строка; {содержит слово, нужное по условию}

k: цел; { счетчик, определяющий количество символов в каждом слове }

start: цел; { счетчик перебора символов в строке }

i: цел; { счетчик, показывающий начиная с какого символа будет

 осуществляться чтение слова }

Для EXCEL:

B:массив [10] вещественных чисел; {содержит элементы главной диагонали}

1.5    Результаты

Для WORD:

S3: строка; { содержит искомые слова}

Для EXCEL:

a: массив [5,5 ] вещ; { конечная матрица чисел}


2 ОПИСАНИЕ ЯЗЫКА VBAИСИСТЕМЫ ПРОГРАММИРОВАНИЯ В OFFICE

Операционная система Windows корпорации Microsoft обладает изумительно удобным интерфейсом и множествоминтеллектуальных средств, которые освобождают пользователя от рутинной работы,присущей другим операционным системам. Естественным и незаменимым дополнениемэтой операционной системы являются программные продукты Microsoft Office, которые даже начинающему пользователю позволяют слегкостью создавать идеальную по своему оформлению документацию, производитьфинансовые, инженерные и прочие расчеты, создавать и работать с базами данных,конструировать презентации и слайды. Вместе, операционная система Windows и программные продукты Microsoft Office, покорили весь мир.Корпорация Microsoft интегрировала в свои офисные продукты, в самуоперационную среду изумительный по простоте и необычайный по своейэффективности язык программирования Visual Basic for Applications или сокращенно VBA.С помощью этого языка теперь каждый пользователь может автоматизировать работуприложения и максимально приспособить его работу для решения текущих задач, нетолько добавив интерфейсу новую функциональность, но и удалив из него ненужныедля данного приложения элементы, тем самым обеспечив ему дополнительную стабильность.

Возможности VBA совсем неуступают другим системам программирования Windows ипостоянно растут. К тому же многие системы программирования в Windows и VBA используют общие библиотеки объектов, среди которых –объекты Excel, Word и т.д.


2.1      Типы данных

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

-       Byte (байтовый);

-       Boolean (логический);

-       Integer (целый);

-       Long (длинный целый);

-       Single (с плавающей точкой обычной точности);

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

-       Currency (денежный);

-       Decimal (масштабируемыйцелый);

-       Date (даты и время);

-       Object (объектный);

-       String (строковый);

-       Variant (произвольный);

-       тип данных, определяемыйпользователем;

-       специфические типыобъектов.

Для хранения целочисленных данныхпредназначены типы Integer (диапазон значений от –32768 до 32767, в оперативнойпамяти занимает два байта) и Long (диапазон значений от –2147483648 до 21447483648 и воперативной памяти занимает четыре байта). Аналогично, для хранения десятичныхчисел с плавающей точкой представлены типы данных Single (диапазонот –3,4Е38 до –1,4Е-45 для отрицательных чисел и от 1,4Е-45 до 3,4Е38 дляположительных чисел, в оперативной памяти занимает четыре байта) и Double(диапазон от –1,7Е-308 до –4,9Е-324 для отрицательных чисел и от 4,9Е-324 до1,7Е308 для положительных чисел, в оперативной памяти занимает 8 байтов). Дляхранения чисел с фиксированной точкой служит тип Currency.Переменная данного типа занимает в оперативной памяти 8 байт. Целая часть числаможет содержать до 15 цифр, а дробная – до 4.

Используя переменные строкового типа,можно хранить строки как фиксированной, так и переменной длины. Для переменной,имеющей тип строки с фиксированной длинной, указывается максимальная длинастроки. Если длина строки, присваиваемая этой переменной, меньше заданной длиныстроки, то оставшиеся свободные места заполняются пробелами. При присвоении переменнойстроки, количество символов которой превышает максимальное значение, все лишниесимволы отбрасываются. Количество символов, хранящихся в строке с переменнойдлиной, определяется длинной присваиваемых ей данных. При использовании ASCCIIкодировки для каждого символа строки выделяется один байт, а при использованиикодировки Unicode – два байта. Кроме этого выделяется 10 байт длястроки в целом.

Для хранения двоичных данных рекомендуетсяиспользовать массив переменных типа Byte. Каждый элемент массиваданного типа занимает один байт оперативной памяти.

Логический тип данных Boolean используется для хранения данных, принимающих одно из двух значений: Trueили False. По умолчанию переменной данного типа присваиваетсязначение False. В оперативной памяти она занимает два байта.

Тип данных Dateиспользуется для хранения даты и времени. Переменная этого типа требует 8 байтв оперативной памяти.

Тип данных Variant являетсяуниверсальным. Переменная этого типа может хранить любой из выше перечисленныхтипов данных. Все необходимые преобразования выполняются при присвоениипеременной значения. Выделяемый переменной объем оперативной памяти зависит оттипа присвоенного значения, но не может быть менее 16 байт.

Для хранения ссылок на объектыиспользуется тип данных Object. Каждая переменная данного типа требует 4 байта.

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

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


Тип данных

Префикс Пример Boolean bin binSuc Byte byt bytImege Currency cur curPrn Date dtm dtmFinish Double dbl dblSum Integer int intKol Long Ing IngLoop Single sng sngTotal String str strLast Variant vnt vntValui

2.2      Описание переменных

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

Область видимости переменной определяетчасть кода, которая «знает» о существовании данной переменной. При определениипеременной в процедуре получить или изменить ее значение можно только из кодаэтой процедуры. Иногда, однако, необходимо использовать переменную с болееобширной областью видимости. Например, переменную, значения которой доступныдля всех процедур модуля или проекта. Существуют три типа области видимости переменной:

-       переменные уровня процедурыраспознаются только в процедуре, в которой они описаны. Они описываются припомощи инструкций Dim или Static. Такие переменные называются локальными;

-       переменные уровня модуляиспользуются только в модуле, в котором они описаны, но не в других модуляхданного проекта. Описываются при помощи оператора Dim или Private в области описания модуля, т.е. перед описанием процедур;

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

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

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

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

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

Dim А (11) As Integer

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

Dim B (2, 2) As Single

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

Option Base 1

Dim A (11) As Integer

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

Dim B (1 To 3, 1 To 3) AsSingle

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) AsInteger

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 АЛГОРИТМ РЕШЕНИЯПОСТАВЛЕННОЙ ЗАДАЧИ В MSWORD

/>


           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)

/>                                 

/> /> /> /> /> <td/> /> /> /> />

                                                               

/>/>/>          

            s3

/> 



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

Для 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

Для j=1 до 5

  />            

/>

i=i+2

a[i,j]=a[i,j]/sum

           

       

     

                                                               

Для  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 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 8

Приложение А

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

/>

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

/>

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


Приложение Б

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

Sub Laba1()

Dim m, i, j, k AsInteger

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 Step2

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 AsString

Dim i, j As Integer

Selection.WholeStory

s1 = Selection.Text

For i = 1 ToLen(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

еще рефераты
Еще работы по информатике, программированию