
- •Часть 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
Приложение 6 (Ссылка на приложение ms Office)
Возможно сделать ссылку на приложение MS Office из Visual Basic, а так же на приложение MS Office из проекта VBA. Например, ссылку из Excel на приложение Word. Ссылка возможна только в том случаи, если приложение, на которое делают ссылку установлено на компьютер. Ссылку можно делать через переменную типа Variant или Object, ссылка устанавливается на объект Application соответствующего приложения следующим образом:
Set Имя_указателя = _
CreateObject("Имя_Приложения.Application"[, “Имя_сервера” ] )
Имя_Приложения - это имя соответствующего приложения MS Office:
Word – Имя приложения Word
Excel – Имя приложения Excel
Access – Имя приложения Access
Outlook – Имя приложения Outlook
PowerPoint – Имя приложения Power Point
Имя_сервера – не обязательный входной параметр, указывающий имя сетевого сервера, на котором будет создан объект приложения (там, где находится приложение Microsoft Office).
Указатель получает все свойства и методы объекта Application конкретного приложения. Приложение загружается после установки ссылки в невидимом режиме. Для того, что бы сделать приложение видимым используют свойство Visible объекта Application. В примере ниже показано как загружают файл приложения Word из приложения Excel. Файл загружается после нажатия на объект кнопку, которая находится на листе книги Excel.
'кнопка с надписью "Обработка модулей VBA"
Private Sub CommandButton1_Click()
Dim app As Object
'создаем указатель на Word приложение
Set app = CreateObject("Word.Application")
If MsgBox("Открыть файл приложения Word?", vbYesNo + vbQuestion) = vbYes Then
'Делаем видимым приложение Word
app.Visible = True
'открываем файл Word-a
app.Documents.Open "C:\Мои документы\Программирование в VBA\Обработка модулей VBA.doc"
'Делаем окно приложения Word максимально большим
app.WindowState = 1
Else
'Закрываем приложение Word
app.Quit
End If
'Снимаем указатель с Word приложения
Set app = Nothing
End Sub
В указанном нами примере используется в качестве указателя на приложение объектная переменная. Использование объектной переменной, как и использование переменой Variant в качестве указателя на приложение влечет за собой определенные трудности. В редакторе модуля при использовании данных типов указателя, после ввода имени указателя и точки за ним, не появляется вспомогательный список свойств, методов и потомков указателя. Для того, что бы этот список появлялся, необходимо в проекте с начало установить ссылку на приложение библиотеки Word через меню редактора VBA Сервис-Ссылки(Tolls-Referens)-Microsoft Word 8.0 Object Library. После установления ссылки на данную библиотеку, возможно объявить переменную app соответствующим типом. Это даст возможность просмотреть список свойств, методов и потомков объекта app в окне редактора модуля. Переменная app в этом случаи, должна быть объявлена следующим образом:
Dim app As Word.application
Можно не только создать через указатель новый экземпляр приложения методом CreateObject, но и установить связь с уже открытым приложением через метод GetObject:
Set Имя_указателя = _
GetObject( ["Полное имя файла приложения"] _
[, “ Имя_Приложения.Application ” ] )
В функции GetObject используется один из двух необязательных входных параметров.
Определить установлен или нет указатель на объект можно оператором Is следующим образом:
ИмяУказателя Is Nothing - указатель установлен на объект
Not ИмяУказателя Is Nothing - указатель не установлен на объект
Пример создания указателя на открытое приложение Word:
Dim app As Word.application
'создаем указатель на открытое приложение Word
Set app = GetObject( ,"Word.Application")
If app Is Nothing Then
'указатель на приложение не создан,
‘создаем указатель на новый экземпляр приложения
Set app = CreateObject("Word.Application")
If app Is Nothing Then
Msgbox “Ошибка в создании указателя и нового экземпляра приложения Word!”
End
end if
end if
Ниже, нами приведен пример указателя на приложение Access предназначенного для открытия формы базы данных Access. Для того, что бы наш пример работал подключите библиотеку Сервис-Ссылки(Tolls-Referens)-Microsoft Acceess 8.0 Object Library или сделайте переменную app типом Variant. Приложение Acceess, в отличии от приложения Word закрывается даже тогда, когда снят указатель на него. Если с приложения Acceess не снят указатель, то окно данного приложения невозможно закрыть. При попытки закрытия окна приложения оно просто сворачивается. Поэтому, в примере ниже перед снятием указателя на Access мы выводим окно сообщения "Завершить сеанс с Access", пользователь увидит это окно, после того, как попытается закрыть приложение Access.
‘Глобальные константы модуля
Const ИмяБазы = "C:\Мои документы\Курсовая2\Отделы.mdb"
Const ИмяФормы = "Должности"
‘Макрос запуска формы
Sub ЗапускФормыAccess()
Dim app As Access.Application
'создаем указатель на Access приложение
Set app = CreateObject("Access.Application")
'Делаем видимым приложение
app.Visible = True
'Открываем базу
app.OpenCurrentDatabase ИмяБазы
'Открываем окно формы
app.DoCmd.OpenForm ИмяФормы, acNormal, "", "", , acNormal
'Делаем окно формы максимально большим
app.DoCmd.Maximize
MsgBox "Завершить сеанс с Access"
app.Quit
'Снимаем указатель с приложения
Set app = Nothing
End Sub
Если у вас нет базы данных для этого примера, вы можете ее создать. В следующей главе данной книги немного рассказано о создании базы в Access.