Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lection7.docx
Скачиваний:
31
Добавлен:
31.03.2015
Размер:
55.51 Кб
Скачать

Лекция 7. Процедуры и функции в vba

  1. Процедуры, функции и макросы

Использование языка VBA отличается от использования других языков, в частности, языка Паскаль. На языке Паскаль обычно пишутся программы, которые преобразуются в исполняемый файл и запускаются по требованию пользователя. Программа на языке Паскаль соответствует приложению MicrosoftExcelв целом. Язык VBA (VisualBasicforApplication) предназначен для написания кода, работающего внутри приложенияMicrosoftExcel. Поэтому код на языке VBA оформляется не в виде самодостаточной программы, а в видеподпрограмм.

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

Можно также сказать, что подпрограмма – это логическиобъединённый набор действий, оформленный по правилам языка программирования.

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

Процедура– это подпрограмма, которая выполняет некоторые действия, но не возвращает никакого значения.

Функция– это подпрограмма, которая возвращает значение.

В офисных пакета используется также термин «макрос». Макрос– это процедура, записанная с помощью специального средства, встроенного в офисное приложение.

  1. Вставка процедур и функций

Процедуры, функции и макросы хранятся в модулях. Модуль– это специальная часть рабочей книги, предназначенная для хранения процедур и функций. До написания процедур и функций в рабочую книгу необходимо вставить модуль с помощью пункта менюVBEInsert Module.

Затем можно вставить процедуру или функцию с помощью пункта меню VBEInsert Procedure. В появившемся диалоговом окне необходимо указать имя подпрограммы и тип подпрограммы – процедура (Sub) или функция (Function). Остальные параметры можно оставить без изменения. Однако список параметров и тип результата функции придётся вписывать вручную. В принципе, использовать пункт меню вставки подпрограммы и соответствующий диалог совсем не обязательно. Можно просто набрать в тексте модуля строкуPublic SubилиPublic Function, и после нажатия клавишиВводредактор VBA вставит завершающую строкуEnd SubилиEnd Functionи отделит новую подпрограмму чертой.

  1. Процедуры

    1. Определение процедуры

Как было сказано, процедура– это подпрограмма, которая выполняет некоторые действия, но не возвращает никакого значения. Процедура имеет следующий синтаксис:

Sub<имя> (<список параметров>)

<инструкции>

[Exit Sub]

<инструкции>

End Sub

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

Список параметров определяет параметры, которые надо передать в процедуру. Эти параметры будут управлять поведением процедуры. Список параметров может быть пустым.

Public Sub CountOfSheets()

MsgBox "Всего листов - " & Sheets.Count & vbNewLine & _

"Рабочих листов - " & Worksheets.Count & vbNewLine & _

"Листов диаграмм - " & Charts.Count

End Sub

Public Sub ChangeNegatives()

Dim cell As Range, n As Integer

n = 0

For Each cell In Selection

If cell.Value < 0 Then

cell.Value = -cell.Value

n = n + 1

End If

Next cell

MsgBox "Обработано ячеек - " & Selection.Count & vbNewLine & "Изменено ячеек - " & n

End Sub

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]