
- •Часть 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
11.4 Окно просмотра свойств, методов, потомков и родителей объектов
Для просмотра свойств, методов и потомков объектов можно воспользоваться окном Просмотра Объектов, которое загружается через меню редактора VBA – Вид–Просмотр объектов(View-Object Browser). Окно Просмотр объектов состоит из нескольких подокон. В подокне Классы(Classes) выбирается имя класса искомого объекта или раздел (globals) глобальные (для поиска объектов не содержащихся в списке). В подокне Компонент(Members of ‘Protection’) просматриваются свойства, методы и потомки выбранного объекта. В подокне Результат поиска(Search Results) указывается библиотека компонентов, к которому принадлежит выбранный объект. Над окном Результат поиска имеется поле со списком, в котором можно ввести имя объекта, после ввода которого, в подокне Результат поиска в разделе Класс будет указан родитель введенного объекта. На рис 6 в указанном нами поле введено имя объекта ActiveCell и в первой строке подокна Результат поиска в разделе Класс указан родитель введенного объекта – Application.
Рис. 6 окно просмотра компонентов объектов
12 Дополнительная информация
12.1 Параметры работы редактора vba
Через меню редактора VBA Сервис-Параметры(Toolls-Options) можно установить параметры его работы. В появившемся окне выбирают соответствующую закладку настройки:
Редактор(Edit) – настройка работы редактора модуля
Формат(Editor Format) - формат шрифта редактора модуля (если в редакторе модуля отсутствует кириллица, установите шрифт Courier New Cyr)
Общие(General) – установка параметров “компиляции”, сетки на форме и др.
12.2 Защита от макровирусов
Макровирус это программа, которая написана на языке VBA. Данная программа вызывает “вредные” действия внутри Excel. При запуске проекта содержащего макровирус, другие проекты, загруженные в Excel, а так же книга личных макросов может заразиться. Т.е. в нее автоматически будет записан макровирус. Зараженные проекты будут в свою очередь заражать загруженные вместе с ними незараженные проекты.
Макровирус может, например, испортить меню приложения, или вызвать неправильную работу приложения.
Макровирус никогда не может возникнуть сам по себе. Он переносится с компьютера на компьютер вместе с переписанным проектом. И начинает работать в тот момент, когда проект загружен в режиме работающих макросов.
В MS Office 97 можно установить защиту от вирусов через меню Сервис-Параметры-Общиее-Защита от макровирусов. При открытии проекта через меню Excel приложение будет выводить окно, при установленной защите о том, что проект содержит макро код. Пользователь может подтвердить работу макросов проекта, или загрузить проект в режиме неработающих макросов. И посмотреть программные коды проекта, на наличие операторов вносящие вредные изменения в меню приложения, уничтожающих модули и др. И после, пользователь может стереть программный код содержащий макровирусы. При чем пользователь должен не только просмотреть модули с макросами на наличие вируса, но и другие модули, в частности модуль книги и модули листа.
Защита от макровирусов установленная через меню Сервис-Параметры-Общиее-Защита от макровирусов не действует на проекты, которые вы открываете программно, при помощи операторов VBA! Т.е. через операторы VBA в MS Office 97 проект всегда загружается в режиме работающих макросов.
В MS Office 2000 и в более старших версиях Excel устанавливается несколько уровней защиты от макровирусов через меню приложения Сервис-Макрос-Безопасность-Уровень Безопасности. Безопасность в этих версиях Excel можно так же установить через кнопку Безопасность, расположенную на панели Visual Basic.
В MS Office 2003 существуют и дополнительные функции установки защиты через меню приложения Сервис-Макрос-Безопасность-Надежные издатели. Далее, в указанном пункте меню устанавливаются или снимаются флажки “Доверять всем установленным надстройкам и шаблонам” и “Доверять доступ к Visual Basic Project”
Можно защитить проект от заражения другим способом. Если вы установите защиту на незараженный проект (см. 8.1.3 Измеенение свойств проета), то макровирус не сможет заразить его. Если конечно в коде макровируса не содержится алгоритм взлома пароля защищенного проекта.
Возможно восстановление некоторых последствий причиненных макровирусом при помощи операторов VBA. Как то макровирус испортил мне меню приложения Word, в дополнение к этому испортил панели Visual Basic. Пришлось входить в редактор VBA по нажатию на горячие клавиши ALT + F11, и написать процедуру восстанавливающую указанные последствия, и запустить эту процедуру через меню редактора VBA – Запуск-Запуск подпрограммы.
Sub ВосстановитьДоступVBA()
'Востоновление главного меню приложения
Application.CommandBars.ActiveMenuBar.Reset
'востонавление доступа к Visual Basic
Application.CommandBars("Visual Basic").Reset
Application.CommandBars("Control Toolbox").Reset
Application.CommandBars("Forms").Reset
End Sub
Естественно, что данная процедура годится и для Excel. Методом Reset можно восстановить любую панель инструментов, любое меню приложения. Только для этого нужно знать ее имя или индекс. Процедурой, которая записана нами ниже, возможно восстановить вид всех стандартных меню в конкретном приложении.
Sub ВостановитьВсеМенюПриложения()
Dim i As Long
For i = 1 To Application.CommandBars.Count
On Error Resume Next
Application.CommandBars(i).Reset
Next i
End Sub