- •Министерство образования российской федерации
- •М инистерство образования российской федерации
- •Аннотация
- •Содержание
- •Тема 1. Основы программирования
- •Создание, редактирование и запуск программ
- •Переменные, константы и типы данных
- •Управляющие конструкции
- •Управляющая конструкция If…Then позволяет выполнять один или несколько операторов, если условие истинно. Можно использовать однострочный и блочный синтаксис. Например:
- •Тема 2. Введение в модели объектов
- •2.1. Обзор моделей объектов
- •2.2. Автоматизация операций с использованием объектов
- •2.3. Программирование объектов другого приложения
- •Тема 3. Объекты Microsoft Office
- •3.1. Объекты Microsoft Access
- •3.2. Объекты Microsoft Excel
- •3.3. Объекты Microsoft Power Point
- •3.4. Объекты Microsoft Word
- •Тема 4. Меню и панели инструментов
- •4.1. Средства настройки пользовательского интерфейса
- •4.2. Выбор подходящих элементов пользовательского интерфейса
- •4.3. Система меню
- •4.4. Модификация системы меню на этапе разработки
- •4.5. Модификация системы меню в период выполнения
- •4.6. Панели инструментов
- •4.7. Модификация панелей инструментов на этапе разработки
- •4.8. Модификация панелей инструментов в период выполнения
- •Тема 5. Элементы управления на базе ActiveX и диалоговые окна
- •5.1. Разработка нестандартных диалоговых окон
- •5.2. Использование нестандартных диалоговых окон
- •5.3. Работа с элементами управления в документе, листе или на слайде
- •Тема 6. Оптимизация кода
- •6.1. Основные принципы оптимизации кода
- •6.2. Оптимизация кода для Microsoft Excel
- •6.3. Оптимизация кода для Microsoft Word
- •Тема 7. Отладка и обработка ошибок
- •7.1. Создание обработчика ошибок
- •7.2. Иерархия обработчиков ошибок
- •7.3. Тестирование обработчика за счет эмуляции ошибок
- •7.4. Строчная обработка ошибок
- •7.5. Отключение обработки ошибок
- •7.6. Общие принципы отладки
- •7.7. Режимы конструктора, выполнения и прерывания
- •7.8. Окна отладки
- •7.9. Просмотр стека вызовов
- •Тема 8. Разработка приложений для Интернета и Word Wide Web
- •8.1. Термины и концепции, связанные с Интернетом
- •8.2. Работа с гиперссылками
- •8.3. Сохранение документов и объектов в формате html
- •8.4. Элемент средства просмотра Web Microsoft
- •8.5. Элемент управления Internet Transfer
- •Указывать допустимый сервер-заместитель в свойстве AccessType элемента управления Internet Transfer (таблица 8.4);
- •Элемент управления Internet Transfer автоматически настраивается на нужный протокол, заданный в первой части url. Поэтому применение метода OpenUrl или Execute не требует установки свойства Protocol.
- •8.6. Элемент управления WinSock
- •8.7. Создание персонального Web-сервера
- •Тестовые задания для закрепления материала учебного пособия
- •Рекомендуемая литература
- •Б) дополнительная литература
4.4. Модификация системы меню на этапе разработки
Модификацией системы меню на этапе разработки считаются любые изменения, вносимые в эту систему до запуска программы на Visual Basic. К ним относятся добавление, удаление, перемещение и восстановление компонентов меню, а также присвоение их свойствам таких значений, которые не изменяются в период выполнения.
4.4.1. Добавление пользовательской строки меню
Если необходим набор меню, существенно отличающихся от тех, что доступны в стандартных строках меню приложения Office, вероятно, придется создать новую строку.
Для создания новой строки меню предназначен метод Add набора CommandBars; аргумент MenuBar определяет, нужно ли отображать создаваемый объект CommandBar как строку меню:
Set cstm = CommandBars.Add(Name := ”Custom Menu _
Bar”, Position := msoBarTop, MenuBar := True, _
Temporary := False)
В Microsoft Excel, Word и Power Point новая строка меню создается только из программы на Visual Basic, а в Microsoft Access можно использовать и диалоговое окно Customize (Настройка).
4.4.2. Добавление меню
Меню можно добавить к любой встроенной или пользовательской строке меню. Поскольку приложения Office показывают разные строки меню в зависимости от контекста, то не исключено, что один и тот же компонент придется включить в несколько строк меню, чтобы сделать его доступным в любом контексте. Добавляя меню, можно указать клавишу доступа к нему, и тогда в его названии будет подчеркнута соответствующая буква.
Добавить меню к объекту CommandBar, представляющему конкретную строку меню, позволяет метод Add набора CommandBarControls. При присвоении аргументу Type значения msoControlPopup, сообщается, что добавляемый элемент управления должен показывать меню. Такие элементы управления называют раскрывающимися (pop-up controls). Аргумент Before определяет позицию нового меню в строке. Чтобы указать название и клавишу доступа для нового меню, необходимо присвоить соответствующее значение свойству Caption объекту CommandBarPopup, возвращаемого методом Add:
Set cstmAccounting = CommandBars(“Worksheet Menu _
Bar”).Controls.Add(Type:=msoControlPopup, Before:=9)
cstmAccounting.Caption = “&Учет”
Символ & в названии меню обозначает, что буква, перед которой он стоит, используется как клавиша доступа к этому меню.
4.4.3. Добавление подменю
Подменю можно добавлять к обычным и контекстным меню, а также к другим подменю. Подменю формируются аналогично меню. Пример:
Set cstmAcctProduct = CommandBars(“Worksheet Menu Bar”). _ Controls (“Учет”).Controls.Add(Type:= msoControlPopup)
cstmAcctProduct.Caption = “&Продукт”
4.4.4. Добавление и группировка команд
Во всех приложениях Office предусмотрена возможность добавления к любому встроенному или пользовательскому меню/подменю, изменять их внешний вид и разбивать на логические группы.
Добавить элемент меню к объекту CommandBar, представляющему конкретное меню или подменю, позволяет метод Add набора CommandBarControls. Чтобы добавить встроенную команду, необходимо указать ее идентификатор в аргументе Id:
Set mySpell = CommandBars(“Custom Menu Bar”). Controls _ (“Quick Tools”). Controls.Add(Id:=2)
Чтобы добавить пользовательскую команду, необходимо создать элемент меню и установить свойство OnAction на процедуру Visual Basic, которая будет запускаться при каждом щелчке этого элемента. Значение msoControlButton аргумента Type метода Add сообщает, что данный элемент меню является командой:
Set databaseItem = CommandBars(“Worksheet Menu _ Bar”).Controls(“File”).Controls.Add(Type:=msoControlButton, _ Before:=3)
With databaseItem
.Caption = “Open Database”
.OnAction = “OpenDatabaseProc”
End With
Visual Basic позволяет программно изменять внешний вид элементов меню, открывая доступ ко множеству свойств этих объектов. Чтобы начать группу в меню (т.е. отчеркнуть линией данный элемент меню), достаточно присвоить значение True свойству BeginGroup объекта CommandBarButton, CommandBarPopup или CommandBarComboBox, который представляет соответствующий элемент меню. Чтобы удалить линию, следует установить это свойство как False. Получить объект, представляющий конкретный элемент меню, позволяет выражение вида Controls(index), где index – название или индекс элемента меню:
Set databaseItem = CommandBars(“Worsheet Menu _ Bar”).Controls(“File”).Controls(“Open Database”)
databaseItem.BeginGroup = True
4.4.5. Создание и модификация контекстных меню
Создать контекстное меню позволяет метод Add набора CommandBars. Присваивая аргументу Position значение msoBarPopup, сообщается, что данный объект CommandBar следует отображать как контекстное меню:
Set cstm = CommandBars.Add(Name:=”Shortcuts1”, _ Position:=msoBarPopup, MenuBar:=False, Temporary:=False)
Модификация пользовательских или встроенных контекстных меню в любом приложении Office осуществляется по тем же принципам, что и добавление элементов в меню. Сначала следует получить объект CommandBar, представляющий контекстное меню, с помощью выражения вида CommandBars(name), где name – имя контекстного меню, а затем добавить или изменить элементы набора Controls, доступного из объекта CommandBar.
4.4.6. Удаление компонентов меню
Visual Basic позволяет удалять встроенные или пользовательские элементы из меню, встроенные или пользовательские элементы из строк меню и пользовательские строки меню. Несмотря на то, что из контекстных меню и стандартных строк меню можно убрать все элементы, сами контекстные меню или стандартные строки меню удалить нельзя. Удаление встроенных компонентов меню помогает подстраивать пользовательский интерфейс программы, написанной на Visual Basic. Например, вполне допустимо убрать из меню встроенную команду и заменить ее своей версией, позволяющей выполнять сугубо специфические операции. Или удалить ряд элементов меню, не используемых в программе, и тем самым упростить ее интерфейс. Модифицированные стандартные строки меню, сами меню и их элементы можно вернуть в исходное положение. Но удаление пользовательских компонентов меню необратимо – восстановление таких компонентов потребует их повторного создания.
Для удаления пользовательской строки меню, пользовательских и встроенных меню или их элементов предназначен метод Delete. Стандартные строки меню и контекстные меню удалять не разрешается:
CommandBars(“Chart Menu Bar”).Controls(“Edit”).Delete
4.4.7. Восстановление встроенных компонентов меню
Восстановить можно любые встроенные компоненты меню: строки, меню, их элементы.
Для восстановления встроенных компонентов системы меню предназначен метод Reset:
CommandBars(“Chart Menu Bar”).Controls(“Edit”).Reset