- •2.1. Алфавит и словарь языка
- •2.2. Переменные
- •2.3. Константы
- •2.4. Строковые переменные
- •2.5. Массивы
- •2.6. Пользовательские типы данных
- •2.7. Операции VBA
- •2.8. Объектная модель Excel
- •2.8.1. Свойства и методы объектов
- •2.8.2. Отображение объектной модели Excel
- •2.8.2.1. Иерархия объектной модели
- •2.8.2.2. Ссылка на объекты в коде VBA
- •2.8.3. Работа с объектами
- •2.8.3.1. Задание свойств объекта
- •2.8.3.2. Использование методов объекта
- •2.8.3.3. Переменные-объекты
- •2.8.3.4. Коллекции
- •2.8.3.5. Метод Add
- •2.8.3.6. Свойство Count
- •2.8.4. Свойства и методы основных объектов Excel
- •2.8.4.1. Объект Application
- •2.8.4.2. Объект Worksheet
- •2.8.4.3. Объект Range
- •2.8.5. Просмотр объектов
- •2.8.6. Использование справочной системы
- •2.8.6.1. Использование функциональной клавиши F1
- •2.8.6.2. Использование помощника
- •2.9. Ввод и вывод данных
- •2.9.3. Метод InputBox
- •2.9.4. Объединение текстовых строк
- •2.10. Концепция событий Excel
- •2.10.1. Типы событий Excel
- •2.10.2. События объекта Workbook
- •2.10.3. События объекта Worksheet
- •2.10.4. События объекта Application
- •2.10.5. События объекта UserForm
- •2.10.6. События, не связанные с конкретными объектами
- •2.10.6.1. Метод OnKey
- •2.10.6.2. Событие OnTime
- •2.11. Формы пользователя
- •2.11.1. Свойства, методы и события экранных форм
- •2.11.1.1. Некоторые свойства форм
- •2.11.1.2. Некоторые методы форм
- •2.11.1.3. Некоторые события форм
- •2.11.2. Элементы управления
- •2.11.2.1. Элемент управления Label (Надпись)
- •2.11.2.1.1. Окно свойств формы
- •2.11.2.2. Элемент управления CommandButton (Кнопка)
- •2.11.2.3. Элемент управления TextBox (Текстовое поле)
- •2.11.2.4. Элемент управления ComboBox (комбинированный список)
- •2.11.2.5. Элемент управления ListBox (список)
- •2.11.2.6. Элемент управления CheckBox (Флажок)
- •2.11.2.7. Элемент управления ToggleButton (Выключатель)
- •2.11.2.8. Элемент управления OptionButton (Переключатель)
- •2.11.2.9. Элемент управления Image (Рисунок)
- •2.11.2.12. Элемент управления RefEdit (Поле со свёртыванием)
- •2.11.2.13. Элементы управления на рабочем листе
- •2.12. Инструкции VBA
- •2.12.1. Оператор присваивания
- •2.12.2. Инструкция Set
- •2.12.3. Циклы
- •2.12.3.1. Инструкция For… Next
- •2.12.3.2. Инструкция While…Wend
- •2.12.3.3. Инструкция Do... Loop
- •2.12.3.4. Инструкция For Each…Next
- •2.12.4. Инструкции перехода
- •2.12.4.1. Инструкция условного перехода If…Then…Else
- •2.12.4.2. Инструкция Select…Case
- •2.12.4.3. Инструкция безусловного перехода GoTo
- •2.12.4.4. Инструкции перехода к обработчику ошибок On Error
- •2.12.4.5. Инструкции прерывания выполнения блока Exit
- •2.13. Функции VBA
- •2.13.1. Встроенные функции
- •2.13.1.1. Математические функции
- •2.13.1.2. Функции преобразования данных
- •2.13.1.3. Функции даты и времени
- •2.13.1.4. Строковые функции
- •2.13.1.5. Примеры использования функций VBA
- •2.13.1.5.1. Удаление ненужных символов
- •2.13.1.5.2. Определение длины строки
- •2.13.1.5.3. Сравнение и поиск строк
- •2.13.1.5.4. Выделение части строки
- •2.13.1.5.5. Форматирование значений данных
- •2.13.2. Функции, определённые пользователем
- •2.14. Файлы VBA
- •2.14.1. Типы файлов в VBA
- •2.14.2. Открытие и закрытие файла
- •2.14.3. Ввод данных в файл последовательного доступа
- •2.14.4. Вывод данных из файла последовательного доступа
- •2.14.5. Работа с файлом произвольного доступа
- •2.15. Создание процедуры
- •2.16. Выполнение процедуры
- •2.17. Сохранение процедуры
- •2.18. Запись последовательности действий пользователя
- •2.19. Просмотр кода макроса
- •3.1. Тестирование и отладка как этап разработки приложений
- •3.1.1. Отладка
- •3.1.1.1. Режим останова
- •3.1.1.2. Использование окна Immediate
- •3.1.1.2.1. Просмотр значений в окне Immediate
- •3.1.1.3. Пошаговое выполнение программ
- •3.1.2. Исправление ошибок
- •Библиографический список
- •Оглавление
55
задавать сразу несколько опций, выбирать пункты из списка или вводить несколько значений, наподобие диалоговым окнам приложений MS Office.
Для вставки экранной формы в приложение нужно выполнить следующие действия.
1.Открыть рабочую книгу.
2.Войти в редактор Visual Basic, нажав комбинацию клавиш <Alt+F11> или щёлкнув по кнопке .
3.Если в окне проекта не появится окно Project – VBAProject, то вы-
брать в меню View пункт Project Exsplorer.
4.В окне проекта щёлкнуть правой кнопкой мыши на элементе
ЭтаКнига.
5.В контекстном меню выполнить команду Insert>UserForm (Вставка > Экранная форма). В рабочую книгу будет вставлена экранная форма UserForm1 и Панель элементов ToolBoox (рис.15).
Рис. 15. Вставленная новая экранная форма
Новая экранная форма представляет собой пустое окно со строкой заголовка UserForm1. Это та основа, на которой пользователь может создать собственные диалоговые окна и окна других типов. Если панель ToolBoox не появится, нужно выбрать в меню View пункт ToolBoox или на-
жать кнопку на панели Microsoft Visual Basic.
2.11.1. Свойства, методы и события экранных форм
Форма представляет собой интерфейс пользователя. Она может содержать меню, кнопки, окна списков, полосы прокрутки и другие элементы, существующие в программах MS Office. VBA по умолчанию предлагает форму, которая имеет имя UserForm1, со стандартной сеткой (группа равномерно расположенных точек). Сетка служит для удобства размещения
56
элементов пользовательского интерфейса. Шаг сетки можно изменить выполнив команду Сервис, Параметры (Tool, Options), закладка Общие (General). Форма UserForm1 может быть переименована, и её размеры могут быть изменены при разработке приложения. При необходимости можно добавить новые формы. Каждая форма при работе программы будет окном пользовательского интерфейса. Форма (UserForm) является объектом и обладает большим набором свойств, методов и событий.
2.11.1.1. Некоторые свойства форм
Большая часть основных свойств относится к внешнему виду, размерам и местонахождению окон.
Свойство Name задаёт имя формы. После создания первой формы в проекте она по умолчанию получает стандартное имя UserForm1, второй – UserForm2, и т.д., которое рекомендуется заменить на такое, чтобы оно указывало на назначение формы.
Свойство Caption задаёт заголовок формы. Значение этого свойства также рекомендуется назначить таким, чтобы оно указывало на назначение формы, например, "Выполнение плана".
Свойство Enabled используется для временного отключения формы.
2.11.1.2. Некоторые методы форм
Во время редактирования формы её можно запускать нажатием клавиши F5. После того, как форма будет готова, нужно обеспечить её запуск в документе. Для этого нужно воспользоваться методом Show:
UserForm1.Show
Если форма уже была загружена в память, она просто станет видимой, если еще нет, то будет автоматически загружена (произойдет собы-
тие Load).
Эту команду, можно вызвать, например:
из обычного макроса, назначенного кнопкой или комбинацией клавиш или запускаемого файлом автозапуска Auto_Exec;
из кода для элемента управления, расположенного в самом документе, например, CommandButton или на другой форме – для
перехода между формами.
После того, как пользователь введет или выберет нужные данные на форме и нажмет на требуемую кнопку, форму необходимо убрать. Можно для этой цели воспользоваться двумя способами:
использовать метод Hide:
UserForm1.Hide
Форма будет убрана с экрана, но останется в памяти. Потом при помощи метода Show() можно будет опять ее вызвать в том же состоянии, в каком она была на момент удаления с экрана. Окончательно форма удалится из памяти при закрытии документа.