Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика VBA экзамен.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.54 Mб
Скачать

Правила

Типы данных. Тип данных у object может быть любым типом класса или структуры или даже простейшим типом Visual Basic (например Integer). Платформа .NET Framework поддерживает все простейшие типы, а также классы или структуры, к членам которых можно получить доступ в блоке With.

Объявление. Необходимо объявить object перед блоком With. Невозможно объявить его уже в операторе With.

Число итераций. Блок With — это не итерационная конструкция. Если внутри блока не существует циклов, инструкции выполняются лишь раз.

Вложенные структуры. Структуры With...End With можно вкладывать друг в друга. Пример см. в разделе Практическое руководство. Выполнение нескольких действий над объектом (Visual Basic).

Но поскольку члены внешних операторов маскируются во внутренних инструкциях, внутри внутреннего блока With придется использовать полные имена при ссылках на члены объектов внешнего блока With.

Также можно вложить друг в друга различные виды управляющих структур. Дополнительные сведения см. в разделе Вложенные структуры управления (Visual Basic).

Выход из структуры. Visual Basic не поддерживает Оператор Exit (Visual Basic) для передачи управления вовне из блока With. Если необходимо выйти до выполнения всех инструкций, поместите метку на оператор End With и для перехода к нему используйте Оператор GoTo. Дополнительные сведения см. в разделе Практическое руководство. Операторы меток (Visual Basic).

Невозможно передать управление извне блока With вовнутрь, или наоборот. Можно вызвать процедуру из блока, но управление вернется к следующей инструкции.

Доступ к другим объектам. После входа в блок With нельзя переназначить object до прохождения через инструкцию End With. Таким образом, можно получить доступ к методам и свойствам только заданного объекта без их полного описания. Можно использовать методы и свойства других объектов, однако необходимо указывать их имена полностью.

21. Процедуры — это самые важные функциональные блоки языка VBA. В VBA вы можете выполнить только программный код, который содержится в какой-либо процедуре (обычной в стандартном модуле, событийной для элемента управления на форме и т.п.). Иногда начинающие пользователи пытаются записать команды прямо в область объявлений стандартного модуля и не могут понять, почему они не выполняются (сообщений о ошибке при этом не выдается — просто этот код становится "невидим" для компилятора). Причина проста — в разделе объявлений модуля (когда в верхних списках показываются значения (General) и (Declarations) могут быть только объявления переменных уровня модуля и некоторые специальные инструкции для компилятора. Весь остальной программный код должен находится внутри процедур.

В VBA предусмотрены следующие типы процедур:

Процедура типа Sub (подпрограмма) — универсальная процедура для выполнения каких-либо действий.

22.Функции

Функция-процедура - это особый вид процедуры VBA, возвращающей результат. Пользовательские функции-процедуры, как и встроенные функции VBA, могут иметь необязательные и именованные аргументы. Для записи функции-процедуры нельзя использовать макрорекордер, хотя можно редактировать записанный рекордером макрос и превращать его в функцию-процедуру.

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

Синтаксис:

Function Name([Arglist]) [As Type]

'VBA Statements

[Name = expression]

End Function

Function - ключевое слово, объявляющее начало функции.

Name - имя функции. Имена функций следуют тем же правилам, что и имена других идентификаторов VBA.

Arglist - список аргументов данной функции, необязательный элемент.

Type - любой тип возвращаемого значения функции. Если тип не определен, результат, который возвращает функция-процедура, имеет тип Variant.

Name = expression - присваивание функции, которое указывает VBA, какое значение должна возвращать функция, необязательный элемент. Тем не менее, всегда следует включать оператор присваивания в функции-процедуры.

End Function - ключевые слова, заканчивающие функцию.

Даже если функция не имеет аргументов (например, Now, Date) в объявлении функции необходимо использовать круглые скобки.

Обычно функция предназначается для выполнения вычисления и для возвращения результата. При объявлении функции-процедуры указывается имя каждого аргумента, передаваемого функции. Имена аргументов в списке отделяются друг от друга запятой и должны следовать правилам, применяемым к любому идентификатору VBA.

Ниже представлен листинг использования простейшей функции-процедуры, которая убирает начальные и конечные пробелы и подсчитывает количество символов в выражении.

23. В языке программирования VBA определено довольно много встроенных функций. Они доступны в любой программе на языке VBA, при этом безразлично, в среде какого программного продукта мы находимся — Excel, Word, Access или, к примеру, AutoCAD. Используются они очень активно, и во многих ситуациях без них не обойтись.

Чтобы вывести список функций VBA, введите в окне кода символы VBA. (с точкой в конце!). В результате этого редактор Visual Basic выведет подсказку - раскрывающийся список, содержащий все встроенные функции VBA. Кроме функций, в списке выводятся имена всех встроенных констант. Каждая

функция VBA подробно описана в справочной системе. Для просмотра справки по интересующей вас функции установите курсор на ее имени и нажмите клавишу <F1>.

Большие функциональные возможности предоставляет использование VBA совместно с функциями рабочих листов Excel. В коде VBA можно применять многие из встроенных функций рабочих листов, но есть особенность: в коде VBA нельзя применить функцию рабочего листа, для которой есть эквивалентная функция VBA. Например, в коде VBA нельзя вызвать функцию рабочего листа КОРЕНЬ (В оригинальной версии — SQRT), потому что в VBA есть своя версия этой функции — Sqr, причем в коде VBA русифицированной версии Excel используются не русские, а исходные (английские) имена функций рабочего листа. Например, функция МЕДИАНА В коде VBA должна быть записана как Median.