Переменные, оператор присваивания. Организация вычислений



Excel как система программирования на VBA

Объектами документа Excel являются листы. На листах можно хранить конкретную информацию, проводить расчеты по формулам. Для хранения текстов программ в Excel существуют специальные листы – модули. В одном модуле может храниться несколько программ. Работа с модулями происходит в Редакторе Visual Basic.

Редактор Visual Basic доступен из раздела ленты «Разработчик». По умолчнию этот раздел может отсутствовать на ленте. Чтобы его получить, надо настоить ленту

Насторить ленту: Лента–Файл–Параметры–Насторить ленту– в разделе «Основные вкладки» включить флажок у раздела «Разработчик».

Открыть редактор VB: Лента – Разработчик – Visual Basic

Редактор VB отражается на панели задач (нижняя сттрока экрана Windows) как один из открытых документов Excel. Соответственно, переключаться между редактором VB и электронной таблицей надо через значок Excel на панели задач.

Мы будем использовать определенную настройку редактора, требующую явно объявлять переменные (как это принято и в Паскале).

Обязательная настройка: Меню–Сервис–Параметры–Редактор–Явное описание переменных (VB–Меню–Tools–Options–Editor–Require Variable Declaration) – в начале нового модуля должна появляться строка Option Explicit.

По умолчанию в документе Excel (книге) нет модулей. Их надо специально вставлять в книгу.

Создать (вставить) модуль: Меню–Insert–Module

На компьютере:

1. Вызвать Редактор Visual Basic

2. Зайти в Меню–Tools–Options–Editor и проверить (включить) флажок «Явное описание переменных» (Require Variable Declaration).

3. Вставить один модуль.

4. Отследить появление инструкции Option Explicit, которая устанавливает режим обязательного объявления переменных.

5. Попереключаться между редактором Visual Basic и таблицей (Excel)), остановиться на редакторе Visual Basic.

Первая программа

У справочников по системам программирования есть традиция: они начинаются с того, что объясняют, как с помощью программы вывести на экран слова « Hallo, World» («Привет, мир»). Последуем этой традиции.

На компьютере:

1. В редакторе Visual Basic пропустите строчку после строки «Option Explicit», напечатайте:

Sub Privet

и нажмите Enter.

Вы увидите, что компьютер добавит скобки в конце первой строки и напечатает еще одну строчку:

End S ub

2. Между строчками Sub Privet() и End Sub на пустой строке напечатайте:

Msgbox “Привет, мир“

3. Перейдите в таблицу Excel и выполните: Лента – Разработчик – Макросы , В окне появится единственный макрос – Privet. Выделите его и щелкните по кнопке «Выполнить».

Запущенная Вами программа выведет на экран «Привет, мир».

 

Теперь давайте разберем этот пример. В модуле VBA мы записали процедуру. Процедура – это часть программного текста, которая имеет имя и может быть вызвана на выполнение по этому имени. VBA распознает процедуру по ключевым словам Sub и End Sub. « Sub» - это сокращение от SUBprogramm (подпрограмма) – старого названия процедуры.

Формат процедуры

Sub <Name> () – заголовок процедуры
Текст процедуры (в несколько строк)
End Sub – окончание процедуры

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

Скобки после заголовка обязательны (если их забыть, то компьютер добавит их автоматически). В скобках описываются параметры процедуры. С тем, что такое параметры, мы разберемся позже, но очевидно, что Privet – это процедура без параметров.

В VBA (в отличие от Паскаля) нет понятия основной программы. В модуле могут быть описаны несколько процедур. Любая процедура без параметров может быть запущена на выполнение как как самостоятельная программа. Такая процедура еще называется макрос. Созданную процедуру-макрос можно запускать как из модуля, так и с рабочего листа. Последнее предпочтительней, так как макросы, использующие информацию листа (такие будем делать на следующих уроках), лучше запускать именно с листа.

Запуск макроса: (Рабочий лист Excel) – Лента – Разработчик – Макросы –<Выделить нужный макрос> – Выполнить

Стиль работы в модуле

Редактор VB постоянно проверяет набираемый текст. Основная проверка происходит при переходе на новую строку. Редактор:

· расставляет пробелы по своему стандарту;

· добавляет некоторые обязательные элементы текста (например, пустые скобки после имени процедуры)

· пишет «знакомые» слова с большой буквы;

· выделяет некоторые знакомые слова цветом;

· сразу выдает сообщение о замеченных синтаксических ошибках.

Рекомендации:

· Печатать текст маленькими буквами – их превращение в большие означает правильное узнавание текста компьютером.

· Отодвигать текст процедуры (но не заголовок–окончание) от левого края с помощью клавиши Tab.

· Сразу печатать заголовок и окончание процедуры (или проверять, что редактор вставляет окончание процедуры автоматически), а затем заполнять «середину».

Перед запуском программы Excel еще раз просматривает текст. Если при этом проявляются ошибки (например, необъявленная переменная), то редактор заставляет их исправить. Такую проверку можно вызвать специально:

Проверить программу перед запуском: (Редактор VB) – Меню – Debug – Compile VBAProject

Кроме этого в программе могут быть ошибки, которые проявляются только при выполнении программы (например, деление на ноль). Их называют ошибками времени выполнения (run-time error).

Особенности синтаксиса VBA

VBA не различает заглавные и строчные буквы.

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

Основным разделителем (например, между параметрами команды) является запятая. Соответственно, разделителем в десятичных дробях будет точка (например: 3.14)

В языках программирования есть понятие операторных скобок, которые ограничивают группу команд. Строго говоря, ни в Паскале, ни в VBA операторных скобок нет. В Паскале их роль выполняют слова begin- end, которые пишутся после названия структуры. В результате получается такая конструкция:

СТРУКТУРА

     (

     команды

     )

В VBA роль открывающей скобки выполняет само название структуры, а роль закрывающей – строка вида End <структура>. В результате получается следующее:

( СТРУКТУРА

команды

END СТРУКТУРА )

Вы уже видели этот принцип на примере формата процедуры.

В текст программы можно включать комментарии. Комментарии должны начинаться со знака «’» (на букве «э» без Shift при латинском алфавите). Комментарии могут как занимать целую строку, так и помещаться после строки программного текста.

Текст программы принято структурировать с помощью отступов (клавиша Tab). Ориентируйтесь на примеры, которые приводятся в этом материале.

Переменные, оператор присваивания. Организация вычислений

Начнем с примера. Программа считает площадь и периметр прямоугольника по двум сторонам. Можете сразу проверить его на компьютере.

Sub prjam()

Dim a As Integer, b As Integer

Dim P as Integer, S As Double

a = 24

b = 8

P = (a + b) * 2

S = a * b

Msgbox "Периметр - " & P

Msgbox "Площадь - " & S

End Sub

 

Понятия переменной в Паскале и VBA в общем совпадают. Переменная – это ячейка компьютерной памяти, которая имеет имя и хранит значение.

В VBA переменные надо предварительно объявлять:

Dim <name> As <type>

имя   тип

Тип определяет значения, которые могут, хранится в переменной. Зафиксируем (пока) 4 типа:

· Integer – целые числа со знаком (примерно от -32000 до 32000)

· Double – действительные числа с «двойной» точностью

· String – строковая переменная

· Boolean – логическая переменная (истина/ложь)

В нашем примере программист рассчитывает, что стороны будут представлены целыми числами, но значение площади может «вылететь» за пределы 32000.

В одной строке можно объявлять несколько переменных; тип надо указывать после каждой переменной.

Переменные, которые объявляются внутри процедуры, «живут» только внутри данной процедуры.

 

Для того, чтобы положить значение в ячейку, используется инструкция («оператор») присваивания.

<name> = <значение>

(почти как в Паскале, но с простым знаком равенства вместо « := »)

<Значение> может быть представлено (пока):

· числом

· переменной

· действием, в т.ч. с переменными.

Для обращения к значению переменной достаточно просто написать ее имя (тоже как в Паскале).

 

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

Одного примера пока достаточно, идем дальше.


Дата добавления: 2019-03-09; просмотров: 226; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!