Офисное программирование
Офисное программирование читать книгу онлайн
Фризен Ирина Григорьевна – кандидат педагогических наук, преподаватель информационных технологий, автор многочисленных работ в сфере информационных технологий.
Настоящее учебное пособие написано в соответствии с государственной программой изучения дисциплины Офисное программирование для средних специальных учебных заведений по специальности 230103 «Автоматизированные системы обработки информации и управления».
В пособии дается достаточный материал для проведения практических занятий по дисциплине, а также основной теоретический материал, необходимый при изучении того или иного вопроса. На основе предлагаемого материала можно строить проведение различных видов занятий.
Учебное пособие ставит перед собой цель помочь студентам изучить данную дисциплину в полном объеме, отвечающем требованиям государственного стандарта по дисциплине.
Предназначается для преподавателей и студентов средних специальных учебных заведений, а также может быть использовано студентами высших учебных заведений, изучающих данную дисциплину.
В учебном пособии рассматривается более 60 задач, сопровождаемых 130 рисунками и подробными объяснениями.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
В следующем примере в конец выпадающего меню Ввод документов, расположенного на панели меню Головное меню, добавляется подменю «о движении товаров»:
Dim CstmPopUpi As CommandBarPopup
Set CstmPopUpi =
stmCtrl.Controls.Add(Type:=msoControlPopup)
CstmPopUpi.Caption = «о движении товаров»
Добавление команд
Добавить новую команду в меню можно, применив метод Add коллекции CommandBarControls к объекту, представляющему изменяемое меню. Для того чтобы добавить собственную команду, вставьте ее имя в меню, а затем в качестве значения свойства OnAction задайте имя VBA-процедуры, которая должна вызываться при выборе данной команды. В качестве значения аргумента Туре (Тип) метода Add укажите msoControlButton, означающее, что вставляемый в меню элемент будет командой. Добавим команду «Накладная» в выпадающее меню Ввод документов из панели Головное меню. Выбор этой команды запускает процедуру Invoice:
Set CstmCtrl = CstmPopUpi.Controls.Add(Type:=msoControlButton)
CstmCtrl.Caption = «Накладная»
CstmCtrl.OnAction = «Module1.Invoice»
Метод Add позволяет вставлять в меню и встроенные команды. Для этого при вызове задайте значение параметра Id, равное числовому идентификатору данной команды в Office. Поскольку в Office 2000 количество команд доходит до 4000, в табл. 22 приведем основные команды редактирования.
Таблица 22

Пример добавления команды проверки правописания Spelling в меню Проверки из панели Головное меню:
Set mySpell = CommandBars(«Головное меню»).Соntrols(«Проверки»)_.Controls.Add(Id:=2)
Пример 61. Создать документ, в котором будут отключены все встроенные меню и создано собственное иерархическое меню. На верхнем уровне меню будет состоять из одного пункта. Оно будет включать два подменю, каждое из которых содержит по одной команде. Для реализации данных условий создаем простую форму, содержащую две кнопки: Создать и Отмена (рис. 127). Первая кнопка отключает все панели открытого документа и создает собственное меню (рис. 127), вторая кнопка возвращает все панели на место (рис. 128).
Технология выполнения
1. Активизируйте приложение Word и создайте документ.
2. Перейдите в редактор VBA и создайте форму.
3. Создайте процедуру создания собственной панели.
Option Explicit
Public Sub CreateCustomMenu()
Dim CstmBar As CommandBar
Dim CstmPopUpi As CommandBarPopup, CstmPopUp2 As CommandBarPopup
Dim CstmCtrl As CommandBarControl
Dim Exist As Boolean
'Выключаем все панели
For Each CstmBar In CommandBars
CstmBar.Enabled = False
Next CstmBar
'Создаем, включаем и делаем видимой собственную панель
Exist = False
For Each CstmBar In CommandBars
If CstmBar.Name = «Головное меню» Then
Exist = True
Exit For
End If
Next CstmBar
If Not Exist Then
Set CstmBar = CommandBars.Add(Name:="Головнoe меню", Position:=msoBarTop, MenuBar:=True, Temporary:=False)
End If
CstmBar.Enabled = True
CstmBar.Visible = True
'Добавляем меню на панель
Exist = False
For Each CstmCtrl In CstmBar.Controls
If CstmCtrl.Caption = «&Ввод документов» Then
Exist = True
Exit For
End If
Next CstmCtrl
If Not Exist Then
Set CstmCtrl = CstmBar.Controls.Add(Type:=msoControlPopup, Before:=1)
CstmCtrl.Caption = «&Ввод документов»
'Добавляем две команды подменю
Set CstmPopUpi =
CstmCtrl.Controls.Add(Type:=msoControlPopup)
CstmPopUpi.Caption = « о движении товаров»
Set CstmPopUp2 =
CstmCtrl.Controls.Add(Type:=msoControlPopup)
CstmPopUp2.Caption = « финансовых»
'Добавляем команду в каждое подменю
Set CstmCtrl =
CstmPopUpi.Controls.Add(Type:=msoControlButton)
CstmCtrl.Caption = «Накладная»
CstmCtrl.OnAction = «Module1.Invoice»
Set CstmCtrl =
CstmPopUp2.Controls.Add(Type:=msoControlButton)
CstmCtrl.Caption = «Счет»
CstmCtrl.OnAction = «Module1.Account»
End If
End Sub
Пояснения к процедуре. Вначале, используя свойство Enabled, были отключены все панели. Затем было сформировано головное меню с двумя подменю и командами, содержащее всего один пункт. Обратите внимание: перед добавлением нового пункта обычно проверяется, а не был ли он уже добавлен. Подобная проверка позволяет избежать ошибок, возникающих при попытках добавить уже существующий пункт или удалить несуществующий.
4. Создайте процедуру восстановления панелей инструментов документа.
Public Sub ResetMainMenu()
Dim CstmBar As CommandBar
'Включаем все панели
For Each CstmBar In CommandBars
CstmBar.Enabled = True
Next CstmBar
Set CstmBar = CommandBars.Item(«Menu Bar»)
CstmBar.Visible = True
End Sub
5. Пропишите обработчик кнопки «Создать».
Private Sub CommandButton1_Click()
Call CreateCustomMenu
End Sub
6. Пропишите обработчик кнопки «Отмена», восстанавливающей стандартное окружение.
Private Sub CommandButton2_Click()
Call ResetMainMenu
End Sub
7. Чтобы пример был законченным, приведем процедуры, вызываемые в ответ на выбор команд меню Накладная и Счет:
Public Sub Invoice()
MsgBox («Накладная!»)
End Sub
Public Sub Account()
MsgBox («Счет!»)
End Sub
8. Откомпилируйте программу, запустите форму на выполнение.

Рис. 127. Форма примера 61 в рабочем режиме. Результат работы кнопки Создать
Примечание. Данный пример доработать для более рационального использования следующим образом: в головном меню разработчика создать пункт Форма, который вызывает соответствующую форму, редактирующую меню всего приложения (рис. 129, 130). После нажатия кнопки Создать меню всего приложения Word изменяется, подключив Главное меню, созданное программно. В этом меню пункт «Работа с меню + Отмена» запускает форму с соответствующими кнопками (Создать и Отменить).

Рис. 128. Результат работы кнопки Отменить

Рис. 129. Главное меню разработчика и вызываемая форма

Рис. 130. Главное меню приложения, созданное программно, и пункт Отмена, вызывающий форму с кнопкой Отменить
