Microsoft Excel/Visual Basic for Applications в Excel/Переменные и константы. Арифметические и логические выражения: различия между версиями

Содержимое удалено Содержимое добавлено
заранее приготовленный текст
(нет различий)

Версия от 18:10, 26 сентября 2014

Введение

Для того, чтобы войти в надстройку Visual Basic for Applications и использовать её, нажмите Alt+F11 (более универсальный вариант) или выберите команду Вид → Макросы (→ Макросы) → Создать. При этом в поле «Находится в» должно стоять значение «Эта книга» (текущая открытая книга) или «Название_имеющейся_книги», чтобы надстройка могла быть связана с данной книгой, используемой в настоящий момент.

Пусть мы создали макрос с именем My в книге Книга1. Появится окно редактирования и отладки программ, приведённое на рис. 3. В папке Modules мы увидем компонент Module1, в котором находится процедура My. Первоначально тело процедуры не заполнено и вся процедура выглядит так:

Sub my()

End Sub

Мы создали модуль Module1, содержащий процедуру My, который можно использовать в любой книге. Мы можем также создать модуль внутри данной книги. Для этого необходимо два раза нажать на меню «ЭтаКнига» («ThisWorkbook»). Создадим внутри книги процедуру Hello_World, которая выводит типичное для программистов сообщение «Hello World!» (по-русски — «Здравствуй, мир!») В поле General (Общая область) введём следующий код:

Sub Hello_World()

 MsgBox "Hello World!"

End Sub

Выполним программу. Для этого необходимо нажать клавишу F5 либо кнопку со стрелкой на панели инструментов Visual Basic. На экране мы увидим окно с надписью Hello World! и кнопкой ОК. Нажмём ОК — окно исчезнет, программа завершит свою работу и мы вернёмся в окно редактирования Visual Basic.

Переменные

Ситуация с переменными в VBA похожа на ситуацию в языке программирования Pascal. Однако в Visual Basic, в отличие от Паскаля, можно не объявлять переменные до начала их использования в программе. VBA сам определяет тип переменной, когда встречает её в программе. Однако это не оптимальный вариант. Прежде всего, программа будет работать медленнее. Более того, если будет ошибка в имени переменной, то Visual Basic создаст новую переменную, а не выведет сообщение об ошибке. Для того чтобы нельзя было использовать переменных без их описания, мы должны в начало программы поместить оператор Option Explicit. Если после этого VBA обнаружит не объявленную ранее переменную, то на экран будет выведено сообщение «Variable not defined» («Переменная не определена»).

Описание переменных задаётся следующим образом: Dim <имя_переменной> As <тип_переменной> Примеры:

  • Dim i As Integer
  • Dim S As String
  • Dim My_date As Date, num As Single

В примере 3 было объявление нескольких переменных в одной строке

Типы переменных

Операторы ввода и вывода

Как уже упоминалось выше, MsgBox — процедура, которая используется для вывода информации на экран. Единственный параметр строкового типа — сообщение, которое необходимо вывести на экран. Тем не менее, если в качестве параметра указана переменная другого типа, то VBA сам преобразует её в тип строки. Нужно помнить, что процедура принимает ровно один параметр, то есть в процедуре MsgBox не может быть более одной переменной в списке вывода.

Чтобы вынести несколько переменных, их нужно преобразовать к строковому типу и объединить в одну строку путём конкатенации (сложения) строк. Для сложения строк мы можем использовать как знак &, так и знак +, как в языке Pascal.

Например, следующая процедура Sub my()

 Dim A As String
 A = "Товар стоит " & 1000 & " рублей"
 MsgBox A

End Sub

выведет на экран текст «Товар стоит 1000 рублей».

Чтобы, наоборот, ввести информацию, мы можем использовать функцию InputBox(<текст>). В качестве параметра <текст> указывается строка — тот текст, который мы хотим видеть в окне ввода качестве подсказки.