Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в VBA.doc
Скачиваний:
0
Добавлен:
07.01.2020
Размер:
2.27 Mб
Скачать
    1. Инструкции vba

      1. Оператор присваивания

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

Формат оператора:

[Let] имя переменной или свойства = выражение

Элемент Let необязателен. Он унаследован от ранних версий Visual Basic.

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

В VBA оператором присваивания выступает знак равенства (=).

Примеры

х = 1

x = x + 1

х = (у * 2) / (г * 2)

Cells(1, 2).Value = "План выпуска"

FileOpen = True

FileOpen = Not FileOpen

Range ("The Year").Value = 2009

Зачастую в выражениях применяются функции. Это могут быть встроенные функции VBA, функции рабочих листов Excel или специальные функции, разработанные в VBA. Операции, выполняемые оператором присваивания, приведены в п.2.6.

      1. Инструкция Set

Инструкция Set присваивает ссылку на объект переменной или свойству объекта. При этом переменной присваивается значение объектного выражения или значе­ние, возвращаемое объектной функцией.

Формат инструкции Set:

Set объектная переменная = [ New] объектное выражение  Nothing

  • объектная_переменная – имя переменной или свойство,

  • New – необязательеый; задает создание нового экземпляра класса,

  • Объектное выражение – выражение, состоящее из имени объекта, переменной соответсвующего объектного типа, функции или метода,

  • Nothing – разрывает связь элемента объектная переменная с каким-либо определенным объектом.

Пример

Set Диапазон = Range(“A1:А10”)

– переменной Диапазон присваивается диапазон A1:А10.

      1. Циклы

Циклы предназначены для многократного выполнения группы инструкций. В VBA для организации циклов используются инструкции For... Next, While…Wend, Do …Loop и For Each…Next.

        1. Инструкция For… Next

Эта инструкция повторяет выполнение группы инструкций указанное число раз.

Формат инструкции For… Next

For Счетчик = Начало То Конец [Step Шаг]

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

[Exit For]

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

Next [Счётчик]

Формат инструкции For… Next содержит следующие элементы:

Элемент инструкции

Описание элемента

Счетчик

Обязательный. Числовая переменная, используемая в качестве счётчика цикла

Начало

Обязательный. Начальное значение для Счетчик

Конец

Обязательный. Конечное значение для Счетчик

Шаг

Необязательный. Шаг изменения значения Счетчик после каждого цикла. По умолчанию используется значение 1

Инструкции

Необязательный. Один или более операторов, выполняемых определённое число раз

Пример1

В приведённой ниже процедуре TestFor подсчитывается сумма нечётных чисел в заданном диапазоне, причём числа формируются в цикле с нарастанием на 1.

Option Explicit_________________________________________________

Sub TestFor()

'Подсчёт суммы нечётных чисел в заданном диапазоне

Dim i As Integer

Dim n As Integer

Dim Sum As Integer

Dim r As Integer

n = InputBox("Ведите количество чисел", "Количество нечётных чисел")

r = 0

For i = 1 To n Step 2 '(сумма нечётных чисел от 1 до n)

Sum = Sum + i

r = r + 1

Next i

MsgBox Prompt:="Сумма " & r & " нечётных чисел в диапазоне от 1 до " & n & _

“ равна " & Sum, Buttons:=vbExclamation, _

Title:="Количество нечётных чисел"

End Sub

Ниже приведены диалоговые окна, появляющиеся при выполнении макроса TestFor.

Пример2

В приведённой ниже процедуре TestFor1 подсчитывается сумма нечётных чисел в диапазоне A1:J10 таблицы Excel.

В этой процедуре используются два цикла: внешний цикл с параметром цикла i и вложенный цикл с параметром цикла j.

Option Explicit_________________________________________________

Sub TestFor1()

'Подсчёт суммы нечётных чисел в заданном диапазоне

Dim i As Integer

Dim j As Integer

Dim m As Integer

Dim n As Integer

Dim Sum As Integer

Dim r As Integer

n = InputBox("Ведите количество чисел в столбце", _

"Количество нечётных чисел")

m = InputBox("Ведите количество чисел в строке", _

"Количество нечётных чисел")

r = 0

For i = 1 To n Step 2 '(сумма нечётных чисел от 1 до n)

For j = 1 To m Step 1

Sum = Sum + Cells(i, j)

r = r + 1

Next j

Next i

MsgBox Prompt:="Сумма " & r & " нечётных чисел в диапазоне" _

& Chr(13) + Chr(10) _

& " от 1 до " & n * m & " равна " & Sum, Buttons:=vbExclamation

End Sub

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

Sub TestFor2()

Dim i As Integer

Dim j As Integer

Dim m As Integer

Dim n As Integer

m = InputBox("Введите количество чисел в столбце", _

"Количество нечётных чисел")

n = InputBox("Введите количество чисел в строке", _

"Количество нечётных чисел")

For i = 1 To n Step 1 '(сумма нечётных чисел от 1 до n)

For j = 1 To m Step 1

Cells(j, i) = InputBox("Ведите значение в ячейку " & Chr(64 + i) & j, _

"Ввод данных в таблицу")

Next j

Next i

End Sub

В процедуре TestFor2 функция Chr(64 + i) возвращает (выдаёт значение) строку, содержащую символ, код которого указан в качестве аргумента. Код 65 соответствует латинской букве A, 66 – букве B и т.д. Ниже показано диалоговое окно, соответствующее функции InputBox во вложенном цикле цикле процедуры TestFor2.