Visual Basic for Applications (VBA) для Excel

возведения основания

натурального логарифма в

указанную степень

Log (A) Натуральный логарифм 1,098612289

Rnd () Случайное число из интервала

[0,1). Перед вызовом функции

Rnd используйте инструкцию

Randomize() без аргумента

Sgn (A)

Sgn (-A)

Знак числа 1

-1

Sqr (A) Квадратный корень из числа 1,732050808

Int (A/B) Отбрасывает дробную часть 0

Функции преобразования форматов

Val ("3.5") Возвращает числа,

содержащиеся в строке, как

числовое значение

соответствующего типа

3.5

Str (A) Возвращает значение,

являющееся строковым

представлением числа

"3"

В качестве допустимого десятичного разделителя функция str воспринимает

только точку. При наличии другого десятичного разделителя (например, запятой)

для преобразования чисел в строки следует использовать функцию cstr, описанную

ниже.

Функции обработки строк

string$="сдать Зачет" : length=5 : start=4

Lease(string$) Преобразует строку к

нижнему регистру.

"сдать зачет"

Ucase(string$) Преобразует строку к

верхнему регистру.

"СДАТЬ

ЗАЧЕТ"

Left(string$,

length)

Возвращает подстроку,

состоящую из заданного числа

первых символов исходной

строки

"сдать"

Right(string$,

length)

Возвращает строку,

состоящую из заданного числа

последних символов исходной

строки.

"зачет"

Mid (string$,

start,

length)

Возвращает подстроку строки,

содержащую указанное число

символов.

"ть За"

Len (string$) Возвращает число символов

строки.

LTrim (" "&string$)

RTrim (string$&" ")

Возвращает копию строки без

пробелов в начале|конце.

"сдать Зачет"

"сдать Зачет"

InStr(start,

string$,"а")

Возвращает позицию первого

вхождения одной строки

внутри другой строки.

Visual Basic for Applications (VBA) для Excel

Цикл

Повторяет блок операторов заданное количество раз.

FOR Счетчик = Начало TO Конец [STEP шаг]

[Инструкции]

NEXT Счетчик

Пример:

j = 0

For i = 1 To 10 step 1

j = j + 1

Next i

String$ = Str$(i) & " " & Str$(j)

После выполнения данной программы String$ принимает значение "11 10".

Visual Basic for Applications (VBA) для Excel

Взаимодействие с Excel

Код программ на VBA в Excel создается в специальном редакторе, который

доступен по горячим клавишам Alt+F11 или через меню Сервис 􀃆 Макрос 􀃆

Редактор Visual Basic

Код программ записывается в специальных модулях. Пример создания нового

модуля изображен на рисунке ниже.

Создание функции (Function)

Функция, созданная в VBA может быть вызвана как любая другая встроенная

функция MS Excel. В приведенном примере в ячейке B1 вызывается myfunc, в

которую передается содержимое ячейки A1 и присваивается переменной a$. Далее,

Visual Basic for Applications (VBA) для Excel

в ходе выполнения программы одноименной с названием функции myfunc

переменной присваивается значение, возвращаемое в рабочий лист Excel.

Создание процедуры (Sub)

Процедура (или подпрограмма или макрос) отличается от функции тем, что

1. в нее не передаются значения;

2. из нее не возвращаются значения;

⇒ процедура не может быть вызвана из ячейки листа.

Процедуры должны быть полностью автономны и получать входные данные

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

Подпрограмма объявляется аналогично объявлению функции:

Sub mysub()

Rem Операторы процедуры

End Sub

Для запуска выполнения процедуры необходимо создать кнопку ее вызова.

Для этого нужно выбрать одноименную пиктограмму на панели инструментов

Формы (Вид 􀃆 Панели инструментов 􀃆 Формы) и присвоить ей выполнение

макроса. В случае, если процедура на момент создания кнопки еще не написана, то

можно указать ее в поле «Имя макроса» и нажать на кнопку «Создать» (на рисунке

внизу кнопка «Создать» заменит кнопку «Правка»).

В VBA предусмотрено несколько способов считывания данных с листа. Во

следующих двух вариантах значение из ячейки A1 будет считываться в переменную

a$.

a$=Cells(1, 1).Value

a$=Range("A1").Value

Visual Basic for Applications (VBA) для Excel

При этом первый вариант удобен для считывания большого массива ячеек с

использованием циклов. Второй – при считывании отдельных ячеек из листа.

На рисунке выше показан результат выполнения процедуры после нажатия

кнопки «Кнопка 3» или кнопки «Run Sub/UserForm». Алгоритм работы процедуры

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

Visual Basic for Applications (VBA) для Excel

Пример задач

Задачи на технику и алгоритмизацию1:

1) Найти корни квадратного уравнения при заданных параметрах a,b,c.2

2) Найти N-ное число Фибоначчи3.

3) Показать разложение числа на Общие Делители.

4) Найти Наибольший Общий Делитель (НОД) двух чисел.

5) Вывести в столбец все перестановки чисел 1..N.

6) Подсчитать количество слов длины К из данных N букв, не

содержащих данное подслово.

7) Привести матрицу к треугольному виду и решить систему уравнений

методом Гаусса.

1 Задачи пронумерованы по мере усложнения алгоритмической составляющей задачи.

2 Нечетные задачи реализовать в виде подпрограмм, четные – в виде функций.

3 В том числе найти формулу определения чисел Фибоначчи.__

Наши рекомендации