
- •Часть 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
12.3 Причины, по которым код vba проекта может не исполняться
Код проекта может не исполнятся, если проект загружен в режиме не работающих макросов или уровень установленной безопасности слишком высок для проекта (см. 12.2 Зашита от макровирусов). Например, если установлен высокий уровень безопасности, то не будет выполняться макрос не имеющий подписи. Подпись макроса это несколько строк комментариев расположенных сразу после имени макроса. Подпись в макросе появляется в том случаи, если он был создан через пункт меню Сервис-Макрос-Начать запись.
Пример макроса с подписью:
Sub ОчиститьСодержимоеВыделенного()
'
' ОчиститьСодержимоеВыделенного Макрос
' Макрос записан 19.08.04 (Тихвинский В.И.)
'
'
Selection.ClearContents
End Sub
Приложение 1 Задание 1 (автозаполнение пола)
Заполните электронную таблицу согласно рисунку 7, но колонку пол не заполняйте.
В режиме конструктора установите на лист Excel элемент управления кнопку и замените на ней Caption согласно рисунку 6.
Перейдите в редакторVBA.
Активизируйте модуль листа Excel на котором расположен элемент управления кнопка.
Создайте событийную процедуру кнопки и заполните ее.
Закройте окно редактора VBA
Включите режим программы и опробуйте ее нажав на элемент управления кнопку.
|
A |
B |
С |
D |
E |
F |
G |
1 |
Фамилия |
Имя |
Отчество |
Пол |
|
|
|
Автозаполнение
пола |
Иванова |
Мария |
Павловна |
Ж |
|
|
|
3 |
Сидоров |
Сидор |
Сидорович |
М |
|
|
|
4 |
Петров |
Петр |
Петрович |
М |
|
|
|
5 |
Макарова |
Вера |
Ивановна |
Ж |
|
|
|
6 |
Иванов |
Борис |
Алексеевич |
М |
|
|
|
7 |
Ванюкова |
Вера |
Николаевна |
Ж |
|
|
|
Рис 7 Лист Excel
‘Событийная процедура кнопки
Private Sub CommandButton1_Click()
Dim n As Integer, s As String
n = 2
‘Адресацию столбцов набивайте на латыни!
While Range("C" + СStr(n)).Text <> ""
s = Range("C" + СStr(n)).Text
‘Буква “а” в кавычках набрана кириллицей!
If Mid(s, Len(s), 1) = "а" Then
Range("D" + СStr(n)).Value = "Ж"
Else
Range("D" + СStr(n)).Value = "М"
End If
n = n + 1
Wend
End Sub
Задание 2 (автозаполнение комментариев к числам)
Заполните электронную таблицу согласно рисунку 8.
В режиме конструктора установите на лист Excel элемент управления кнопку и замените на ней Caption согласно рисунку 7.
Перейдите в редактор VBA.
Вставьте новый модуль в проект (Меню: Вставка-Модуль).
Перейдите в редактор вставленного модуля и набейте функцию в модуле
Активизируйте модуль листа Excel на котором расположен элемент управления кнопка.
Создайте событийную процедуру кнопки и заполните ее.
Закройте окно редактора VBA
Включите режим программы и опробуйте ее, нажав на элемент управления кнопку.
Сотрите комментарии к числам в столбце “С”.
Вставьте вашу функцию в ячейку “С2” (Меню: Вставка-Функция-Определяемая пользователем)
Скопируйте функцию в другие ячейки
|
A |
B |
C |
1 |
Наименование |
Кол-во |
|
2 |
Болт |
12 |
|
3 |
Шуруп |
10 |
|
4 |
Гайка |
32 |
|
5 |
Шайба |
1024 |
|
Добавить
комментарии |
|
|
|
Рис. 8 Лист Excel
Лист1 -
‘модуль листа
Private Sub CommandButton1_Click()
Dim n As Long
n = 2
‘Адресацию столбцов набивайте на латыни!
While Range("B" + СStr(n)).Text <> ""
Range("C" + СStr(n)).Value = числительное(Range("B" + СStr(n)).Value)
n = n + 1
Wend
End Sub
Модуль1 -
‘модуль макросов вставленный в проект пользователем
Public Function числительное(ByVal n As Long) As String
If n > 10 And n <= 19 Then
n = 0
End If
n = n Mod 10
If n = 0 Or n >= 5 Then
числительное = "Штук"
ElseIf n = 1 Then
числительное = "Штука"
Else
числительное = "Штуки"
End If
End Function