Разделы презентаций


1 Язык программирования VBA Тишков Артем Валерьевич Степанов Александр

Содержание

Рассматриваемые вопросы:Создание и выполнение макросов ExcelРазработка пользовательской таблицы средствами процессора ExcelИнтегрированная среда разработки VBAТипы записи ссылок в Excel Анализ текста созданного макроса1.Элементарное взаимодействие Excel и VBA

Слайды и текст этой презентации

Слайд 1Язык программирования VBA
Тишков Артем Валерьевич
Степанов Александр Георгиевич (ГУАП)


2020

Язык программирования VBAТишков Артем Валерьевич					Степанов Александр Георгиевич (ГУАП)2020

Слайд 2Рассматриваемые вопросы:
Создание и выполнение макросов Excel
Разработка пользовательской таблицы средствами процессора

Excel
Интегрированная среда разработки VBA
Типы записи ссылок в Excel
Анализ текста

созданного макроса

1.Элементарное взаимодействие Excel и VBA

Рассматриваемые вопросы:Создание и выполнение макросов ExcelРазработка пользовательской таблицы средствами процессора ExcelИнтегрированная среда разработки VBAТипы записи ссылок в

Слайд 3Создание и выполнение макросов Excel
Макросом обычно называют последовательность операторов на

языке Visual Basic for Applications (VBA)
Каждый макрос должен иметь собственное

имя.
По своей сути макрос представляет собой программу и может быть создан автоматически в специальном режиме работы программной системы (в том числе и Excel) или как результат программирования в терминах языка системы
Создание и выполнение макросов ExcelМакросом обычно называют последовательность операторов на языке Visual Basic for Applications (VBA)Каждый макрос

Слайд 4Создание и выполнение макросов Excel
Для создания макроса в Excel легче

всего использовать автоматический режим его создания, вызываемый из главного меню

Вид кнопкой Макросы.
Создание и выполнение макросов ExcelДля создания макроса в Excel легче всего использовать автоматический режим его создания, вызываемый

Слайд 5Создание и выполнение макросов Excel
Проверьте установку уровня безопасности командой Параметры,

Центр управления безопасностью, Параметры управления безопасностью, Параметры макросов.

Создание и выполнение макросов ExcelПроверьте установку уровня безопасности командой Параметры, Центр управления безопасностью, Параметры управления безопасностью, Параметры

Слайд 6Создание и выполнение макросов Excel
Если в меню Вид, Макрос выбрать

пункт Запись макроса…, то откроется диалоговое окно, позволяющее задать имя

макроса и, при желании, комбинацию клавиш, с помощью которой он также может вызван
Создание и выполнение макросов ExcelЕсли в меню Вид, Макрос выбрать пункт Запись макроса…, то откроется диалоговое окно,

Слайд 7Создание и выполнение макросов Excel
Начиная с этого момента все действия

с рабочей книгой дополнительно записываются в файл макроса
Остановить запись макроса

можно через аналогичный пункт главное меню Вид, Макрос - Остановить запись

Создание и выполнение макросов ExcelНачиная с этого момента все действия с рабочей книгой дополнительно записываются в файл

Слайд 8Разработка пользовательской таблицы средствами процессора Excel
Исходные данные

Разработка пользовательской таблицы средствами процессора ExcelИсходные данные

Слайд 9Разработка пользовательской таблицы средствами процессора Excel
Результаты программирования в Excel

Разработка пользовательской таблицы средствами процессора ExcelРезультаты программирования в Excel

Слайд 101.3. Интегрированная среда разработки VBA
Запуск редактора VBA

1.3. Интегрированная среда разработки VBA Запуск редактора VBA

Слайд 11Интегрированная среда разработки VBA

Интегрированная среда разработки VBA

Слайд 121.4. Типы записи ссылок в Excel
Два типа записи ссылок на

ячейки в формулах: A1 (по умолчанию) и R1C1.
A1: первый

символ имя столбца, второй – номер строки
R1C1: первые два символа “Row” + “1” – номер строки, вторые - “Column” + “1” – номер столбца. В программировании используется этот тип записи ссылок.
1.4. Типы записи ссылок в ExcelДва типа записи ссылок на ячейки в формулах: A1 (по умолчанию) и

Слайд 13Типы записи ссылок в Excel
Использование этого стиля позволяют организовать относительную

и абсолютную адресацию к ячейкам таблицы (за счет введения в

строку символа $).
Типы записи ссылок в ExcelИспользование этого стиля позволяют организовать относительную и абсолютную адресацию к ячейкам таблицы (за

Слайд 14Типы записи ссылок в Excel
При использовании абсолютной адресации после символов

R и C указывается собственно номер строки и столбца. Так,

например, ячейка $B$3 имеет адрес R3C2.

Обратите внимание на то, что, в отличие от типа A1, при использовании типа ссылок R1C1 сначала записывается строка, а потом столбец.

Типы записи ссылок в ExcelПри использовании абсолютной адресации после символов R и C указывается собственно номер строки

Слайд 15Типы записи ссылок в Excel
При использовании относительной адресации в стиле

R1C1 после обозначения строки или колонки в квадратных скобках указывается

смещение по отношению к текущей ячейке.
Так, например, если данные находятся в ячейке B3, а ссылка на нее программируется в ячейке А5, то в формуле она запишется как R[-2]C[1].

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

Типы записи ссылок в ExcelПри использовании относительной адресации в стиле R1C1 после обозначения строки или колонки в

Слайд 161.5. Анализ текста созданного макроса
Range("C2").Select
ActiveCell.FormulaR1C1 =

"=RC[-1]*R7C3"
Range("D2").Select
ActiveCell.FormulaR1C1 = "=RC[-2]-RC[-1]"
Range("C2:D2").Select

Selection.AutoFill Destination:=Range("C2:D5"), Type:=xlFillDefault
Range("C6").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-4]C:R[-1]C)"
Range("D6").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-4]C:R[-1]C)"
End Sub

Sub Расчет_заработной_платы()
Расчет _заработной_платы Макрос
Макрос записан 01.12.2005 (Администратор)

1.5. Анализ текста созданного макроса  Range(

Слайд 17Анализ текста созданного макроса

Анализ текста созданного макроса

Слайд 18Анализ текста созданного макроса
Range (диапазон). Возникает при выделении
ActiveCell (активная ячейка).

Возвращает объект Range
FormulaR1C1. Свойство, возвращающее или задающее формулу типа

R1C1 в активную ячейку
Selection (выделение). Свойство, возвращающее выделенный объект
AutoFill (автозаполнение). Метод, осуществляющий заполнение выделенных ячеек

Анализ текста созданного макросаRange (диапазон). Возникает при выделенииActiveCell (активная ячейка). Возвращает объект Range FormulaR1C1. Свойство, возвращающее или

Слайд 192. Отладка и выполнение программы в среде VBA
Рассматриваемые вопросы:
Назначение

окон интегрированной среды разработки VBA
Выполнение программы в автоматическом режиме
Выполнение программы

в режиме отладки
2. Отладка и выполнение программы в среде VBA Рассматриваемые вопросы:Назначение окон интегрированной среды разработки VBAВыполнение программы в

Слайд 202.1. Назначение окон интегрированной среды разработки VBA

2.1. Назначение окон интегрированной среды разработки VBA

Слайд 21Назначение окон интегрированной среды разработки VBA
Окно проектов содержит список форм

и модулей текущего проекта.
Проект – набор файлов, используемых для построения

приложений.
Назначение окон интегрированной среды разработки VBAОкно проектов содержит список форм и модулей текущего проекта.Проект – набор файлов,

Слайд 22Назначение окон интегрированной среды разработки VBA
Окно редактора кодов служит для

редактирования программного кода приложения. Для каждой формы и каждого модуля

кода создается свое окно.
Назначение окон интегрированной среды разработки VBAОкно редактора кодов служит для редактирования программного кода приложения. Для каждой формы

Слайд 23Назначение окон интегрированной среды разработки VBA
Окно свойств перечисляет установленные свойства

выбранного объекта

Назначение окон интегрированной среды разработки VBAОкно свойств перечисляет установленные свойства выбранного объекта

Слайд 24Назначение окон интегрированной среды разработки VBA
Окно локальных переменных предназначено для

контроля за значениями переменных во время отладки программы

Назначение окон интегрированной среды разработки VBAОкно локальных переменных предназначено для контроля за значениями переменных во время отладки

Слайд 25Назначение окон интегрированной среды разработки VBA
Кроме перечисленных интегрированная среда разработки

содержит окна
тестирования Immediate (немедленное выполнение), позволяющее изменять значения переменных программы

в момент ее выполнения и даже вводить дополнительные операторы;
просмотра мгновенных значений Watch, позволяющее вести контроль выбранной переменной программы;
некоторые другие.
Назначение окон интегрированной среды разработки VBAКроме перечисленных интегрированная среда разработки содержит окнатестирования Immediate (немедленное выполнение), позволяющее изменять

Слайд 262.2. Выполнение программы в автоматическом режиме
Run, Run Sub/User Form
Run,

Run Macro

2.2. Выполнение программы в автоматическом режимеRun, Run Sub/User Form Run, Run Macro

Слайд 272.3. Выполнение программы в режиме отладки

Debug, Step Into
Debug, Step

Over
Debug, Step Out
Debug, Run To Cursor

Debug, Toggle Breakpoint


2.3. Выполнение программы в режиме отладкиDebug, Step Into Debug, Step Over Debug, Step Out Debug, Run To

Слайд 283. Обмен данными между Excel и VBA
Рассматриваемые вопросы:
Типы данных

VBA
Идентификаторы в VBA
Объявление переменных в VBA
Массивы в VBA
Оператор присваивания
Использование свойства

Cells() для обмена данными между Excel и VBA
3. Обмен данными между Excel и VBA Рассматриваемые вопросы:Типы данных VBAИдентификаторы в VBAОбъявление переменных в VBAМассивы в

Слайд 293.1. Типы данных VBA
Тип данных ‑ способ внутреннего представления данных

в памяти машины, учитывающий метод их кодирования в одной или

нескольких ячейках памяти и предусматривающий возможности их расшифровки или преобразования.
3.1. Типы данных VBAТип данных ‑ способ внутреннего представления данных в памяти машины, учитывающий метод их кодирования

Слайд 30Типы данных VBA
Типы данных Excel

Типы данных VBAТипы данных Excel

Слайд 31Типы данных VBA

Типы данных VBA

Слайд 32Типы данных VBA

Типы данных VBA

Слайд 33Типы данных VBA
Type (определяемый пользователем). Определяется элементами типа. Диапазон каждого элемента

определяется его типом данных
Type Запись_Ведомости
Фамилия_И_О As String
Начислено_Ведомость As Currency
Налог_Ведомость As

Currency
К_выдаче_Ведомость As Currency
End Type
Типы данных VBAType (определяемый пользователем).	Определяется элементами типа.	 Диапазон каждого элемента определяется его типом данныхType Запись_ВедомостиФамилия_И_О As StringНачислено_Ведомость

Слайд 343.2. Идентификаторы в VBA
Идентификатором называется символическое имя ячейки памяти.
Каждый язык

программирования содержит свои правила составления таких имен.
Общим является то, что

программист вправе сам придумать имя, что позволяет ему сохранить в нем смысловое значение.
3.2. Идентификаторы в VBAИдентификатором называется символическое имя ячейки памяти.Каждый язык программирования содержит свои правила составления таких имен.Общим

Слайд 35Идентификаторы в VBA
В языке VBA имеются следующие ограничения на имена:

Длина имени не должна превышать 255 символов.
Имя должно начинаться с

буквы.
Имя не может содержать точек и символов %, &, !, #, @, $
Буквы рассматриваются инвариантно по отношению к регистру, то есть имя Aa и aA есть одно и то же имя.
Допускается использование символов латыни и кириллицы.
Совпадения имен идентификаторов с так называемыми ключевыми словами не допускается..

Идентификаторы в VBAВ языке VBA имеются следующие ограничения на имена: Длина имени не должна превышать 255 символов.Имя

Слайд 36Идентификаторы в VBA
Использование символов кириллицы в именах позволяет программисту создавать

осмысленные имена идентификаторов, что облегчает чтение и отладку программы

Идентификаторы в VBAИспользование символов кириллицы в именах позволяет программисту создавать осмысленные имена идентификаторов, что облегчает чтение и

Слайд 37Идентификаторы в VBA
Возможные варианты идентификаторов языка VBA:
I, j, Name,

Переменная, Результат_вычислений.
Еще варианты записи идентификаторов:
A%, B&, C!, D#,

E@, F$.
В этом случае символы %, &, !, #, @, $ не входят в состав идентификатора и используются в качестве специального признака типа данных
Идентификаторы в VBAВозможные варианты идентификаторов языка VBA: I, j, Name, Переменная, Результат_вычислений. Еще варианты записи идентификаторов: A%,

Слайд 383.3. Объявление переменных в VBA
Dim I As Integer, Name, j

As Integer, Переменная As Integer, GGG As Integer
Обратите внимание

на то, что если вы не указываете явно тип переменной, то по умолчанию она имеет тип Variant. Так, в рассмотренном выше примере такой тип имеет переменная Name.
3.3. Объявление переменных в VBADim I As Integer, Name, j As Integer, Переменная As Integer, GGG As

Слайд 39Объявление переменных в VBA
Обрабатывая файл исходного текста программы компилятор создает

двоичный файл, который впоследствии после дополнительной обработки представляет собой последовательность

кодов программы, выполняемой процессором
Там же в программе отводится область для хранения данных
Объявление переменных в VBAОбрабатывая файл исходного текста программы компилятор создает двоичный файл, который впоследствии после дополнительной обработки

Слайд 40Объявление переменных в VBA
Строка объявления переменных обрабатывается компилятором. Результат обработки

– резервирование ячеек памяти в двоичном файле
Адреса ячеек определяются как

смещение по отношению к первому байту исполняемой программы
После загрузки файла в ОЗУ адреса ячеек получают абсолютные значения

Объявление переменных в VBAСтрока объявления переменных обрабатывается компилятором. Результат обработки – резервирование ячеек памяти в двоичном файлеАдреса

Слайд 413.4. Массивы в VBA
Практика программирования широко использует переменные, обращение к

которым ведется как по имени, так и по номеру.
В

этом случае можно говорить о создании переменных табличного типа, когда обращение к данным ведется по имени и номеру (индексу) внутри этого имени.
Такие переменные обычно называются массивами.
3.4. Массивы в VBAПрактика программирования широко использует переменные, обращение к которым ведется как по имени, так и

Слайд 42Массивы в VBA
Массив ‑ последовательно упорядоченные в памяти данные одного

типа
Каждый массив имеет имя
Имя массива – идентификатор, за которым

закреплен свой адрес ОЗУ
Массивы в VBAМассив ‑ последовательно упорядоченные в памяти данные одного типа Каждый массив имеет имяИмя массива –

Слайд 43Массивы в VBA
Количество таких ячеек определяет размер массива
Объявления массивов:
Dim

YY(25)
Объявляется одномерный массив из 26 элементов. Начальный (базовый) индекс принят

по умолчанию равным 0.
Dim ZZ(3,10) As Single
Объявляется двумерный массив ZZ типа Single, первый индекс которого меняется в диапазоне от 0 до 3, а второй в диапазоне от 0 до 10.
Dim SS(-3 To 3,1 To 10) As Integer
Массивы в VBAКоличество таких ячеек определяет размер массива Объявления массивов:Dim YY(25)Объявляется одномерный массив из 26 элементов. Начальный

Слайд 44Массивы в VBA
Dim SS(-3 To 3,1 To 10) As Integer
Обращение

к элементу массива в тексте программы с явным указанием номеров

элементов: SS(-2,5).
Если переменная Name содержит число –2, а ячейка Переменная число 5, то обращение SS(Name, Переменная) полностью эквивалентно предыдущему.
Если в процессе предыдущих вычислений переменная Name примет значение –4, а мы попытаемся выполнить SS(Name, Переменная), то произойдет обращение к несуществующему элементу массива и возникнет ошибка выхода индекса за границы массива.
Массивы в VBA	Dim SS(-3 To 3,1 To 10) As IntegerОбращение к элементу массива в тексте программы с

Слайд 45Динамические массивы в VBA
Dim Начислено() As Currency, i As Integer
i

= 10
ReDim Начислено(1 To i)
Массив Начислено() первоначально был объявлен как

массив неопределенной длины. Инструкция ReDim изменила массив, причем память под него была отведена в момент выполнения программы.
Динамические массивы в VBADim Начислено() As Currency, i As Integeri = 10ReDim Начислено(1 To i)Массив Начислено() первоначально

Слайд 463.5. Оператор присваивания
Оператор присваивания обеспечивает занесение информации в ячейки памяти,

связанные с идентификатором и имеет символ равенства (=).
i =

10
В отличие обычного равенства, которое выполняется всегда, оператор присваивания имеет динамические свойства (зависит от времени).
3.5. Оператор присваиванияОператор присваивания обеспечивает занесение информации в ячейки памяти, связанные с идентификатором и имеет символ равенства

Слайд 473.6. Использование свойства Cells() для обмена данными между Excel и

VBA
Отдельную проблему представляет прямая и обратная передача данных из таблицы

Excel в ячейки памяти, объявленные в программе, написанной на VBA.
Автоматически созданный макрос непосредственно манипулирует с ячейками таблицы используя стили ссылки на ячейки в Excel: A1 и R1C1.
Такой прием может быть использован и в рабочей программе, однако в этом случае ее модификация и использование существенно затруднены.
3.6. Использование свойства Cells() для обмена данными между Excel и VBAОтдельную проблему представляет прямая и обратная передача

Слайд 48Использование свойства Cells() для обмена данными между Excel и VBA
Гораздо

предпочтительнее использовать свойство Cells() стандартного объекта Excel Range.
Сам объект

представляет собой ячейку, столбец, строку или выделенный диапазон листа Excel.
Свойство Cells() позволяет непосредственно обратиться к объекту Excel по номеру строки и колонки.
Поскольку это свойство установлено по умолчанию для рабочего листа Excel, то его можно использовать без дополнительных указаний.
Использование свойства Cells() для обмена данными между Excel и VBAГораздо предпочтительнее использовать свойство Cells() стандартного объекта Excel

Слайд 49Использование свойства Cells() для обмена данными между Excel и VBA
Если

запись свойства стоит слева от оператора присваивания, то производится запись

данных в ячейку таблицы, если справа, то считывание значения из ячейки таблицы.
Кроме собственно записи данных свойство Cells() в сочетании со свойствами других объектов (Font, Color и т.п.) позволяет задавать параметры шрифта, его цвет, фон и так далее.
Использование свойства Cells() для обмена данными между Excel и VBAЕсли запись свойства стоит слева от оператора присваивания,

Слайд 504. Операции VBA
Рассматриваемые вопросы:
Арифметические операции
Операции сравнения
Логические операции
Операции со строками

4. Операции VBAРассматриваемые вопросы:Арифметические операцииОперации сравненияЛогические операцииОперации со строками

Слайд 514.1. Арифметические операции

4.1. Арифметические операции

Слайд 524.2. Операции сравнения

4.2. Операции сравнения

Слайд 534.3. Логические операции

4.3. Логические операции

Слайд 544.4. Операции со строками

4.4. Операции со строками

Слайд 555. Операторы VBA
Рассматриваемые вопросы:
Правила записи операторов в языке VBA
Условный оператор
Оператор

ветвления
Семейство операторов For
Семейство операторов Do

5. Операторы VBAРассматриваемые вопросы:Правила записи операторов в языке VBAУсловный операторОператор ветвленияСемейство операторов ForСемейство операторов Do

Слайд 56Операторы VBA
Оператором называется самостоятельная конструкция языка программирования, которая может быть

отдельно откомпилирована и выполнена в виде заранее определенной последовательности кодов

процессора
Операторы VBAОператором называется самостоятельная конструкция языка программирования, которая может быть отдельно откомпилирована и выполнена в виде заранее

Слайд 575.1. Правила записи операторов в языке VBA
Операторы записываются на отдельных

строчках и могут не нумероваться.
Для размещения нескольких операторов на одной

строке между ними необходимо поставить символ двоеточие ( : ). Этот же символ используется для обозначения меток.
Для переноса продолжения оператора на следующую строку используется комбинация символов пробел знак подчеркивания ( _). Нельзя разбивать переносом выражения и строки. Допускается не более семи переносов строк одного оператора.
5.1. Правила записи операторов в языке VBAОператоры записываются на отдельных строчках и могут не нумероваться.Для размещения нескольких

Слайд 585.2. Условный оператор

5.2. Условный оператор

Слайд 59Условный оператор
Формат условного оператора
If Условие Then [Операторы] [Else Операторы_Else] End

If
Пример программы с условным оператором
If Таблица(i) > extr Then

extr = Таблица(i)
Else
End If
Условный операторФормат условного оператораIf Условие Then [Операторы] [Else Операторы_Else] End IfПример программы с условным операторомIf Таблица(i) >

Слайд 605.3. Оператор ветвления

5.3. Оператор ветвления

Слайд 61Оператор ветвления
Формат оператора ветвления Select Case Выражение
[Case Значение1

[Операторы1]]
[Case ЗначениеN [ОператорыN]]

[Case Else [ОператорыElse]]
End Select

Оператор ветвленияФормат оператора ветвления Select Case Выражение   	[Case Значение1 [Операторы1]]

Слайд 62Оператор ветвления
Пример программы с оператором ветвления
Dim РежимРаботы As String, День

As Integer
День = 2
Select Case День
Case 1

РежимРаботы = "Прием документов"
Case 2, 3, 4
РежимРаботы = "Работа с документами"
Case 5
РежимРаботы = "Выдача документов"
Case 6, 7
РежимРаботы = "Выходные дни"
Case Else
РежимРаботы = "Ошибка задания номера дня"
End Select
Оператор ветвленияПример программы с оператором ветвленияDim РежимРаботы As String, День As IntegerДень = 2Select Case День

Слайд 635.4. Семейство операторов For

5.4. Семейство операторов For

Слайд 64 Семейство операторов For
Форматы оператора

For Счетчик=Начало To Конец [Step Шаг]
[Операторы]
[Exit

For]
[Операторы]
Next [Счетчик]

For Each Элемент In Группа
[Операторы]
[Exit For]
[Операторы]
Next [Элемент]

Семейство операторов ForФорматы оператораFor Счетчик=Начало To Конец [Step Шаг]		[Операторы]	[Exit For]		[Операторы]Next [Счетчик]For Each Элемент In Группа	[Операторы]	[Exit For][Операторы]Next

Слайд 65 Семейство операторов For
Пример программы с оператором цикла for
Dim i

As Integer, AA(10) As Double, _
BB(10) As Double, j As

Variant
For i = 1 To 10
AA(i) = i
Next i
For Each j In AA
BB(j) = AA(j)
Next j
Семейство операторов ForПример программы с оператором цикла forDim i As Integer, AA(10) As Double, _BB(10) As

Слайд 665.5. Семейство операторов Do

5.5. Семейство операторов Do

Слайд 67Семейство операторов Do

Семейство операторов Do

Слайд 68Семейство операторов Do

Do [While Условие]
[Операторы]
[Exit Do]
[Операторы]
Loop


Do
[Операторы]
[Exit Do]
[Операторы]

Loop [While Условие]

Операторы While выполняются до тех пор,
пока Условие

= True.

или

Семейство операторов DoDo [While Условие]	[Операторы]	[Exit Do]	[Операторы]	Loop	  Do	[Операторы]	[Exit Do]	[Операторы]  Loop [While Условие]Операторы While выполняются до тех

Слайд 69Семейство операторов Do
Пример программы с оператором цикла While
Dim

i As Integer, AA(10) As Double, _
BB(10) As Double, j

As Variant
i = 1
Do While i <= 10
AA(i) = i
i = i + 1
Loop
j = 1
Do
BB(j) = AA(j)
j = j + 1
Loop While j <= 10
Семейство операторов Do  Пример программы с оператором цикла WhileDim i As Integer, AA(10) As Double, _BB(10)

Слайд 70Семейство операторов Do
Do [Until Условие]
[Операторы]
[Exit Do]
[Операторы]
Loop

Do
[Операторы]
[Exit Do]
[Операторы]
Loop [Until Условие]

Операторы Until

выполняются до тех пор, пока Условие = False
или

Семейство операторов DoDo [Until Условие]	[Операторы]	[Exit Do]	[Операторы]Loop	Do	[Операторы]	[Exit Do]	[Операторы]Loop [Until Условие]Операторы Until выполняются до тех пор, пока Условие =

Слайд 71Семейство операторов Do
Пример программы с оператором цикла Until
Dim i As

Integer, AA(10) As Double, _
BB(10) As Double, j

As Variant
i = 1
Do Until i > 10
AA(i) = i
i = i + 1
Loop
j = 1
Do
BB(j) = AA(j)
j = j + 1
Loop Until j > 10

Семейство операторов DoПример программы с оператором цикла UntilDim i As Integer, AA(10) As Double, _ BB(10) As

Слайд 72Семейство операторов Do
Оператор выполняется, пока Условие = True
While Условие
[Операторы]
Wend

Семейство операторов DoОператор  выполняется, пока Условие = TrueWhile Условие	[Операторы]Wend

Слайд 736. Процедуры и функции
Рассматриваемые вопросы:
Процедуры в VBA
Функции в VBA
Возврат значений

из процедур и функций в вызывающую программу через список формальных

параметров
Встроенные функции
Функции Excel, определенные пользователем
6. Процедуры и функцииРассматриваемые вопросы:Процедуры в VBAФункции в VBAВозврат значений из процедур и функций в вызывающую программу

Слайд 746.1. Процедуры в VBA
Процедурой называется самостоятельная программа, предназначенная для решения

определенной задачи.
Каждая процедура имеет имя. Это имя является идентификатором процедуры.
Макрос

Excel представляет собой процедуру VBA.
6.1. Процедуры в VBAПроцедурой называется самостоятельная программа, предназначенная для решения определенной задачи.Каждая процедура имеет имя. Это имя

Слайд 75Процедуры в VBA
Каждая процедура может быть вызвана по имени. Если

вызов отсутствует, то процедура выполняться не будет.
Процедура может быть запущена

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

Слайд 76Процедуры в VBA
Формат описания процедуры:



[Private или Public] [Static] Sub Имя

[(СписокАргументов)]
[Операторы]
[Exit Sub]
[Операторы]
End Sub

Процедуры в VBAФормат описания процедуры:[Private или Public] [Static] Sub Имя [(СписокАргументов)]		[Операторы]		[Exit Sub]		[Операторы]End Sub

Слайд 77Процедуры в VBA
Формат описания списка аргументов:
[Optional] [ByVal или ByRef] [ParamArray]

ИмяПеременной[()] [As Тип] [=поУмолчанию]

Optional - необязательный элемент. Должен иметь тип

Variant. Все последующие элементы списка должны иметь такой же ключ и тип.

Способ передачи параметров
ByVal –по значению, ByRef – по ссылке (по умолчанию)
Процедуры в VBAФормат описания списка аргументов:[Optional] [ByVal или ByRef] [ParamArray] ИмяПеременной[()] [As Тип] [=поУмолчанию]Optional - необязательный элемент.

Слайд 78Процедуры в VBA
Формат описания списка аргументов:
[Optional] [ByVal или ByRef] [ParamArray]

ИмяПеременной[()] [As Тип] [=поУмолчанию]


ParamArray – неизвестное число параметров. Может быть

использовано только с последним элементом списка формальных параметров и позволяет передавать динамически объявляемый массив
Процедуры в VBAФормат описания списка аргументов:[Optional] [ByVal или ByRef] [ParamArray] ИмяПеременной[()] [As Тип] [=поУмолчанию]ParamArray – неизвестное число

Слайд 79Процедуры в VBA
Формат описания списка аргументов:
[Optional] [ByVal или ByRef] [ParamArray]

ИмяПеременной[()] [As Тип] [=поУмолчанию]


ИмяПеременной[()] - аргумент процедуры (обычная переменная или

массив). Идентификатор, имеющий смысл формального параметра процедуры. Может быть несколько аргументов.
Процедуры в VBAФормат описания списка аргументов:[Optional] [ByVal или ByRef] [ParamArray] ИмяПеременной[()] [As Тип] [=поУмолчанию]ИмяПеременной[()] - аргумент процедуры

Слайд 80Процедуры в VBA
Формат описания списка аргументов:
[Optional] [ByVal или ByRef] [ParamArray]

ИмяПеременной[()] [As Тип] [=поУмолчанию]

[As Тип] - тип данных аргумента

Процедуры в VBAФормат описания списка аргументов:[Optional] [ByVal или ByRef] [ParamArray] ИмяПеременной[()] [As Тип] [=поУмолчанию][As Тип] - тип

Слайд 81Процедуры в VBA
Формат описания списка аргументов:
[Optional] [ByVal или ByRef] [ParamArray]

ИмяПеременной[()] [As Тип] [=поУмолчанию]


[=поУмолчанию] - значение аргумента по умолчанию

Процедуры в VBAФормат описания списка аргументов:[Optional] [ByVal или ByRef] [ParamArray] ИмяПеременной[()] [As Тип] [=поУмолчанию][=поУмолчанию] - значение аргумента

Слайд 82Процедуры в VBA
После заголовка процедуры следует конечное число обычных операторов

языка VBA, представляющих собой тело определения функции. Если в их

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

Слайд 83Процедуры в VBA
Пример процедуры:
Sub ПримерПроцедуры(День As Integer, _ РежимРаботы As

String)
Select Case День
Case 1
РежимРаботы =

"Прием документов"
Case 2, 3, 4, 5
РежимРаботы = "Выдача документов"
Case Else
РежимРаботы = "Выходные дни"
End Select
End Sub
Процедуры в VBAПример процедуры:Sub ПримерПроцедуры(День As Integer, _ РежимРаботы As String)	Select Case День  	 	Case 1

Слайд 84Процедуры в VBA
Пример вызывающей процедуры:
Sub ДемонстрацияПримераВызоваПроцедуры()
Dim a As Integer b

As Integer , _
s As String, ss As String
a

= 1
Call ПримерПроцедуры(a, s)
b = 6
ПримерПроцедуры b, ss
End Sub

Процедуры в VBAПример вызывающей процедуры:Sub ДемонстрацияПримераВызоваПроцедуры()Dim a As Integer b As Integer , _ s As String,

Слайд 85Процедуры в VBA
Аргументами процедуры в момент ее описания являются так

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

и операторов тела процедуры для указания необходимой последовательности действий
Формальные параметры получают физические адреса памяти для своего размещения они только в момент вызова процедуры. Обычно говорят, что процедура (функция) вызывается с фактическими параметрами
Процедуры в VBAАргументами процедуры в момент ее описания являются так называемые формальные параметры. Они используются как полноправные

Слайд 866.2. Функции в VBA
Функцией называется самостоятельная вызываемая через оператор присваивания

программа, предназначенная для решения определенной задачи.

6.2. Функции в VBAФункцией называется самостоятельная вызываемая через оператор присваивания программа, предназначенная для решения определенной задачи.

Слайд 87Функции в VBA
[Public или Private] [Static] Function Имя [(СписокАргументов)] [As

Тип]
[Операторы]
[Имя=Выражение]
[Exit Function]
[Операторы]
[Имя=Выражение]
End Function

Функции в VBA[Public или Private] [Static] Function Имя [(СписокАргументов)] [As Тип]	[Операторы]	[Имя=Выражение]	[Exit Function]	[Операторы]	[Имя=Выражение]End Function

Слайд 88Функции в VBA
Формат описания списка аргументов:




[Optional] [ByVal или ByRef] [ParamArray]

ИмяПеременной[()] [As Тип] [=поУмолчанию]

Функции в VBAФормат описания списка аргументов:[Optional] [ByVal или ByRef] [ParamArray] ИмяПеременной[()] [As Тип] [=поУмолчанию]

Слайд 896.3. Возврат значений из процедур и функций в вызывающую программу

через список формальных параметров
При создании определений функций в языке VBA

программисту предоставляют возможность передавать значения через список формальных параметров двумя способами: по значению ByVal и по ссылке ByRef.
6.3. Возврат значений из процедур и функций в вызывающую программу через список формальных параметровПри создании определений функций

Слайд 90Возврат значений из процедур и функций в вызывающую программу через

список формальных параметров
Первый способ (по значению) является основным и выбирается

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

Возврат значений из процедур и функций в вызывающую программу через список формальных параметровПервый способ (по значению) является

Слайд 91Возврат значений из процедур и функций в вызывающую программу через

список формальных параметров
Второй способ (по ссылке) отличается тем, что вызываемая

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

Слайд 926.4. Встроенные функции

6.4. Встроенные функции

Слайд 936.5. Функции Excel, определенные пользователем
'Функция, определенная пользователем
Function Расчет_налога(Начислено As _

Integer)
Расчет_налога = Начислено * 0.12
End Function

6.5. Функции Excel, определенные пользователем'Функция, определенная пользователемFunction Расчет_налога(Начислено As _ Integer) Расчет_налога = Начислено * 0.12End Function

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика