- •Содержание
- •Раздел 1. Быстрый старт 2
- •Раздел 2. Редактор Visual Basic 11
- •Immediate Window (окно проверки) 15
- •Раздел 3. Переменные и типы данных 27
- •Раздел 4. Операторы управления 51
- •Раздел 5. Процедуры, подпрограммы и функции 66
- •Раздел 6. Объекты ms Excel 101
- •Раздел 7. Пользовательские формы 139
- •Immediate Window (окно проверки) 177
- •Введение
- •Раздел 1.Быстрый старт Использование макрорекордера
- •Запись макроса
- •Запуск макроса
- •Абсолютные и относительные ссылки Запись формулы на рабочем листе
- •Макрорекордер
- •Диалоговые окна для ввода/вывода данных
- •Функция InputBox
- •Функция MsgBox
- •Раздел 2.Редактор Visual Basic
- •Окна редактора vb
- •Project Window (окно проекта)
- •Properties Window (Окно свойств)
- •Code (окно программы)
- •Immediate Window (окно проверки)
- •Получение справки
- •Запись процедур
- •Режимы работы с программой
- •Ошибки и их обнаружение
- •Отладка
- •Меню и панели инструментов Visual Basic
- •Панели инструментов Стандартная панель инструментов
- •Панель инструментов отладки
- •Раздел 3.Переменные и типы данных Объявление переменных
- •Важность объявления переменных
- •Область видимости переменных
- •Время жизни переменных
- •Инициализация переменных
- •Операции с элементарными данными
- •Оператор присваивания
- •Выполнение операций
- •Арифметические операции
- •Операции сравнения
- •Оператор Like
- •Логические операции
- •Символьные операции
- •Приоритет операций
- •Операции с другими типами данных
- •Объектные переменные
- •Массивы
- •Динамические массивы
- •Пользовательский тип
- •Раздел 4.Операторы управления
- •Условный оператор If
- •Оператор выбора Select Case
- •Операторы цикла
- •Цикл For…Next
- •Цикл For Each…Next
- •Оператор Set
- •Цикл Do…Loop
- •Цикл While…Wend
- •Раздел 5.Процедуры, подпрограммы и функции
- •Классификация процедур
- •Структура и объявление процедуры
- •Синтаксис объявления процедуры общего типа
- •Синтаксис объявления функции
- •Вызов процедуры
- •Параметры и аргументы
- •Возврат значения функции
- •Использование процедур-функций на рабочем листе
- •Поименованные аргументы
- •Использование необязательных аргументов
- •Использование параметра ParamArray
- •Вызов процедур другого проекта
- •Автопроцедуры
- •Событийные процедуры
- •Рекурсивные процедуры
- •Встроенные функции Классы функций
- •Использование табличных функций
- •Организация интерфейса при помощи встроенных функций
- •Функция MsgBox
- •Функция InputBox
- •Строковые функции
- •Примеры на использование различных строковых функций Функция Format
- •Функция Val
- •Функции Len, Mid
- •Функция Left
- •Функция Instr
- •Функция Chr
- •Математические функции
- •Функции Int и Fix
- •Функция Log
- •Функции Randomize и Rnd
- •Функции даты и времени
- •Примеры функций даты и времени Функции Day, Month, Year, DateSerial
- •Функции Now, Time, Timer
- •Функция WeekDay
- •Функции Hour, Minute, Second
- •Раздел 6.Объекты ms Excel
- •Свойства объектов
- •Методы объектов
- •Модель объектов
- •Коллекции объектов
- •Обращение к объекту Контейнеры
- •Ссылка на объект
- •Оператор With
- •Использование объектных переменных
- •Объект Application
- •Активные объекты
- •Свойства, влияющие на высвечивание на экране Свойство DisplayAlerts (r/w Boolean)
- •Свойства DisplayFormulaBar (r/w Boolean), DisplayStatusBar (r/w Boolean)
- •Свойство ScreenUpdating (r/w Boolean)
- •Свойства Top, Left, Height, Width, UsableWidth, WindowState
- •Свойство Visible (r/w Boolean)
- •Другие свойства объекта Application
- •Методы Метод Calculate
- •Метод CheckSpelling
- •Метод OnTime
- •Метод Wait
- •Коллекции объектов
- •Объекты Workbooks и Workbook
- •Событийные процедуры
- •Объекты Sheets, WorkSheets и WorkSheet
- •Свойства Свойство Name (r/w String)
- •Свойство Type (r/o String)
- •Свойство UsedRange
- •Свойства Next и Previous
- •Свойство Parent
- •Свойство Visible (r/w Boolean)
- •Методы Метод Add
- •Методы Move и Select
- •Событийные процедуры
- •Объект Range
- •Свойства Cвойство Range
- •Свойство Cells
- •Свойство Offset
- •Метод Union и свойство Areas
- •Свойства Column и Row (r/o Integer)
- •Свойства Columns и Rows
- •Свойство CurrentRegion
- •Cвойства, связанные с шириной и высотой ячейки
- •Методы Методы Select и Activate
- •Метод Clear
- •Цветовое оформление объекта Range Свойство ColorIndex
- •Свойство Color
- •Раздел 7.Пользовательские формы
- •Режимы работы с формой
- •Режим конструктора
- •Элементы управления
- •Событийные процедуры
- •Режим выполнения
- •Объекты UserForm и Controls
- •Разработка приложения
- •Приложение 1
- •Конструирование начальной формы
- •Свойства формы и элементов управления
- •Создание событийных процедур
- •Конструирование формы для выбора рабочего листа
- •Создание событийных процедур
- •Элемент ListBox
- •Событийная процедура инициализации формы
- •Завершение разработки приложения
- •Связь формы с ячейками рабочего листа
- •Элемент TextBox
- •Элемент ListBox
- •Приложение 2
- •Конструирование форм
- •Процедуры
- •Приложение a. Справочная система Просмотр объектов, их свойств и методов (Object Browser)
- •Окно Object Browser
- •Панель инструментов Object Browser
- •Выход из Object Browser
- •Интерактивная подсказка
- •Приложение b. Инструментальные средства отладки программ
- •Контрольные точки или точки останова
- •Трассировка или пошаговое выполнение программы
- •Использование объекта Debug
- •Окна отладчика
- •Immediate Window (окно проверки)
- •Окно значения переменной
- •Locals Window (окно локальных переменных)
- •Окно контрольных значений (Watches)
- •Приложение c. Основные формы записи алгоритмов
- •Понятие "алгоритм"
- •Классификация алгоритмов
- •Способы записи алгоритмов
- •Запись на естественном языке
- •Изображение алгоритма в виде графических символов
- •Представление основных типов алгоритмов в виде блок-схем
Диалоговые окна для ввода/вывода данных
Для ввода/вывода данных или для высвечивания служебных сообщений используются встроенные функции InputBox и MsgBox.
Функции создают на экране диалоговое окно с сообщением и одной или несколькими кнопками. Программа приостанавливается до нажатия одной из кнопок.
Функция InputBox
Встроенная функция InputBox высвечивает диалоговое окно для ввода значения.
Рис. 1.6. Диалоговое окно функции InputBox
Оператор ActiveCell.FormulaR1C1 = "10000" в процедуре Макрос1 можно записать в виде ActiveCell.FormulaR1C1 = InputBox("Введи сумму вклада"). Тогда при выполнении процедуры возникнет диалоговое окно, в поле которого можно ввести число. После нажатия клавиши Enter введенное число попадает в активную ячейку.
Внимание
Если не введено никакого значения (пустой ввод) или нажата кнопка Cancel, то активная ячейка будет пустой, что приведет к ошибке выполнения процедуры.
Функция MsgBox
Встроенная функция MsgBox используется для вывода сообщений.
В простейшей форме записи функции MsgBox после ключевого слова следует только текст сообщения. Текст сообщения является строкой символов. В качестве текста сообщения могут использоваться сцепленные строки символов (оператор сцепления &).
Пример
Процедура запрашивает ввод числа, выводит его квадрат.
Sub Макрос3() Range("A1").Select ‘активизация A1 ActiveCell.FormulaR1C1 = InputBox("Введите число, например, 2") Range("A2").Select ActiveCell.FormulaR1C1 = "=R[-1]C*R[-1]C" MsgBox "квадрат числа = " & ActiveCell End Sub
|
В процедуре Макрос3 запрос на ввод числа организован с использованием функции InputBox.
Функция MsgBox выводит водержимое активной ячейки A2. Диалоговое окно этой функции содержит одну кнопку OK, нажатие на которую завершает программу.
Раздел 2.Редактор Visual Basic
Редактор Visual Basic позволяет записывать, сохранять и модифицировать программные модули, выполнять и отлаживать процедуры. В редактор VB можно перейти командой Сервис-Макрос-Редактор Visual Basic или нажав кнопку на панели инструментов Visual Basic. Функциональные клавиши Alt-F11.
Возврат в документ MS Excel выполняется командой Microsoft Excel – последней командой меню Вид, нажатием на кнопку панели инструментов Visual Basic или клавишами Alt-F11, Alt-Q.
ЗАПОМНИТЕ, ЧТО
Документ MS Excel представляет собой рабочую книгу, содержащую рабочие листы с данными различных типов и формулами, листы диаграмм и программы для обработки данных.
Программные компоненты документа (модули, процедуры, формы) объединяются в проект, который сохраняется на диске вместе с документом.
Проект на VBA нельзя создать независимо от документа. Каждой рабочей книге соответствует проект с именем, состоящим из двух частей: VBAProject и названия книги в скобках. Такое имя присваивается проекту по умолчанию
Среда программирования VBA – Integrated Development Environment (IDE) – хорошо документированная система. В любой момент разработки приложения доступна контекстная помощь по используемым объектам, функциям, типам данных и т.д. Использование этой возможности позволяет сделать процесс разработки приложения более эффективным, особенно на этапе обучения программированию.