- •Содержание
- •Раздел 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. Основные формы записи алгоритмов
- •Понятие "алгоритм"
- •Классификация алгоритмов
- •Способы записи алгоритмов
- •Запись на естественном языке
- •Изображение алгоритма в виде графических символов
- •Представление основных типов алгоритмов в виде блок-схем
Разработка приложения
Совокупность форм и процедур составляет пользовательское приложение для конкретной задачи. Приложение выполняет определенные функции обработки данных: в режиме выполнения формы пользователь выбирает значения из списков диалогового окна, вводит некоторую информацию в поля диалога, нажимает кнопки, вводит информацию в ячейки таблицы, модифицирует их, строит диаграммы. Это влечет за собой изменение элементов управления, выполнение событийных процедур.
Разработка приложения начинается с проектирования форм и их взаимосвязей.
В приложении всегда есть форма, с которой начинается работа приложения. Возможен запуск этой формы (следовательно, приложения) из процедуры. Назовем эту форму начальной формой приложения.
Приложение 1
Пусть вводится некоторая символьная строка. Слова в этой строке разделяются пробелами. Необходимо выделить слова и высветить их перечень. Надо предусмотреть возможность сохранения введенных слов в ячейках рабочего листа.
Для приложения спроектируем две формы.
Первая форма (начальная) будет принимать исходную строку. Нажатием на командную кнопку введенная строка разобьется на слова, которые высветятся в поле формы столбиком – одно под другим. Нажатие на другую кнопку вызовет вторую форму, которая позволит выбрать и активизировать лист рабочей книги для сохранения введенных слов. Нажатие на третью кнопку завершит приложение.
Вторая форма (вызываемая) предложит список рабочих листов рабочей книги, из которых пользователь выберет нужный лист, и слова из введенной строки запишутся в ячейки этого рабочего листа.
Конструирование начальной формы
Создайте новую форму и на ней разместите три элемента управления TextBox, Label, CommandButton как это показано на рисунке.
Рис. 7.6. Форма с тремя элементами управления
Свойства формы и элементов управления
Установите свойства формы и первых трех из пяти элементов управления, приведенных в таблице.
Свойства элементов управления формы Str_An
Тип элемента |
Комментарий |
Свойства |
Значение свойства |
UserForm |
Диалоговое окно |
Name |
Str_An |
Caption |
Анализ символьной строки |
||
Textbox |
Поле ввода текста |
Name |
Inp_Box |
Text |
Введи слова, разделенные пробелом |
||
Label |
Элемент для высвечивания сообщений |
Name |
Out_Lab |
Caption |
(пустое значение) |
||
CommandButton |
Кнопка, нажатие на которую производит разбивку на слова |
Name |
Go |
Caption |
Разбить на слова |
||
Accelerator |
G |
||
CommandButton |
Кнопка завершения работы с формой |
Name |
Ex |
Caption |
Выход |
||
Accelerator |
E |
||
CommandButton |
Кнопка вызова формы для выбора рабочего листа |
Name |
Sel_Sheet |
Caption |
Выбор листа |
||
Accelerator |
S |
Свойство Name задает имя формы или элемента управления. Под этим именем элемент будет известен всем процедурам формы.
Выделите форму и высветите для нее окно свойств (см. рис. 7.6). В строке (Name) введите имя Str_An. В папке Forms автоматически изменится название строки, соответствующей выделенной форме.
Рис. 7.7. Изменение имени формы
Перейдите к элементу TextBox при помощи щелчка мыши или клавишей Tab. Теперь в окне свойств представлены свойства элемента TextBox. Установите свойство Name в значение Inp_Box.
Поочередно переходите к остальным элементам формы и устанавливайте свойство Name каждого из них в соответствии с таблицей.
Установите остальные свойства первых трех элементов.
Свойство Caption (надпись) используется для установки высвечиваемого в элементе текста. При задании значения свойства можно использовать любые символы. В рассматриваемых приложениях это свойство задается как буквами латинского алфавита, так и буквами русского алфавита.
Титульная строка окна формы определяется свойством Caption. Если свойство устанавливается для других элементов, например, для CommandButton или Label, то заданный текст высвечивается как надпись на элементе.
Свойство Text элемента TextBox содержит текст, введенный в поле ввода. То же значение имеет и свойство Value этого элемента. Значение свойства высветится в элементе TextBox при загрузке формы.
Свойство Accelerator (ускоритель) для объекта CommandButton позволяет указать букву, нажатие на которую в сочетании с клавишей Alt равносильно нажатию на командную кнопку. Здесь и далее для задания свойства Accelerator используются буквы латинского алфавита.
Рис. 7.8. Три элемента управления после изменения свойств
Выполните форму, нажав кнопку Run панели инструментов.
Рис. 7.9. Форма в режиме выполнения
Форма высветилась на фоне рабочего листа. До тех пор, пока не написаны событийные процедуры, форма никак не реагирует на нажатие кнопки или на попытки ввода текста. Можно только закрыть форму, нажав кнопку закрытия окна .