VBA



Поддержка JavaScript отключена

SBP-Program
На главную — > VBA &nbsp

&nbsp

Язык VBA

]]>

Язык VBA достаточно простой. Ниже приводится краткий курс языка VBA. Аббревиатура VBA означает Visual Basic for Applications, т.е. Visual Basic для приложений.

Пример объявления локальной переменной в VBA:

Dim intVar As Integer

здесь объявлена локальная, т.е. видимая в пределах функции, переменная типа Integer.

Пример объявления глобальной переменной в VBA:

Public intVar As Integer

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

Пример объявления переменной, видимой только в своём модуле:

Private intVar As Integer

Пример объявления статической переменной в VBA:

Dim Static intVar As Integer

Статические переменные в VBA можно объявлять только на уровне процедуры. Значение статической переменной в этом примере равно нулю, т.е. при объявлении числовая переменная инициализируется нулем.

Особенность объявления переменных в VBA состоит в том, что переменную можно и не объявлять, но использовать. Тип таких переменных — Variant. Но рекомендуется объявлять переменные, указывать их тип, а не использовать тип Variant.

Константы в VBA объявляют с помощью Const:

Const intValue As Integer = 1234

Константам значение присваивается при их объявлении.

Пример объявления массива в VBA:

Dim intArray(0 To 5) As Integer

объявлен массив типа Integer, индексы элементов изменяются от нуля до пяти.

Пример двумерного массива в VBA:

Dim intArray(0 To 5, 0 To 2) As Integer

Динамические массивы могут изменять свой размер. Объявление динамического массива:

Dim intArray() As Integer

здесь размер массива не указан. Но перед использованием такого массива следует объявить его размер:

ReDim intArray(5)

Можно и изменить его размер после предыдущего определения:

ReDim intArray(15)

Пример объявления процедуры в VBA:

Public Sub aProcedure(ByVal intA As Integer, ByRef lngSqr As Long)
&nbsp&nbsp&nbsp&nbsplngSqr = intA * intA
End Sub

В этом примере объявлена процедура, видимая из всех модулей, на это указывает слово Public, принимающая два параметра: intA по значению, на это указывает ключевое слово ByVal, и параметр lngSqr по ссылке, на это указывает ключевое слово ByRef. Ключевое слово Sub говорит, что объявлена процедура.

По умолчанию аргументы передаются в процедуры по ссылке.

Функции отличаются от процедур тем, что возвращают значение. Пример функции в VBA:

Public Function lngFunc(ByVal intA As Integer) As Long
&nbsp&nbsp&nbsp&nbsplngFunc = intA * intA
End Sub

Для задания функции используем ключевое слово Function, после списка аргументов указываем тип возвращаемого значения. Строка

lngFunc = intA * intA

возвращает значение из данной функции, слева — имя функции, в данном случае оно играет роль return.

Откройте Excel, в строке меню окна Excel выберете Сервис — > Макрос — > Редактор Visual Basic. Откроется окно редактора, оно называется Microsoft Visual Basic. В окне Project – VBA Project кликаем дважды по Лист1. Вводим код:

Public Sub aMessage()
&nbsp&nbsp&nbsp&nbspMsgBox («It is my first VBA program.»)
End Sub

Далее Debug — > Compile VBA Project. Если нет ошибок, то запускаем нашу программу: Run — > Run Sub/UserForm.

Видим такую картину:

Java

Если у вас так получилось, то это значит, что самое трудное позади и очень скоро вы освоите VBA окончательно.

Сделаем программу с использованием функций. Напомню, что функция — это процедура, которая возвращает значение. Пусть наша программа возводит целое число в квадрат. Код на VBA:

Public Function lngSqr(ByVal intVal As Integer) As Long
&nbsp&nbsp&nbsp&nbsp lngSqr = intVal * intVal
End Sub

Public Sub calculation()
&nbsp&nbsp&nbsp&nbsp lngSqr = intVal * intVal
&nbsp&nbsp&nbsp&nbsp Dim intVar As Integer
&nbsp&nbsp&nbsp&nbsp Dim lngResult As Long
&nbsp&nbsp&nbsp&nbsp intVar = 5
&nbsp&nbsp&nbsp&nbsp lngResult = lngSqr(intVar)
&nbsp&nbsp&nbsp&nbsp MsgBox («The result is » & lngResult)
End Sub

Получаем:

Java

Программирование

]]> ]]>
&nbsp
&nbsp
&nbsp