
- •Часть 1.
- •1.1 Введение
- •1.2 Правила оформления конструкций языка vba в общем виде
- •1.3 Идеология визуальных языков
- •1.4 Основные понятия визуальных языков
- •1.5 Дополнительные понятия языка vba
- •2 Переменные и константы
- •2.1 Структура модуля
- •2.2 Объявление переменных и констант
- •Имя_Модуля1.Имя_Поля
- •2.2.2 Неявное и явное объявление переменных ( Оператор Option Explicit )
- •2.3 Неименованные константы
- •2.4 Оператор присваивания
- •2.4.1 Арифметические выражения
- •2.4.2 Строковые выражения
- •2.4.3 Логические выражения
- •Сравнение строковых переменных в логических выражениях
- •2.4.4 Выражения Data
- •2.4.5 Выражения Variant
- •2.4.6 Смешанные выражения
- •2.5 Функции определения типа переменной
- •2.6 Функция форматного преобразования переменной в строковый формат
- •3 Подпрограммы ( процедуры и функции )
- •3.1 Описание подпрограмм
- •3.2 Входные параметры подпрограммы
- •3.3 Вызов подпрограмм
- •3.3.1 Изменение вида входного параметра при вызове подпрограммы
- •3.4 Описание событийной процедуры объекта
- •3.5 Рекурсивные подпрограммы (процедуры и функции)
- •4 Операторы vba
- •4.1 Условный оператор If
- •4.2 Оператор выбора Case
- •4.3 Операторы цикла
- •4.3.1 Циклы for Оператор цикла For .. Next
- •Оператор цикла For Each .. Next
- •Досрочный выход из циклов For
- •4.3.2 Оператор цикла While .. Wend
- •4.3.3 Циклы do Оператор цикла Do While .. Loop
- •Оператор цикла Do .. Loop Until
- •Другие циклы do
- •Досрочный выход из циклов do
- •4.4 Оператор еnd (досрочное завершение программы)
- •4.5 Оператор Exit (досрочный выход из подпрограмм и циклов)
- •4.6 Оператор перехода goto
- •4.7 Оператор On Error (обнаружения ошибок)
- •4.8 Оператор With (обращения к полям структурированных типов, а так же к методам и к потомкам объектов)
- •4.9 Оператор Set (установка и снятие указателя )
- •4.10 Оператор New (создание экземпляров)
- •4.11 Оператор DoEvents (Прерывание работы подпрограммы)
- •4.12 Оператор Shell (Запуск исполняемых файлов)
- •4.13 Оператор AppActivate (Активизация окна другой программы)
- •4.14 Оператор SendKeys (Эмуляция нажатия на клавиши)
- •4.15 Вложенность структур операторов
- •5 Структурированные типы vba
- •5.1 Введение
- •5.2 Массивы
- •5.2.1 Статический массив
- •5.2.2 Динамический массив
- •5.2.3 Объявление массива через функцию Array
- •5.2.4 Функции определения размерности массива
- •5.2.5 Опрос, ввод и вывод в цикле ячеек массива
- •5.2.6 Массивы массивов
- •5.2.7 Поиск максимума и минимума в массиве
- •5.2.8 Сортировка массива
- •5.2.9 Оператор высвобождения памяти занятой динамическим массивом и обнуления ячеек статического массива (Erase)
- •5.3 Записи ( и массивы записей)
- •5.3.1 Запись с константными полями
- •5.4 Семейства (Коллекции)
- •5.5 Объекты
- •5.5.1 Введение
- •5.5.2 Объект Application
- •5.5.3 Объекты ActiveWorkbook, ThisWorkbook, Workbooks (связь с книгой Excel)
- •5.5.4 Объекты ActiveSheet, Worksheets (связь с листом книги Excel)
- •5.5.5 Объекты Rows, Columns ,Range, Cells, Selection, ActiveCell (связь со строками, столбцами и ячейками листа Excel)
- •5.5.6 Элементы управления
- •Элемент управления CommandButton (Кнопка)
- •Элементы управления CheckBox, OptionButton (Флажок, Переключатель)
- •Элемент управления TextBox (текстовый редактор)
- •Элементы управления ListBox, ComboBox (Список ,Поле со списком)
- •Элементы управления ScrollBar ,SpinButton (Полоса прокрутки ,Счетчик)
- •Элемент управления Imаge (Рисунок)
- •5.6 Объект Форма
- •6 Диалоги
- •7 Работа с файловой системой
- •7.1 Введение
- •7.1.3 Работа с файловой системой через программу Мой компьютер (My Computer)
- •7.2 Функция dir ( Просмотр содержимого директории и определение наличия файла на диске)
- •7.3 Работа с дисковым пространством
- •7.3.1 Дополнительные функции для работы с дисковым пространством
- •7.4 Работа с файлами
- •7.4.1 Работа с текстовым файлом
- •7.4.2 Работа с двоичным файлом
- •7.4.3 Работа с файлом произвольного типа данных
- •7.5 Просмотр содержимого ярлыка
- •7.6 Функция Environ (Определение местонахождения служебных директорий Windows)
- •Оглавление
- •2 Переменные и константы 9
- •3 Подпрограммы ( процедуры и функции ) 34
- •4 Операторы vba 47
- •5 Структурированные типы vba 70
- •5.3 Записи ( и массивы записей) 83
- •5.4 Семейства (Коллекции) 85
- •5.5 Объекты 87
- •6 Диалоги 119
- •7 Работа с файловой системой 122
- •Часть 1
3.2 Входные параметры подпрограммы
В описательной части процедуры или функции за ее именем в скобках могут быть описаны входные параметры подпрограммы. Входные параметры подпрограммы – это имена входных переменных, которые используются в теле подпрограммы.
Входные параметры описываются через запятую, по следующему принципу:
[Вид] Имя_Входного_Параметра[ ( ) ] [as тип] [=Значение]
где
Вид – Служебное слово определяющее вид входного параметра
тип –Тип входного параметра (Если служебное слово as с типом опущено, то входной параметр имеет тип Variant)
Если за именем входного параметра типа ByRef или ВуVal набраны скобки, то данный входной параметр является динамическим массивом, и получает значения от переменных, являющимися массивами. Но только не от переменных объявленных функцией Array. Получить значение от массива объявленного функцией Array входными параметрами ByRef и ВуVal можно только в том случаи, если указанные нами параметры имеют тип Vаriant и не содержат за своим именем скобок. Во входные параметры ByRef и ВуVal типа Variant, имена которых не содержат скобок, можно передавать массивы объявленные любым из способов описанных нами в главе Структурированные типы VBA – Массивы. Но только не массивы записей. Входной параметр ByRef и ВуVal получающий значение от массива записей должен обязательно иметь в конце имени скобки, и должен иметь тип соответствующей записи.
Значение – Начальное значение входного параметра по умолчанию (применяется в необязательных входных параметрах Оptional, если в данных входных параметрах значение опущено, то входной необязательный параметр по умолчанию имеет пустое значение, либо нулевое значение, если указанный параметр числового типа)
Виды входных параметров |
|
Название |
Функция параметра |
ByRef (или отсутствует служебное слово, определяющее Вид входного параметра) |
Значение входного параметра передается той переменной, которая задала ему начальное значение ( Т.е. параметр данного типа является указателем или ссылкой на переменную, задавшему ему начальное значение. ) |
ВуVal |
Значение входного параметра не передается той переменной, которая задала ему значение ( Т.е. параметр данного типа получает только значение от переменной, и не является указателем или ссылкой на последнюю) |
Оptional |
Необязательный входной параметр. Вслед за ним все остальные входные параметры должны быть необязательными. Параметр Optional не может быть использован вместе с входным параметром ParamArray. |
ParamArray |
Необязательный входной параметр. Используется только в качестве последнего входного параметра. Этот параметр всегда должен иметь тип Variant, и он не может быть использован вместе с входным параметром Оptional. В этот параметр можно передать список значений переменных и (или) констант любого неструктурированного типа. За именем этого входного параметра обязательно должны идти скобки, которые обозначают, что параметр является динамическим массивом. Просмотреть все элементы ParamArray можно через специальный цикл For each. Ниже в примере показана пользовательская процедура, которая выводит список значений входных переменных разделенный пробелами в окно вывода:
Sub print1(ParamArray V( )) Dim s as string, n as variant s = "" For Each n In V s = s + " " & n Next n MsgBox s, , "Окно Вывода" End Sub |