1716

Реализация линейных алгоритмов на языке Visual Basic for Aplications (VBA)

Контрольная

Информатика, кибернетика и программирование

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

Русский

2013-01-06

64.26 KB

85 чел.

Реализация линейных алгоритмов на языке Visual Basic for Aplications (VBA)

Язык VBA является современным вариантом языка программирования Basic, созданного в 60-х годах ХХ века. Отличие VBA oт других языков программирования состоит в том, что программа на VBA сохраняется в одном файле с документами соответствующих приложений, а не в отдельном текстовом файле. Например, в Excel вместе с рабочей книгой. Поэтому для создания выполнения программы на VBA нужно сначала запустить соответствующее приложение. Язык VBA является общим для всех приложений, входящих в состав пакета Microsof Office.

  1.  Модули и процедуры

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

Структура процедуры (макроса):

 

Sub < имя процедуры> () - заголовок процедуры

<раздел объявлений> - тело процедуры

<раздел операторов>

End Sub

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

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

Option Explicit 

В любом месте процедуры могут находиться комментарии. Комментарий - это последовательность любых символов, которая поясняет работу программы и пропускается компилятором. Комментарий начинается с символа ‘ (апостроф) и занимает всю строку или ее конечную часть.

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

  1.  Элементы языка VBA

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

Специальные символы: (*, /, +, - , [ ] , { } ). К спец. символам относятся пары символов < = > = < > их нельзя разделять пробелом.

Символ пробел является разделителем идентификаторов, зарезервированных слов, констант. Несколько пробелов рассматриваются как один (это не относится к строковым константам).

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

Это слова:

sub, end, for, if, dim, real и т.д.

Переменные

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

Объявление переменных:

Dim <идентификатор1> As <тип1> , <идентификатор2> As <тип2>…

Идентификаторы – это имена, которые используются в программе для обозначения констант, переменных, типов, объектов и т.д.

Dim a As Integer, b As Single

Dim c As Integer

Dim a, c As Integer  a As Variant

Числовые переменные инициализируются нулями, строковые пустыми строками.

Правила образования имен (идентификаторов).

  1.  последовательность букв (русских и латинских), цифр, _ ;
  2.  первый символ – буква;
  3.  длина имени <= 255 символов;
  4.  имя должно быть информативным.

  1.  

Тип данного определяет:

  1.  диапазон возможных значений;
  2.  объём выделяемой памяти и форму представления данных в ней;
  3.  действия, которые можно совершать над данными.

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

  1.  

Название типа

Выделяемая память (байт)

Диапазон значений

Комментарий

1

Byte

1

0..255

целые типы

2

Integer

2

-32768..32767

3

Long

4

-2147483648…

2147483648

4

Single

4

±10-45…1045

вещественные типы

5

Double

8

±10-324…10308

6

Boolean

2

True, False

логический

9

String

0..654000 симв

строковый

Константы

Константы – это элементы программы, значения которых при выполнении программ не меняются.

Литеральные константы – это целые числа (52), вещественные числа (5.2 или в экспоненциальной форме 1.72E02), строковые константы (”Группа УП-11”), логические константы (true, false).

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

Описание именованных констант:

Const <идентификатор 1>=<значение 1>, < идентификатор 2>=<значение 2>…

Const а=2.5

Const str=”ГЭФ”, l=false

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

Предопределенные (внутренние) константы – это именованные константы, определенные при разработке VBA. Имена таких констант начинаются с букв vb.

Пример: vbOKOnly, vbYesNo.

Арифметические выражения

А. в. служат для вычисления целого или вещественного значения. Они состоит из констант, переменных, функций, знаков арифметических операций и круглых скобок.

Арифметические операции в порядке убывания приоритета:

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

* – умножение; / - деление

\ – целочисленное деление

Mod – остаток от целочисленного деления

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

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

Операнды операций \ и Mod перед выполнением операций округляются до целых чисел, результат операций всегда целое число.

7 \ 3 = 2 7 mod 3 = 1 18.6 \ 3.4 = 19\3 = 6

Операция mod используется для определения делимости значения целой переменной на заданное число. Например, если a mod 2 = 0, то a – четное число, если a mod 4 = 0, то a кратно 4.

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

Математическая запись

Функция VBA

Математическая запись

Функция VBA

Abs(x)

sin x

Sin(x)

Sqr(x)

cos x

Cos(x)

Exp(x)

tg x

Tan(x)

ln x

Log(x)

arctan x

Atn(x)

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

Аргументы функций sin(x), cos(x), tan(x) и результат функции atn(x) всегда указываются в радианах. Угол в радианах =угол в градусах/180*π

Для вычисления других математических функций можно использовать математические формулы, например lg(x)=ln(x)/ln(10).

Примеры:  в программе: x^(1/5) 

 

 в программе: sqr ( tan (x)^ 2 / ( log (x^5) – x^ ( 1 / 3 ) ) )

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

С помощью этого оператора можно присвоить переменной значение некоторого выражения.

 

Синтаксис оператора:

<идентификатор>=<выражение>

Примеры:

с = Sqr ( a^2 + b^2 ) i =i+1

Выполнение оператора: вычисляется значение выражения, стоящего справа от знака присваивания (=), а затем полученное значение присваивается переменной стоящей слева от знака присваивания, то есть записывается в то место памяти, которое отведено для переменной после ее описания. Идентификатор и выражение должны иметь соответствующие типы.

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

Порядок точности числовых типов от наименее точного к наиболее точному

Byte, Integer, Long, Single, Double.

Пример:

Dim a As Single, k As integer

a=2.6

k=a+1

Значение к =4.

Пример: вычислить

  

 

 В программе:

y=(cos(x)^3+abs(x+atn(2*x))^(1/5))/(3*exp(sqr(x)))

  1.  Ввод данных.

Ввод - это передача информации с внешнего устройства (клавиатура, диск) в ОЗУ для дальнейшей обработки.

Для ввода данных используется функция InputBox, которая имеет следующий синтаксис:

< идентификатор > = InputBox (Prompt [,Title])

Функция отображает диалоговое окно, в заголовке которого находится текст, заданный параметром Title. Если параметр отсутствует, то в заголовке отображается имя приложения Microsoft Excel. Обязательный параметр Prompt содержит текст, выводимый в окне как запрос для ввода. В окне также находится текстовое поле для ввода значения, которое будет записано в переменную, задаваемую идентификатором, и кнопки ОК и Cancel.

m = InputBox( “Введите значение m” , “Ввод”)

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

“988,6” “81” “3E10” можно преобразовать в числа;

”8.7” ”Привет” ”$23” нельзя.

  1.  Вывод данных.

Вывод – это передача информации из ОЗУ на внешнее устройство (монитор, принтер, диск).

  1.  Вывод в окно сообщений

Используется обычно для вывода различных сообщений пользователю.

Для организации такого вывода используется процедура MsgBox, имеющая следующий синтаксис:

MsgBox Prompt [, Buttons [, Title], где

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

Параметр Title содержит текст, который выводится в заголовке диалогового окна. Если параметр не указывается, то в заголовке выводится название приложения (Microsoft Excel).

Параметр Buttons задается внутренней константой VBA, определяющей сколько и каких кнопок будет в окне. Если параметр отсутствует или равен vbOKOnly, то окно содержит только кнопку ОК. Если параметр равен vbOKCancel – кнопки OK и Отмена; если vbYesNo - кнопки Да и Нет.

Если параметр отсутствует и он не последний, то соответствующая ему запятая сохраняется.

MsgBox “С Новым годом!”, , “Поздравление”

MsgBox “Ваш средний балл больше 4,5 ?”,vbYesNo ,“Запрос”

 

Аргумент Prompt должен быть одним строковым выражением, поэтому перед выводом нескольких данных в одно окно они должны быть объединены в одной переменной строкового типа или быть частью строкового выражения. Для объединения данных используется операция конкатенации & (в тексте процедуры символ отделяется с двух сторон пробелами).

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

Пример:

a=5 : b= 4.5

 

Str = “a=” & a & “ b=” & b

MsgBox Str , , “Данные

MsgBox “a=” & a & “ b=” & b , , “Данные

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

Для включения в строку символов, которые невозможно ввести с клавиатуры, используется функция chr (code). Сode – это целое число от 0 до 255, которое является кодом любого символа и определяет этот символ. Функция Сhr возвращает символ, соответствующий коду. Сhr (13) возвращает символ перехода на новую строку. Вместо Сhr (13) можно использовать внутреннюю константу vbCr.

MsgBox "Поздравляю Вас" & vbCr & "С Новым годом!"

Для вывода на принтер окна сообщений его необходимо сначала поместить в документ приложения, используя БО, а затем вывести сам документ. Для копирования в БО содержимого активного окна используются клавиши Alt + PrtScr.

Пример: Ввести фамилию и группу студента и вывести в одном окне в виде:

Моя фамилия Иванов

Моя группа УП-11

Sub пример ()

Dim Fam As String, Gr As String

Fam = InputBox (“Введите свою фамилию” , ”Ввод”)

 Gr = InputBox (“Введите свою группу” , ”Ввод”)

 MsgBox “Моя фамилия “ & Fam & chr(13) & _

“Моя группа” & Gr, , “Вывод”

End Sub

  1.  Вывод данных в ячейки рабочего листа

Для вывода данных на Рабочий лист используется объект Range (диапазон) или его свойство Cells (ячейки).

Возможны 3 способа вывода:

  1.  Range (<диапазон>) = <выражение>

  1.  Cells (№ строки, № столбца) = <выражение>

  1.  Cells (№ строки, заголовок столбца) = <выражение>

Выражение может иметь числовой или строковый тип.

Примеры:

Str = “a=” & a & “ b=” & b

Range (”A2”) = Str

Cells (2 , 1) = “a=” & a & “ b=” & b

i=1

Cells (i , ”A”) = a^2

Перед выводом на рабочий лист его можно очистить от старых данных, используя метод Clear (соответствует команде Excel Правка – Очистить все).

Range (<диапазон>). Clear

Range (”1 : 4”) . Clear

Range (”A : D”) . Clear

Range (”A1 : D5”) . Clear

Cells.Clear очищает весь рабочий лист.

  1.  Пример реализации линейного алгоритма

Вычислить периметр и площадь треугольника со сторонами a, b, c.

 Таблица используемых переменных

Имя переменной в задаче

Имя переменной в программе

Тип переменной

Комментарий

a,b,c

a,b,c

Integer (целый)

стороны треугольника, исходные данные

p

p

вещественный

полупериметр, промежуточный результат

S

S

Single

площадь треугольника, результат

Текст процедуры на VBA:

Sub prim1() ' Вычисление площади треугольника

Dim S As Single, p As Single, Str As String ' описание переменных

Dim a As Integer, b As Integer, c As Integer

' Ввод исходных данных

 a = InputBox ("a=", "Стороны треугольника")

 b = InputBox ("b=", "Стороны треугольника")

 c = InputBox ("c=", "Стороны треугольника")

' Вывод исходных данных

' в окно сообщений

 Str = "Стороны треугольника" & Chr (13) & "a=" & a & _

" b=" & b & " c=" & c

 MsgBox Str, , "Исходные данные"

' в ячейки рабочего листа

Range("A1")="Исходные данные"

Range("A2")="Стороны треугольника a=" & a & _

" b=" & b & " c=" & c

' Расчет полупериметра и площади

 p = (a + b + c) / 2

S = Sqr (p * (p - a) * (p - b) * (p - c))

 ' Вывод результатов

' в окно сообщений

 MsgBox "Периметр=" & 2 * p & " Площадь=" & S, , "Результаты"

' в ячейки рабочего листа

Cells(3,1)= "Результаты"

Cells(4,1)= "Периметр треугольника =" & 2 * p

Cells(5,1)= "Площадь треугольника =" & S

End Sub


 

А также другие работы, которые могут Вас заинтересовать

44205. Автоматизация подготовки расписания учебных занятий в общеобразовательной школе 1.26 MB
  Расчет единовременных затрат на разработку программного продукта Срок разработки программного продукта Расписание составляет 1 месяц таблица 1. Программа Расписание поможет школе: соблюдать все основные требования для обучающихся и учителей; оптимально использовать кабинеты; снизить нагрузку работы администрации; устранить возможные ошибки и субъективные факторы при составлении расписаний в школе. Руководство пользователя Программный продукт Расписание позволяет автоматизировать работу по составлению учебных занятий в...
44206. Понятие социального обеспечения и права социального обеспечения 49 KB
  Социальным обеспечением в узком смысле называется только обеспечение престарелых и нетрудоспособных граждан, осуществляемое управомоченными государственными органами за счет прямых ассигнований из государственного бюджета
44207. Основные возможности Microsoft Office Outlook 1.69 MB
  Outlook представляет собой программу управления данными. Outlook может использоваться для документооборота формирования задач и заданий группы управления электронной почтой планирования дел и собраний ведения списка контактных лиц и дневника выполняемых действий. Некоторые возможности Outlook можно использовать с другими приложениями Office.
44208. Разработка мероприятий по развитию ООО «Клиника профилактики» 1.2 MB
  Инвестирование средств в прогрессивное оборудование новых специалистов и внедрение новых видов услуг. Планирование выручки от реализации услуг и затрат. Составление карты привлекательности услуг и разработка рекламной компании. Не следует путать экономику здоровья с экономикой здравоохранения которая ориентирована на производство лекарств и оказание медицинских услуг.
44209. Розробка програмного забезпечення: підбір зачіски та кольору волосся 2.87 MB
  ПРОГРАМАПОМІЧНИК ПІДБІР ЗАЧІСКИ КОЛЬОРУ СУБД БАЗА ДАНИХ. Також була створена база даних в середовищі MуSQL 5. Список скорочень БД база даних; СУКБД система управліннякерування базами даних; ПК персональний компютер; ПЗ програмне забезпечення; ПО предметна область.1 Огляд сучасних СУБД Бази даних це сукупність даних між якими існують зв'язки.
44211. Аудит и разработка системы управления качеством организации обособленного подразделения «Атомремонтсервис» 1.38 MB
  Политика организации в области качества Распределение ответственности за элементы системы управления качеством Документированная методика индивидуальное задание Постоянное улучшение системы управления качеством Экономическая часть Безопасность жизнедеятельности и гражданская оборона...
44212. Исследование возможностей аппаратной реализации IPS/IDS на основе ПЛИС 364.5 KB
  Информационные системы и технологии Информационные системы и технологии в компьютерных сетях Допущено к защите На данный момент почти все организации и предприятия используют корпоративные информационные системы. Становится актуальной проблема поддержания полноценной и безопасной работы системы в целом. А поскольку все системы связаны Internetтехнологиями особое внимание уделяется защите информации.
44213. Теоретические основы налогообложения субъектов малого бизнеса 82 KB
  Приступая к рассмотрению особенностей налогообложения определим необходимые и достаточные условия для того чтобы коммерческая организация имеющая статус юридического лица могла быть отнесена к субъектам малого бизнеса : 1 в её УК доля принадлежащая одному или нескольким юридическим лицам не являющимися субъектами малого бизнеса не превышает 25 ; 2 средняя численность работников за отчетный период не должна превышать предельных уровней установленных для малых предприятий. В Российской Федерации развитие налогообложения...