- •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. Исправление ошибок
- •Библиографический список
- •Оглавление
52
события BeforerightClick, и появление контекстного меню в текущем рабочем листе отменяется.
Private Sub Worksheet_BeforerightClick _
(ByVal Target As Excel.Range, Cancel As Boolean) Cancel = True
MsgBox "Контекстное меню недоступно" End Sub
При щелчке правой кнопкой мыши на рабочем листе, в модуле которого хранится эта процедура, будет выведено следующее диалоговое окно:
2.10.4. События объекта Application
К событиям уровня Application следует обращаться, когда нужно проконтролировать возникновение событий для всех открытых рабочих книг или рабочих листов. Для этого необходимо создать новый модуль класса. Необходимость использования этих событий возникает довольно редко, и в настоящей работе эти события не рассматриваются.
2.10.5. События объекта UserForm
Эти события будут рассмотрены при изложении технологии работы с пользовательскими формами.
2.10.6. События, не связанные с конкретными объектами
Рассмотренные выше события связаны с объектами: Application, WoorkBook, Sheet и т.д. В этом пункте описаны события, которые не связаны с определёнными объектами: OnTime и Onkey. Доступ к ним производится с помощью методов объекта Application. Другими словами, настройка событий OnTime и OnKey осуществляется с помощью методов
OnTime и Onkey.
В отличие от событий, рассмотренных выше, события OnTime и Onkey программируются с помощью инструкций, расположенных в модуле кода общего назначения: Module1, Module2 и т.д.
2.10.6.1. Метод OnKey
Метод OnKey устанавливает выполнение указанной процедуры при нажатии заданной комбинации клавиш.
Формат метода
OnKey (Key, Procedure), где
53
Key – обязательный параметр, задающий строку, определяющую комбинацию клавиш, которая должна быть нажата. В этой строке можно также указывать специальные клавиши, используя коды.
Procedure – необязательный параметр, задающий имя процедуры, выполняемой при нажатии указанной в Key комбинации клавиш. Если параметр опущен, то выполняется действие, которое зарезервировано в системе за этой комбинацией клавиш. Допустимо использование одновременно нажатой специальной клавиши и клавиши модификатора.
В таблице, приведённой ниже, указаны коды некоторых специальных клавиш и клавиш модификаторов.
Специальная клавиша |
Код |
От F1 до F15 |
От {F1} до {F15} |
|
{LEFT} |
|
{RIGT} |
|
{DOWN} |
|
{UP} |
End |
{END} |
Insert |
{ INSERT} |
|
|
Клавиша-модификатор |
Код |
Shift |
+ |
Ctrl |
^ |
Alt |
% |
Пример
В следующем примере для вызова процедуры Пример1 назначена клавиша F1, а для процедуры Пример2 – комбинация клавиш Ctrl и Стрелка вверх (). Назначение клавиш этим процедурам производится в процедуре Setup_OnKey, которая автоматически вызывается процедурой автозапуска Auto_Open при загрузке рабочей книги Excel. Это необходимо для назначения клавишей процедурам.
Sub Auto_Open()
Call Setup_OnKey 'MsgBox "AUTO_EXEC" End Sub
Sub Setup_OnKey()
Application.OnKey "{F1}", "Пример1"
Application.OnKey "{UP}", "Пример2"
End Sub
Sub Пример1() d = "Дата " & Date
MsgBox "Переназначение клавиш_1" & Chr(13) & "Дата " & Date & Chr(13) & "Клавиша F1"