Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_ зао4.doc
Скачиваний:
14
Добавлен:
26.03.2015
Размер:
2.73 Mб
Скачать

4.2 Среда редактора Visual Basic for Application

Редактор VBA можно открыть и с помощью команды Сервис/Макрос/Редактор Visual Basic, либо щелкнув правой клавишей мыши на ярлычке одного из существующих листов и выбрав из контекстного меню Вставка/Исходный текст.

Строка меню основного окна Редактора Visual Basic содержит пункты:

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

Edit – команды редактирования объектов. Они позволяют вырезать, копировать, вставлять, удалять, связывать объекты и т.д.

View – служит для активизации необходимых окон.

Project – для добавления новых форм, модульных листов, удаления ненужных форм, установления параметров проекта и т.д.

Format – для выбора набора инструментов для компоновки элементов управления на поле экранной формы.

Debug – для отладки и редактирования программы

Run – для проверки работоспособности программы путем ее выполнения.

Tools – для установки различных режимов работы (опций).

Add-Ins – для расширения программной оболочки Visual Basic, путем предоставления дополнительных возможностей и удобств.

Windows – для изменения расположения окон проекта, для переключения между окнами.

Help – встроенная помощь и учебник по Visual Basic.

Помимо основного окна в Редакторе Visual Basic есть еще:

  • окно проводника проекта (Project Explorer), в котором отображается состав компонент открытого проекта (по умолчанию оно открыто и находится в левой части окна редактора);

  • окно формы (UserForm) для создания пользовательских форм;

  • панель инструментов (Toolbox), где показан набор пиктограмм, представляющих элементы управления, которые могут использоваться в разрабатываемом приложении;

  • окно свойств (Properties), в котором перечислены свойства выбранного объекта, которые можно быстро изменить непосредственно в этом окне;

  • окно кодов (Code), в котором непосредственно будет записываться программа, т.е. набор операторов данного языка программирования.

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

Чтобы изменить цвет элементов управления, тип шрифта и т. п. надо открыть окно свойств, выполнив в контекстном меню команду Properties. Свойство Caption позволяет изменить заголовок, Font установить шрифт, Picture – отобразить на форме рисунок, файл с которым можно открыть, нажав кнопку в правой части. Значения свойств могут меняться и программным путем.

С объектом можно производить некоторые действия (очистить интервал ячеек на рабочем листе, показать форму на экране, убрать с экрана и т. п.) с помощью методов. Форма записи метода:

Объект.Метод

4.3 Основные конструкции vba

VBA не чувствителен к регистру, т. е. при вводе текста процедур могут использоваться символы как строчные, так и прописные. Новый оператор начинается с новой строки. В любом месте программы может стоять комментарий, который начинается с апострофа «». Длинный оператор можно разбить на несколько строк, используя пробел и символ подчеркивания «_». В одной строке можно помещать несколько операторов, разделяя их двоеточием «:». Символьные значения должны заключаться в двойные кавычки.

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

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

Dim < имя переменной > As < тип переменной >

Рассмотрим некоторые типы переменных:

Integer – для целых чисел (диапазон значений от –32 768 до 32 767), требует объем памяти в 2 байта;

Single – для вещественных (дробных) чисел одинарной точности (диапазон значений: от 3,402823Е+38 до 1,401298Е-45), требует объем памяти в 4 байта. Большие по модулю и близкие к нулю числа записываются с порядком при округлении их до 7 значащих цифр и определении их порядка в виде символа Е с числом, что эквивалентно умножению на 10 в указанной после символа Е степени;

String – для хранения символьных (строковых) значений, каждый символ требует объем памяти в 1 байт. Длина строки символов от 1 до 64К байтов;

Variant – может использоваться для хранения любых данных, требует объем памяти в 8 байт.

Допускается в одном операторе Dim определять несколько переменных и различные типы переменных. Например,

Dim i As Integer, x As Single, y As Single

Если переменная не объявлена, то по умолчанию ей присваивается тип Variant.

Встроенные функции. На языке VBA существуют встроенные математические функции, которые могут быть использованы при записи формул (табл. 4.1). Полный перечень функций языка VBA можно найти в справочной системе.

Таблица 4.1

Запись некоторых математических функций на языке VBA

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

sinx

cosx

ex

|x|

tgx

arctgx

lnx

x

Запись

на VBA

Sin(x)

Cos(x)

Exp(x)

Abs(x)

Tan(x)

Atn(x)

Log(x)

Sqr(x)

Для вычисления Log числа х по основанию n, следует разделить натуральный логарифм числа х на натуральный логарифм числа n:

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

Арифметические операции задаются следующими символами: + (сложение), – (вычитание), * (умножение), / (деление), ^ (возведение в степень), \ – (целая часть от деления), Mod – (остаток от деления), а сами выражения записываются в одну строку.

Например, запись выражения:

на языке VBA будет выглядеть следующим образом:

Sin(3*x)+(Log(x-1)+Tan(x))/(x^3+Exp(x+3))^(1/4)

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

Для работы со строковыми переменными используется оператор конкатенации (слияния) строк: & , либо + .

Пример процедуры, запрашивающей имя (например, Иван) и выводящей в окно сообщений текст: «Сообщение пользователю Иван».

Private Sub CommandButton4_Click()

nUserName = InputBox("Введите ваше имя?")

MsgBox "Сообщение пользователю" & " " & nUserName

End Sub

Оператор присваивания. Этот оператор имеет следующий синтаксис: <имя переменной> = <арифметическое выражение >

Пример записи оператора присваивания:

х = 5*a + log(a + 0.5)-a^3

Здесь символ «=» − это не знак равенства, а знак присваивания.

Ввод информации. Существует множество способов пользовательского ввода информации. Рассмотрим ввод с клавиатуры и ввод из ячеек рабочего листа Excel.

Ввод с клавиатуры осуществляется с помощью встроенной функции InputBox, которая при выполнении программы выводит на экран свое окно. Например, при выполнении строки программного кода: a = InputBox("Введите фамилию") на экране появится диалоговое окно, в котором будет записан текст, заключенный в кавычки, а в полосе ввода значения будет мигать курсор (рис. 4.2). Нужно ввести запрашиваемое в окне значение и нажать клавишу ввода или щелкнуть мышью по кнопке Ок.

Рис. 4.2 − Окно диалогового ввода функции InputBox

При этом возвращаемое функцией InputBox значение имеет тип String. Поэтому для ввода значения числовой переменной в программе необходимо дополнительно преобразовать получаемое значение к числовому типу встроенной функцией Val. Например, для ввода значения числа 7.35 в переменную b необходимо записать следующую строку программного кода:

b = Val(InputBox("Введите значение b"))

При вводе вещественного числа целая часть отделяется от дробной точкой. Число в степенной форме, например, 6,210-8 записывается при вводе как 6.2Е-8

Ввод из ячейки рабочего листа Excel рассмотрим на примере. Если в ячейке A4 листа с именем Лист2 находится некоторое значение, то его можно ввести в переменную х, используя оператор присваивания:

x=Worksheets("Лист2").Range("A4") или

x=Worksheets("Лист2").Cells(4, 1)

где – Worksheets("Лист2") – рабочий лист Excel с именем «Лист2», Range("A4") – ячейка с именем А4, Cells(4, 1) – ячейка с номером строки – 4 и номером столбца – 1.

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

Вывод значений в окно сообщений можно осуществить с помощью функции MsgBox. Например, оператор MsgBox y выводит в окно сообщений значение переменной y.

С помощью этой функции можно выводить и произвольные текстовые сообщения на экран, при этом выводимое сообщение должно быть заключено в кавычки. Например, в результате выполнения строки MsgBox("Деление на нуль") на экране появится окно c текстом: Деление на нуль.

Число, выводимое в окно можно форматировать (указывать количество знаков до и после запятой). Для этого используется функция Format(x, "##.##"), где x переменная, ##.## – формат числа (указывает количество знаков до и после запятой).

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

MsgBox ("Значение x=" & Format(x, "##.#"))

Вывод результатов в ячейки листа Excel рассмотрим на примере вывода значения переменной х в ячейку A4:

Worksheets("Лист1").Range("A4") = x или

Worksheets("Лист1").Cells(4, 1) = x