
- •Информатика Сборник лабораторных работ по программированию в среде Visual Basic for Applications
- •Содержание
- •Введение
- •Лабораторная работа №1. Vba. Основные понятия. Среда разработки. Основы пРоГраммирования. Переменные
- •Среда программирования vba
- •Основы программирования на vba
- •Переменные
- •Математические операторы
- •Контрольные вопросы
- •Лабораторная работа №2. Диалоговые окна
- •Лабораторная работа № 3. Разветвляющиеся алгоритмы
- •1. Операторы условия if...Then
- •1.1 Строчный оператор If…Then…Else
- •1.2 Блочный условный оператор
- •1.3 Вложенные операторы If
- •1.4 Логические операции
- •2. Безусловный переход GoTo
- •3. Оператор выбора – переключатель
- •5. Задачи для самостоятельного решения!
- •Лабораторная работа № 4. Циклы со счетчиком
- •Лабораторная работа № 5. Циклы с условием
- •1. Циклы с предусловием
- •2. Цикл с постусловием
- •3. Цикл For Each … Next
- •4. Задания к лабораторной работе
- •5. Контрольные вопросы
- •Лабораторная работа № 6. Работа с формами. Создание интерактивных программ.
- •Примеры создания программ для работы с объектами окна диалога
- •Кнопка на рабочем листе создается с помощью Панели инструментов Формы (Элементы управления). Макрос назначается двойным щелчком левой кнопки мыши или с помощью контекстного меню.
- •Варианты для самостоятельных работ:
- •Литература
Основы программирования на vba
Программа VBA представляет собой совокупность процедур и функций, размещенных, в зависимости от особенностей решаемой задачи, в одном или нескольких модулях. Каждый модуль имеет две области: общую и область процедур. В общей области (General Declarations) помещаются операторы описания переменных, которые являются общими для всех процедур и функций этого модуля. В области процедур помещается код программы.
В VBA программный код, реализующий какие-либо действия, оформляется в виде процедур и функций. Благодаря этому создаваемые программы имеют хорошую структурированность и наглядность.
Различают следующие типы процедур:
процедуры обработки событий;
процедуры макросов;
процедуры пользователя.
Процедуры обработки событий связаны с каким-либо объектом и имеют следующий синтаксис:
Private Sub ИмяОбъекта_Событие()
Тело процедуры
End Sub
где Private – ключевое слово, определяющее область видимости процедуры (в пределах данной формы, рабочего листа);
Sub - ключевое слово, определяющее тип подпрограммы - процедуры;
ИмяОбъекта – имя объекта, с которым связывается процедура;
Событие – вид обрабатываемого события;
Тело процедуры - программный код процедуры;
End Sub – ключевые слова, указывающие на конец процедуры.
Процедура такого типа вызывается тогда, когда происходит соответствующее событие. Например, процедура обработки события «Щелчок» для объекта «Кнопка», при нажатии на которую осуществляется выход из программы, имеет вид:
Private Sub CommandButton1_Click()
End ‘ конец работы программы
End Sub
Процедуры макросов создаются при записи макросов – по команде меню: Сервис – Макрос – Макросы. Они имеют синтаксис:
Sub ИмяМакроса()
Тело макроса
End Sub
В дальнейшем макрос может быть вызван комбинацией клавиш.
Процедура пользователя создается им для выполнения каких-либо действий в рамках разрабатываемой программы. Синтаксис процедуры пользователя имеет вид:
[Private/Public] Sub ИмяПроцедуры (СписокПараметров)
Тело процедуры
End Sub
где [Private/Public] – необязательные ключевые слова, определяющие область видимости процедуры:
Private – ключевое слово, определяющее область видимости процедуры – в пределах данной формы, рабочего листа;
Public - ключевое слово, определяющее область видимости процедуры –для всего проекта.
СписокПараметров служит для передачи процедуре исходных данных для вычислений (могут отсутствовать).
Процедуры и макросы могут вызываться из других программ. Например:
Sub Макрос1()
Dim Str As String ‘Объявление переменной
Str=«Параметр» ‘Присвоение переменной некоторого значения
Proc (Str) ‘Вызов процедуры с передачей ей параметра
End Sub
Public Sub Proc (St As String)
MsgBox St ‘Вывод на экран переданного параметра
End Sub
‘ комментарий – пояснение к программе, которое не интерпретируется VBA
Функция – это процедура, которая выполняет действия и возвращает некоторое (вычисленное) значение вызвавшей программе.
Функция имеет следующий синтаксис:
[Private/Public] Function ИмяФункции (СписокПараметров)_As ТипДанных
Тело функции
ИмяФункции = Выражение
End Function
где [Private/Public] – необязательные ключевые слова, определяющие область видимости функции:
Function - ключевое слово, указывающее, на то, что это функция;
ИмяФункции – имя функции;
СписокПараметров служит для передачи функции исходных данных для вычислений (могут отсутствовать);
ТипДанных – тип данных возвращаемого значения;
End Function – ключевые слова, указывающие на конец функции.
Обращение к функции также может производиться из других функций и процедур. Если функция записана в модуле, то ее можно вызвать из Excel с помощью мастера функций.
Пример:
Sub Proc ()
x=6
p=Y(x) ‘вызов функции
MsgBox p ‘Вывод на экран вычисленного значения
End Sub
Public Function Y (x)_As Integer
Y=x^ 3 ‘расчет куба числа
End Function
Для создания функции или процедуры пользователя нужно выполнить действия:
если в проекте нет модуля, то создать его, выполнив команду меню редактораVisual Basic Insert –Module;
выполнить команду меню редактораVisual Basic Insert –Procedure;
в открывшемся диалоговом окне установить переключатель на Sub (процедура) или Function (функция);
в окне Name ввести имя;
установить соответствующий переключатель области видимости (Scope);
щелкнуть на OK. После выполнения этих действий в окне модуля появится соответствующая заготовка (заголовок и окончание), между которыми нужно поместить программный код.
Существует определенный формат программного кода, задающего установку свойства и использование метода:
Объект.Свойство=Значение
Например:
Worksheets(1).Font.Size=16 ‘задание размера шрифта для листа 1
Label1.Caption=”Название метки” ‘присвоение метке названия
Объект.Метод [Параметры]
Например:
Worksheets(1).Delete ‘удаление листа 1
Listbox1.Additem “Первый” ‘формирование списка
Listbox1.Additem “Второй”
Различные объекты могут иметь различные свойства и методы.
Для ссылок на ячейки в Excel используются свойства рабочего листа Range и Cells. Range используется для работы с ячейками, строками, столбцами, а также их группами. Cells используется для доступа к отдельной ячейке. Если имя листа не указывается, то используется активный лист. Например, как присвоить ячейке А5 листа 1 значение=7 (все записи эквивалентны)?
Worksheets(1).Range(“A5”).Value=7
Worksheets(1).Range(“A5”)=7
Range(“A5”).Value=7
Worksheets(1).Cells(5,1).Value=7
Cells(5,1)=7
В свойстве Cells(№строки, №колонки) указываются через запятую №строки и №колонки. В свойстве Range при задании диапазона ячеек начало и конец диапазона разделяются двоеточием. Например, Range(“A1:F10”).