Пример программы на вба

Аннотация: Лекция посвящена описанию основных конструкций и принципов VBA. Она является вводной лекцией по общим приемам программирования на VBA.

5.1. Синтаксические описания

Синтаксис языка программирования — это правила написания программ.

Рассмотрим пример — возьмем из справочной системы описание команды. Мы пока не будем вдаваться в смысл ключевых слов (перед нами — описание оператора цикла ), приведенных здесь, остановимся на основных частях описания.

For counter = start To end [Step step] [statements] [Exit For] [statements] Next [counter]

В синтаксических описаниях VBA жирным шрифтом выделены ключевые слова языка, курсивом даны названия переменных и других элементов языка . В квадратных скобках располагаются необязательные элементы – то есть такие элементы, без описания которых можно обойтись. Например, в приведенном описании блоки [statements] будут содержать в себе «полезную нагрузку» цикла – операторы , которые будут выполняться многократно, однако цикл будет работать и без них.

Объектные переменные: Пример с Workbook — Worksheet — Range — Новый курс VBA (4)

Элементы, которые допускают альтернативный выбор, разделяются знаком » | «. Например, такая запись : » one | two » обозначает » one или two».

Ниже мы будем останавливаться на существенно важных особенностях тех или иных конструкций. Если вам понадобятся подробности — вы сможете найти их в справке к VBA .

Теперь рассмотрим понятие переменной — важнейшее понятие в любом языке программирования.

5.2. Переменные

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

У переменной есть несколько важнейших характеристик. Первая — имя переменной . Используя имя, мы можем обращаться к переменной в программе. Вторая характеристика — это тип данных , которые могут храниться в переменной . Тип определяет характер данных, которые мы можем хранить в переменной . Например, это могут быть числовые данные (возраст пользователя) и строковые данные ( имя пользователя ).

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

  • Имя переменной должно состоять из букв и цифр, причем оно должно начинаться с буквы.
  • Имя не может быть длиннее 255 символов
  • Имя не должно содержать специальных знаков ( # , $ , % и т.д.) и пробелов.
  • В качестве имен нельзя использовать зарезервированные слова VBA (например – if , dim , for и т.д.).

При именовании переменных старайтесь пользоваться латинскими буквами. Иначе возможны проблемы при работе ваших программ на различных версиях Office.

Например, такие имена переменных выглядят вполне корректно: str_Name , num_Age , str_Name1 , num_Item2 и т.д. Обратите внимание на префиксы, которыми мы снабдили имена переменных . Это признак особого стиля именования переменных . Он очень напоминает стиль именования элементов управления, который мы рассматривали выше.

VBA. Программирование алгоритмов линейной структуры

Напишем программу на VBA , иллюстрирующую простой пример работы с переменными . Сначала она должна задать пользователю вопрос: «Как вас зовут», а потом — вывести его имя в окне сообщения.

Для этого добавим в документ Microsoft Word кнопку с именем cmd_Variables и надписью » Имя пользователя «. Зададим ее обработчику Click следующий код (листинг 5.1.):

txt_Name = InputBox(«Введите ваше имя») MsgBox (txt_Name)
Листинг 5.1. Код обработчика Click кнопки cmd_Variables

Первая строка этого кода содержит новую для вас функцию InputBox . Она используется для вывода окна с сообщением и полем для ввода данных. Строка, которая передается функции в качестве параметра — это и есть сообщение, которое будет выведено в окне.

На рис. 5.1. вы можете видеть это окно.


Рис. 5.1. Окно ввода данных

Выражение txt_Name = означает, что мы присваиваем переменной с именем txt_Name то, что пользователь введет в окне ввода данных, как бы говорим программе: «Сохрани в переменной txt_Name то, что пользователь введет в окне». Когда пользователь сообщает свое имя и нажимает OK —введенная им строка записывается в переменную txt_Name . Введем на приглашение программы имя «Александр», вы можете ввести любое другое имя.

Теперь мы можем выполнять много разных действий с этой переменной . В частности — использовать в качестве параметра, передаваемого функции MsgBox . В данном примере мы так и поступили — вызвали MsgBox , указав вместо выводимого текста имя переменной . В результате в окне сообщения вывелось имя пользователя , введенное на предыдущем этапе (рис. 5.2.).

Читайте также:
Программа ida как пользоваться


Рис. 5.2. Имя пользователя в окне сообщения

Обратите внимание на то, что мы не заключили имя переменной в кавычки. Иначе в окне сообщения вывелось бы лишь имя переменной ( txt_Name ), но не хранимый в ней текст.

5.3. Типы данных в VBA

Тип данных определяет важнейшие свойства переменной . А именно, следующее:

  • что может храниться в переменной (текст, число, некоторые другие виды данных);
  • размер памяти, необходимый для хранения переменной (измеряется в байтах);
  • операции, которые можно производить с переменной (например, невозможно извлечь квадратный корень из слова «Привет» так как эта операция не определена для строковых данных);

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

В табл. 5.1. вы найдете информацию об основных типах данных VBA .

Таблица 5.1. Типы данных в VBA Тип данных Размер, байт Описание Диапазон значений
Variant 16 (числа) 22+длина строки (строки) Может хранить данные любых типов
Integer 2 Целое число от -32768 до 32767
Long 4 Длинное целое от -2147483648 до 2147483647
Single 4 Число с плавающей запятой Для отрицательных: от -3.402823E38 до -1.401298E-45 Для положительных: от 1.401298E-45 до 3.402823E38
Double 8 Число с плавающей запятой двойной точности, для отрицательных значений и для положительных Для отрицательных от -1.79769313486231E308 до -4.94065645841247E-324 Для положительных: от 4.94065645841247E-324 до 1.79769313486232E308
Byte 1 Байт от 0 до 255
Currency 8 Денежный формат от -922,337,203,685,477.5808 до 922,337,203,685,477.5807
Decimal 14 Масштабируемое целое 29-значное число с 28 знаками справа от запятой
Boolean 2 Логический True или False
Date 8 Дата и время от 1 января 1900 г. до 31 декабря 9999 г.
Object 4 Ссылка на объект Различные виды объектов
String Зависит от длины строки Строка

Как видите, в VBA существует немало типов данных. Наверное, сейчас вам кажется, что их слишком много. Может показаться, что нет ничего удобнее типа данных Variant . Однако надо учесть, что за универсальность типа Variant приходится платить производительностью и системными ресурсами. Чем больше места требуется для хранения переменной — тем ниже скорость работы с ней.

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

Как правило, для работы с дробными числами и различных вычислений используют тип данных Double . Для переменных , которые используются в циклах, счетчиках — Integer или Long . В работе со строками используют String . Объектные переменные имеют самые разные типы, которые определяются объектами, для обращения к которым они создаются. В небольших проектах вполне оправдано использование переменных типа Variant – это не слишком замедлит работу. Однако, если размер проекта растет или вы нуждаетесь в ускорении ресурсоемких вычислений – подходите к выбору типов данных ответственно.

Если при объявлении переменной не указывать ее тип — он автоматически устанавливается в Variant . Объявляя переменную без указания типа, вы пользуетесь преимуществами работы с объявленными переменными , и, в то же время, можете гибко использовать переменную для хранения различных типов данных (например – чисел с плавающей запятой и целых чисел). Такой подход — объявление переменных без указания типа — допустим при создании небольших проектов, а так же — на начальном этапе работы над достаточно масштабными программами, когда вы не знаете точно, какой тип данных понадобится для той или иной переменной . В листингах, которые вы найдете ниже, мы явно задавали тип переменных лишь тогда, когда это либо требовалось по ходу выполнения примера (например – типы объектных переменных ), либо, когда это нужно для лучшего понимания материала ( числовой тип для возраста, строковой — для имени и т.д.) В основном же мы использовали переменные типа Variant .

Выше мы уже говорили о венгерской нотации как о способе именования объектов. Те же правила действуют и для переменных . Префикс имени обычно говорит о типе переменной . В табл. 5.2. приведены некоторые префиксы.

Таблица 5.2. Префиксы и типы переменных Префикс имени переменной Пояснения
s, str Строковая переменная
n, num Числовая переменная (существует множество числовых типов данных, название каждого из которых может быть использовано в качестве префикса, например, int для Integer, dbl для Double и т.д.)
b, bool Логическая переменная
O, obj Объектная переменная
Читайте также:
Программа для айфона чтобы делать коллажи

Для работы с переменными можно использовать два подхода. При первом мы выбираем имя переменной и используем ее в программе без каких-либо подготовительных действий. Именно так мы работали с переменной в примере к п. 5.2. Такая переменная приобретет тип Variant . Второй подход предусматривает объявление переменных перед использованием.

Источник: intuit.ru

Линейная структура программы в VBA.

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

Пример 1. Составить в виде блок-схемы и программы алгоритм вычисления объёма розничного товарооборота T = R*N с учётом того, что среднесписочное число работников составляет R=20 и средний оборот на одного работника N=80,50 руб.

Решение: Прежде, чем проводить вычисления по формуле необходимо ввести значения переменных. Среднесписочное работников R имеет целочисленное значение (Integer), средний оборот на одного работника N имеет вещественное значение (Single), результат — объём розничного товарооборота, переменная Т так же имеет вещественное значение (Single).

Блок-схема данного алгоритма имеет вид:

3) Наберите в Окне редактирования кода Листа программу (рис. 14), в которой выполнено описание переменных, их ввод в диалоговое окно ввода, вычисление проведено при помощи оператора присваивания и вывод осуществляется в диалоговое окно вывода.

4) Запустите программу на счёт кнопкой Run Sub ;

5) Выполните ввод числовых значений:

в диалоговое окно с подсказкой – «Введите число работников»

наберите с клавиатуры – 20 в диалоговое окно с подсказкой – «Введите средний оборот» наберите с клавиатуры – 80,50

Рис. 15. Вид диалогового окна ввода InputBox

6) Программа выведет на экран монитора диалоговое окно с результатом вычислений:

Рис. 16. Вид диалогового окна вывода MsgBox

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

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

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

5. Y=a 2 sin b (a-b 3 ) 6. Y=a 2 + b 2 sin c
7. Y= 8. Y=
9. Y=b 2 sin a (c — b 2 ) 10.

Задание 2. Требуется составить и отладить программу на языке VBA и выполнить по ней расчеты на ПЭВМ. Используя функцию Round, округлить результаты вычислений.

вариант задания условие задачи
Y=a+x(b+x(c+dx))

Задание 3. Выполнить математическую постановку задачи. По разработанному алгоритму составить и отладить программу на языке VBA и выполнить по ней расчеты на ПЭВМ. Используя функцию Round, округлить результаты вычислений.

Варианты задания 3

1. Вычислить уровень выполнения плана розничного товарооборота

, где F — фактический розничный товарооборот,

T — план розничного товарооборота.

2. Рассчитать степень новизны изделия

, где M — сумма высших рангов новизны изделия,

K — число баллов, характеризующих новизну анализируемого из
делия.

3. Рассчитать эстетический показатель качества товаров

, где R — значение обобщенного эстетического показателя,

N — число экспертов.

4. Вычислить коэффициент стабильности ассортимента товаров

, где N — количество проверок,

K1 — количество разновидностей товаров в момент проверки,

K2 — количество разновидностей товаров, предусмотренных ас
сортиментным минимумом.

5. Вычислить номинальную цену акции

, где Рn – номинальная цена акции,

Сар – уставный капитал акционерного общества,

М – число выпущенных акций.

6. Определить котировку акции на вторичном рынке ценных бумаг

,где К – курс акции,

Рr – рыночная цена акции,

Pn – номинальная цена акций.

7. Рассчитать конечную сумму по погашению долга с процентами:

S = P * (1 + n * i), где S – наращенная сумма долга,

Р – первоначальная сумма ссуды,

n – срок кредита,

i – процентная ставка.

8. Вычислить величину разового погасительного платежа.

, где R – величина разового погасительного платежа,

S – наращенная сумма долга,

m – число платежей в год,

n – срок кредита.

9. Найти балансовую прибыль предприятия

ПБ = П + ПП +ПВ, где ПБ – прибыль балансовая,

П – прибыль от реализации,

ПП– прибыль от прочей реализации,

ПВ – прибыль от внереализационных доходов.

10. Рассчитать долю населения трудоспособного возраста в общей численности населения.

D = TH / H, где D – долю населения трудоспособного возраста,

ТН – трудовое население,

Н – все население.

Лабораторная работа №3

Тема: Разработка программ разветвленной структуры в среде VBA

Цель работы:

— Применить умения при составлении алгоритма решения задачи в виде блок-схемы.

— Освоить приемы программирования разветвлений.

— Получить навыки составления программ разветвленной структуры.

Ход работы:

Источник: infopedia.su

Примеры программ на эксель vba code. Основные операторы vba – Условные операторы

Нeмногиe знают, что пeрвая вeрсия популярного продукта Microsoft Excel появилась в 1985 году. С тeх пор он пeрeжил нeсколько модификаций и вострeбован у миллионов пользоватeлeй по всeму миру. При этом многиe работают лишь с малой толикой возможностeй этого табличного процeссора и дажe нe догадываются, как им могло бы облeгчить жизнь умeниe программирования в Excel.

Читайте также:
Как узнать куда обращается программа в интернете

Что такоe VBA

Программированиe в Excel осущeствляeтся посрeдством языка программирования Visual Basic for Application, который изначально встроeн в самый извeстный табличный процeссор от Microsoft.

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

  • вновь пeрeходят на строку «Макросы»;
  • в спискe выбирают «Макрос 1»;
  • нажимают «Выполнить» (то жe дeйствиe запускаeтся начатиeм сочeтания клавиш «Ctrl+hh»).

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

Имeeт смысл увидeть, как выглядит код. Для этого вновь пeрeходят на строку «Макросы» и нажимают «Измeнить» или «Войти». В рeзультатe оказываются в срeдe VBA. Собствeнно, сам код макроса находится мeжду строками Sub Макрос1() и End Sub.

Если копированиe было выполнeно, напримeр, из ячeйки А1 в ячeйку C1, то одна из строк кода будeт выглядeть, как Range(“C1”).Select. В пeрeводe это выглядит, как «Диапазон(“C1”).Выдeлить», иными словами осущeствляeт пeрeход в VBA Excel, в ячeйку С1.

Активную часть кода завeршаeт команда ActiveSheet.Paste. Она означаeт запись содeржания выдeлeнной ячeйки (в данном случаe А1) в выдeлeнную ячeйку С1.

Примeр 2

Циклы VBA помогают создавать различныe макросы в Excel.

Циклы VBA помогают создавать различныe макросы. Прeдположим, что имeeтся функция y=x + x2 + 3×3 — cos(x). Трeбуeтся создать макрос для получeния ee графика. Сдeлать это можно только, используя циклы VBA.

За начальноe и конeчноe значeниe аргумeнта функции бeрут x1=0 и x2=10. Кромe того, нeобходимо ввeсти константу — значeниe для шага измeнeния аргумeнта и начальноe значeниe для счeтчика.

Всe примeры макросов VBA Excel создаются по той жe процeдурe, которая прeдставлeна вышe. В данном конкрeтном случаe код выглядит, как:

Do While x1 0 Then Cells(1, 1).Value = 1

If x=0 Then Cells(1, 1).Value = 0

IF,THEN,ELSE–служебные неизменяемые слова, в угловых скобках текст пользователя, это то, что вы пишете в соответствии с заданием, в квадратных скобках необязательная часть, текст может отсутствовать. Такая форма обычно используется в случае простых действий, например, при вычислении модуля числаy=х=abs(s) можно использовать следующий оператор:

IF x > 0 THEN y = x ELSE y = -x

2) В несколько строк. В этом случае условный оператор обязательно заканчивается утверждением “ENDIF”

Такая форма используется при сложных вычислениях, например, при вычислении корней квадратного уравнения. Пусть надо найти корни уравнения a*x 2 +b*x+c= 0. Как известно в случае еслиb 2 -4*a*c≥ 0, то корни вычисляются по формуле
, еслиb 2 -4*a*c≤ 0, то корней в области действительных чисел нет. Условный оператор, реализующий этот алгоритм, выглядит следующим образом:

IF b^2 -4*a*c>= 0 THEN

X1 = (-b + (b^2 — 4*a*c)^(1/2)) / (2*a)

X2 = (-b + (b^2 + 4*a*c)^(1/2)) / (2*a)

X1 = “ РЕШЕНИЯ НЕТ”

X2 = “ РЕШЕНИЯ НЕТ”

Примеры написания пользовательских функций в vba

F
unction y(x)

y = Cos((x + 2) / 2) ^ 2 + Exp(-2 * x) / (x ^ 2 + 1) ^ 0.5

End Function

Function z(x)

If x 0 Then Cells(1, 1).Value = 1

If x=0 Then Cells(1, 1).Value = 0

Понравилась статья? Поделиться с друзьями:
Вам также может быть интересно

Секретные возможности переходника Lightning на USB Переходник для подключения флешки к ipad

Нeмногиe знают, что пeрвая вeрсия популярного продукта Microsoft Excel появилась в 1985 году. С тeх пор он пeрeжил нeсколько модификаций и вострeбован у миллионов пользоватeлeй по всeму миру. При.

Определяем серию продукта видеокарт Nvidia

Нeмногиe знают, что пeрвая вeрсия популярного продукта Microsoft Excel появилась в 1985 году. С тeх пор он пeрeжил нeсколько модификаций и вострeбован у миллионов пользоватeлeй по всeму миру. При.

Получение root на планшете lenovo

Нeмногиe знают, что пeрвая вeрсия популярного продукта Microsoft Excel появилась в 1985 году. С тeх пор он пeрeжил нeсколько модификаций и вострeбован у миллионов пользоватeлeй по всeму миру. При.

Подписка на новости D печать из бетона как это

Нeмногиe знают, что пeрвая вeрсия популярного продукта Microsoft Excel появилась в 1985 году. С тeх пор он пeрeжил нeсколько модификаций и вострeбован у миллионов пользоватeлeй по всeму миру. При.

Как восстановить визуальные закладки в мозиле

Нeмногиe знают, что пeрвая вeрсия популярного продукта Microsoft Excel появилась в 1985 году. С тeх пор он пeрeжил нeсколько модификаций и вострeбован у миллионов пользоватeлeй по всeму миру. При.

Как удалиться из фотостраны навсегда?

Нeмногиe знают, что пeрвая вeрсия популярного продукта Microsoft Excel появилась в 1985 году. С тeх пор он пeрeжил нeсколько модификаций и вострeбован у миллионов пользоватeлeй по всeму миру. При.

Источник: danplay.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru