- •Н.Г.Куфтинова программирование в среде vba
- •Н.Г.Куфтинова программирование в среде vba
- •Оглавление
- •Введение
- •Разработка алгоритма. Блок-схема. Структуры алгоритмов
- •Понятие алгоритма. Структуры алгоритмов
- •3. Базовая структура цикл.
- •Контрольные вопросы
- •Представление данных в памяти,типы данных, идентификаторы, переменные, массивы
- •Программный способ записи алгоритмов
- •Представление данных в памяти
- •Типы данных
- •Идентификаторы, переменные, массивы
- •Операции, выражения, операторы
- •Контрольные вопросы
- •Структура программ на vba, операторы описания, присваивания
- •Структура программ на vba
- •Операторы описания
- •Oператоры присваивания
- •Контрольные вопросы
- •Понятие макроса, создание, отладка программы
- •Понятие макроса. Создание макроса
- •4.2. Отладка, использование среды для отладки программ
- •Средства отладки
- •Обработка ошибок выполнения
- •Перехват ошибок
- •4.6. Общие сведения о перехвате ошибок
- •Контрольные вопросы
- •Управляющие структуры vba
- •Конструкция If . . . Then
- •Конструкция If . . . Then . . . Else
- •Конструкция Select Case
- •Контрольные вопросы
- •Операторы цикла. Вложенные циклы
- •Операторы цикла
- •Вложенные циклы
- •Контрольные вопросы
- •Символьные данные. Операции и функции для работы с символьными данными
- •Символьные данные
- •Операции и функции для работы с символьным данными
- •Булевские вектора и операции для работы с ними
- •Контрольные вопросы
- •Подпрограмма-процедура
- •Общие процедуры
- •Создание новых процедур
- •Просмотр существующих процедур
- •9.4. Вызов процедур Sub
- •Процедуры в стандартных модулях
- •Подпрограмма-функция
- •10.1 Вызов процедур Function
- •10.2. Механизмы передачи параметров. Типы данных параметров. Передача параметров по значению
- •10.3. Передача параметров по ссылке
- •10.4. Неизвестное число параметров
- •10.5. Рекурсия
- •Контрольные вопросы
- •Использование объектов, их свойства и методы. Формы
- •Работа с объектами
- •Происхождение объектов. Основы работы с объектами
- •Установка значений свойств
- •Получение значений свойств
- •Использование методов в коде
- •Взаимосвязь объектов
- •Применение свойств и методов к членам наборов
- •Общие наборы в vba
- •Разработка формы. События и методы формы
- •Связь между объектами. Создание объектов. Использование и объявление переменных для объектов
- •Формы как объекты. Объект fso
- •Контрольные вопросы
- •12. Элементы управления в приложениях vba
- •12.1. Кнопки управления
- •12.2. Метки
- •12.3. Текстовые поля
- •12.4. Работа с текстом в текстовом поле
- •12.5. Флажки
- •12.6. Создание групп переключателей. Выбор переключателей
- •12.7. Комбинированные окна и списки
- •12.8. Полосы прокрутки как устройства ввода
- •12.9. Графическое окно в качестве контейнера
- •12.10. Элемент управления Image
- •12.11. Другие элементы управления
- •Контрольные вопросы
- •Литература
- •Приложение 1
- •2. Математические функции
- •4. Операторы циклов
- •Часть1. Обработка одномерного массива
- •Часть 2. Обработка двумерного массива
- •Приложение 2
Контрольные вопросы
Опишите этапы создания модуля проекта VBA?
Перечислите основные типы модулей в VBA?
Перечислите три типа процедур модуля VBA?
Каким оператором производится объявление переменных в VBA?
В чем отличие объявления переменной с помощью операторов Static от оператора Public?
Какие переменные можно объявить с помощью операторов Public и Private?
Перечислите основные инструкции операторов присваивания в VBA?
Понятие макроса, создание, отладка программы
Понятие макроса. Создание макроса
Макрос - процедура на внутреннем языке приложения, в которой записаны действия пользователя приложения. В приложении MC Excel макрос записывается на VBA [10,11,12].
Чтобы начать запись макроса, необходимо (рис.21.):
активизировать приложение;
открыть документы, используемые при записи макроса;
выбрать команду Вид\Макрос;
выбрать команду Начать запись. Выводится диалоговое окно Запись макроса;
ввести имя записываемого макроса в поле Имя макроса;
выбрать в списке Макрос доступен для документ, в который требуется поместить макрос;
нажать ОК, чтобы начать запись.
Рис.21. Запись макроса
После этого записываются все выполняемые в приложении действия. По завершении выполнения требуемых действий необходимо:
- нажать на панели инструментов Остановка записи кнопку Остановить запись;
- или выбрать команду Вид\Макрос\Остановить запись.
Вновь созданный макрос содержится в документе, который был активным при запуске макроса. При записи документа на диск макрос сохраняется вместе с проектом.
Для выполнения записанного макроса необходимо:
- выбрать команду Сервис\Макрос\Макросы. Выводится диалоговое окно Макрос.
- выбрать имя требуемого макроса;
- нажать кнопку Выполнить для запуска макроса.
Для редактирования записанного макроса необходимо:
- выбрать команду Вид\Макрос\Макросы. Выводится диалоговое окно Макрос;
- выбрать имя требуемого макроса;
- нажать кнопку Изменить. Макрос выводится в окне редактора Visual Basic for Applications.
Пример 1. Создание макроса
- , Параметры Excel, Показывать вкладку «Разработчик»,
- (окно VBA), View / Immediate Window, View / Code,
- ! - безопасность макроса, добавить кнопку, включить все макросы,
- задача: вычислить при x=6.678; y=7.565,
- вывести исходные данные и результаты расчетов, полученные результаты округлить до 2-х знаков после запятой, набрать программу, (Выполнить).
Код макроса |
Комментарий |
Option Explicit |
Объявление необходимости задания переменной |
Public Sub Execute() |
Начало процедуры |
Dim x As Single, y As Single |
DIM - оператор объявления (задания) переменной, Single – тип переменной (с плавающей запятой) |
Dim z As Single, d As Single |
|
x = 6.678 |
Исходные данные |
y = 7.565 |
|
z = Sqr(x ^ 2 + y ^ 2) |
Расчетные формулы |
d = z ^ 3 |
|
Debug.Print "X="; x; " Y="; y |
Вывод результатов |
Debug.Print "Z="; Format(z, _ "###0.00"); "D="; Format(d, _ "###0.00") |
Вывод результатов с округлением ( - перенос строки) |
End Sub |
Окончание процедуры |
П ример 2. Выполнить вычисления (макрос) по формуле
- данные вводятся с клавиатуры,
- если данные не числа – сообщение об ошибке,
- после вычислений вывести запрос на продолжение.
Код макроса |
Комментарий |
Option Explicit |
|
Public Sub ExecDialog() |
Начало процедуры |
Dim a As Single, b As Single |
Задание переменных |
Dim z As Single |
|
Dim strA As String, strB As String |
|
Dim response |
|
newInput: |
Ввод данных в диалог |
strA = InputBox("InputA") |
|
strB = InputBox("InputB") |
|
If Not IsNumeric(strA) Or Not _ IsNumeric(strB) Then |
Проверка ввода (условие) (если данные не числа - сообщение об ошибке в диалоге с пиктограммой (х)) |
MsgBox "Error!" & Chr(10) & Chr(13) & "Not _ number data!", vbCritical, "" |
|
Exit Sub |
|
End If |
|
a = CSng(strA): b = CSng(strB) |
Преобразование a и b в число с плавающей запятой |
z = Sqr(a ^ 2 + b ^ 2) |
Формула |
MsgBox "Z=" & Format(z, "###0.00") & "A=" & _ a & "B=" & b, vbInformation, "" |
Вывод результатов работы в диалог с пиктограммой (!) |
response = MsgBox("Input new data", _ vbQuestion + vbYesNo, "") |
Запрос на повторный ввод данных в диалоге с пиктограммой (?) и кнопками Да, Нет |
If response = vbYes Then GoTo newInput |
Если Да, новый ввод данных |
End Sub |
Окончание процедуры |
Пример 3. Разместить в диапазоне ячеек B5 - I5 целые положительные и отрицательные числа. Разработать макрос для определения минимального числа. Окрасить ячейки с минимальным числом в зеленый цвет (рис. 22.).
Рис. 22. Результат программы примера 3.
Пример 4. Разработать макрос для вывода в ячейки B6- I6 целых случайных чисел. Числа выводятся случайным образом. Границы диапазона чисел задаются на рабочем листе. Ячейки с положительными числами окрашиваются в зеленый цвет, а с отрицательными значениями в красный. Отсортировать полученную последовательность чисел по возрастанию и вывести ее в ячейки B8 – I8 (рис. 23.).
Рис. 23. Результат программы примера 4.