1716

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

Контрольная

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

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

Русский

2013-01-06

64.26 KB

81 чел.

Реализация линейных алгоритмов на языке 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


 

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

25391. Особенности организации, управления и администрирования в социальной работе 21.73 KB
  Особенности организации управления и администрирования в социальной работе. Организация управление и администрирование в социальной работе особый вид профессиональной деятельности который сводится не только к достижению целей организации но и является средством поддержания целостности любой сложной социальной системы ее оптимального функционирования и развития. Такая деятельность необходима для повышения эффективности функционирования системы социальной защиты населения и как следствие роста благосостояния обеспечения...
25392. Экономические основы деятельности организациЙ и учреждений в социальной работе 45 KB
  Правовой основой регламентирующей деятельность учреждений предприятий социальных служб является ФЗ ОБ основах социального обслуживания населения в РФ.обслуживание входят: государственные федеральные региональные; Эта система состоит как из государственных предприятий и учреждений социального обслуживания являющихся федеральной собственностью и находящихся в ведении федеральных органов государственной власти так и из государственных предприятий и учреждений социального обслуживания являющихся собственностью субъектов Российской...
25393. Права человека 43.5 KB
  Они зафиксированы во Всеобщей декларации прав человека 1948 которая определяет основные права и свободы всех людей охватывая при этом гражданские политические экономические социальные и культурные права; сама по себе декларация не имеет юридической силы она представляет собой свод нравственных норм Международном пакте о гражданских и политических правах человека и Международном пакте об экономических социальных и культурных правах 1966 вступили в силу для России в 1976. Согласно Всеобщей декларации прав человека идеал...
25394. Основные характеристики и проблемы граждан пожилого и старческого возраста в современной России 50 KB
  Ритм старения существенно зависит от образа жизни пожилых людей как правило пенсионеров их положения в семье уровня жизни условий труда социальных и психологических факторов. Среди пожилых людей выделяются самые разные группы: бодрые физически здоровые больные живущие в семьях одинокие довольные уходом на пенсию еще работающие но тяготящиеся работой несчастные отчаявшиеся в жизни малоподвижные домоседы проводящие интенсивно разнообразно свой досуг ходят в гости встречаются с друзьями посещают клубы и т. Для социальных...
25395. Технологии социальной работы с пожилыми и старыми людьми 44 KB
  №195ФЗ Об основах социального обслуживания населения в РФ; ФЗ от 02. №473 О порядке и условиях оплаты социальных услуг предоставляемых гражданам пожилого возраста и инвалидам государственными и муниципальными учреждениями социального обслуживания; Постановление Правительства РФ от 25. №1151 О Федеральном перечне гарантированных государством социальных услуг предоставляемых гражданам пожилого возраста и инвалидам государственными и муниципальными учреждениями социального обслуживания; Указ Президента РФ от 29. №115 О мерах по...
25396. Молодежь как половозрастная группа, ее основные характеристики. Проблемы социализации молодежи в современной России 45.5 KB
  Проблемы социализации молодежи в современной России. Анализ современных проблем молодежи нельзя не начать с уточнения понятия молодежь. К проблемам социализации молодежи в современной России можно отнести: ухудшение материального и духовного благосостояния молодежи рост числа нетрудоустроенных выпускников рост числа преступлений среди молодежи рост случаев жестокого обращения с детьми физическое и психологическое насилие над подростками и молодежью увеличение числа больных психическими заболеваниями проблема детской беспризорности и...
25397. Государственная молодежная политика как механизм решения социальных проблем молодежи 50.5 KB
  Государственная молодежная политика как механизм решения социальных проблем молодежи Молодежь – это социальнодемографическая группа специфические социальные и психологические черты которой обусловлены возрастными особенностями молодых людей процессом становления их духовного мира социализации спецификой положения в социальной структуре общества. Чтобы поддержать это чувства баланса у молодежи необходимо заниматься решением всего комплекса молодежных проблем. Решение многообразных и острых проблем молодежи в России возможно лишь при...
25398. Система социальных служб для молодежи, ее специфика 49 KB
  Система социальных служб для молодежи ее специфика Молодежь это социальнодемографическая группа переживающая период становления социальной зрелости адаптации к миру взрослых и будущие изменения. К числу особо тревожных тенденций в молодежной среде относится отставание уровня образования от уровня достигнутого наиболее развитыми странами; ускорение падения престижа общего и профессиональнотехнического образования; увеличение числа молодежи начинающей трудовую деятельность с низким уровнем образования и не имеющей желания продолжать...
25399. Рынок труда, занятость и безработица: понятия, виды и основные характеристики 24.08 KB
  В научной литературе сложилось три подхода к определению рынка труда: В узком смысле рынок труда РТ – это спрос и предложение рабочей силы которое за счет этих двух составляющих обеспечивает размещение рабочих мест. В рамках этого подхода раскрывается основа механизма рынка труда взаимодействия спроса и предложения. Это определение не учитывает такие аспекты как подготовка кадров мотивация труда и т.