
- •Лабораторная работа №1 Интегрированная среда разработки приложений vba
- •Общие положения
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №2 Реализация интерактивного диалога
- •Общие положения
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №3 Работа с массивами данных
- •Общие положения
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №4 Работа с документами Word
- •Общие положения
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №5 Программирование панели инструментов
- •Общие положения
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Список использованной литературы
Порядок выполнения работы
Изучите теоретическую часть работы.
Добавьте модуль3 в проект для выполнения следующих функций автоматизации работы с документами:
Открыть документ с текстом (имя документа можно ввести с клавиатуры).
Вывести в окно сообщения информацию о количестве абзацев в документе.
Выделить с 1-го по 3-й абзацы и отформатировать их по своему усмотрению (использовать оператор With).
Поместить любое предложение документа в буфер обмена.
Добавить новый документ и вставить в любой абзац текст из буфера обмена, в строку состояния поместить текст – Новый документ, вывести сообщение о количестве открытых документов.
Сделать активным 1-й документ и вывести сообщение об имени активного документа.
Вставить перед любым абзацем произвольный текст. Присвоить объектной переменной ссылку на диапазон выделенной области. Вывести в окна сообщений информацию о номере вставленной строки, информацию о количестве выделенных символов.
Расширить диапазон выделенной области до абзаца, присвоить объектной переменной ссылку на этот диапазон.
Вставить выделенный диапазон в другое место документа, используя значение объектной переменной.
Закрыть окно активного документа.
Добавьте модуль в проект для выполнения следующих функций автоматизации работы с таблицами:
Добавить новый документ в проект, используя объектную переменную.
Вставить таблицу произвольного размера с заголовком для таблицы в любое место документа. Размеры таблицы и номер абзаца для вставки таблицы, номер и заголовок таблицы вводить с клавиатуры.
Установить внешний контур таблицы толщиной в 1пт, тип линии – двойная.
Скопировать данную таблицу в буфер обмена.
Открыть указанный документ и вставить таблицу в конец документа.
Запустите модули на выполнение и проверьте выполнение вышеперечисленных функций.
Содержание отчета
Название работы и ее исполнитель.
Цель работы.
Краткое описание выполняемой работы
Выводы.
Приложения с листингом процедур и окнами результатов работы.
Контрольные вопросы
Каким образом организованы объекты Word? Какие объекты вы знаете?
Что понимается под экземпляром класса объектов, под семейством объектов? Как осуществляется обращение к объекту, входящему в семейство, к любому объекту?
Какие свойства объектов Word вы знаете? Приведите примеры использования свойств.
Какие методы объектов Word вы знаете? Приведите примеры использования методов.
Что определяют аргументы методов объекта и, каким образом они задаются?
Для чего используются объектные переменные? Почему их нельзя использовать в операторах сравнения?
Лабораторная работа №5 Программирование панели инструментов
Цель работы: изучить основные свойства и методы объекта CommandBar, семейства CommandBars и семейства CommandBarControls, научиться программировать собственные панели инструментов.
Общие положения
Программирование панелей инструментов позволяет создавать для приложений пользователя собственный интерфейс, добавляя в панель команды, часто используемые при работе с конкретными документами.
Для программирования строк меню и панелей инструментов используется объект CommandBar (панель команд) и семейство CommandBars. В семействе CommandBars хранятся все строки меню и панели инструментов конкретного приложения. В свою очередь каждый объект CommandBar содержит семейство CommandBarControls, состоящее из всех элементов управления данной панели инструментов. Элементы семейства CommandBarControls относятся к одному из трех типов (таблица 5.1) [3].
Таблица 5.1 – Типы элементов CommandBarControls
Объект |
Описание |
CommandBarButton |
Кнопка или элемент меню, вызывающий выполнение команды или подпрограммы |
CommandBarComboBoх |
Сложно организованное меню, такие как поле ввода, раскрывающийся список или поле со списком |
CommandBarPopUp |
Меню или вложенное меню |
Для создания новой панели команд (панели инструментов) и добавления ее в семейство CommandBars используется метод Add. Синтаксис: Add(Name, Position, MenuBar, Temporary), где:
Name – имя создаваемой панели команд;
Position - определяет местоположение панели команд, например, msoBarLeft – привязка строки меню к левой границе окна основного приложения; msoBarTop - привязка строки меню к верхней границе окна основного приложения; msoBarPopup- устанавливает, будет ли панель команд контекстным меню;
MenuBar – допустимые значения: True – панель команд заменяет активную строку меню; False – в противном случае;
Temporary - допустимые значения: True – панель команд удаляется при закрытии Word; False – в противном случае.
Для удаления панели команд используется метод Delete.
Видимость панели команд определяет свойство Visible. Например, скрыть панель инструментов Форматирование (Formatting) можно с помощью следующего оператора:
Application.CommandBars(“Formatting”).Visible = False
Для добавления нового элемента на панель инструментов или в меню (в семейство CommandBarControls) используется метод Add, его синтаксис: Add(Type, Id, Parameter, Before, Temporary), где:
Type – задает тип добавляемого элемента. Допустимые значения:
msoControlButton – кнопка или элемент меню;
msoControlEdit – поле ввода;
msoControlDropdown – раскрывающийся список;
msoControlComboBox – поле со списком;
msoControlPopup – вложенное меню;
Id – целое число, идентифицирующее встроенный элемент управления. Если Id равен 1 или опущен, то добавляется пустой элемент управления заданного типа;
Parameter – задает параметр, используемый встроенным элементом управления;
Before – индекс или имя элемента управления, перед которым добавляется новый элемент управления. Если аргумент опущен, то элемент размещается в конце панели инструментов или меню;
Temporary - допустимые значения: True – новый элемент управления удаляется из меню или панели инструментов при закрытии приложения; False – в противном случае.
Некторые свойства объекта CommandBarControl приведены в таблице 5.2.
Таблица 5.2 – Некоторые свойства объекта CommandBarControl
Свойство |
Описание |
Caption |
Текстовая строка, отображаемая в заголовке |
OnAction |
Возвращает имя макроса, выполняемого при активизации элемента управления |
Style |
Только для объекта CommandBarButton. Устанавливает внешний вид кнопки, например, Style=msoButtonCaption, Caption=”название кнопки” – задается название кнопки |
TooltipText |
Текст, отображаемый в окне всплывающей подсказки |
Visible |
Устанавливает режим отображения (видимости)на экране кнопки |
Enabled |
Устанавливает, является ли допустимым выбранный элемент управления |
Предположим, новая панель инструментов должна создаваться при открытии документа. В этом случае в Окне проекта необходимо выбрать объект ThisDocument и в Окне кода для объекта Document и события Open ввести код программы на создание новой панели инструментов. Пример создания панели инструментов пользователя приведены в листинге фрагмента программы на рисунке 5.1.
Private Sub Document_Open()
' При открытии документа панели инструментов Стандартная
' и Форматирование скрываются
With Application
.CommandBars("Standard").Visible = False
.CommandBars("Formatting").Visible = False
End With
' Создание новой панели иструментов с именем МояПанель,
' которая будет удаляться при закрытии приложения
With Application.CommandBars.Add(Name:="МояПанель", _
Position:=msoBarTop, MenuBar:=False, Temporary:=True)
.Visible = True
With .Controls
' Создание кнопки с рисунком на открытие документа
With .Add(Type:=msoControlButton, ID:=23)
.TooltipText = "Открытие документа"
.OnAction = "Кнопка1"
End With
' Создание кнопки с раскрывающемся списком
With .Add(Type:=msoControlDropdown)
.AddItem "Вставка таблицы", 1
.OnAction = "Кнопка2"
.TooltipText = "Работа с таблицами"
.AddItem "Копирование", 2
.ListIndex = 1
End With
' Создание кнопки с текстом
With .Add(Type:=msoControlButton, ID:=1)
.Caption = "Калькулятор"
.TooltipText = "Вызов программы-калькулятора"
.Style = msoButtonCaption
.OnAction = "Кнопка3"
End With
End With
End With
End Sub
Рисунок 5.1 – Листинг фрагмента программы
Предположим, что при нажатии на соответствующие кнопки панели инструментов, на экран будет выводиться сообщение о номере кнопки. Тексты процедур, введенные в Окне кода модуля, приведены на рисунке 5.2.
' Тексты процедур при активизации кнопок новой панели инструментов
Sub Кнопка1()
MsgBox "Была нажата Кнопка1"
End Sub
Sub Кнопка2()
Select Case Application.CommandBars ("МояПанель"). Controls(2). ListIndex
Case 1: MsgBox " Выбор кнопки Вставка таблицы "
Case 2: MsgBox " Выбор кнопки Копирование "
End Select
End Sub
Sub Кнопка3()
MsgBox "Выбор кнопки Калькулятор"
End Sub
Рисунок 5.2 – Процедуры для кнопок новой панели