
- •Часть 2.
- •8 Архитектура проекта
- •8.1 Введение (основные элементы проекта и их построение)
- •8.1.2 Этапы написания проекта
- •Установка (и удаление) элементов управления на лист Excel
- •Установка начальных значения свойств элементов управления
- •Установка порядка расположение элементов управления (установка одного элемента управления над другим)
- •Создание пользовательской формы
- •Создание модулей макросов проекта
- •Создание событийных процедур элементов управления, а так же событийных процедур родительских объектов
- •Быстрый переход в событийную процедуру элемента управления
- •8.1.3 Изменение свойств проекта
- •8.1.4 Установка и снятие защиты проекта
- •9 Доступность подпрограмм и полей модулей проектов
- •9.1 Введение
- •9.2 Надстройки проектов
- •9.2 Ссылка на другой проект
- •10 Отладка кода программы в vba редакторе
- •10.1 “Компиляция” проекта
- •10.2 Запуск подпрограмм, не имеющих входных параметров из редактора vba
- •10.3 Пошаговый запуск подпрограмм, не имеющих входных параметров
- •10.4 Непосредственный запуск формы из редактора vba
- •10.5 Точки останова и оператор Stop
- •10.6 Аварийное прерывание работы программы приложением Excel
- •10.7 Принудительная остановка и принудительное прерывание программы пользователем
- •10.8 Окно локальных переменных и Окно отладки
- •11 Справочная система vba
- •11.1 Переход к справочной системе
- •11.2 Список имен потомков, методов и свойств объектов в окне редактора модуля
- •11.3 Просмотр списка операторов vba в окне редактора модуля (просмотр библиотек)
- •11.4 Окно просмотра свойств, методов, потомков и родителей объектов
- •12 Дополнительная информация
- •12.1 Параметры работы редактора vba
- •12.2 Защита от макровирусов
- •12.3 Причины, по которым код vba проекта может не исполняться
- •Приложение 1 Задание 1 (автозаполнение пола)
- •Задание 2 (автозаполнение комментариев к числам)
- •Задание 3 (заучиватель иностранных слов)
- •Задание 4 (телефонная книжка с поиском)
- •Задание 5 (программирование связей таблиц Excel)
- •Задание 6 (защита служебных полей таблицы Excel)
- •Приложение 2 (Программирование через редактирование макроса) Введение
- •Запись макроса в книгу Excel
- •Запуск макроса из меню.
- •Быстрый переход в код макроса
- •Пример создание процедуры через макрос.
- •Некоторые замечания по запуску макроса из событийных процедур
- •Назначение управляющих клавиш для запуска готового макроса Назначение управляющих клавиш макросам через меню приложений
- •Программное назначение управляющих клавиш макросам
- •Приложение 3( Создание меню ) Введение
- •Типы меню приложений
- •Создание (и удаление) подпунктов главного меню через меню приложений Создание (и удаление) подпункта главного меню
- •Создание (и удаление) пункта меню к макросу
- •Удаление меню
- •Добавление пунктов в меню
- •Свойства и методы пунктов меню
- •Переключатель в пункте меню
- •Коды пиктограмм пункта меню
- •Односеансное контекстное меню
- •После выбора пункта ПервыйУровень
- •После выбора пункта ВторойУровень1 Назначение управляющих клавиш к пункту меню
- •Приложение 4 ( Программная обработка модулей vba ) Введение
- •Экспорт модуля проекта в файл
- •Импорт модуля проекта из файла
- •Импорт модуля через “организатор” (данный код только для Word приложения)
- •Создание свойств и методов пользовательского класса
- •Создание событий пользовательского класса
- •Приложение 6 (Ссылка на приложение ms Office)
- •Приложение 7 (связь с таблицами и запросами базы данных) Введение
- •Связь с базой данных через указатели
- •Непосредственная загрузка таблицы базы данных в Excel таблицу
- •Форма для интерактивной работы с записью таблицы базы данных
- •С записями таблицы базы данных
- •Браузер таблиц и запросов базы данных
- •Методы поиска объекта Recordset
- •Пример использования метода Seek
- •Пример использования методов Find
- •Приложение 8 (Обращение к api-функциям) Введение
- •Скрытие и отображение панели задач через api функции
- •Запуск ярлыка и исполняемых файлов через api функцию
- •Приложение 9 (Основные понятия визуального программирования на доступных примерах)
- •Яблоко1.Сплющить
- •8 Архитектура проекта 3
- •8.1 Введение (основные элементы проекта и их построение) 3
- •Приложение 3( Создание меню ) 64
- •Приложение 4 ( Программная обработка модулей vba ) 90
- •Приложение 5 (Создание модуля класса) 94
- •Приложение 6 (Ссылка на приложение ms Office) 108 Приложение 7 (связь с таблицами и запросами базы данных) 113
- •Часть 2
Министерство образования и науки Российской федерации
РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
НЕФТИ И ГАЗА им. И.М. ГУБКИНА
_______________________________
Кафедра информатики
Тихвинский В.И.
VBA for Excel
Методические указания
по курсу «Информатика»
Часть 2.
Москва - 2007
УДК 681.3
Тихвинский В.И. VBA for Excel. Методические указания по курсу «Информатика». Часть 2. Под общей ред. Сидорова В.В. - М.: РГУ нефти и газа им. И.М. Губкина, 2007.- 167 c.
Методические указания содержат учебный материал по основам программирования в среде VBA for Excel (MS Office), включая заданиями по выполнению лабораторных работ.
Методические указания предназначены для студентов первого курса юридического факультета и факультета экономики и управления.
Рецензент – проф. кафедры АСУ Степин Ю.П.
© Российский государственный университет
нефти и газа им. И.М. Губкина, 2007.
8 Архитектура проекта
8.1 Введение (основные элементы проекта и их построение)
Проект VBA for Excel пишется в приложение Excel, которое может быть загружено через кнопу панели задач – Пуск-Программы-Microsoft Excel (Start-Program-Microsoft Excel). Приложение Excel может быть закрыто через меню – Файл-Выход(File-Exit).
Каждый проект в VBA for Excel находится в файле, который представляет собой книгу Excel. Книга Excel создается через меню Excel – Файл-Создать(File-New). Книга сохраняется через меню – Файл-Сохранить(File-Save). При сохранении новой книги Excel необходимо указать место ее сохранение на диске и имя (см. таблицу ниже Окно сохранения и считывания файлов и элементы управления данного окна). При первом сохранении книги, пользователь может создать свою директорию через окно сохранения файла. Для этого он должен выбрать диск и папку, в которой будет находиться его директория и кликнуть левой клавишей мыши по кнопке, создающей директорию. Далее, в появившемся окне вводится имя создаваемой директории. Данную директорию пользователь может открыть двойным кликом мыши по ее имени и записать в нее свой файл.
Книгу возможно переименовать, точнее, сохранить ее копию под другим именем используя меню – Файл-Сохранить как(File-Save as). Загрузить записанную книгу и закрыть ее возможно через меню Excel - Файл-Закрыть/Открыт(File- Close/Open). Если в Excel загружено несколько книг, то переход от одной книги к другой осуществляется через меню Excel – Окно(Window)-Имя Книги.
Окно сохранения и считывания файлов и элементы управления данного окна |
|
Элемент управления |
Назначение элемента управления |
|
Окно сохранения файлов
|
|
Смена диска, или выбор директории, которую выбирали раньше. (Данный элемет управления расположен вверху окна сохранения файлов) |
|
Создание новой папки (Расположен справа от элемента управления сменяющего текущий диск) |
|
Позволяет при помощи двойного клика
левой клавиши мыши по имени файла или
папки открыть папку или файл. Справа
от имени папки в данном объекте
выводится пиктограмма, по которой
можно отличить имя файла, от имени
папки - |
|
Элементы управления, которые расположенны под элементом управления для смены директории и выбора имени файла. Через данные элементы управления можно ввести имя файла и задать тип сохраняемого файла или тип считываемых файлов |
Книга Excel может содержать в себе от 1 до 256 листов Excel, каждый лист представляет собой электронную таблицу (см. главу Объекты Rows, Columns ,Range, Cells, Selection(связь со строками, столбцами и ячейками листа Excel)). Добавление, удаление, переименования листов книги Excel удобно производить через контекстное меню, которое появляется после клика правой клавиши мыши по ярлычку листа (там, где записано имя листа). Для того, что бы сделать лист активным необходимо кликнуть левой клавишей мыши по ярлычку листа. Перемещать лист наиболее удобно левой клавишей мыши, т.е., нажать левую клавишу мыши на ярлычке листа и, не отпуская ее, мышью переместить лист. Для скрытия активного листа и отображения скрытых листов Excel используют меню Формат-Лист-Скрыть/Отобразить.
Ввод информации в ячейку листа производится после выбора ячейки левой клавишей мыши, затем, информация вводится в ячейку с клавиатуры, завершает ввод клавиша Enter. Сменить выбранную ячейку листа возможно также клавишами перемещения курсора. Удаление информации в выбранной ячейке производится клавишей Delete или Backspase. Ячейка может содержать в себе данные определенного типа, функции, а так же математические и другие выражения. Текст в ячейке, содержащий выражение или функцию начинается со знака равно “=”. Допускается в выражениях и аргументах функций использовать символьную адресацию ячеек (как имена ячеек), а так же неименованные константы. Функции в ячейку Excel вставляются через меню – Вставка-Фукция-(Insert-Function-)Имя функции. После этого появляется окно функции, в котором можно задать аргументы функции и завершить ввод функции нажатием клавиши OK.
Можно изменить формат выбранных ячеек, выравнивание в ячейках, шрифт, заливку, обводку через контекстное меню на выбранных ячейках. Группа ячеек выделяется левой клавишей мыши (нажимается левая клавиша мыши на верхней левой ячейке, и не отпуская левую клавишу мышью выделяется прямоугольник ячеек) На выделенных ячейках вызывается правой клавишей мыши контекстное меню, в котором выбирается пункт Формат ячеек. В появившемся окне нужно выбрать соответствующую закладку для изменения форматов:
Число – изменения формата данных в ячейке
Выравнивание – выравнивание информации в ячейках
Шрифр – шрифт в ячейках
Граница – обводка ячеек
Вид – заливка ячеек
Защита – установка разрешения на защиту ячеек
Возможно копирование ячеек в листе Excel. Для этого левой клавишей мыши выделяют ячейку (ячейки) предназначенные для копирования. Затем, кликом правой клавиши мыши вызывают контекстное меню на выделенных ячейках. Далее выбирают пункт Copy(Копировать). После, выделяют ячейку (ячейки), куда будет осуществлено копирование. И вызывают контекстное меню на выделенных ячейках. В контекстном меню выбирают пункт Paste(Вставить) - для полного копирование ячеек (копирование данных в ячейках и форматов ячеек), или выбирают пункт Paste special(Специальная вставка) – для выборочного копирования содержимого ячеек. Перенос данных из одних ячеек в другие можно осуществить аналогичным способом, но для этого в контекстном меню вместо пункта Copy(Копировать) выбирается пункт Cut(Вырезать).
Изменение ширины столбцов и высоты строк ячеек производится после выделения последних, через главное меню Excel – Формат-Столбцы/Строки. Выделяются строки и столбцы левой клавишей мыши непосредственно на индексах строк или столбцов, затем используют пункты меню Формат-Столбцы-Ширина или Формат-Строки-Высота. Возможно автоматически подобрать ширину и высоту последних через пункты меню Формат-Столбцы-Автободбор ширины и Формат-Строки-Автободбор высоты. Дополнительные строки и столбцы вставляются перед выделенными сроками и столбцами через главное меню – Вставка-Строки/Столбцы. Выделенные строки и столбцы можно удалить через пункт контекстного меню – Удалить(Del/Delete). Выделенные строки и столбцы возможно скрыть и отобразить через соответствующий пункт меню Формат-Столбцы/Строки-Скрыть/Отобразить. Перед отображением скрытого столбца необходимо выделить левой клавишей мыши два столбца, между которыми столбец срыт. Если скрыт крайний столбец листа, то выделяется левой клавишей мыши видимый столбец, и, не отпуская клавишу, продолжают выделение мышью за пределы видимого столбца. Аналогично поступают со скрытыми строками.
Для выделения (и снятия выделения) всех строк и столбцов листа Excel (т.е. всех ячеек листа Excel) используют пустой, серый квадрат листа Excel, который расположен левее индексов всех столбцов листа, и, одновременно, над индексами строк листа.
Книга Excel имеет свой модуль, который по умолчанию имеет имя ThisWorkbook (в некоторых версиях Excel этот модуль называется - ЭтаКнига). Каждый лист книги Excel то же имеет свой модуль, имя которого совпадает по умолчанию с именем листа. Кроме того, книга Excel может содержать в себе модули макросов, так же модули форм и модули классов (см. 1.5 Дополнительные понятия языка VBA).
При написании программы VBA необходимо, прежде всего, включить панель Visual Basic через меню: Вид-Панели инструментов-Visual Basic. На этой панели имеется несколько кнопок с пиктограммами, выполняющих соответствующую функцию:
Кнопки панели Visual Basic |
|
Пиктограмма кнопки |
Назначение кнопки |
|
Переключатель между режимами конструктора (режим установки элементов управления на лист), и режимом работающей программы VBA |
|
Подключение панели с палитрой элементов управления. |
|
Переход в редактор программы VBA (В редактор VBA можно также перейти через меню: Сервис – Макрос – Редактор Visual Basic. Или через нажатие горячих клавиш ALT + F11 ) |
В редакторе VBA необходимо иметь включенными два окна (см. Рис 3 Редактор VBA):
Окно проекта (Explore Project)
Окно свойств (Window Properties)
Эти окна подключаются через меню редактора VBA - Вид (View) .
Для того, что бы сделать проект активным необходимо в редакторе VBA кликнуть два раза левой клавишей мыши по любому из элементов дерева нужного вам проекта. Имя книги активного проекта указывается в заголовке окна редактора VBA.
Раскрытые папки на дереве проекта, а так же раскрытые деревья проектов можно закрыть двойным кликом левой клавиши мыши по соответствующему имени. Закрываются папки на деревьях проектов, а так же деревья самих проектов тоже двойным кликом мыши по их именам.
В окне проекта можно выбрать соответствующий модуль проекта. Первоначально необходимо раскрыть дерево соответствующего проекта. После этого, двойным кликом мыши по имени соответствующего модуля расположенного на дереве, активизировать окно редактора соответствующего модуля. Если на дереве проекта закрыта папка с модулями проекта, необходимо перед выбором имени модуля раскрыть ее.
В окно редактора конкретного модуля можно так же перейти через меню Окно(Window)-Имя модуля. Через меню Окно можно также задать способ расположения редакторов окон модулей – Сверху вниз, Слева направо, Каскадом (Tile Horizontaly, Tile Verticaly, Cascade) .
Добавить в проект модули макросов и модули форм, можно через меню редактора VBA Вставка(Insert). Переименовать модуль возможно в окне свойств, когда он активен. Удалить, экспортировать и импортировать модуль наиболее удобно через контекстное меню, которое появляется при клике правой клавиши мыши на одном из имен модулей проекта которое расположено на дереве проекта (для импорта модуля используют контекстное меню любого из имеющихся модулей проекта или меню редактора VBA Файл-Импорт файла(File-Import File) ). Перейти в редактор модуля можно кликом левой клавиши мыши по соответствующей области окна редактора модуля. Операторы и имена объектов в редакторе модуля вводятся с клавиатуры. Завершает ввод строки в редакторе модуля клавиша Enter. Клавишами перемещения курсора можно сменить позицию ввода. Клавиши Delete и BackSpace используются для удаление введенной информации в редактор модуля. Нажав левую клавишу мыши, и не отпуская ее, можно мышью выделить фрагмент текста в модуле и затем удалить выделенный фрагмент указанными нами клавишами. Выделенный фрагмент текста можно cкопировать или переместить аналогично копированию ячеек листа Excel.
Внесенные изменения в проект можно сохранять через соответствующие пункты меню редактора VBA или меню Excel – Файл-Сохранить(File-Save).
Вернуться обратно в режим Excel можно через закрытие окна редактора VBA или через пункты меню редактора VBA - Вид-Microsoft Exce(View- Microsoft Exce).
Рис 3 Редактор VBA (слева дерево проекта, активизирован редактор модуля “ПерехватКлавиш”, который виден в правой части окна VBA)